(NANO cơ bản) Phần 4: Proof of Work

Tóm tắt: Mỗi khối trong Nano đều chứa một Proof-of-Work (PoW) nhỏ được sử dụng để ngăn chặn thư rác. Khi một khối chứa một bằng chứng có giá trị dưới ngưỡng, nó sẽ bị các nút trong mạng loại bỏ. Nếu bằng chứng là hợp lệ, thì khối được xử lý.


Proof-of-Work

Thuật ngữ PoW được đặt ra vào năm 1999 mặc dù khái niệm đằng sau nó xuất phát từ một bài báo năm 1993. Ban đầu nó được thiết kế để chống thư rác, buộc người gửi phải chịu gánh nặng tính toán để email của họ không bị máy chủ từ chối ngay lập tức. Về lý thuyết, việc nhân rộng tính toán này cho một số lượng lớn email (trường hợp spam) sẽ không thực tế.

PoW được phổ biến rộng rãi bởi Bitcoin, mạng lưới tiền điện tử phi tập trung đầu tiên. Mục đích của nó là để ngăn chặn chi tiêu gấp đôi bằng cách cho các thợ mỏ cạnh tranh giải pháp cho một bài toán rất khó hiện nay đòi hỏi một số lượng lớn các nỗ lực mù quáng để hoàn thành.

Có một số chức năng PoW có sẵn để sử dụng. Đối với tiền điện tử, những thứ quan tâm có thể được phân loại theo hai sơ đồ:

  • Ràng buộc CPU, trong đó bộ xử lý nhanh hơn (hoặc bộ xử lý đồ họa) có thể nhanh chóng có được bằng chứng.
  • Giới hạn bộ nhớ, trong đó tốc độ tính toán bị ràng buộc bởi độ trễ bộ nhớ hoặc băng thông, dự kiến ​​sẽ không phát triển nhanh như tốc độ bộ xử lý.

Bằng chứng làm việc. Nguồn: Nano

Lý Do

Trong Nano, PoW chỉ được sử dụng để ngăn chặn các giao dịch spam. Nếu không có nó và với tính chất không đồng bộ của mạng khối Nano, bất kỳ ai cũng có thể đẩy các giao dịch hợp lệ lên mạng với tốc độ vô hạn về mặt lý thuyết, sẽ nhanh chóng bão hòa các nút về băng thông và các tài nguyên khác.

Như vậy, và như chúng ta đã thấy trong trước đó Loạt bài về NANO Cơ bản, mọi khối phải chứa một bằng chứng nhỏ.

Một câu hỏi thường gặp là tại sao các khối nhận được yêu cầu PoW? Mặc dù câu trả lời hoàn chỉnh phức tạp hơn những gì chúng tôi dự định tiếp tục, nhưng nó đã được thảo luận chi tiết. Về cơ bản, nó được sử dụng để ngăn chặn việc tạo ra các nhánh sâu trong mạng.

Cách thức hoạt động

Bằng chứng lý tưởng về công việc là một vấn đề toán học thực sự khó tính nhưng đơn giản để xác minh.

  • Tạo PoW – Để tạo PoW, hệ thống quay vòng qua cùng một phép tính với các số hơi khác nhau mỗi lần, cho đến khi nhận được câu trả lời trên ngưỡng yêu cầu. Quá trình này có thể mất hàng triệu lần thử, tiêu tốn thời gian và tài nguyên.
  • Xác minh – Xác minh bằng chứng là một quá trình rất nhanh. Giá trị của bằng chứng được tính toán và kiểm tra theo ngưỡng độ khó được xác định trước. Khi một khối chứa một bằng chứng có giá trị dưới ngưỡng, nó sẽ bị các nút trong mạng loại bỏ. Nếu bằng chứng là hợp lệ, thì khối được xử lý.

Nano hiện đang sử dụng blake2b làm hàm băm PoW, một thuật toán gắn với CPU, do nó rất nhanh để xác minh. Đáng chú ý là điều này có thể thay đổi trong tương lai nên có một giải pháp phù hợp hơn.

Để thực thi PoW mới cho mọi khối, phương trình mà chứng minh phải đáp ứng phụ thuộc vào hàm băm của khối trước đó, như sau:

Trong phương trình này:

  • nonce là giá trị 64 bit ngẫu nhiên được thay đổi để cố gắng đạt được giá trị hợp lệbằng chứng
  • ngưỡng được xác định trước trong Nano với giá trị 0xffffffc000000000.

Vì phương trình phụ thuộc vào khối trước, nên có trường hợp đặc biệt của khối đầu tiên (mở khối) của bất kỳ tài khoản nào, trong đócủa tài khoản khóa công khai được sử dụng thay thế (đọc đầu tiên Nano How).

Trong khi tạo ra một bằng chứng yêu cầu, trung bình, 67108864 nonces phải được thử (do đó có cùng số băm), để xác minh bằng chứng chỉ một băm blake2b được thực hiện. Điều này có nghĩa là nếu mất trung bình một giây, để có được bằng chứng, sẽ mất 14,9 nano giây để xác minh nó (giả sử không mất thời gian để bắt đầu, đó là một xấp xỉ thô).

PoW động và được ưu tiên

Cho đến phiên bản 18 (Dolphin) của Nano, tất cả các khối được xử lý như nhau, theo nghĩa là chúng được xử lý theo thứ tự ngẫu nhiên hoặc theo thứ tự mà chúng đến. Tuy nhiên, trong trường hợp tỷ lệ giao dịch lớn trong mạng, các nút có thể nhận được một số lượng lớn các khối trong hàng xử lý của chúng.

Trong phiên bản 19 (Solidus), nếu mạng bị tắc nghẽn thì các khối sẽ bắt đầu được ưu tiên bởi giá trị PoW của chúng. Về cơ bản, điều này có nghĩa là trong trường hợp tắc nghẽn mạng, bất kỳ ai cũng có thể ưu tiên giao dịch của họ (ví dụ: nếu khẩn cấp) bằng cách tính bằng chứng giá trị cao hơn. Thật đơn giản để đạt được hiệu ứng này, vì chỉ có ngưỡng phải được thay đổi (thành giá trị cao hơn) khi tạo PoW.

Hiệu ứng dự định với Dynamic PoW là không khuyến khích spam mạng. Hiện tại, thư rác hiệu quả nhất là các khối và bằng chứng tạo trước, sau đó đẩy tất cả chúng vào mạng cùng một lúc. Trong trường hợp này, các nút trong mạng sẽ nhanh chóng thấy rằng các hàng đợi xử lý khối được bão hòa.

Bằng cách sử dụng PoW ưu tiên, những người không tấn công vẫn có thể giao dịch ở tốc độ bình thường bằng cách tạo ra một bằng chứng giá trị lớn hơn. Lưu ý rằng kẻ tấn công không thể thay đổi giá trị bằng chứng của chúng trong loại thư rác này, vì chúng đã tạo trước tất cả các khối và bằng chứng.

Người dùng thông thường của mạng Nano có thể dành thêm thời gian để tính toán trước PoW tiếp theo của họ để các giao dịch của họ được ưu tiên, trong khi các dịch vụ lớn hơn có thể sử dụng các dịch vụ phụ trợ như DPoW để nhanh chóng cung cấp PoW theo yêu cầu cho các giao dịch của họ.

Tags:

Add a Comment

Your email address will not be published. Required fields are marked *