Proof of Work có nghĩa là gì?
Bằng chứng công việc mô tả một hệ thống đòi hỏi một nỗ lực không đáng kể 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 khởi động các cuộc tấn công từ chối dịch vụ. Khái niệm này đã được Hal Finney điều chỉnh thành tiền vào năm 2004 thông qua ý tưởng "bằng chứng tái sử dụng công việc". 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 nhận giao dịch bitcoin đầu tiên). Bằng chứng về công việc cũng là nền tảng của nhiều loại tiền điện tử khác.
Bằng chứng công việc giải thích
Giải thích này sẽ tập trung vào bằng chứng công việc vì nó hoạt động trong mạng bitcoin. Bitcoin là một loại tiền kỹ thuật số được củng cố bởi một loại sổ cái phân tán được gọi là "blockchain". 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 phối"; một phiên bản thay đổi sẽ nhanh chóng bị từ chối bởi những người dùng khác.
Cách mà người dùng phát hiện giả mạo trong thực tế là thông qua các giá trị 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. Do "hiệu ứng tuyết lở", tuy nhiên, ngay cả một 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 xem dữ liệu đã tạo ra hàm băm có khớp với dữ liệu gốc không.
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 "công việc", mạng bitcoin đặt ra một mức độ "khó khăn" nhất định. Cài đặt này được điều chỉnh sao cho một khối mới được "khai thác" - được thêm vào blockchain 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, tập băm hợp lệ càng nhỏ và càng khó tạo ra một mục tiêu. 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ố không dài: 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, làm thế nào để những người khai thác đả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 blockchain.
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 mười phút, nhưng đó sẽ là ai đó là phỏng đoán của bất kỳ ai. Các công cụ khai thác gộ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.
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 blockchain 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.
