Blockchain - Bằng chứng công việc
Vì tất cả các giao dịch đều đượ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 yêu cầu một số triển khai bổ sung và đó là Proof-of-Work mà tôi sẽ mô tả 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 được gọi làNonce như trong hình bên dưới -
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ố đứng đầu là số 0.
Do đó, hàm băm được tạo sẽ giống như 000010101010xxx. Nói chung, người khai thác bắt đầu với giá trị Nonce là 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 hàm băm hoạt động ngẫu nhiên và nằm ngoài tầm kiểm soát của bạn - nghĩa 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 lại cho đến khi tạo được hàm băm mong muốn với bốn số 0 ở đầu. Thời gian dự kiến để tạo một khối trong hệ thống bitcoin là 10 phút. Sau khi người khai thác thành công khối, anh ta giải phóng khối đó trong hệ thống, khiến nó giờ đây trở thành khối cuối cùng trong chuỗi.
Lưu ý rằng có nhiều thợ đào cạnh tranh để tạo ra khối hợp pháp. Hệ thống Bitcoin trao thưởng cho người khai thác thành công đầu tiên bằng cách trao cho anh ta một số bitcoin nhất định. Nói chung, người khai thác có nhiều khả năng tính toán 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ý rất lớn. Tôi sẽ mô tả các cuộc tấn công và cách chúng được giảm thiểu ở phần cuối của hướng dẫn này.