Loạt bài dành cho người mới bắt đầu về tiền mã hoá EP 12: Proof of Work là gì?

Đầu tiên các bạn có thể xem video trên chọn sub tiếng Việt để hiểu thêm một cách sinh động về Proof of Work nhé.

Proof of Work là gì?

Proof of Work (thường được viết tắt là PoW, tiếng Việt là bằng chứng công việc) là một cơ chế để ngăn chặn việc chi tiêu kép (double-spends). Hầu hết các loại tiền mã hoá lớn trước đây đều sử dụng cơ chế này làm thuật toán đồng thuận để bảo mật sổ cái của tiền điện tử như BTC, ETH,…

Proof of Work là thuật toán đồng thuận đầu tiên xuất hiện và cho đến nay đang dần được thay thế bằng Proof of Stake. Nó được Satoshi Nakamoto giới thiệu trong whitepaper về Bitcoin năm 2008, nhưng bản thân công nghệ này đã được hình thành từ rất lâu trước đó.
Adam Back’s HashCash là một ví dụ ban đầu về thuật toán Proof of Work trong những sơ khai của tiền mã hoá. Bằng cách yêu cầu người gửi thực hiện một vài thao tác đơn giản trước khi gửi email, người nhận có thể giảm thiểu thư rác ví dụ như sử dụng mã capcha. Việc tính toán này hầu như không tốn kém gì đối với một người gửi chính thống, nhưng nhanh chóng cộng dồn và gây khó khắn cho kẻ spam email.

Chi tiêu kép là gì?

Chi tiêu kép xảy ra khi cùng một khoản tiền được chi tiêu nhiều lần. Thuật ngữ này hầu như chỉ được sử dụng trong thế giới tiền kỹ thuật số – vì trong cuộc sống, bạn sẽ gặp khó khăn khi chi tiêu cùng một loại tiền mặt hai lần, không như trong thị trường crypto. Ví dụ: Khi bạn trả tiền cho một ly cà phê hôm nay, bạn giao tiền mặt cho một nhân viên thu ngân, người có thể đã khóa nó trong một quầy thu ngân. Bạn không thể đến quán cà phê bên kia đường và thanh toán cho một cốc cà phê khác với cùng một hóa đơn.

Trong khi đó các chương trình tiền kỹ thuật số, bạn có thể có khả năng đó. Mình chắc là bạn đã ít nhất một lần sao chép một tệp máy tính trước đây với thao tác đơn giản chỉ cần sao chép và dán tệp đó. Sau đó, bạn có thể gửi cùng một tệp qua email cho mười, hai mươi, năm mươi người.

Và tương tự vì tiền kỹ thuật số chỉ là dữ liệu, bạn cần ngăn mọi người sao chép và chi tiêu cùng một số lượng ở những nơi khác nhau (nghĩa là với một lượng tiền nhất định, hacker sẽ có thể thực hiện nhiều lệnh cùng một lúc); nếu không, nền kinh tế của đồng token đó sẽ sụp đổ ngay lập tức.

Để có cái nhìn sâu hơn về chi tiêu kép, hãy xem Giải thích về chi tiêu kép.

Tại sao Proof of Work lại quan trọng?

Nếu bạn đã đọc bài Crypto 101 về công nghệ blockchain, bạn sẽ biết rằng người dùng đưa các giao dịch lên mạng lưới. Tuy nhiên, những giao dịch đó không được coi là hợp lệ ngay lập tức. Điều đó chỉ xảy ra khi chúng được thêm vào blockchain.

Blockchain là một cơ sở dữ liệu lớn mà mọi người dùng có thể nhìn thấy, vì vậy họ có thể kiểm tra xem tiền đã được sử dụng trước đó hay chưa. Hình dung nó như thế này: bạn và ba người bạn có một sổ ghi cái kế toán. Bất cứ khi nào một trong các bạn muốn chuyển bất kỳ một khoản tiền nào trong tài khoản, bạn hãy viết ra giấy – Alice trả cho Bob 5€, Bob trả cho Carol 2€, v.v.

