tek4

Một số giao thức đồng thuận

by - September. 21, 2021
Kiến thức
<p style="text-align: justify;">Vấn đề <a href="https://tek4.vn/luat-dong-thuan-la-gi/">đồng thuận</a> (consensus) rất quan trọng trong c&aacute;c hệ thống điện to&aacute;n ph&acirc;n t&aacute;n với nhiều th&agrave;nh vi&ecirc;n tham gia. Về cơ bản, c&aacute;c giao thức đồng thuận c&oacute; khả năng thực hiện hai vấn đề tr&ecirc;n <a href="https://tek4.vn/blockchain-co-ban/">blockchain</a>: thứ nhất đảm bảo rằng khối tiếp theo trong blockchain l&agrave; phi&ecirc;n bản đ&uacute;ng duy nhất nhằm tr&aacute;nh c&aacute;c vấn đề ph&acirc;n nh&aacute;nh, v&agrave; thứ hai l&agrave; giữ cho mạng lưới blockchain ổn định, c&oacute; khả năng kh&aacute;ng c&aacute;c lỗi do v&ocirc; t&iacute;nh hoặc cố &yacute; được tạo ra bởi những kẻ tấn c&ocirc;ng c&oacute; nguồn lực mạnh mẽ nhằm ph&aacute; hủy mạng lưới.</p> <p>[caption id="attachment_5226" align="aligncenter" width="449"]<img class=" wp-image-5226" src="https://tek4.vn/wp-content/uploads/2019/10/Một-số-giao-thức-đồng-thuận.png" alt="Một số giao thức đồng thuận" width="449" height="436" /> Một số giao thức đồng thuận[/caption]</p> <p style="text-align: justify;">T&iacute;nh an to&agrave;n v&agrave; hiệu quả của c&aacute;c hệ thống blockchain phụ thuộc rất lớn v&agrave;o c&aacute;c giao thức đồng thuận. C&oacute; nhiều loại giao đồng thuận hiện đang tồn tại, mỗi loại c&oacute; c&aacute;c cơ chế hoạt động cơ bản kh&aacute;c nhau v&agrave; c&oacute; những ưu v&agrave; nhược điểm ri&ecirc;ng. Ở b&agrave;i trước, ch&uacute;ng ta đ&atilde; t&igrave;m hiểu về hai giao thức đồng thuận được sử dụng phổ biến nhất hiện nay l&agrave; <a href="https://tek4.vn/proof-of-work-va-proof-of-stake/">Proof of Work v&agrave; Proof of Stake</a>. Trong b&agrave;i viết n&agrave;y, ch&uacute;ng ta sẽ tiếp tục t&igrave;m hiểu một số giao thức đồng thuận kh&aacute;c bao gồm: <span id="3_Delegated_Proof_Of_Stake" class="ez-toc-section">Delegated Proof Of Stake (Bằng chứng cổ phần ủy quyền), Proof of Capacity (Bằng chứng sức chứa), Practical Byzantine Fault Tolerance (PBFT),...<br /></span></p> <h2>Một số y&ecirc;u cầu đối với c&aacute;c giao thức đồng thuận</h2> <p style="text-align: justify;">Vấn đề đồng thuận đ&ograve;i hỏi phải c&oacute; sự thỏa thuận giữa c&aacute;c th&agrave;nh vi&ecirc;n trong mạng lưới nhằm đạt được một gi&aacute; trị dữ liệu chung cụ thể. C&aacute;c th&agrave;nh vi&ecirc;n trong mạng lưới rất hỗn tạp, v&agrave; c&oacute; thể kh&ocirc;ng tham gia trao đổi hoặc bị mất kết nối, thậm ch&iacute; nhiều th&agrave;nh vi&ecirc;n trong mạng lưới l&agrave; kh&ocirc;ng tin cậy v&agrave; c&oacute; thể thực hiện c&aacute;c h&agrave;nh vi độc hại l&agrave;m ảnh hưởng đến sự đồng thuận. Do đ&oacute;, c&aacute;c giao thức đồng thuận phải c&oacute; khả năng chịu lỗi hoặc c&oacute; khả năng phục hồi nếu xảy ra lỗi trong qu&aacute; tr&igrave;nh đồng thuận. Khả năng n&agrave;y c&ograve;n được gọi l&agrave; <a href="https://en.wikipedia.org/wiki/Byzantine_fault">khả năng chịu lỗi Byzantine</a>.</p> <p style="text-align: justify;">C&aacute;c giao thức giải quyết c&aacute;c vấn đề đồng thuận được thiết kế để đối ph&oacute; với một số lượng hạn chế c&aacute;c lỗi xảy ra. C&aacute;c giao thức n&agrave;y phải đ&aacute;p ứng một số y&ecirc;u cầu để c&oacute; thể sử dụng được trong thực tế:</p> <ul> <li style="text-align: justify;"><strong>T&iacute;nh kết th&uacute;c.</strong> Đảm bảo cuối c&ugrave;ng c&aacute;c th&agrave;nh vi&ecirc;n phải đưa ra thống nhất về một quyết định n&agrave;o đ&oacute;. Nghĩa l&agrave; qu&aacute; tr&igrave;nh đồng thuận kh&ocirc;ng thể k&eacute;o d&agrave;i v&ocirc; hạn hoặc &iacute;t nhất l&agrave; vượt qu&aacute; một số thời gian cho ph&eacute;p.</li> <li style="text-align: justify;"><strong>T&iacute;nh to&agrave;n vẹn.</strong> C&aacute;c quyết định của một th&agrave;nh vi&ecirc;n sẽ kh&ocirc;ng bị thay đổi</li> <li style="text-align: justify;"><strong>T&iacute;nh thống nhất.</strong> C&aacute;c th&agrave;nh vi&ecirc;n cuối c&ugrave;ng phải đồng &yacute; về c&ugrave;ng một gi&aacute; trị.</li> </ul> <p style="text-align: justify;">Khi đ&aacute;nh gi&aacute; hiệu quả của c&aacute;c giao thức đồng thuận, c&oacute; ba yếu tố cần được quan t&acirc;m đ&oacute; l&agrave; thời gian để đạt đến sự đồng thuận, độ phức tạp của th&ocirc;ng điệp v&agrave; tỷ lệ lỗi Byzantine c&oacute; thể xử l&yacute; được. Thời gian chạy được đo bằng độ phức tạp của giao thức k&yacute; hiệu l&agrave; Big O, được t&iacute;nh bằng số v&ograve;ng trao đổi th&ocirc;ng điệp dưới dạng h&agrave;m của một số tham số đầu v&agrave;o (thường l&agrave; số lượng th&agrave;nh vi&ecirc;n trong mạng lưới hoặc k&iacute;ch thước của miền đầu v&agrave;o). Độ phức tạp của th&ocirc;ng điệp đề cập đến lượng lưu lượng tin nhắn được tạo bởi giao thức. Tỷ lệ chịu lỗi Byzantine được t&iacute;nh bằng tỷ lệ số th&agrave;nh vi&ecirc;n kh&ocirc;ng đồng thuận tr&ecirc;n tổng số th&agrave;nh vi&ecirc;n của mạng. Một số yếu tố kh&aacute;c c&oacute; thể được xem x&eacute;t bao gồm dung lượng bộ nhớ sử dụng v&agrave; k&iacute;ch thước của th&ocirc;ng điệp.</p> <h2 style="text-align: justify;">Ph&acirc;n loại giao thức đồng thuận</h2> <p style="text-align: justify;">C&aacute;c giao thức đồng thuận kh&aacute;c nhau ở c&aacute;ch thức đạt đến sự đồng thuận. Dựa tr&ecirc;n c&aacute;c c&aacute;ch thức n&agrave;y, ch&uacute;ng ta c&oacute; thể ph&acirc;n loại c&aacute;c giao thức đồng thuận th&agrave;nh hai dạng:</p> <ul> <li style="text-align: justify;">Dạng đồng thuận dựa tr&ecirc;n bằng chứng, hoặc lựa chọn ngẫu nhi&ecirc;n th&agrave;nh vi&ecirc;n đề xuất, c&ograve;n gọi l&agrave; dạng đồng thuận Nakamoto. Trong một mạng lưới blockchain, nếu bất cứ ai cũng được ph&eacute;p đề xuất một khối mới v&agrave;o bất cứ thời điểm n&agrave;o, th&igrave; sẽ rất kh&oacute; để mạng lưới đi đến một sự đồng thuận chung v&igrave; mọi th&agrave;nh vi&ecirc;n đều tương t&aacute;c với nhau kh&ocirc;ng ngừng v&agrave; chẳng biết phải đồng thuận với phương &aacute;n n&agrave;o. Do đ&oacute;, phải c&oacute; một số c&aacute;ch để lựa chọn người được ph&eacute;p đề xuất khối để mọi người kh&aacute;c c&oacute; thể lắng nghe v&agrave; đồng thuận tại một thời điểm. Trong dạng đồng thuận n&agrave;y, một th&agrave;nh vi&ecirc;n l&atilde;nh đạo được bầu chọn ngẫu nhi&ecirc;n (sử dụng một thuật to&aacute;n bầu chọn), v&agrave; người n&agrave;y sẽ c&oacute; quyền đề xuất một gi&aacute; trị cuối c&ugrave;ng. C&aacute;c th&agrave;nh vi&ecirc;n c&ograve;n lại sẽ x&aacute;c minh gi&aacute; trị cuối c&ugrave;ng n&agrave;y xem c&oacute; ph&ugrave; hợp với mục ti&ecirc;u hoạt động của mạng lưới hay kh&ocirc;ng để chấp nhận v&agrave; sử dụng n&oacute;.C&aacute;ch đơn giản nhất để l&agrave;m điều n&agrave;y l&agrave; sử dụng một giao thức lựa chọn ngẫu nhi&ecirc;n một th&agrave;nh vi&ecirc;n được tạo khối mới. Tuy nhi&ecirc;n, tr&ecirc;n internet, người ta kh&ocirc;ng thể kiểm so&aacute;t t&iacute;nh danh v&agrave; sự hợp lệ của c&aacute;c tinh danh n&agrave;y, v&igrave; vậy,một người c&oacute; thể giả vờ l&agrave; một trăm người bằng c&aacute;ch đăng k&yacute; v&agrave; chạy một trăm phi&ecirc;n bản phần mềm đồng thuận với h&agrave;ng trăm định danh giả kh&aacute;c nhau. Do đ&oacute;, ch&uacute;ng ta cần tạo ra một số h&igrave;nh thức chứng minh khan hiếm, để ngăn chặn sự giả mạo của tin tặc. Đ&acirc;y ch&iacute;nh x&aacute;c l&agrave; những g&igrave; m&agrave; ch&uacute;ng ta đ&atilde; t&igrave;m hiểu về hai giao thức đồng thuận <a href="https://tek4.vn/proof-of-work-va-proof-of-stake/">Proof of Work v&agrave; Proof of Stake</a> ở b&agrave;i trước. C&aacute;c cơ chế đồng thuận n&agrave;y sử dụng trong trường hợp mạng lưới ho&agrave;n to&agrave;n phi tập trung hoặc kh&ocirc;ng cấp ph&eacute;p.</li> <li style="text-align: justify;">Dạng đồng thuận dựa tr&ecirc;n khả năng kh&aacute;ng lỗi Byzantine (BFT) truyền thống. Đ&acirc;y l&agrave; một c&aacute;ch tiếp cận truyền thống hơn dựa tr&ecirc;n c&aacute;c v&ograve;ng bỏ phiếu để đồng thuận cho một gi&aacute; trị cuối c&ugrave;ng. Loại đồng thuận n&agrave;y c&ograve;n được gọi l&agrave; loại cơ chế đồng thuận b&aacute;n tập trung hoặc trong m&ocirc;i trường tin cậy. Trong dạng n&agrave;y, kh&ocirc;ng c&oacute; c&aacute;c hoạt động chứng minh c&ocirc;ng việc hay cổ phần của c&aacute;c th&agrave;nh vi&ecirc;n, m&agrave; thay v&agrave;o đ&oacute; c&aacute;c th&agrave;nh vi&ecirc;n sẽ gửi c&aacute;c th&ocirc;ng điệp chứa gi&aacute; trị đề xuất c&oacute; chữ k&yacute; của m&igrave;nh đến c&aacute;c th&agrave;nh vi&ecirc;n kh&aacute;c. Cuối c&ugrave;ng, khi nhận được một số lượng th&ocirc;ng điệp với gi&aacute; trị nhất định, c&aacute;c th&agrave;nh vi&ecirc;n sẽ đạt được thỏa thuận chung.</li> </ul> <p style="text-align: justify;">C&aacute;c cơ chế đồng thuận dựa tr&ecirc;n BFT hoạt động tốt khi c&oacute; số lượng th&agrave;nh vi&ecirc;n giới hạn, tuy nhi&ecirc;n nếu số lượng th&agrave;nh vi&ecirc;n trong mạng lưới lớn th&igrave; n&oacute; sẽ kh&ocirc;ng hiệu quả do số lượng th&ocirc;ng điệp phải gửi đi qu&aacute; nhiều. Ngược lại, c&aacute;c cơ chế đồng thuận dựa tr&ecirc;n bầu cử (như PoW, PoS) lại xử l&yacute; được tr&ecirc;n c&aacute;c mạng lưới c&oacute; quy m&ocirc; lớn nhưng tốc độ đạt được đồng thuận lại rất chậm (thường mất đến v&agrave;i ph&uacute;t).</p> <p style="text-align: justify;">Một số giao thức đồng thuận kh&aacute;c đang cố gắng t&igrave;m kiếm sự c&acirc;n bằng ph&ugrave; hợp giữa khả năng mở rộng v&agrave; hiệu suất của hai dạng đồng thuận n&agrave;y chẳng hạn như: PBFT, Hybrid BFT, BlockDAG, Tezos, Stellar v&agrave; GHOST...</p> <h2>Một số giao thức đồng thuận</h2> <p style="text-align: justify;">Ở b&agrave;i trước ch&uacute;ng ta đ&atilde; t&igrave;m hiểu hai giao thức đồng thuận dạng bầu cử ngẫu nhi&ecirc;n, trong phần n&agrave;y, ch&uacute;ng ta tiếp tục t&igrave;m hiểu một số dạng giao thức đồng thuận kh&aacute;c.</p> <h3>Delegated Proof Of Stake (DPOS)</h3> <p style="text-align: justify;">Delegated Proof Of Stake (DPOS) l&agrave; một cơ chế đồng thuận nhanh được sử dụng trong EOS. DPOS thường được v&iacute; như l&agrave; một nền d&acirc;n chủ kỹ thuật số, do hệ thống bỏ phiếu c&oacute; trọng số được sử dụng trong giao thức n&agrave;y hoạt động tương tự như qu&aacute; tr&igrave;nh bầu cử diễn ra trong c&aacute;c cuộc bầu cử hiện đại hiện nay.</p> <p style="text-align: justify;">Trong một hệ thống Bằng chứng cổ phần ủy quyền (DPOS), người d&ugrave;ng c&oacute; thể sử dụng cổ phần của họ để bỏ phiếu cho một số lượng đại biểu nhất định. Trọng số phiếu bầu của họ phụ thuộc v&agrave;o số cổ phần đ&oacute;ng g&oacute;p, chẳng hạn: nếu A đặt 10 đồng xu cho một đại biểu v&agrave; B đặt 1 xu cho một đại biểu, phiếu bầu của A sẽ c&oacute; gi&aacute; trị trọng số nặng hơn 10 lần so với phiếu bầu của B.</p> <p style="text-align: justify;">C&aacute;c đại biểu được bầu ra l&agrave; một người hoặc tổ chức muốn sản xuất c&aacute;c khối tr&ecirc;n mạng lưới. C&aacute;c đại biểu nhận được số phiếu bầu cao nhất sẽ tạo ra c&aacute;c khối v&agrave; được thưởng khi tạo ra c&aacute;c khối n&agrave;y. Giống như Proof Of Stake, c&aacute;c đại biểu được trả tiền từ ph&iacute; giao dịch hoặc một lượng tiền cố định được quy định trong kiến tr&uacute;c hoạt động của blockchain nhằm th&uacute;c đẩy v&agrave; khuyến kh&iacute;ch mạng lưới hoạt động. Số lượng đại biểu c&oacute; khả năng được sản xuất khối phụ thuộc v&agrave;o thiết kế của blockchain. C&aacute;c đại biểu h&agrave;ng đầu được sản xuất khối cũng c&oacute; thể li&ecirc;n tục thay đổi.</p> <p style="text-align: justify;">C&aacute;c đại biểu c&oacute; thể vận động tranh cử cho m&igrave;nh bằng c&aacute;ch, cắt giảm chi ph&iacute; x&aacute;c nhận khối, thực hiện c&aacute;c nhiệm vụ tiếp thị,... V&igrave; c&aacute;c đại biểu muốn nhận được c&agrave;ng nhiều phiếu c&agrave;ng tốt, do đ&oacute; họ li&ecirc;n tục được khuyến kh&iacute;ch để tạo ra những thứ c&oacute; gi&aacute; trị cho cộng đồng, v&igrave; chỉ khi đ&oacute; th&igrave; họ mới c&oacute; khả năng nhận được th&ecirc;m nhiều phiếu bầu mới.</p> <p style="text-align: justify;">Giao thức Delegated Proof Of Stake hiệu quả hơn trong việc xử l&yacute; c&aacute;c giao dịch so với c&aacute;c truyền thống như Proof of Work hay Proof of Stake. N&oacute; c&oacute; thể mở rộng để xử l&yacute; tới h&agrave;ng triệu giao dịch mỗi gi&acirc;y. Nếu bạn để &yacute; khối lượng giao dịch của c&aacute;c blockchain thường xuy&ecirc;n, bạn sẽ thấy c&aacute;c blockchain hoạt động mạnh nhất, hầu hết đều sử dụng giao thức Delegated Proof Of Stake hoặc một biến thể của n&oacute;.</p> <p>[caption id="attachment_5224" align="aligncenter" width="704"]<img class=" wp-image-5224" src="https://tek4.vn/wp-content/uploads/2019/10/Delegated-Proof-Of-Stake.png" alt="Delegated Proof Of Stake" width="704" height="407" /> Nguồn: blocktivity.info[/caption]</p> <p style="text-align: justify;">Trong Delegated Proof Of Stake c&oacute; hai loại th&agrave;nh vi&ecirc;n tham gia v&agrave;o qu&aacute; tr&igrave;nh x&aacute;c minh giao dịch v&agrave; đồng thuận:</p> <ul> <li style="text-align: justify;"><strong>Người tạo khối</strong> l&agrave; những người chịu tr&aacute;ch nhiệm tạo v&agrave; k&yacute; c&aacute;c khối mới. Số lượng người tạo khối bị giới hạn t&ugrave;y theo từng loại blockchain, v&agrave; được bầu bởi c&aacute;c cử tri nắm giữ cổ phần trong mạng.</li> <li style="text-align: justify;"><strong>Người x&aacute;c nhận</strong> l&agrave; c&aacute;c n&uacute;t đầy đủ c&oacute; nhiệm vụ x&aacute;c minh lại t&iacute;nh hợp lệ của c&aacute;c khối được tạo ra bởi những người tạo khối, đảm bảo t&iacute;nh đ&uacute;ng đắn của giao dịch trong khối cũng như của giao thức đồng thuận. Bất kỳ người d&ugrave;ng n&agrave;o cũng c&oacute; thể trở th&agrave;nh người x&aacute;c nhận. Để trở th&agrave;nh người x&aacute;c nhận, c&aacute;c th&agrave;nh vi&ecirc;n chỉ cần tải về đầy đủ blockchain v&agrave; thực hiện x&aacute;c minh giao dịch. Người x&aacute;c nhận trong trường hợp n&agrave;y kh&aacute;c với trong giao thức Proof of Stake, trong PoS, người x&aacute;c nhận c&ograve;n c&oacute; vai tr&ograve; tạo ra c&aacute;c khối.</li> </ul> <p style="text-align: justify;">Số lượng người tạo khối trong DPoS sẽ t&ugrave;y thuộc v&agrave;o quy tắc đồng thuận của từng loại blockchain. Chẳng hạn với:</p> <ul> <li style="text-align: justify;">EOS: l&agrave; 21</li> <li style="text-align: justify;">BitShares: 101</li> <li style="text-align: justify;">Steemit: 21</li> <li style="text-align: justify;">Lisk: 101</li> <li style="text-align: justify;">Ark: 51</li> </ul> <p style="text-align: justify;">Với N người tạo khối, quy tr&igrave;nh hoạt động của DPoS diễn ra như sau:</p> <ul> <li style="text-align: justify;">Bước 1. Bầu chọn N người tạo khối từ nh&oacute;m ứng vi&ecirc;n. C&aacute;c th&agrave;nh vi&ecirc;n trong mạng sẽ sử dụng cổ phần của m&igrave;nh để bầu chọn ra đủ N th&agrave;nh vi&ecirc;n c&oacute; nhiệm vụ tạo khối.</li> <li style="text-align: justify;">Bước 2. Từ N người tạo khối được chọn, một thuật to&aacute;n sẽ chọn ra người c&oacute; quyền được tạo khối trong một thời điểm nhất định. C&oacute; nhiều c&aacute;ch chọn lựa kh&aacute;c nhau, chẳng hạn như ngẫu nhi&ecirc;n hoặc theo thứ tự round - robin. Điều n&agrave;y t&ugrave;y thuộc v&agrave;o thiết kế của từng loại blockchain.</li> </ul> <p style="text-align: justify;">Một khối được x&aacute;c minh ho&agrave;n chỉnh khi n&oacute; được x&aacute;c nhận bởi 2/3 tổng số người tạo khối + 1.</p> <p style="text-align: justify;">Phần thưởng khối v&agrave; cơ chế thưởng cho mỗi lần thực hiện DPoS phụ thuộc v&agrave;o từng m&ocirc; h&igrave;nh của blockchain.</p> <p style="text-align: justify;">Những người x&aacute;c nhận loại bỏ những người tạo khối độc hại bằng c&aacute;ch kiểm duyệt lại t&iacute;nh hợp lệ của c&aacute;c giao dịch hoặc c&aacute;c sự kiện lặp chi v&agrave; kh&ocirc;ng bỏ phiếu cho những người tạo khối gian lận trong những v&ograve;ng tiếp theo.</p> <p style="text-align: justify;">Do số lượng những người c&oacute; khả năng tạo khối rất hạn chế, do đ&oacute; DPoS c&oacute; thể xử l&yacute; một lượng lớn c&aacute;c giao dịch lớn thậm ch&iacute; lớn hơn nhiều so với nhu cầu hiện tại. Một giao dịch thường được x&aacute;c nhận trong v&ograve;ng 1,5 gi&acirc;y kể từ thời điểm c&ocirc;ng bố với độ chắc chắn 99,9%. Để c&oacute; sự chắc chắn tuyệt đối về t&iacute;nh hợp lệ của một giao dịch, một n&uacute;t chỉ cần đợi 2/3 số người tạo khối đi đến thống nhất.</p> <ul> <li><strong>DPoS được sử dụng trong:</strong> Steemit, EOS, BitShares</li> <li><strong>Ưu điểm:</strong> Chi ph&iacute; giao dịch thấp; khả năng mở rộng cao; tiết kiệm năng lượng</li> <li><strong>Nhược điểm:</strong> T&iacute;nh chất tập trung cao</li> </ul> <h3>Proof of Burn (PoB)</h3> <p style="text-align: justify;">Với bằng chứng ti&ecirc;u thụ, thay v&igrave; dồn tiền v&agrave;o thiết bị m&aacute;y t&iacute;nh đắt tiền, người tham gia 'đốt' tiền bằng c&aacute;ch gửi ch&uacute;ng đến một địa chỉ m&agrave; kh&ocirc;ng thể thu hồi lại được. Bằng c&aacute;ch n&agrave;y đồng tiền của họ kh&ocirc;ng bao giờ thu lại được, thay v&agrave;o đ&oacute; họ sẽ kiếm được một đặc quyền để khai th&aacute;c mỏ tr&ecirc;n hệ thống dựa tr&ecirc;n một qu&aacute; tr&igrave;nh lựa chọn ngẫu nhi&ecirc;n.</p> <p style="text-align: justify;">Việc người d&ugrave;ng ti&ecirc;u hủy một số tiền nhằm thể hiện cam kết l&acirc;u d&agrave;i với hệ thống blockchain. Bởi khi đốt số tiền nghĩa l&agrave; do họ đang mất một khoản lỗ ngắn hạn để đổi lấy lợi &iacute;ch d&agrave;i hạn. Việc đốt tiền cũng được xem l&agrave; &iacute;t sử dụng t&agrave;i nguy&ecirc;n hơn bởi v&igrave; t&agrave;i nguy&ecirc;n sử dụng trong qu&aacute; tr&igrave;nh n&agrave;y ch&iacute;nh l&agrave; sự sẵn s&agrave;ng tr&igrave; ho&atilde;n lợi nhuận của c&aacute;c thợ mỏ để hi vọng v&agrave;o c&aacute;c lợi &iacute;ch l&acirc;u d&agrave;i hơn.</p> <p style="text-align: justify;">Trong d&agrave;i hạn, người sử dụng Proof of Burn tiếp tục nhận được c&aacute;c phần thưởng, tăng tỷ lệ sở hữu của c&aacute;c đồng tiền thay thế hoặc kiếm được c&aacute;c đặc quyền lớn hơn để khai th&aacute;c tr&ecirc;n mạng. Bằng c&aacute;ch n&agrave;y, nếu người d&ugrave;ng đốt được nhiều tiền hơn, họ sẽ c&oacute; cơ hội khai th&aacute;c th&agrave;nh c&ocirc;ng khối tiếp theo v&agrave; tăng th&ecirc;m phần thưởng chung của họ.</p> <p><img class=" wp-image-5236 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/10/Proof-of-Burn.png" alt="Proof of Burn" width="646" height="362" /></p> <p style="text-align: justify;">T&ugrave;y thuộc v&agrave;o bằng chứng ti&ecirc;u thụ được thực hiện như thế n&agrave;o, thợ mỏ c&oacute; thể ti&ecirc;u thụ tiền &ldquo;tự nhi&ecirc;n&rdquo; hoặc tiền tệ của một chuỗi kh&aacute;c, v&iacute; dụ như Bitcoin. Những th&agrave;nh vi&ecirc;n c&agrave;ng ti&ecirc;u thụ nhiều đồng tiền, th&igrave; c&agrave;ng c&oacute; cơ hội được lựa chọn để khai th&aacute;c mỏ tiếp theo.</p> <p style="text-align: justify;">Theo thời gian, cổ phần của người tham gia trong hệ thống sẽ ph&acirc;n r&atilde;, do đ&oacute;, cuối c&ugrave;ng họ sẽ muốn ti&ecirc;u nhiều tiền hơn để tăng tỷ lệ cược của họ để được lựa chọn trong việc chọn lựa người x&aacute;c nhận giao dịch.</p> <p style="text-align: justify;">Mặc d&ugrave; bằng chứng ti&ecirc;u thụ l&agrave; một sự thay thế th&uacute; vị cho bằng chứng c&ocirc;ng việc, tuy nhi&ecirc;n vẫn c&ograve;n hạn chế l&agrave; l&atilde;ng ph&iacute; nguồn lực. Một hạn chế kh&aacute;c l&agrave; quyền khai th&aacute;c mỏ sẽ gi&agrave;nh cho những người sẵn s&agrave;ng ti&ecirc;u thụ nhiều tiền hơn.</p> <p style="text-align: justify;">Slimcoin l&agrave; đồng tiền duy nhất sử dụng bằng chứng ti&ecirc;u thụ, một cryptocurrency dựa tr&ecirc;n peercoin. N&oacute; sử dụng sự kết hợp của bằng chứng c&ocirc;ng việc, bằng chứng cổ phần v&agrave; bằng chứng ti&ecirc;u thụ.</p> <h3>Proof-of-Authority (PoA)</h3> <p style="text-align: justify;">Proof-of-Authority l&agrave; một thuật to&aacute;n đồng thuận trong đ&oacute; c&aacute;c giao dịch được x&aacute;c thực bởi c&aacute;c t&agrave;i khoản được ph&ecirc; duyệt, giống như c&aacute;c quản trị vi&ecirc;n của hệ thống. C&aacute;c t&agrave;i khoản n&agrave;y l&agrave; cơ quan trung gian x&aacute;c nhận cho sự hoạt động của to&agrave;n mạng. PoA c&oacute; th&ocirc;ng lượng cao v&agrave; được tối ưu h&oacute;a cho c&aacute;c mạng blockchain ri&ecirc;ng. PoA kh&ocirc;ng ph&ugrave; hợp cho c&aacute;c hoạt động tr&ecirc;n một chuỗi khối c&ocirc;ng khai do t&iacute;nh chất tập trung của n&oacute;.</p> <ul> <li><strong>Được sử dụng trong:</strong> POA.Network, Ethereum Kovan testnet</li> <li><strong>Ưu điểm</strong>: Th&ocirc;ng lượng cao; khả năng mở rộng tốt</li> <li><strong>Nhược điểm</strong>: T&iacute;nh chất tập trung</li> </ul> <h3>Proof-of-Weight (PoWeight)</h3> <p style="text-align: justify;">Proof-of-Weight l&agrave; dạng tổng qu&aacute;t của họ c&aacute;c thuật to&aacute;n đồng thuận dựa tr&ecirc;n m&ocirc; h&igrave;nh đồng thuận Algorand. Tương tự như &yacute; tưởng chung trong PoS, số lượng cổ phần của th&agrave;nh vi&ecirc;n n&agrave;o đ&oacute; sở hữu trong mạng sẽ đại diện cho x&aacute;c suất của th&agrave;nh vi&ecirc;n đ&oacute; cho khả năng tạo khối tiếp theo. Proof of Weight mở rộng n&oacute; bằng c&aacute;ch sử dụng một số gi&aacute; trị trọng số tương đối để điều chỉnh x&aacute;c suất tạo khối. Chẳng hạn: Proof-of-Spacetime của Filecoin dựa tr&ecirc;n số lượng dữ liệu IPFS m&agrave; người d&ugrave;ng lưu trữ. Hoặc trong c&aacute;c hệ thống kh&aacute;c c&oacute; thể bao gồm c&aacute;c trọng số cho Proof-of-Reputation.</p> <ul> <li><strong>Sử dụng trong</strong>: Algorand, Filecoin, Chia</li> <li><strong>Ưu điểm</strong>: T&iacute;nh mềm dẻo cao, c&oacute; thể t&ugrave;y chỉnh; khả năng mở rộng cao</li> <li><strong>Nhược điểm:</strong> Phức tạp đặc biệt trong c&aacute;c cơ chế trao thưởng</li> </ul> <h3>Bằng chứng hoạt động (Proof of Activity)</h3> <p style="text-align: justify;">Để tr&aacute;nh t&igrave;nh trạng lạm ph&aacute;t (xảy ra khi c&oacute; qu&aacute; nhiều tiền tệ được đưa v&agrave;o &nbsp;hệ thống) Bitcoin sẽ chỉ sản xuất 21 triệu Bitcoins. Điều đ&oacute; c&oacute; nghĩa l&agrave; tại một số thời điểm, khoản khen thưởng Bitcoin sẽ kết th&uacute;c v&agrave; c&aacute;c thợ mỏ sẽ chỉ nhận được ph&iacute; giao dịch.</p> <p style="text-align: justify;">Một số người cho rằng điều n&agrave;y c&oacute; thể ph&aacute;t sinh ra c&aacute;c vấn đề an ninh từ một "Bi kịch của cộng đồng", nơi m&agrave; mọi người h&agrave;nh động v&igrave; lợi &iacute;ch ri&ecirc;ng v&agrave; l&agrave;m hỏng hệ thống. V&igrave; vậy, bằng chứng hoạt động đ&atilde; được tạo ra như l&agrave; một cấu tr&uacute;c được khuyến kh&iacute;ch thay thế cho Bitcoin. Bằng chứng hoạt động l&agrave; một c&aacute;ch tiếp cận kết hợp cả Bằng chứng c&ocirc;ng việc v&agrave; Bằng chứng cổ phần.</p> <p style="text-align: justify;">Trong bằng chứng hoạt động, việc khai th&aacute;c mỏ bắt đầu bằng một c&aacute;ch truyền thống kiểu Proof-of-work, với mỗi thợ mỏ sẽ giải quyết một c&acirc;u đố mật m&atilde;. T&ugrave;y thuộc v&agrave;o việc thực hiện, c&aacute;c khối được khai th&aacute;c kh&ocirc;ng c&oacute; bất kỳ giao dịch n&agrave;o (ch&uacute;ng giống như c&aacute;c mẫu). Do đ&oacute; khối chiến thắng sẽ chỉ chứa ti&ecirc;u đề v&agrave; phần thưởng của người thợ mỏ.</p> <p style="text-align: justify;">Tại thời điểm n&agrave;y, hệ thống chuyển sang bằng chứng cổ phần. Dựa v&agrave;o th&ocirc;ng tin trong ti&ecirc;u đề, một nh&oacute;m x&aacute;c nhận ngẫu nhi&ecirc;n được chọn để k&yacute; v&agrave;o khối mới. Người kiểm chứng sẽ sở hữu nhiều tiền hơn th&igrave; người đ&oacute; c&oacute; nhiều khả năng được chọn hơn. Mẫu trở th&agrave;nh một khối đầy đủ ngay khi tất cả c&aacute;c tr&igrave;nh k&yacute; x&aacute;c nhận.</p> <p style="text-align: justify;">Nếu một số c&aacute;c tr&igrave;nh x&aacute;c nhận được chọn kh&ocirc;ng c&oacute; sẵn để ho&agrave;n th&agrave;nh khối, th&igrave; khối chiến thắng tiếp theo sẽ được chọn, một nh&oacute;m c&aacute;c tr&igrave;nh x&aacute;c nhận mới được chọn, v&agrave; cứ thế cho đến khi một khối nhận đ&uacute;ng số chữ k&yacute;. Lệ ph&iacute; được ph&acirc;n chia giữa người khai th&aacute;c mỏ v&agrave; người x&aacute;c nhận đ&atilde; k&yacute; kết tr&ecirc;n khối.</p> <p style="text-align: justify;">Hạn chế của bằng chứng hoạt động cũng giống như bằng chứng c&ocirc;ng việc (qu&aacute; nhiều năng lượng được y&ecirc;u cầu đối với c&aacute;c mỏ) v&agrave; bằng chứng cổ phần (kh&ocirc;ng c&oacute; g&igrave; ngăn cản người kiểm chứng k&yacute; kết đ&ocirc;i).</p> <p style="text-align: justify;">Decredcoin l&agrave; đồng tiền ảo duy nhất hiện nay sử dụng bằng chứng hoạt động.</p> <h3>Bằng chứng thời gian chờ (Proof of Elapsed Time)</h3> <p style="text-align: justify;">Nh&agrave; sản xuất chip Intel đ&atilde; đưa ra một giao thức đồng thuận thay thế cho Proof of Work được gọi l&agrave; bằng chứng thời gian chờ. Hệ thống n&agrave;y hoạt động tương tự như bằng chứng c&ocirc;ng việc, nhưng lại ti&ecirc;u thụ &iacute;t điện hơn.</p> <p style="text-align: justify;">Hơn nữa, thay v&igrave; c&oacute; người tham gia giải quyết một c&acirc;u đố mật m&atilde;, thuật to&aacute;n sử dụng một m&ocirc;i trường thực thi tin cậy (TEE) - chẳng hạn như SGX - để đảm bảo khối được sản xuất theo c&aacute;ch lựa chọn ngẫu nhi&ecirc;n m&agrave; kh&ocirc;ng cần bằng chứng c&ocirc;ng việc cần thiết.</p> <p style="text-align: justify;">C&aacute;ch tiếp cận của Intel dựa tr&ecirc;n thời gian chờ đảm bảo được cung cấp qua TEE. Theo Intel, thuật to&aacute;n Poof-of-elapsed-time cho đến h&agrave;ng ng&agrave;n n&uacute;t v&agrave; sẽ hoạt động hiệu quả tr&ecirc;n bất kỳ bộ xử l&yacute; Intel n&agrave;o hỗ trợ SGX.</p> <p style="text-align: justify;">Một vấn đề với giao thức n&agrave;y l&agrave; đ&ograve;i hỏi bạn phải tin v&agrave;o Intel - v&agrave; kh&ocirc;ng tin cậy v&agrave;o b&ecirc;n thứ ba những g&igrave; m&agrave; ch&uacute;ng ta đang cố gắng tr&aacute;nh với c&aacute;c Blockchain c&ocirc;ng khai.</p> <h3>Bằng chứng sức chứa (Proof of Capacity)</h3> <p style="text-align: justify;">Như ch&uacute;ng ta đ&atilde; thấy, hầu hết c&aacute;c giao thức lu&acirc;n phi&ecirc;n n&agrave;y &aacute;p dụng chương tr&igrave;nh l&agrave;m việc trả tiền để ph&aacute;t. Bằng chứng sức chứa cũng như vậy, nhưng ở đ&acirc;y người tham gia được &ldquo;trả tiền&rdquo; với khoảng trống ổ cứng. Khi người tham gia c&agrave;ng c&oacute; nhiều kh&ocirc;ng gian ổ cứng, cơ hội khai th&aacute;c mỏ tiếp theo v&agrave; kiếm được phần thưởng khổng lồ sẽ c&agrave;ng cao.</p> <p style="text-align: justify;">Trước khi khai th&aacute;c một hệ thống bằng chứng sức chứa, thuật to&aacute;n tạo ra c&aacute;c bộ dữ liệu lớn được gọi l&agrave; &ldquo;Plots&rdquo;, m&agrave; người tham gia lưu trữ tr&ecirc;n ổ cứng của m&igrave;nh. Khi người tham gia c&agrave;ng c&oacute; nhiều Plots, cơ hội t&igrave;m kiếm khối kế tiếp trong chuỗi c&agrave;ng cao.</p> <p style="text-align: justify;">Bằng c&aacute;ch đầu tư v&agrave;o kh&ocirc;ng gian ổ cứng, người tham gia sẽ c&oacute; cơ hội tốt hơn để tạo c&aacute;c khối tr&ugrave;ng lặp v&agrave; nh&aacute;nh tr&ecirc;n hệ thống. Nhưng với bằng chứng sức chứa, vẫn c&oacute; vấn đề về việc kh&ocirc;ng c&oacute; g&igrave; cản trở hay ngăn chặn c&aacute;c h&agrave;nh động xấu.</p> <p style="text-align: justify;">C&aacute;c biến thể của bằng chứng sức chứa bao gồm bằng chứng lưu trữ v&agrave; bằng chứng về kh&ocirc;ng gian. Burstcoin l&agrave; đồng tiền c&oacute; sử dụng h&igrave;nh thức bằng chứng sức chứa.</p> <p><img class=" wp-image-5235 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/10/Proof-of-Capacity.jpg" alt="Proof of Capacity" width="683" height="455" /></p> <h3 id="b179" class="kd iz fb as ar ja ke kf kg kh ki kj kk kl km kn ko">Byzantine Fault Tolerance (BFT)</h3> <p style="text-align: justify;">Trong phần n&agrave;y ch&uacute;ng ta sẽ b&agrave;n đến một số thuật to&aacute;n đồng thuận dựa tr&ecirc;n Byzantine Fault Tolerance (BFT). Byzantine Fault Tolerance l&agrave; khả năng đảm bảo cho một mạng m&aacute;y t&iacute;nh ph&acirc;n t&aacute;n hoạt động như mong muốn v&agrave; đạt được sự đồng thuận ch&iacute;nh x&aacute;c mặc cho sự tham gia v&agrave; ảnh hưởng th&agrave;nh phần độc hại (c&aacute;c n&uacute;t) hoặc do c&aacute;c lỗi trong hệ thống trong qu&aacute; tr&igrave;nh truyền dẫn th&ocirc;ng tin. C&aacute;c giao thức dựa tr&ecirc;n BFT t&igrave;m c&aacute;ch giảm thiểu ảnh hưởng m&agrave; c&aacute;c n&uacute;t độc hại c&oacute; thể g&acirc;y ra tr&ecirc;n mạng lưới nhằm đảm bảo cho c&aacute;c n&uacute;t trung thực vẫn duy tr&igrave; được hoạt động đ&uacute;ng v&agrave; đạt được sự đồng thuận. C&oacute; rất nhiều c&aacute;c giao thức đồng thuận được thiết kế dựa tr&ecirc;n nguy&ecirc;n tắc n&agrave;y.</p> <h4>Practical Byzantine Fault Tolerance (PBFT)</h4> <p style="text-align: justify;">Một trong những giải ph&aacute;p đầu ti&ecirc;n cho vấn đề n&agrave;y được đưa ra l&agrave; giao thức Practical Byzantine Fault Tolerance (PBFT). Giao thức n&agrave;y hiện vẫn đang được sử dụng trong blockchain Hyperledger Fabric. PBFT rất hiệu quả với một mạng lưới &iacute;t th&agrave;nh vi&ecirc;n tham gia v&agrave;o qu&aacute; tr&igrave;nh đồng thuận. L&iacute; tưởng nhất l&agrave; nhỏ hơn 20 th&agrave;nh vi&ecirc;n.</p> <p style="text-align: justify;">M&ocirc; h&igrave;nh pBFT chủ yếu tập trung v&agrave;o việc cung cấp một bản sao m&aacute;y trạng th&aacute;i, chịu được c&aacute;c lỗi Byzantine (c&aacute;c n&uacute;t độc hại). Thuật to&aacute;n được thiết kế để hoạt động trong c&aacute;c hệ thống kh&ocirc;ng đồng bộ v&agrave; được tối ưu h&oacute;a để c&oacute; hiệu suất cao.</p> <p style="text-align: justify;">Về cơ bản, tất cả c&aacute;c n&uacute;t trong m&ocirc; h&igrave;nh pBFT được sắp xếp theo thứ tự với một n&uacute;t l&agrave; n&uacute;t ch&iacute;nh v&agrave; c&aacute;c n&uacute;t kh&aacute;c được gọi l&agrave; c&aacute;c n&uacute;t dự ph&ograve;ng. Tất cả c&aacute;c n&uacute;t trong hệ thống giao tiếp với nhau v&agrave; mục ti&ecirc;u l&agrave; để tất cả c&aacute;c n&uacute;t trung thực đi đến thỏa thuận về trạng th&aacute;i của hệ thống th&ocirc;ng qua đa số. C&aacute;c n&uacute;t giao tiếp với nhau rất nhiều v&agrave; kh&ocirc;ng chỉ phải chứng minh rằng c&aacute;c tin nhắn đến từ một n&uacute;t ngang h&agrave;ng cụ thể, m&agrave; c&ograve;n cần x&aacute;c minh rằng tin nhắn kh&ocirc;ng bị sửa đổi trong qu&aacute; tr&igrave;nh truyền dẫn.</p> <p><img class=" wp-image-5234 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/10/Hyperledger-PBFT.jpg" alt="Hyperledger-PBFT" width="722" height="406" /></p> <p style="text-align: justify;">Để m&ocirc; h&igrave;nh pBFT hoạt động, giả định l&agrave; số lượng n&uacute;t độc hại trong mạng kh&ocirc;ng thể bằng hoặc vượt qu&aacute; 1/3 tổng số n&uacute;t trong hệ thống. Khi c&agrave;ng c&oacute; nhiều n&uacute;t trong hệ thống, th&igrave; c&agrave;ng kh&oacute; để g&acirc;y ra c&aacute;c h&agrave;nh vi độc hại.</p> <p style="text-align: justify;">Mỗi v&ograve;ng đồng thuận pBFT (được gọi l&agrave; lượt xem) gồm 4 giai đoạn.</p> <ul> <li style="text-align: justify;">Một n&uacute;t n&agrave;o đ&oacute; gửi y&ecirc;u cầu đến n&uacute;t ch&iacute;nh để y&ecirc;u cầu x&aacute;c thực.</li> <li style="text-align: justify;">N&uacute;t ch&iacute;nh đồng thời gửi y&ecirc;u cầu x&aacute;c thực đến c&aacute;c n&uacute;t dự ph&ograve;ng.</li> <li style="text-align: justify;">C&aacute;c n&uacute;t dự ph&ograve;ng tiến h&agrave;nh x&aacute;c thực y&ecirc;u cầu v&agrave; sau đ&oacute; gửi lại phản hồi.</li> <li style="text-align: justify;">Khi chờ đủ f + 1 (f đại diện cho số lượng n&uacute;t tối đa c&oacute; thể bị lỗi) phản hồi từ c&aacute;c n&uacute;t kh&aacute;c nhau c&oacute; c&ugrave;ng kết quả th&igrave; kết quả n&agrave;y sẽ l&agrave; kết quả cuối c&ugrave;ng của hoạt động. Chấp nhận hoặc kh&ocirc;ng chấp nhận y&ecirc;u cầu x&aacute;c thực.</li> </ul> <p style="text-align: justify;">N&uacute;t ch&iacute;nh c&oacute; thể được thay đổi theo v&ograve;ng hoặc thay thế bằng c&aacute;c giao thức lựa chọn. Đa số c&aacute;c n&uacute;t trung thực cũng c&oacute; thể quyết định liệu n&uacute;t ch&iacute;nh c&oacute; bị lỗi hay kh&ocirc;ng v&agrave; loại bỏ ch&uacute;ng để thay thế bằng c&aacute;c n&uacute;t ch&iacute;nh kh&aacute;c.</p> <p style="text-align: justify;">Ưu điểm: Th&ocirc;ng lượng giao dịch cao c&oacute; thể l&ecirc;n tới h&agrave;ng trăm ng&agrave;n giao dịch một gi&acirc;y.</p> <p style="text-align: justify;">Nhược điểm: Tập trung / chỉ ph&ugrave; hợp với c&aacute;c blockchain c&oacute; cấp ph&eacute;p hoặc blockchain ri&ecirc;ng.</p> <h4><em>Delegated Byzantine Fault Tolerance</em></h4> <p style="text-align: justify;">Đ&acirc;y l&agrave; cơ chế đồng thuận được sử dụng trong tiền ảo NEO.</p> <p style="text-align: justify;">Giả sử rẳng c&oacute; một đất nước A c&oacute; rất nhiều cư d&acirc;n. Mỗi cư d&acirc;n c&oacute; thể bỏ phiếu lựa chọn một đại biểu để đại diện cho họ v&agrave; phục vụ lợi &iacute;ch cho họ. C&ocirc;ng việc của c&aacute;c đại biểu n&agrave;y l&agrave; th&ocirc;ng qua c&aacute;c đạo luật c&oacute; lợi cho c&aacute;c c&ocirc;ng d&acirc;n họ đại diện, nếu họ l&agrave;m kh&ocirc;ng tốt c&ocirc;ng việc của m&igrave;nh th&igrave; c&aacute;c c&ocirc;ng d&acirc;n c&oacute; thể dễ d&agrave;ng bỏ phiếu cho những đại diện kh&aacute;c trong tương lai.</p> <p style="text-align: justify;">C&aacute;c đại diện sẽ thực thi đưa ra c&aacute;c đạo luật theo qu&aacute; tr&igrave;nh sau:</p> <ul> <li style="text-align: justify;">Một trong c&aacute;c đại diện sẽ được chọn ngẫu nhi&ecirc;n l&agrave; người ph&aacute;t ng&ocirc;n.</li> <li style="text-align: justify;">Người ph&aacute;t ng&ocirc;n sau đ&oacute; nh&igrave;n v&agrave;o c&aacute;c y&ecirc;u cầu của c&aacute;c c&ocirc;ng d&acirc;n v&agrave; tạo ra một đạo luật mới. Sau đ&oacute; họ t&iacute;nh to&aacute;n một chỉ số h&agrave;i l&ograve;ng của c&aacute;c đạo luật n&agrave;y để thấy xem liệu n&oacute; n&oacute; đủ tốt v&agrave; thỏa m&atilde;n được nhu cầu của c&aacute;c c&ocirc;ng d&acirc;n của m&igrave;nh hay kh&ocirc;ng. Khi đạo luật n&agrave;y ph&ugrave; hợp, họ sẽ gửi n&oacute; đến cho c&aacute;c đại diện.</li> <li style="text-align: justify;">C&aacute;c đại diện sau đ&oacute; tự kiểm tra c&aacute;c t&iacute;nh to&aacute;n của người ph&aacute;t ng&ocirc;n. Nếu con số của người ph&aacute;t ng&ocirc;n ph&ugrave; hợp với người đại diện th&igrave; họ sẽ chấp thuận, nếu kh&ocirc;ng họ sẽ gửi lại phản hồi kh&ocirc;ng chấp thuận</li> <li style="text-align: justify;">66% số lượng c&aacute;c đại diện cần phải đưa ra phản hồi chấp thuận để đạo luật được th&ocirc;ng qua. Nếu đa số kh&ocirc;ng t&aacute;n th&agrave;nh khi đ&oacute; một l&atilde;nh đạo mới sẽ được chọn v&agrave; qu&aacute; tr&igrave;nh bắt đầu lại.</li> </ul> <p style="text-align: justify;">&Aacute;p dụng quy tr&igrave;nh n&agrave;y trong Blockchain. C&aacute;c c&ocirc;ng d&acirc;n l&agrave; những người sở hữu c&aacute;c Token v&agrave; được gọi l&agrave; c&aacute;c n&uacute;t th&ocirc;ng thường.</p> <p style="text-align: justify;">C&aacute;c đại diện được c&aacute;c n&uacute;t giữ sổ c&aacute;i. Để l&agrave; một n&uacute;t giữ sổ c&aacute;i th&igrave; n&uacute;t tham gia cần thỏa m&atilde;n một số ti&ecirc;u ch&iacute; quy định sẵn. Khi đ&oacute;:</p> <ul> <li style="text-align: justify;">Y&ecirc;u cầu của c&aacute;c c&ocirc;ng d&acirc;n thường đơn giản l&agrave; c&aacute;c giao dịch kh&aacute;c nhau được tạo bởi những người nắm giữ Token</li> <li style="text-align: justify;">Đạo luật l&agrave; khối hiện tại cần được x&aacute;c nhận để th&ecirc;m v&agrave;o chuỗi khối</li> <li style="text-align: justify;">Nh&acirc;n tố hạnh ph&uacute;c hay độ h&agrave;i l&ograve;ng v&agrave; gi&aacute; trị hash của khối hiện tại</li> </ul> <p style="text-align: justify;">Khi đ&oacute;, c&oacute; hai trường hợp m&agrave; người tham gia c&oacute; thể thực thi c&aacute;c h&agrave;nh vi độc hại hoặc gian lận.</p> <p style="text-align: justify;"><em>Trường hợp 1. Người ph&aacute;t ng&ocirc;n gian lận</em></p> <p style="text-align: justify;">Trong trường hợp n&agrave;y, người ph&aacute;t ng&ocirc;n gửi một th&ocirc;ng điệp độc hại B tới hai đại diện v&agrave; một th&ocirc;ng điệp ch&iacute;nh x&aacute;c A tới một đại diện kh&aacute;c. Trường hợp n&agrave;y c&oacute; thể được loại bỏ bởi luật đa số. Hai đại diện sẽ thấy rằng gi&aacute; trị hash của họ kh&ocirc;ng ph&ugrave; hợp với gi&aacute; trị của người ph&aacute;t ng&ocirc;n gửi đến trong khi một đại diện kh&aacute;c, người được gửi th&ocirc;ng điệp ch&iacute;nh x&aacute;c sẽ thấy gi&aacute; trị hash tr&ugrave;ng khớp ho&agrave;n to&agrave;n. Tuy vậy, 2 trong 3 người đại diện kh&ocirc;ng chấp thuận đề xuất v&agrave; sự đồng thuận kh&ocirc;ng xảy ra. Người ph&aacute;t ng&ocirc;n do đ&oacute; sẽ bị loại bỏ.</p> <p>[caption id="attachment_5230" align="aligncenter" width="643"]<img class="wp-image-5230" src="https://tek4.vn/wp-content/uploads/2019/10/Trường-hợp-người-ph&aacute;t-ng&ocirc;n-gian-lận.png" alt="" width="643" height="447" /> Trường hợp người ph&aacute;t ng&ocirc;n gian lận, Nguồn: Blockgeeks[/caption]</p> <p style="text-align: justify;"><em>Trường hợp 2. Một trong c&aacute;c đại diện gian lận</em></p> <p style="text-align: justify;">Người ph&aacute;t ng&ocirc;n gửi th&ocirc;ng điệp ch&iacute;nh x&aacute;c đến tất cả c&aacute;c đại diện, tuy vậy một trong số c&aacute;c đại diện quyết định thực hiện một h&agrave;nh vi độc hại v&agrave; tuy&ecirc;n bố số của họ kh&ocirc;ng tr&ugrave;ng khớp với gi&aacute; trị của người ph&aacute;t ng&ocirc;n gửi. Tuy nhi&ecirc;n, do 2 trong 3 người đại diện kh&ocirc;ng gian lận, do đ&oacute; họ sẽ chấp thuận đạo luật v&agrave; tỷ lệ th&ocirc;ng qua vẫn đạt tr&ecirc;n 66% khi đ&oacute; trạng th&aacute;i đồng thuận đạt được.</p> <p>[caption id="attachment_5231" align="aligncenter" width="639"]<img class=" wp-image-5231" src="https://tek4.vn/wp-content/uploads/2019/10/Trường-hợp-một-trong-c&aacute;c-đại-diện-gian-lận.png" alt="" width="639" height="445" /> Trường hợp một trong c&aacute;c đại diện gian lận, Nguồn: Blockgeeks[/caption]</p> <h4 style="text-align: justify;">VBFT</h4> <p style="text-align: justify;">Một biến thể kh&aacute;c của BFT được gọi l&agrave; VBFT. Đ&acirc;y l&agrave; một thuật to&aacute;n đồng thuận kết hợp PoS, H&agrave;m ngẫu nhi&ecirc;n c&oacute; thể x&aacute;c minh (VRF) v&agrave; BFT. Với VBFT, c&aacute;c n&uacute;t được chọn ngẫu nhi&ecirc;n c&oacute; thể kiểm chứng được tạo bởi H&agrave;m ngẫu nhi&ecirc;n c&oacute; thể x&aacute;c minh VRF để chịu tr&aacute;ch nhiệm đề xuất, x&aacute;c minh v&agrave; bỏ phiếu cho c&aacute;c khối mới. T&oacute;m lại, VBFT đạt được khả năng mở rộng chuỗi bằng c&aacute;ch chọn n&uacute;t đồng thuận với VRF, bảo mật theo t&iacute;nh ngẫu nhi&ecirc;n kết hợp với PoS v&agrave; BFT.</p> <h4 style="text-align: justify;">Federated Byzantine Agreement (FBA)</h4> <p style="text-align: justify;">FBA l&agrave; một loại giải ph&aacute;p kh&aacute;c cho b&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine được sử dụng bởi c&aacute;c loại tiền điện tử phổ biến như Stellar v&agrave; Ripple. &Yacute; tưởng chung của giao thức n&agrave;y, l&agrave; mọi th&agrave;nh vi&ecirc;n sẽ tự chịu tr&aacute;ch nhiệm về chuỗi khối của ri&ecirc;ng họ, sắp xếp c&aacute;c th&ocirc;ng điệp v&agrave; c&ocirc;ng bố n&oacute;. Trong Ripple, c&aacute;c th&agrave;nh vi&ecirc;n c&oacute; vai tr&ograve; x&aacute;c nhận sẽ được chọn trước bởi nền tảng Ripple. Trong Stellar, bất kỳ ai cũng c&oacute; thể l&agrave; người x&aacute;c nhận v&agrave; bạn c&oacute; thể tự chọn cho m&igrave;nh những người x&aacute;c thực đ&aacute;ng để tin tưởng.</p> <p style="text-align: justify;">FBA c&oacute; thể l&agrave;m cho th&ocirc;ng lượng giao dịch lớn đến mức đ&aacute;ng kinh ngạc, chi ph&iacute; giao dịch thấp v&agrave; khả năng mở rộng mạng cực kỳ lớn. Đ&acirc;y c&oacute; thể được coi l&agrave; một trong những giao thức tốt nhất cho c&aacute;c hệ thống đồng thuận ph&acirc;n t&aacute;n.</p> <h3 style="text-align: justify;">Directed Acyclic Graphs (DAGs)</h3> <p style="text-align: justify;">DAG l&agrave; một h&igrave;nh thức đồng thuận, kh&ocirc;ng sử dụng cấu tr&uacute;c dữ liệu blockchain v&agrave; xử l&yacute; c&aacute;c giao dịch chủ yếu l&agrave; kh&ocirc;ng đồng bộ. Về mặt l&yacute; thuyết DAG c&oacute; thể xử l&yacute; v&ocirc; hạn giao dịch mỗi gi&acirc;y. N&oacute; được sử dụng trong IOTA, Hashgraph, Raiblocks / Nano. Với ưu điểm l&agrave; khả năng mở rộng mạng cao; chi ph&iacute; giao dịch thấp.</p> <h4 style="text-align: justify;">Trong IOTA</h4> <p style="text-align: justify;">Tangle l&agrave; thuật to&aacute;n đồng thuận DAG được sử dụng trong blockchain IOTA. Để gửi đi một giao dịch trong IOTA, bạn cần x&aacute;c thực hai giao dịch trước đ&oacute; m&agrave; bạn đ&atilde; nhận được. V&igrave; sự đồng thuận được thiết lập bởi c&aacute;c giao dịch, do đ&oacute; theo l&yacute; thuyết, nếu ai đ&oacute; c&oacute; thể tạo ra 1/3 số lượng giao dịch, th&igrave; họ c&oacute; thể gian lận c&aacute;c giao dịch kh&aacute;c. Tuy nhi&ecirc;n khi khối lượng giao dịch đủ lớn th&igrave; việc tạo ra 1/3 khối lượng giao dịch trở n&ecirc;n kh&ocirc;ng khả thi, ngo&agrave;i ra IOTA c&ograve;n kiểm tra lại tất cả c&aacute;c giao dịch tr&ecirc;n mạng tr&ecirc;n một n&uacute;t tập trung c&oacute; t&ecirc;n l&agrave; &ldquo;The Coordinator&rdquo;. N&uacute;t tập trung n&agrave;y hoạt động giống như b&aacute;nh xe huấn luyện cho hệ thống, v&agrave; sẽ bị x&oacute;a khi Tangle đủ lớn.</p> <h4 style="text-align: justify;">Hashgraph</h4> <p style="text-align: justify;">Hashgraph l&agrave; một giao thức đồng thuận đơn giản được ph&aacute;t triển bởi Leemon Baird. C&aacute;c n&uacute;t chia sẻ c&aacute;c giao dịch đ&atilde; biết của họ với c&aacute;c n&uacute;t kh&aacute;c một c&aacute;ch ngẫu nhi&ecirc;n, v&igrave; vậy cuối c&ugrave;ng tất cả c&aacute;c giao dịch được ph&aacute;t t&aacute;n xung quanh tất cả c&aacute;c n&uacute;t. Bằng c&aacute;ch n&agrave;y Hashgraph hoạt động rất nhanh (hỗ trợ khoảng 250.000 giao dịch mỗi gi&acirc;y) nhưng b&ugrave; lại n&oacute; lại rất dễ bị tấn c&ocirc;ng Sybil (giả mạo c&aacute;c n&uacute;t tr&ecirc;n mạng). V&igrave; vậy, Hashgraph chỉ ph&ugrave; hợp cho c&aacute;c mạng ri&ecirc;ng hoặc c&oacute; cấp ph&eacute;p, v&agrave; rất kh&oacute; triển khai trong một mạng c&ocirc;ng cộng như Ethereum hoặc Blockchain.</p> <h4 style="text-align: justify;">SPECTRE</h4> <p style="text-align: justify;">SPECTRE l&agrave; một giải ph&aacute;p nhằm mở rộng Bitcoin bằng c&aacute;ch sử dụng cơ chế tuần tự h&oacute;a c&aacute;c sự kiện Proof-of-Work để x&aacute;c nhận giao dịch th&ocirc;ng qua c&aacute;c quy tr&igrave;nh bầu cử đệ quy. SPECTRE sử dụng kết hợp PoW v&agrave; DAG để mở rộng sự đồng thuận. Trong SPECTRE, c&aacute;c khối được khai th&aacute;c trỏ đến nhiều khối cha mẹ, v&igrave; vậy mạng c&oacute; khả năng xử l&yacute; nhiều khối hơn mỗi gi&acirc;y. Một khối được khai th&aacute;c trỏ đến một số khối cha v&agrave; hỗ trợ để x&aacute;c minh t&iacute;nh hợp lệ của c&aacute;c khối cha đ&oacute;. Trong Proof of Work c&aacute;c khối thuộc chuỗi d&agrave;i nhất sẽ gi&agrave;nh chiến thắng v&agrave; được coi l&agrave; khối đ&uacute;ng, c&ograve;n trong SPECTRE c&aacute;c khối c&oacute; nhiều khối con nhất l&agrave; những khối tin cậy. SPECTRE chưa được thử nghiệm trong khả năng chống lại c&aacute;c tấn c&ocirc;ng, nhưng về mặt l&yacute; thuyết ban đầu, c&oacute; vẻ như n&oacute; l&agrave; một giải ph&aacute;p rất tiềm năng để n&acirc;ng cấp cơ chế đồng thuận cho Bitcoin.</p> <p><img class=" wp-image-5237 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/10/Một-số-giao-thức-đồng-thuận.jpg" alt="Một số giao thức đồng thuận" width="830" height="506" /></p> <h2 style="text-align: justify;">Chọn giao thức đồng thuận n&agrave;o?</h2> <p style="text-align: justify;">C&oacute; rất nhiều c&aacute;c loại giao thức đồng thuận kh&aacute;c nhau. Việc chọn giao thức đồng thuận n&agrave;o cho ứng dụng sẽ t&ugrave;y thuộc v&agrave;o y&ecirc;u cầu của ứng dụng m&agrave; bạn muốn x&acirc;y dựng. Để chọn ch&iacute;nh x&aacute;c giao thức đồng thuận mong muốn, bạn cần trả lời những c&acirc;u hỏi sau:</p> <h3 style="text-align: justify;">Sự đồng thuận c&oacute; thể bị đảo ngược hay kh&ocirc;ng?</h3> <p style="text-align: justify;">T&iacute;nh bất biến của giao dịch l&agrave; rất quan trọng đối với một số ứng dụng, trong khi một số ứng dụng kh&aacute;c lại kh&ocirc;ng qu&aacute; quan trọng. Chẳng hạn, nếu bạn x&acirc;y dựng một hệ thống thanh to&aacute;n điện tử cho c&aacute;c giao dịch lớn, th&igrave; việc giao dịch bị đảo ngược l&agrave; cực kỳ nghi&ecirc;m trọng. Chắc hẳn kh&aacute;ch h&agrave;ng của bạn sẽ kh&ocirc;ng thể h&agrave;i l&ograve;ng với điều n&agrave;y. Tuy nhi&ecirc;n, trong c&aacute;c hệ thống thanh to&aacute;n với lượng tiền rất nhỏ th&igrave; lại kh&aacute;c. L&uacute;c n&agrave;y người d&ugrave;ng chắc chắn sẽ cần giao dịch nhanh hơn l&agrave; n&oacute; c&oacute; thể bị đảo ngược hay thay đổi. Tương tự như vậy, nếu bạn x&acirc;y dựng một mạng x&atilde; hội phi tập trung, việc đảm bảo 100% rằng cập nhật trạng th&aacute;i sẽ được thực hiện ngay lập tức chắc chắn quan trọng hơn nhiều l&agrave;m cho n&oacute; bất biến.</p> <h3 style="text-align: justify;">Tốc độ của giao thức đồng thuận l&agrave; bao nhi&ecirc;u?</h3> <p style="text-align: justify;">Nếu bạn đang x&acirc;y dựng một tr&ograve; chơi trực tuyến, c&oacute; hợp l&yacute; kh&ocirc;ng khi bắt người d&ugrave;ng chờ đợi đồng thuận khoảng 15 gi&acirc;y (hoặc hơn!) trước khi được thực hiện mỗi một h&agrave;nh động n&agrave;o đ&oacute;? Chắc chắn l&agrave; kh&ocirc;ng rồi. Đến c&aacute;c hệ thống giật lag đ&atilde; l&agrave;m người d&ugrave;ng giảm trải nghiệm về tr&ograve; chơi rất nhiều rồi. Do giới hạn về thời gian xảy ra đồng thuận, do đ&oacute; c&aacute;c ứng dụng tr&ograve; chơi được x&acirc;y dựng tr&ecirc;n nền tảng Ethereum, lu&ocirc;n c&oacute; trải nghiệm người d&ugrave;ng k&eacute;m. Tuy nhi&ecirc;n, một ứng dụng mua b&aacute;n bất động sản th&igrave; c&oacute; thể ho&agrave;n to&agrave;n ổn để chạy tr&ecirc;n c&aacute;c nền tảng c&oacute; giao thức đồng thuận tốc độ thấp như Ethereum.</p> <p style="text-align: justify;">Khi muốn sử dụng c&aacute;c hệ thống cần tốc độ đồng thuận cao, ch&uacute;ng ta n&ecirc;n quan t&acirc;m đến c&aacute;c hệ thống nền tảng c&oacute; khả năng cung cấp giao thức DPoS hoặc pBFT. Chẳng hạn nền tảng Cosmos SDK c&oacute; thể sử dụng để x&acirc;y dựng c&aacute;c ứng dụng cho ph&eacute;p nh&agrave; ph&aacute;t triển tận dụng tốc độ đồng thuận cao của Tendermint Core. Nền tảng n&agrave;y c&oacute; khả năng đảm bảo l&ecirc;n tới 10.000 giao dịch mỗi gi&acirc;y. Ngo&agrave;i ra để tăng tốc độ cho ứng dụng, bạn c&oacute; thể đặt số lượng validator ph&ugrave; hợp, giảm chi ph&iacute; li&ecirc;n lạc bắt buộc v&agrave; tăng tốc ứng dụng.</p> <h3 style="text-align: justify;">Bạn cần c&aacute;c giao thức đồng thuận phi tập trung ở mức n&agrave;o?</h3> <p style="text-align: justify;">Trong một số giao thức đồng thuận c&oacute; sử dụng một nh&oacute;m đại diện, th&igrave; về mặt l&yacute; thuyết nh&oacute;m những người đại diện n&agrave;y ho&agrave;n to&agrave;n c&oacute; thể th&ocirc;ng đồng với nhau để kiếm lợi v&agrave; đảo ngược c&aacute;c giao dịch. Do đ&oacute;, trong nhiều ứng dụng bạn c&oacute; thể kh&ocirc;ng mong muốn xảy ra điều n&agrave;y, bạn muốn t&aacute;ch niềm tin khởi b&ecirc;n thứ ba (thậm ch&iacute; l&agrave; b&ecirc;n thứ 4, thứ 5,...). Thực ra th&igrave; bất cứ blockchain n&agrave;o đều c&oacute; sự tập trung h&oacute;a. Ngay cả Bitcoin cũng vậy, đa phần hashrate của mạng Proof of Work đều tập trung về một số mỏ đ&agrave;o lớn, c&ograve;n với Ethereum, d&ugrave; về mặt l&yacute; thuyết l&agrave; phi tập trung ho&agrave;n to&agrave;n th&igrave; tr&ecirc;n thực tế cũng chỉ tồn tại khoảng 11 validator (nh&oacute;m khai th&aacute;c).</p> <p style="text-align: justify;">Nếu bạn kh&ocirc;ng quan t&acirc;m lắm đến sự tập trung h&oacute;a, bạn c&oacute; thể sử dụng c&aacute;c nền tảng như EOS với giao thức đồng thuận DPOS. Nền tảng n&agrave;y kh&ocirc;ng chỉ cho ph&eacute;p c&aacute;c giao dịch xảy ra rất nhanh m&agrave; c&ograve;n với chi ph&iacute; gần như bằng 0. Tuy vậy, n&oacute; lại c&oacute; t&iacute;nh tập trung h&oacute;a cao bởi n&oacute; phụ thuộc v&agrave;o một nh&oacute;m c&aacute;c nh&agrave; khai th&aacute;c. Bạn cũng c&oacute; thể sử dụng v&agrave; xem x&eacute;t một số nền tảng cho ph&eacute;p t&ugrave;y chỉnh mức độ ph&acirc;n cấp theo nhu cầu ứng dụng như Cosmos SDK. Điều đ&oacute; sẽ phụ thuộc v&agrave;o mức độ ứng dụng của bạn y&ecirc;u cầu.</p> <h3 style="text-align: justify;">Hệ thống c&oacute; cần đ&aacute;p ứng hoạt động li&ecirc;n tục hay kh&ocirc;ng?</h3> <p style="text-align: justify;">Nếu bạn đang x&acirc;y dựng một ứng dụng như dịch vụ chia sẻ xe phi tập trung tương tự như Grab, c&oacute; thể ưu ti&ecirc;n số 1 của bạn cần đảm bảo l&agrave;&nbsp; dịch vụ n&agrave;y c&oacute; thể hoạt động li&ecirc;n tục 24/7, ngay cả khi c&oacute; lỗi xảy ra trong hệ thống (v&iacute; dụ: giao dịch bị đảo ngược). Do đ&oacute;, điều n&agrave;y l&agrave; một điều rất cần xem x&eacute;t đối với c&aacute;c hệ thống đồng thuận. Bởi một số giao thức đồng thuận (chẳng hạn như trong Tendermint Core) sẽ ngừng hoạt động tạm thời nếu tồn tại c&aacute;c bất đồng trong mạng thay v&igrave; thực hiện c&aacute;c giao dịch kh&ocirc;ng ch&iacute;nh x&aacute;c. Do đ&oacute;, n&oacute; sẽ kh&ocirc;ng ph&ugrave; hợp với c&aacute;c ứng dụng kể tr&ecirc;n của ch&uacute;ng ta. Tuy nhi&ecirc;n, một số ứng dụng như trao đổi phi tập trung lại đ&ograve;i hỏi sự ch&iacute;nh x&aacute;c bằng mọi gi&aacute; tức l&agrave; hệ thống c&oacute; thể sẵn s&agrave;ng tạm dừng nếu c&oacute; vấn đề, thay v&igrave; thực hiện giao dịch m&agrave; c&oacute; khả năng bị đảo ngược.</p> <p>N&oacute;i chung, kh&ocirc;ng c&oacute; giao thức n&agrave;o l&agrave; ho&agrave;n hảo 100%, v&agrave; việc &aacute;p dụng ch&uacute;ng khi n&agrave;o phụ thuộc v&agrave;o ứng dụng m&agrave; bạn cần thiết kế, c&aacute;c y&ecirc;u cầu hoạt động của n&oacute; tr&ecirc;n thực tế.</p> <p>&nbsp;</p> <hr /> <p style="text-align: center;"><em><strong>Fanpage Facebook:</strong>&nbsp;<a href="https://www.facebook.com/tek4.vn/">TEK4.VN</a></em>&nbsp;</p> <p style="text-align: center;"><em><strong>Tham gia cộng đồng để chia sẻ, trao đổi v&agrave; thảo luận:</strong>&nbsp;<a href="https://www.facebook.com/groups/tek4.vn/">TEK4.VN - Học Lập Tr&igrave;nh Miễn Ph&iacute;</a></em></p>