Vấn đề mà proof of work giải quyết
Một sổ cái kỹ thuật số thì dễ sao chép và dễ chỉnh sửa. Nếu ai cũng có thể tự do thêm giao dịch, họ cũng có thể tiêu cùng một đồng coin hai lần — vấn đề "tiêu hai lần" (double-spend) kinh điển. Trong một hệ thống không có người vận hành trung ương, bạn cần một cách để những người tham gia độc lập thống nhất về những giao dịch nào đã xảy ra và theo thứ tự nào, ngay cả khi một số trong họ không trung thực hoặc ngoại tuyến.
Những nỗ lực về tiền kỹ thuật số trước đây dựa vào một bên đáng tin cậy để giữ sổ sách. Thiết kế của Bitcoin, được mô tả trong bản whitepaper năm 2008, đã thay thế bên đáng tin cậy đó bằng một cuộc thi công khai: những người tham gia bỏ ra nguồn lực thực để nối thêm các khối, và mạng lưới đi theo một quy tắc chung để chọn chuỗi chiến thắng. Sự đồng thuận nảy sinh từ chi phí và toán học chứ không phải từ quyền lực.
Các thợ đào thực sự đang tính toán điều gì
Mỗi khối ứng viên chứa một tập hợp các giao dịch, một tham chiếu đến khối trước đó, và một con số nhỏ có thể thay đổi được gọi là nonce. Các thợ đào chạy dữ liệu này qua hàm băm SHA-256, hàm này biến bất kỳ đầu vào nào thành một đầu ra có độ dài cố định, trông có vẻ không thể đoán trước. Mục tiêu là tìm một đầu vào tạo ra một giá trị băm thấp hơn một giá trị mục tiêu nhất định — trong thực tế là một giá trị băm bắt đầu bằng một số lượng số 0 cụ thể.
Vì các đầu ra của hàm băm không thể đoán trước hay đảo ngược để suy ra, cách duy nhất để tìm được một giá trị băm đạt yêu cầu là thử và sai: thay đổi nonce, băm lại, lặp lại, hàng tỷ lần mỗi giây. Cuộc tìm kiếm bằng sức mạnh thô đó chính là "công" (work). Nó cố ý được thiết kế để khó thực hiện nhưng lại cực kỳ dễ để bất kỳ ai khác kiểm tra — chỉ một phép tính băm là xác nhận được đáp án hợp lệ. Sự bất đối xứng này (khó tạo ra, dễ xác minh) là trái tim của proof of work.
Độ khó và nhịp điệu khoảng mười phút
Bitcoin nhắm đến một khối mới trung bình khoảng mỗi mười phút. Khi có thêm sức mạnh tính toán (hash rate) tham gia vào mạng lưới, các khối sẽ có xu hướng đến nhanh hơn, nên giao thức định kỳ điều chỉnh độ khó — mức mà giá trị băm mục tiêu phải thấp đến đâu — để giữ nhịp độ trung bình ổn định. Khoảng mỗi hai tuần (2.016 khối), mỗi nút mạng tính toán lại độ khó dựa trên thời gian của các khối gần đây.
Sự tự điều chỉnh này là lý do vì sao nhiều sức mạnh đào hơn không có nghĩa là tạo khối nhanh hơn theo thời gian; nó chủ yếu có nghĩa là nhiều công hơn đang được bỏ ra để bảo mật cùng một dòng khối ổn định. Thời điểm chính xác của bất kỳ khối đơn lẻ nào là ngẫu nhiên, nên mười phút là mức trung bình dài hạn, không phải một lịch trình.
Từ khối đến đồng thuận: chuỗi hợp lệ dài nhất
Tìm được một khối hợp lệ mới chỉ là một nửa câu chuyện. Các nút mạng vẫn cần thống nhất về một lịch sử duy nhất khi hai thợ đào tìm ra khối gần như cùng một thời điểm. Quy tắc là các nút mạng đi theo chuỗi hợp lệ có tổng proof of work tích lũy lớn nhất — thường được tóm gọn là "chuỗi dài nhất", dù thực chất nó là chuỗi nặng nhất tính theo công tích lũy.
Mỗi nút mạng đầy đủ (full node) độc lập xác minh từng khối theo các quy tắc của Bitcoin: chữ ký hợp lệ, không có tiêu hai lần, phần thưởng khối đúng, và một giá trị băm đạt mục tiêu. Những khối vi phạm quy tắc sẽ đơn giản bị từ chối, bất kể đã bỏ ra bao nhiêu công vào đó. Những bất đồng tạm thời (phân nhánh / fork) được giải quyết khi khối tiếp theo nối dài một nhánh, và các thợ đào trung thực hội tụ về nhánh đó, bởi vì xây dựng trên chuỗi đã được chấp nhận là nơi có phần thưởng.
Vì sao điều này bảo mật mạng lưới
Để viết lại một giao dịch trong quá khứ, kẻ tấn công sẽ phải làm lại proof of work cho khối đó và mọi khối sau nó, rồi vượt qua toàn bộ mạng lưới trung thực để xây một chuỗi dài hơn. Giao dịch càng bị chôn sâu thì càng phải làm lại nhiều công hơn — đó là lý do người bán thường chờ vài lần xác nhận. Chi phí tỷ lệ thuận với tổng hash rate của mạng lưới.
Đây là trực giác đằng sau "tấn công 51%": kiểm soát phần lớn sức mạnh băm có thể cho phép ai đó sắp xếp lại hoặc kiểm duyệt các giao dịch gần đây. Nhưng việc mua sắm và vận hành phần cứng đó rất tốn kém, nó không thể giả mạo chữ ký hay đánh cắp coin một cách trực tiếp, và một cuộc tấn công lộ liễu có thể làm suy giảm giá trị của chính tài sản mà kẻ tấn công đang bỏ nguồn lực ra để đào. Các động lực được sắp đặt sao cho việc tham gia một cách trung thực nhìn chung có lợi hơn là tấn công. Ở đây, sự bảo mật mang tính kinh tế và xác suất, không phải một sự đảm bảo tuyệt đối.
Những đánh đổi và cuộc tranh luận rộng hơn
Sức mạnh của proof of work — chi phí thực, bên ngoài — cũng chính là nguồn gốc của lời chỉ trích phổ biến nhất đối với nó: mức tiêu thụ năng lượng. Các ước tính về lượng điện Bitcoin sử dụng khác nhau rất nhiều và thay đổi theo thời gian, và bức tranh này còn phức tạp hơn bởi tỷ lệ ngày càng tăng của năng lượng bị mắc kẹt, dư thừa hoặc tái tạo mà một số thợ đào sử dụng. Những người có lý trí vẫn bất đồng, và các chi tiết cụ thể thay đổi; nên tham khảo các nguồn đáng tin cậy, cập nhật thay vì bất kỳ một con số đơn lẻ nào.
Các thiết kế đồng thuận thay thế như proof of stake bảo mật một số mạng lưới khác với lượng năng lượng ít hơn nhiều bằng cách sử dụng tài sản thế chấp kinh tế thay cho tính toán. Chúng liên quan đến những giả định và đánh đổi khác nhau, và việc so sánh chúng một cách công bằng lại là một chủ đề riêng. Đối với riêng Bitcoin, proof of work vẫn là cơ chế, và sự bảo mật cùng lịch trình phát hành của nó gắn liền với cơ chế này.