Có một điều phức tạp khác ở đây – mỗi khi bạn thực hiện một giao dịch, bạn đề cập đến giao dịch mà tiền đến từ đâu. Vì vậy, nếu Bob thanh toán cho Carol 2€, thì mục nhập thực sự sẽ giống như sau: Bob trả cho Carol 2€ từ 5€ mà trước đó Alice đã trả.

Bây giờ, chúng ta có một cách minh bạch để theo dõi dòng tiền. Nếu Bob cố gắng thực hiện gian lận bằng cách thêm một giao dịch khác cho Dave bằng chính số tiền 2€ mà anh ấy vừa gửi cho Carol, mọi người sẽ biết ngay lập tức. Nhóm sẽ không cho phép thêm giao dịch vào sổ ghi chú.

Bây giờ, điều này có thể hoạt động tốt trong một nhóm nhỏ. Mọi người đều biết nhau, vì vậy họ có thể sẽ đồng ý về việc người bạn nào nên thêm giao dịch vào sổ ghi chú. Điều gì sẽ xảy ra nếu chúng ta muốn một nhóm 10.000 người tham gia? Ý tưởng sổ cái ghi chép bằng tay như ví dụ trên không mở rộng quy mô tốt, bởi vì không ai muốn tin tưởng một người lạ quản lý nó.

Đây là lúc Proof of Work ra đời. Nó đảm bảo rằng người dùng không tiêu tiền mà họ không có quyền chi tiêu. Bằng cách sử dụng kết hợp lý thuyết trò chơi và mật mã, thuật toán PoW cho phép bất kỳ ai cũng có thể cập nhật blockchain theo các quy tắc của hệ thống.

PoW hoạt động như thế nào?

Sổ tay cái của tất cả mọi người ở trên là blockchain. Nhưng mạng lưới không thêm từng giao dịch một – thay vào đó, chúng tôi gộp chúng thành khối. Hệ thống thông báo các giao dịch cho mạng lưới, sau đó người dùng tạo một khối sẽ đưa họ vào một khối ứng cử viên. Các giao dịch sẽ chỉ được coi là hợp lệ khi khối ứng cử viên của chúng trở thành một khối được xác nhận, nghĩa là nó đã được thêm vào blockchain.

Tuy nhiên, thêm một khối chi phí không hề rẻ. Proof of Work yêu cầu người khai thác (người dùng tạo khối) sử dụng hết một số tài nguyên của riêng họ ví dụ điện, các cỗ máy tính với ổ cứng khủng. Tài nguyên đó là sức mạnh tính toán, được sử dụng để băm dữ liệu của khối cho đến khi tìm ra lời giải cho một câu đố.

Băm dữ liệu của khối có nghĩa là bạn chuyển nó qua hàm băm để tạo hàm băm khối. Băm khối hoạt động giống như “dấu vân tay” – đó là danh tính cho dữ liệu đầu vào của bạn và là duy nhất cho mỗi khối.

Hầu như không thể đảo ngược băm khối để lấy dữ liệu đầu vào. Tuy nhiên, biết một dữ liệu đầu vào, bạn có thể xác nhận rằng băm là chính xác. Bạn chỉ cần gửi đầu vào thông qua chức năng và kiểm tra xem đầu ra có giống nhau không.

Trong Proof of Work, bạn phải cung cấp dữ liệu có hàm băm phù hợp với các điều kiện nhất định. Nhưng bạn không biết làm thế nào để đạt được điều đó. Lựa chọn duy nhất của bạn là chuyển dữ liệu của bạn qua một hàm băm và kiểm tra xem nó có phù hợp với các điều kiện hay không. Nếu không, bạn sẽ phải thay đổi dữ liệu của mình một chút để có một hàm băm khác. Thay đổi ngay cả một ký tự trong dữ liệu của bạn sẽ dẫn đến một kết quả hoàn toàn khác, vì vậy không có cách nào để dự đoán kết quả đầu ra có thể là gì.

