Chương 8: Bằng chứng công việc
Vì tất cả các giao dịch được đóng dấu thời gian, chúng tôi cần triển
khai máy chủ dấu thời gian phân tán trên mạng ngang hàng. Điều này đòi hỏi
một số triển khai bổ sung và đó là Proof-of-Work mà tôi sẽ mô tả ngay bây giờ. Đối
với mỗi khối, bây giờ chúng tôi thêm một mục nữa gọi là Nonce như
trong hình bên dưới -
Hình 9
Nonce là một số sao cho hàm băm của khối đáp ứng một tiêu chí nhất
định. Tiêu chí này có thể là hàm băm được tạo phải có bốn chữ số hàng đầu
của nó bằng không.
Do đó, hàm băm được tạo sẽ trông giống như
000010101010xxx. Nói chung, công cụ khai thác bắt đầu với giá trị Nonce bằng
0 và tiếp tục tăng nó cho đến khi hàm băm được tạo đáp ứng tiêu chí đã chỉ định.
Lưu ý rằng việc tạo băm hoạt động ngẫu nhiên và nằm ngoài tầm kiểm
soát của bạn - đó là bạn không thể buộc hàm băm tạo ra một hàm băm nhất định. Do
đó, có thể mất vài lần lặp cho đến khi hàm băm mong muốn với bốn số 0 đứng đầu
được tạo. Thời gian dự kiến để tạo một khối trong hệ thống bitcoin là 10
phút. Khi người khai thác khai thác thành công khối, anh ta giải phóng nó
trong hệ thống khiến nó trở thành khối cuối cùng trong chuỗi.
Lưu ý rằng có nhiều thợ mỏ cạnh tranh để tạo ra khối hợp
pháp. Hệ thống Bitcoin thưởng cho người khai thác thành công đầu tiên bằng
cách cho anh ta một số bitcoin nhất định. Nói chung, người khai thác có sức
mạnh tính toán nhiều hơn có thể là người chiến thắng sớm. Điều này có thể
gây ra các cuộc tấn công vào toàn bộ hệ thống bởi những người sở hữu sức mạnh xử
lý khổng lồ. Tôi sẽ mô tả các cuộc tấn công và làm thế nào chúng được giảm
nhẹ vào cuối hướng dẫn này.
**********
Mục lục:
Chương 1: Giới thiệu về Blockchain
Chương 2: Chi tiêu gấp đôi (Double Spending)
Chương 3: Sơ lược về lịch sử phát triển của Blockchain
Chương 4: PKI (Public Key Cryptography) - Mật mã khóa công khai
Chương 5: Hàm Băm (Hashing)
Chương 6: Khai phá (Mining)
Chương 7: Chuỗi khối (Chaining Blocks)
Chương 8: Bằng chứng công việc
Chương 9: Mạng và khai thác
Chương 10: Phần thưởng cho người khai thác
Chương 11: Cây Merkle (Merkle Tree)
Chương 12: Xác minh thanh toán
Chương 13: Giải quyết xung đột
Chương 14: Quyền riêng tư
Chương 15: Giảm thiểu tấn công
Chương 16: Kết luận