Bằng chứng công việc (Proof of Work - PoW) trong công nghệ chuỗi khối là gì?
Mục Lục
Bằng chứng công việc (Proof of Work)
Bằng chứng công việc trong tiếng Anh là Proof of Work; viết tắt: PoW.
Bằng chứng công việc mô tả một hệ thống đòi hỏi một nỗ lực lớn nhưng khả thi để ngăn chặn việc sử dụng năng lực điện toán phù phiếm hoặc độc hại như gửi email spam hoặc phát động các cuộc tấn công từ chối dịch vụ.
Khái niệm này được Hal Finney áp dụng vào tiền năm 2004 thông qua ý tưởng "reusable proof of work" (tạm dịch: bằng chứng công việc có khả năng tái sử dụng). Sau khi được giới thiệu vào năm 2009, Bitcoin đã trở thành ứng dụng đầu tiên được áp dụng rộng rãi cho ý tưởng của Finney (Finney cũng là người tiếp nhận giao dịch Bitcoin đầu tiên). Bằng chứng công việc cũng là nền tảng của nhiều loại tiền mã hóa khác.
Nội dung về Bằng chứng công việc
Trước hết, Bitcoin là một loại tiền kĩ thuật số được ghi nhận bởi một loại sổ cái phân tán được gọi là "chuỗi khối". Sổ cái này chứa một bản ghi của tất cả các giao dịch Bitcoin, được sắp xếp theo các "khối" liên tiếp để không người dùng nào được phép sử dụng bất kì khoản giữ nào của họ hai lần. Để tránh giả mạo, sổ cái là công khai, hoặc "phân tán"; một phiên bản thay đổi sẽ nhanh chóng bị người dùng khác từ chối.
Cách mà người dùng phát hiện việc giả mạo trong thực tế là thông qua các hàm băm (các chuỗi số dài đóng vai trò là bằng chứng của công việc). Đặt một tập hợp dữ liệu nhất định thông qua hàm băm (Bitcoin sử dụng SHA-256) và nó sẽ chỉ tạo ra một hàm băm.
Tuy nhiên, do "hiệu ứng thác", ngay cả một sự thay đổi nhỏ đối với bất kì phần nào của dữ liệu gốc sẽ dẫn đến một hàm băm hoàn toàn không thể nhận ra. Dù kích thước của tập dữ liệu gốc là bao nhiêu, hàm băm được tạo bởi một hàm đã cho sẽ có cùng độ dài. Hàm băm là hàm một chiều: nó không thể được sử dụng để lấy dữ liệu gốc, chỉ kiểm tra được xem dữ liệu đã tạo ra hàm băm có khớp với dữ liệu gốc hay không.
Việc tạo ra bất kì hàm băm nào cho một tập hợp các giao dịch Bitcoin sẽ là chuyện nhỏ đối với một máy tính hiện đại, vì vậy để biến quá trình này thành "thực hiện" thì mạng Bitcoin đặt ra một mức "khó khăn" nhất định. Việc này được điều chỉnh sao cho một khối mới được "khai thác" (được thêm vào chuỗi khối bằng cách tạo ra một hàm băm hợp lệ) khoảng 10 phút một lần.
Việc thiết lập độ khó được thực hiện bằng cách thiết lập "mục tiêu" cho hàm băm: mục tiêu càng thấp thì hàm băm hợp lệ càng nhỏ và càng khó tạo ra một hàm băm hượp lệ càng lớn. Trong thực tế, điều này có nghĩa là một hàm băm bắt đầu bằng một chuỗi số: ví dụ, hàm băm cho khối # 429818 là 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d.
Khối đó chứa 2.012 giao dịch chỉ liên quan đến hơn 1.000 Bitcoin, cũng như tiêu đề của khối trước đó. Nếu người dùng thay đổi một số tiền giao dịch bằng 0,0001 Bitcoin, hàm băm kết quả sẽ không thể nhận ra và mạng sẽ từ chối gian lận.
Vì một tập hợp dữ liệu nhất định chỉ có thể tạo một hàm băm duy nhất, làm thế nào để những người thợ đào đảm bảo họ tạo ra một hàm băm dưới mục tiêu? Họ thay đổi đầu vào bằng cách thêm một số nguyên, được gọi là nonce ("số được sử dụng một lần"). Khi tìm thấy hàm băm hợp lệ, nó sẽ được phát lên mạng và khối được thêm vào chuỗi khối.
Khai thác là một quá trình cạnh tranh, nhưng nó là một cuộc xổ số nhiều hơn là một cuộc đua. Trung bình, một người nào đó sẽ tạo ra bằng chứng công việc chấp nhận được cứ sau 10 phút. Các thợ đào tập hợp lại với nhau để tăng cơ hội khai thác các khối, tạo ra phí giao dịch và trong một thời gian giới hạn, phần thưởng của Bitcoin mới được tạo ra.
Bằng chứng công việc khiến việc thay đổi bất kì khía cạnh nào của chuỗi khối trở nên vô cùng khó khăn, vì một sự thay đổi như vậy sẽ yêu cầu khai thác lại tất cả các khối tiếp theo. Điều này cũng gây khó khăn cho người dùng hoặc nhóm người dùng trong việc độc quyền hóa sức mạnh tính toán của mạng, vì máy móc và năng lượng cần thiết để hoàn thành các hàm băm rất tốn kém.
(Tài liệu tham khảo: investopedia.com)