Do đó, nếu bạn muốn tạo ra một khối (block), bạn đơn thuần đang chơi trò chơi đoán. Bạn lấy thông tin về tất cả các giao dịch mà bạn muốn thêm và một số dữ liệu quan trọng khác, sau đó băm nhỏ tất cả lại với nhau. Nhưng vì tập dữ liệu của bạn sẽ không thay đổi, bạn cần thêm một phần thông tin có thể thay đổi. Nếu không, bạn sẽ luôn nhận được cùng một hàm băm như đầu ra. Dữ liệu biến này là những gì chúng ta gọi là một nonce. Đó là một con số mà bạn sẽ thay đổi sau mỗi lần thử, vì vậy, bạn sẽ nhận được một hàm băm khác nhau mỗi lần. Và đây là những gì chúng ta gọi là đào (mining).

Tóm lại, đào là quá trình thu thập dữ liệu blockchain và băm nó cùng với một nonce cho đến khi bạn tìm thấy một hàm băm cụ thể. Nếu bạn tìm thấy một băm thỏa mãn các điều kiện do giao thức đặt ra, bạn có quyền phát khối mới lên mạng. Tại thời điểm này, những người tham gia khác của mạng cập nhật chuỗi khối của họ để bao gồm khối mới.

Đối với các loại tiền điện tử lớn hiện nay, các điều kiện giải đố vô cùng đầy thách thức để đáp ứng. Tỷ lệ băm trên mạng càng cao thì càng khó tìm được băm hợp lệ (hay còn gọi là độ khó đào). Điều này được thực hiện để đảm bảo rằng các khối không được tìm thấy quá nhanh.

Như bạn có thể tưởng tượng, việc cố gắng đoán một lượng lớn các hàm băm có thể ngốn rất nhiều tài nguyên trên máy tính của bạn. Bạn đang lãng phí chu kỳ tính toán và điện năng. Nhưng giao thức sẽ thưởng cho bạn tiền điện tử nếu bạn tìm thấy một hàm băm hợp lệ.

Hãy tóm tắt lại những gì chúng ta biết cho đến bây giờ:

  • Bạn phải trả chi phí rất đắt.
  • Bạn sẽ được thưởng nếu tạo ra một khối hợp lệ.
  • Biết một đầu vào, người dùng có thể dễ dàng kiểm tra mã băm của nó – người dùng bình thường có thể xác minh rằng một khối là hợp lệ mà không tốn nhiều sức mạnh tính toán.

Tạm thời mọi thứ đang thuận lợi. Nhưng nếu bạn cố gắng gian lận thì sao? Điều gì có thể ngăn bạn đưa một loạt các giao dịch gian lận vào khối và tạo ra một hàm băm hợp lệ?

Đó là lý do xuất hiện của public key. Chúng ta sử dụng một số thủ thuật mật mã gọn gàng cho phép bất kỳ người dùng nào xác minh xem ai đó có quyền chuyển số tiền mà họ đang cố gắng chi tiêu hay không.

Khi bạn tạo một giao dịch, bạn ký tên vào nó. Bất kỳ ai trên mạng đều có thể so sánh chữ ký của bạn với mã khóa công khai và kiểm tra xem chúng có khớp hay không. Họ cũng sẽ kiểm tra xem bạn có thực sự có thể chi tiêu tiền của mình hay không và tổng đầu vào của bạn có cao hơn tổng đầu ra của bạn không (tức là bạn không chi tiêu nhiều hơn số tiền mình có).

Bất kỳ khối nào bao gồm một giao dịch không hợp lệ sẽ bị mạng tự động từ chối. Sẽ rất tốn kém nếu bạn cố gắng gian lận. Bạn sẽ lãng phí tài nguyên của chính mình (như bài viết nêu trên) mà không có bất kỳ phần thưởng nào.

Nghệ thuật của Proof of Work nằm ở đó: nó khiến bạn phải trả giá đắt khi gian lận, nhưng lại có lợi nếu hành động trung thực. Bất kỳ người khai thác hợp lý nào cũng sẽ tìm kiếm ROI, vì vậy họ có thể mong đợi hoạt động theo cách đảm bảo doanh thu.

Nguồn: https://academy.binance.com/en/articles/proof-of-work-explained

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments