Tóm tắt các ý chính cần nhớ
- Proof of Work (PoW) là một cơ chế đồng thuận phi tập trung yêu cầu các thành viên của mạng phải nỗ lực giải một câu đố toán học ngẫu nhiên để ngăn chặn việc tấn công hệ thống.
- Proof of Work được sử dụng rộng rãi trong khai thác tiền mã hóa, để xác thực các giao dịch và khai thác các token mới.
- Nhờ cơ chế Proof of Work, giao dịch Bitcoin và các loại tiền mã hóa khác có thể được xử lý peer-to-peer (ngang hàng) một cách an toàn mà không cần bên thứ ba trung gian đáng tin cậy.
- Proof of Work ở quy mô lớn đòi hỏi lượng năng lượng khổng lồ, điều này chỉ đạt được khi có nhiều thợ đào tham gia vào mạng lưới.
- Proof of Stake (POS) là một trong các cơ chế đồng thuận mới, được tạo ra để thay thế Proof of Work.
Những điều cần biết về Proof of Work
Trong bài viết này, Piggyy sẽ tập trung mô tả về Proof of Work trong hệ thống mạng Bitcoin. Bitcoin là một loại tiền mã hóa dựa trên cơ sở sổ cái phân tán (distributed ledger) được gọi là “blockchain”. Sổ cái này chứa bản ghi của tất cả các giao dịch bitcoin, được sắp xếp theo các “block” tuần tự, để người dùng không được phép sử dụng hai giao dịch khác nhau để cùng chi tiêu số dư của một tài khoản (gian lận lặp chi). Để ngăn chặn giả mạo, sổ cái được công khai, hoặc “phân tán”; một phiên bản đã qua chỉnh sửa sẽ nhanh chóng bị những người dùng khác từ chối.
Trong thực tế, cách người dùng phát hiện giả mạo là thông qua các hàm hash, các chuỗi số dài dùng làm Proof of Work. Đặt một tập hợp dữ liệu nhất định thông qua một hàm hash (bitcoin sử dụng SHA-256) và chỉ duy nhất một hash được tạo ra. Tuy nhiên, nhờ vào “hiệu ứng lan truyền” (“avalanche effect”), ngay cả một thay đổi nhỏ trên bất kỳ phần nào của dữ liệu gốc cũng sẽ cho ra một hash hoàn toàn không thể nhận dạng được. Bất kể kích thước của tập dữ liệu gốc, hash được tạo bởi một hàm nhất định sẽ có cùng độ dài. Hash là hàm một chiều: không thể sử dụng hàm hash để lấy dữ liệu gốc, mà chỉ dùng để kiểm tra xem dữ liệu tạo ra hàm hash có khớp với dữ liệu gốc hay không.
Việc chỉ tạo ra hàm hash cho một tập hợp các giao dịch bitcoin sẽ là điều tầm thường đối với một máy tính hiện đại, vì vậy để biến quá trình thành “work”, 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 để một block mới được “khai thác” —được thêm vào blockchain bằng cách tạo một hàm hash hợp lệ — khoảng 10 phút một lần. Việc đặt độ khó được thực hiện bằng cách thiết lập “target” cho hàm hash: mục tiêu (target) càng thấp, tập hợp các hàm hash hợp lệ càng nhỏ và càng khó tạo ra. Trong thực tế, điều này có nghĩa là một hàm hash bắt đầu bằng một chuỗi số 0 rất dài.
Những cân nhắc đặc biệt
Vì một tập hợp dữ liệu nhất định chỉ có thể tạo ra một hàm hash duy nhất, nên làm cách nào để thợ đào đảm bảo rằng họ tạo một hàm hash thấp hơn 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 một hash hợp lệ được tìm thấy, nó sẽ được phát tới mạng và block được thêm vào blockchain.
Mining là một quá trình cạnh tranh, nhưng lại giống một trò xổ số hơn là một cuộc đua. Trung bình, một người sẽ tạo ra proof of work được chấp nhận sau mỗi mười phút, nhưng ai sẽ thắng thì chưa biết. Các thợ đào chung tay với nhau để tăng cơ hội khai thác các block, tạo ra phí giao dịch trong một thời gian giới hạn, phần thưởng là bitcoin mới được tạo.
Proof of Work khiến việc thay đổi bất kỳ khía cạnh nào của blockchain trở nên cực kỳ 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 đó. Nó cũng gây khó khăn cho người dùng hoặc nhóm người dùng muốn nắm vị trí độc quyền mạng lưới máy tính, vì máy móc và năng lượng cần thiết để hoàn thành các hàm hash là rất tốn kém.
Ví dụ về Proof of Work
Proof of Work yêu cầu một máy tính tham gia một cách ngẫu nhiên vào các hàm hash cho đến khi nó đạt được kết quả đầu ra với lượng số 0 đứng đầu chính xác tối thiểu. Ví dụ: hash cho block # 660000, được khai thác vào ngày 4 tháng 12 năm 2020 là 00000000000000000008eddcaf078f12c69a439dde30dbb5aac3d9d94e9c18f6. Phần thưởng khối cho lần hash thành công đó là 6,25 BTC.
Block đó sẽ luôn chứa 745 giao dịch chỉ liên quan đến hơn 1.666 bitcoin, cũng như tiêu đề của khối trước đó. Nếu ai đó cố gắng thay đổi số tiền giao dịch thậm chí là 0,000001 bitcoin, thì hàm hash sẽ không thể được nhận dạng và mạng lưới sẽ từ chối hành động gian lận đó.