• Trang chủ
  • Blockchain
  • Giải thuật đồng thuận Proof of Work (PoW) – Blockchain cơ bản
112 lượt xem

Giải thuật đồng thuận Proof of Work (PoW) – Blockchain cơ bản


Giải thuật đồng thuận ( Consensus Algorithm ) là một trong những thành phần quan trọng của Blockchain. Ngay từ khởi đầu, Blockchain sinh ra để vô hiệu bên thứ 3 khi thực thi những thanh toán giao dịch ( transactions ) nhằm mục đích giảm ngân sách. Do đó để xác nhận những thanh toán giao dịch, Blockchain sẽ sử dụng công động mạng tham gia vào mạng lưới Blockchain để xác nhận những thanh toán giao dịch này .

Các nền tảng khác nhau sẽ có những giải thuật đồng thuận khác nhau : Proof of Work, Proof of Stake, Delegate Proof of State, Proof of Athortiy, dBFT …, mỗi giải thuật sẽ có ưu điểm và khuyết điểm khác nhau. Trong loạt bài viết học về Blockchain cơ bản BIASTEK trình làng giải thuật Proof of Work ( poW )
Trước tiên, giả sử Jack muốn gửi 1 bitcoin cho Elsa, Jack sẽ gửi thông điệp ( message ) : “ Tôi, Jack chuyển cho Elsa 1 bitcoin, với seri 1234567 ”. Thông điệp nhu yếu thanh toán giao dịch được gửi đến những nodes trên mạng ngang hàng ( Peer-to-Peer ). Khi đó mọi người ( những nodes ) sẽ nghe được thông điệp này và đưa vào hàng đợi thanh toán giao dịch ( queue of pending transactions ) và chưa được duyệt bởi network. Ví dụ 1 người dùng tên là David theo dõi những message như sau :
Tôi, Tom chuyển cho Peter 2 bitcoin, với seri 1234500 .

Tôi, Alex chuyển cho Nicolas 5
bitcoin, với seri 1234577

Tôi, Pierre chuyển cho Salah 10 bitcoin, với seri 1234599
David kiểm tra sổ cái chia sẽ ( shared ledger ) của mình và thấy mỗi thanh toán giao dịch đều hợp lệ và phát tán ( broadcast ) thông điệp này lên trên toàn mạng lưới ( network ). Tuy nhiên, trước khi thao tác này David sẽ được nhu yếu giải một bài toán phức tạp ( computational puzzle ) gọi là proof of works, không giải được bài toán đó toàn network sẽ không gật đầu xác nhận thanh toán giao dịch ( validation of the transaction ) của David. Bài toán David cần giải là gì ?
Gọi H là hàm hash ( hash function sử dụng SHA-256 )

Gọi D là dữ liệu giao dịch chờ được
duyệt của David (David’s queue of pending transactions)

X gọi là số nonce : là 1 số lượng sao cho khi hash H ( D + X ) tạo ra 1 dãy số hash mà có 0000 tiên phong. Bài toán David cần giải là tìm 1 số nonce sao cho khi gắn X vào D và đưa vào hàm hash sẽ tạo ra 1 kết qua của hash có 0000 tiên phong
Ví dụ :

H(“ Tôi, Jack chuyển cho Elsa 1 bitcoin,với seri 1234567”, 49948) = 

 
00003d81d4fe800a0a7ab3aace46a871da436c98f21acde30044e30cd5f75a6e

Như vậy với số nonce là 49948, X = 00003 d81d4fe800a0a7ab3aace46a871da436c98f21acde30044e30cd5f75a6e, đây sẽ là đáp án của bài toán vì thỏa mãn nhu cầu có 4 ký tự 0 tiên phong. Độ phức tạp bài toán tùy thuộc vào số lượng ký tự 0 tiên phong. Tuy nhiên, việc giải bài toán này sẽ tiêu tốn nhiều tài nguyên và nguồn năng lượng và đây cũng là khuyết điểm của PoW
Trong 1 số ít nền tảng blockchain khác sử dụng PoW ( Proof-of-Work ), bài toán hoàn toàn có thể sẽ là tìm 1 số ít nonce mà có 4 ký tự tiên phong lớn hơn hoặc bằng 1 số lượng cho trước
Giả sử David tìm được 1 số lượng nonce. David sẽ phát tán ( broadcast ) thanh toán giao dịch mà anh ta đã xác nhận kèm theo số nonce và giá trị của X để hội đồng xác nhận. Những người còn lại xác nhận X là đáp án của the proof-of-work puzzle. Sau đó họ update lại sổ cái chia sẽ ( shared ledger ) trên blockchain với những thanh toán giao dịch mới. Khi đó block mới sẽ được tạo ra và thêm vào hệ thông blockchain. Người nào giải được bài toán sẽ được Tặng Ngay bitcoin để trả công xác nhận thanh toán giao dịch. Proof-of-work được xem như cuộc thi xác nhận thanh toán giao dịch .

Source: https://trade.edu.vn
Category: Blockchain

Vote sao

Trả lời

Email của bạn sẽ không được hiển thị công khai.