tek4

Luật đồng thuận là gì?

by - September. 21, 2021
Kiến thức
<p style="text-align: justify;">Luật đồng thuận l&agrave; g&igrave;? <a href="https://tek4.vn/blockchain-co-ban/">Blockchain</a> l&agrave; một hệ thống ngang h&agrave;ng phi tập trung kh&ocirc;ng c&oacute; ch&iacute;nh quyền trung ương. Mặc d&ugrave; điều n&agrave;y tạo ra một hệ thống minh bạch v&agrave; kh&ocirc;ng thể c&oacute; sự lạm dụng quyền lực từ một ph&iacute;a, nhưng do kh&ocirc;ng c&oacute; b&ecirc;n quản l&yacute; tập trung n&ecirc;n điều n&agrave;y tạo ra một vấn đề lớn. Đ&oacute; l&agrave;: <strong>L&agrave;m thế n&agrave;o để c&oacute; thể đưa ra những quyết định để điều khiển hoạt động của to&agrave;n bộ hệ thống? </strong></p> <p style="text-align: justify;">Đối với một tổ chức tập trung, điều n&agrave;y rất dễ d&agrave;ng.</p> <p style="text-align: justify;">Tất cả c&aacute;c quyết định được đưa ra bởi nh&agrave; l&atilde;nh đạo hoặc một hội đồng của những người ra quyết định. Hội đồng n&agrave;y sẽ quyết định to&agrave;n bộ mọi vấn đề diễn ra trong hệ thống.</p> <p><img class=" wp-image-4992 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/10/luật-đồng-thuận-trong-blockchain.jpg" alt="luật đồng thuận trong blockchain" width="612" height="437" /></p> <p>Nhưng điều n&agrave;y kh&ocirc;ng tồn tại trong blockchain.</p> <p style="text-align: justify;">Blockchain bản chất l&agrave; một hệ thống phi tập trung bao gồm tập hợp của rất nhiều c&aacute;c th&agrave;nh vi&ecirc;n kh&aacute;c nhau. C&aacute;c th&agrave;nh vi&ecirc;n n&agrave;y h&agrave;nh động dựa tr&ecirc;n c&aacute;c ưu đ&atilde;i về gi&aacute; trị lợi &iacute;ch của họ, hay n&oacute;i c&aacute;ch kh&aacute;c l&agrave; tối đa h&oacute;a lợi &iacute;ch dựa tr&ecirc;n những th&ocirc;ng tin c&oacute; sẵn theo nguy&ecirc;n l&yacute; tr&ograve; chơi.</p> <p style="text-align: justify;">Tuy nhi&ecirc;n, như ch&uacute;ng ta đ&atilde; thấy trong thực tế đời sống, lợi &iacute;ch của người n&agrave;y th&igrave; kh&ocirc;ng phải bao giờ cũng l&agrave; lợi &iacute;ch của người kh&aacute;c. Do đ&oacute;, vấn đề ở đ&acirc;y đặt ra l&agrave; l&agrave;m thế n&agrave;o để thống nhất giữa c&aacute;c lợi &iacute;ch ri&ecirc;ng nhằm đưa tới lợi &iacute;ch chung cho hoạt động của to&agrave;n mạng? Vấn đề n&agrave;y được gọi l&agrave; sự đồng thuận trong blockchain v&agrave; b&agrave;i to&aacute;n quan trọng trong mọi hệ thống blockchain đ&oacute; l&agrave; x&acirc;y dựng cơ chế đồng thuận hay luật đồng thuận.</p> <p style="text-align: justify;">Vậy, l&agrave;m thế n&agrave;o để c&aacute;c cơ chế đồng thuận n&agrave;y hoạt động v&agrave; tại sao ch&uacute;ng ta lại cần ch&uacute;ng? Để hiểu được luật đồng thuận l&agrave; g&igrave;, đầu ti&ecirc;n ch&uacute;ng ta t&igrave;m hiểu một b&agrave;i to&aacute;n v&iacute; dụ nho nhỏ gọi l&agrave; b&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine sau đ&acirc;y:</p> <h2>B&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine</h2> <p style="text-align: justify;">V&agrave;i ng&agrave;n năm trước đ&acirc;y, trong qu&aacute; tr&igrave;nh x&acirc;m lấn v&agrave; mở rộng l&atilde;nh thổ của đế quốc Byzantine h&ugrave;ng mạnh, họ gặp một t&ograve;a th&agrave;nh của qu&acirc;n địch kh&aacute; mạnh. Trong th&agrave;nh c&oacute; đến 15 ng&igrave;n qu&acirc;n canh giữ với đủ c&aacute;c loại vũ kh&iacute; ph&ograve;ng thủ hiện đại, hơn nữa t&ograve;a th&agrave;nh qu&aacute; rộng khiến cho qu&acirc;n đội Byzantine phải chia nhỏ qu&acirc;n ra để bao v&acirc;y n&oacute;.&nbsp; Đội qu&acirc;n của Byzantine chia qu&acirc;n th&agrave;nh 12 đạo nhỏ, mỗi đạo gồm 2.000 qu&acirc;n v&agrave; được chỉ huy bởi một vị tướng để bao v&acirc;y v&ograve;ng quanh t&ograve;a th&agrave;nh từ mỗi hướng kh&aacute;c nhau.</p> <p><img class=" wp-image-4994 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/10/B&agrave;i-to&aacute;n-c&aacute;c-vị-tướng-Byzantine-1.jpg" alt="B&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine" width="665" height="345" /></p> <p>&nbsp;</p> <p style="text-align: justify;">15.000 v&agrave; 24.000 r&otilde; r&agrave;ng l&agrave; một cuộc chiến kh&ocirc;ng c&acirc;n sức. Tuy nhi&ecirc;n, vấn đề xảy ra ở đ&acirc;y l&agrave;, l&atilde;nh đạo của t&ograve;a th&agrave;nh n&agrave;y l&agrave; một ho&agrave;ng tử c&oacute; quen biết với rất nhiều c&aacute;c vị tướng đang cầm qu&acirc;n bao v&acirc;y ngo&agrave;i kia. V&agrave; rất c&oacute; thể rất nhiều trong số n&agrave;y c&oacute; thể do dự hoặc kh&ocirc;ng tấn c&ocirc;ng đ&uacute;ng kế hoạch. V&agrave; nếu như vậy, ho&agrave;n to&agrave;n c&oacute; nguy cơ b&ecirc;n tấn c&ocirc;ng bị &aacute;p đảo v&agrave; việc tấn c&ocirc;ng t&ograve;a th&agrave;nh sẽ thất bại. Điều n&agrave;y sẽ dẫn đến việc thua trận chiến n&agrave;y.</p> <p style="text-align: justify;">Họ cần phải thống nhất với nhau về một quyết định tấn c&ocirc;ng chung hoặc đảm bảo rằng &iacute;t nhất sẽ c&oacute; đa số qu&acirc;n đủ để tấn c&ocirc;ng v&agrave; gi&agrave;nh chiến thắng. Trong thời buổi li&ecirc;n lạc c&ograve;n hạn chế, c&aacute;c vị tướng phải phụ thuộc v&agrave;o một người đưa tin bằng ngựa để c&oacute; thể trao đổi th&ocirc;ng tin với nhau. Người n&agrave;y sẽ đi một v&ograve;ng truyền tin đến từng đạo qu&acirc;n. C&aacute;c trường hợp được đặt ra l&agrave;:</p> <ul> <li style="text-align: justify;">Người đưa tin bị bắt v&agrave; kh&ocirc;ng thể tiếp tục truyền tin.</li> <li style="text-align: justify;">Hoặc tệ hơn, khi bắt được người đưa tin, qu&acirc;n địch c&oacute; thể thay đổi c&aacute;c th&ocirc;ng điệp về thời gian tấn c&ocirc;ng v&agrave; gửi đến c&aacute;c vị tướng tiếp theo.</li> <li style="text-align: justify;">Một số tướng mềm l&ograve;ng v&agrave; cố t&igrave;nh kh&ocirc;ng tham gia tấn c&ocirc;ng. Họ sẽ ngăn những người kh&aacute;c đạt được đồng thuận hoặc tệ hơn l&agrave; l&agrave;m thay đổi nội dung th&ocirc;ng điệp dẫn tới c&aacute;c tướng kh&aacute;c bị hiểu lầm v&agrave; đồng thuận cho một phương &aacute;n tấn c&ocirc;ng kh&ocirc;ng đ&uacute;ng.</li> </ul> <p style="text-align: justify;">Trong những t&igrave;nh huống như vậy, l&agrave;m thế n&agrave;o để c&aacute;c vị tướng c&oacute; thể tin v&agrave;o th&ocirc;ng điệp m&agrave; m&igrave;nh nhận được?</p> <p style="text-align: justify;">B&agrave;i to&aacute;n tr&ecirc;n được gọi l&agrave; &ldquo;B&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine&rdquo; một b&agrave;i to&aacute;n kinh điển trong khoa học m&aacute;y t&iacute;nh trong vấn đề đảm bảo t&iacute;nh tin cậy của đường truyền.</p> <p style="text-align: justify;">Một c&aacute;ch tổng qu&aacute;t h&oacute;a b&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine c&oacute; thể được ph&aacute;t biểu sơ bộ như sau:</p> <p style="text-align: justify;">C&oacute; N tướng cầm c&aacute;c c&aacute;nh qu&acirc;n kh&aacute;c nhau, trong đ&oacute; c&oacute; M tướng phản bội, cố gắng ngăn cản c&aacute;c tướng kh&aacute;c l&agrave;m theo thỏa thuận:</p> <p style="text-align: justify;">V&iacute; dụ:</p> <ul> <li style="text-align: justify;">4 tướng muốn tấn c&ocirc;ng</li> <li style="text-align: justify;">4 tướng muốn r&uacute;t qu&acirc;n</li> <li style="text-align: justify;">1 tướng phản bội n&oacute;i với nh&oacute;m thứ nhất l&agrave; muốn tấn c&ocirc;ng, n&oacute;i với nh&oacute;m thứ 2 l&agrave; muốn r&uacute;t qu&acirc;n</li> </ul> <p style="text-align: justify;">C&aacute;c tướng trung th&agrave;nh l&agrave;m thế n&agrave;o để đạt được thỏa thuận?</p> <p style="text-align: justify;">Nếu việc n&agrave;y diễn ra tr&ecirc;n một m&ocirc;i trường tập trung th&igrave; điều đơn giản cần l&agrave;m l&agrave; triệu tập một hội nghị v&agrave; c&aacute;c vị tướng c&oacute; thể c&ugrave;ng đồng &yacute; tấn c&ocirc;ng v&agrave;o l&uacute;c 8h s&aacute;ng. Nhưng khi c&aacute;c tướng kh&ocirc;ng thể tập hợp chung dưới sự chỉ huy trực tiếp, mọi thứ trở l&ecirc;n phức tạp hơn.</p> <p style="text-align: justify;">Một trong những c&aacute;ch giải quyết b&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine l&agrave;:</p> <p style="text-align: justify;">C&aacute;c vị tướng gửi đi những người đi tin. Vị tướng số 1 quyết định tấn c&ocirc;ng v&agrave;o l&uacute;c 8h s&aacute;ng. &Ocirc;ng ta k&yacute; l&ecirc;n th&ocirc;ng điệp của m&igrave;nh &ldquo;tấn c&ocirc;ng l&uacute;c 8h s&aacute;ng&rdquo; v&agrave; cử người đưa tin đưa n&oacute; đến cho vị tướng số 2. Vị tướng số 2 đọc được th&ocirc;ng điệp n&agrave;y, ghi nhớ thời gian tấn c&ocirc;ng v&agrave; k&yacute; một th&ocirc;ng điệp kh&aacute;c với nội dung &ldquo;tấn c&ocirc;ng l&uacute;c 8h s&aacute;ng&rdquo;. &Ocirc;ng ta lại cử người đưa tin mang th&ocirc;ng điệp đến cho vị tướng số 3.</p> <p style="text-align: justify;">C&oacute; một vấn đề ở đ&acirc;y. Vị tướng số 3 l&agrave; kẻ phản bội. Hắn muốn cuộc tấn c&ocirc;ng phải thất bại. Do đ&oacute; khi nhận được th&ocirc;ng điệp, hắn x&eacute; bỏ v&agrave; thay thế n&oacute; bằng một th&ocirc;ng điệp mới với nội dung &ldquo;tấn c&ocirc;ng l&uacute;c 10h s&aacute;ng&rdquo;.</p> <p>[caption id="attachment_4995" align="aligncenter" width="630"]<img class="size-full wp-image-4995" src="https://tek4.vn/wp-content/uploads/2019/10/luật-đồng-thuận-trong-blockchain_2.jpg" alt="Luật đồng thuận trong blockchain" width="630" height="448" /> Nguồn: Rob Rogers[/caption]</p> <p style="text-align: justify;">Người đưa tin lại tiếp tục h&agrave;nh tr&igrave;nh của m&igrave;nh m&agrave; kh&ocirc;ng biết g&igrave; về việc vừa xảy ra. Vị tướng số 4 nhận được th&ocirc;ng điệp &ldquo;tấn c&ocirc;ng l&uacute;c 10h s&aacute;ng&rdquo;. &Ocirc;ng n&agrave;y cũng ghi nhớ giờ tấn c&ocirc;ng, k&yacute; một th&ocirc;ng điệp mới với nội dung &rdquo;tấn c&ocirc;ng l&uacute;c 10 s&aacute;ng&rdquo; v&agrave; gửi n&oacute; cho vị tướng số 5.</p> <p style="text-align: justify;">V&agrave; mọi chuyện tiếp tục tiếp diễn cho đến vị tướng cuối c&ugrave;ng...</p> <p style="text-align: justify;">L&uacute;c n&agrave;y th&ocirc;ng điệp đ&atilde; được truyền đến tất cả mọi người. Nhưng ch&uacute;ng ta c&oacute; một vấn đề. Vị tướng kh&ocirc;ng trung thực đ&atilde; ph&aacute; hoại kết quả. C&aacute;c vị tướng nhận được c&aacute;c th&ocirc;ng điệp bị thay đổi tưởng rằng cuộc tấn c&ocirc;ng sẽ diễn ra l&uacute;c 10h s&aacute;ng. Do đ&oacute;, họ chờ đợi thay v&igrave; hỗ trợ 2 vị tướng ph&aacute;t th&ocirc;ng điệp tấn c&ocirc;ng 8h s&aacute;ng v&agrave; cuộc chiến thất bại, những kẻ xấu kh&ocirc;ng trung thực gi&agrave;nh chiến thắng.</p> <p style="text-align: justify;">Để giải quyết điều n&agrave;y, c&aacute;c vị tướng đều sẽ phải cử người li&ecirc;n lạc của m&igrave;nh đến tất cả c&aacute;c vị tướng c&ograve;n lại. V&agrave; đồng thuận xảy ra khi số lượng tướng phản bội kh&ocirc;ng bằng hoặc vượt qu&aacute; một phần ba tổng số tướng tham gia. Tuy nhi&ecirc;n, trong m&ocirc; h&igrave;nh c&oacute; 1 tướng chỉ huy v&agrave; c&oacute; 2 tướng thừa lệnh, tức l&agrave; c&oacute; một đơn vị tập trung đ&oacute;ng vai tr&ograve; ph&aacute;t t&aacute;n th&ocirc;ng điệp th&igrave; khi 1 tướng chỉ huy n&agrave;y phản bội, 2 tướng thừa lệnh c&ograve;n lại sẽ kh&ocirc;ng thể giải quyết v&agrave; x&aacute;c định xem th&ocirc;ng điệp được đưa ra c&oacute; đ&uacute;ng kh&ocirc;ng v&agrave; ai l&agrave; kẻ phản bội. Để thấy điều n&agrave;y, giả sử ch&uacute;ng ta c&oacute; một Tưởng chỉ huy phản bội A v&agrave; hai tướng thừa lệnh, B v&agrave; C: khi A ra lệnh cho B tấn c&ocirc;ng v&agrave; C r&uacute;t lui, sau đ&oacute;, để x&aacute;c nhận lại B v&agrave; C gửi th&ocirc;ng điệp cho nhau, chuyển tiếp th&ocirc;ng điệp của A. L&uacute;c n&agrave;y cả B v&agrave; C đều kh&ocirc;ng thể T&igrave;m ra ai l&agrave; kẻ phản bội, v&igrave; kẻ phản bội kh&ocirc;ng nhất thiết phải l&agrave; A m&agrave; c&oacute; thể l&agrave; ch&iacute;nh một trong hai người B hoặc C c&oacute; thể giả mạo th&ocirc;ng điệp n&agrave;y từ A v&agrave; gửi cho người c&ograve;n lại.</p> <p style="text-align: justify;">Do đ&oacute;, để đảm bảo khả năng chịu lỗi Byzantine th&igrave; mếu c&oacute; M tướng phản bội, sẽ cần &iacute;t nhất 2M+1 tướng trung th&agrave;nh. Như vậy tổng cộng sẽ c&oacute; M+1 v&ograve;ng trao đổi th&ocirc;ng điệp v&agrave; O(MN^2) th&ocirc;ng điệp cần trao đổi. Việc n&agrave;y rất tốn k&eacute;m.</p> <p style="text-align: justify;">B&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine n&agrave;y được đưa ra lần đầu v&agrave;o năm 1982, nhưng đến năm 2008, b&agrave;i to&aacute;n n&agrave;y vẫn chưa c&oacute; lời giải tổng qu&aacute;t.</p> <p style="text-align: justify;">B&agrave;i to&aacute;n n&agrave;y c&oacute; sự tương đồng r&otilde; r&agrave;ng với Blockchain. Blockchain l&agrave; một mạng lưới rất lớn, l&agrave;m thế n&agrave;o để những người trong c&ugrave;ng mạng lưới tin tưởng lẫn nhau? Nếu một người gửi 4ETH từ v&iacute; của họ th&igrave; l&agrave;m sao để họ chắc chắn rằng kh&ocirc;ng ai trong mạng kh&ocirc;ng xen v&agrave;o th&ocirc;ng điệp v&agrave; thay đổi từ 4 l&ecirc;n 40 ETH.</p> <p style="text-align: justify;">Để x&aacute;c nhận một giao dịch hợp lệ v&agrave; thống nhất chung về trạng th&aacute;i của chuỗi khối hiện tại c&aacute;c th&agrave;nh vi&ecirc;n tham gia cần phải li&ecirc;n lạc với nhau v&agrave; đưa ra một cơ chế đồng thuận chung.</p> <p style="text-align: justify;">Tuy nhi&ecirc;n, khi ứng dụng luật đồng thuận v&agrave;o trong thực tế, n&oacute; gặp phải rất nhiều vấn đề. Trước khi Bitcoin ra đời c&oacute; rất nhiều hệ thống tiền tệ ph&acirc;n quyền đồng cấp kh&ocirc;ng th&agrave;nh c&ocirc;ng bởi v&igrave; ch&uacute;ng kh&ocirc;ng thể giải quyết được vấn đề lớn nhất về việc đạt được sự đồng thuận trong &ldquo;B&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine&rdquo;. Vậy luật đồng thuận l&agrave; g&igrave;? V&agrave; cơ chế đồng thuận được sử dụng trong blockchain như thế n&agrave;o.</p> <h2>Luật đồng thuận l&agrave; g&igrave;?</h2> <p style="text-align: justify;">Trong blockchain, khi bất cứ khi n&agrave;o một giao dịch mới được ph&aacute;t l&ecirc;n mạng, c&aacute;c n&uacute;t trong mạng c&oacute; thể t&ugrave;y chọn đưa giao dịch đ&oacute; v&agrave;o bản sao sổ c&aacute;i của họ hoặc bỏ qua n&oacute;. Khi phần lớn c&aacute;c th&agrave;nh vi&ecirc;n trong mạng quyết định một trạng th&aacute;i duy nhất, mạng sẽ đạt được sự đồng thuận.</p> <p style="text-align: justify;">Nh&igrave;n v&agrave;o cơ chế hoạt động của Blockchain c&oacute; thể thấy rằng một cơ chế chấp thuận v&agrave; x&aacute;c nhận t&iacute;nh hợp lệ của chuỗi khối bởi c&aacute;c th&agrave;nh vi&ecirc;n tham gia trong mạng l&agrave; một yếu tố bắt buộc đối với Blockchain. Do mỗi th&agrave;nh vi&ecirc;n trong mạng đều sở hữu quyền như nhau đối với chuỗi khối c&ocirc;ng khai do đ&oacute; nếu kh&ocirc;ng c&oacute; cơ chế thống nhất trong việc quản l&yacute; v&agrave; tương t&aacute;c với chuỗi khối n&agrave;y sẽ dẫn đến sự kh&ocirc;ng đồng nhất v&agrave; g&acirc;y ra những xung đột tr&ecirc;n to&agrave;n mạng. Mỗi th&agrave;nh vi&ecirc;n trong mạng sẽ c&oacute; những c&aacute;i nh&igrave;n kh&aacute;c nhau về trạng th&aacute;i của mạng. Do đ&oacute;, n&oacute; cần một cơ chế ph&acirc;n t&aacute;n để giải quyết sự thống nhất về trạng th&aacute;i chung của mạng. Cơ chế đ&oacute; được gọi l&agrave; c&aacute;c luật đồng thuận.</p> <p><img class=" wp-image-4996 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/10/luật-đồng-thuận-trong-blockchain_3.png" alt="luật đồng thuận trong blockchain_3" width="684" height="389" /></p> <p style="text-align: justify;">Luật đồng thuận l&agrave; một trong những th&agrave;nh phần quan trọng nhất của c&ocirc;ng nghệ Blockchain. Luật đồng thuận cho ph&eacute;p c&aacute;c th&agrave;nh vi&ecirc;n tham gia v&agrave;o hệ thống Blockchain đạt được sự thống nhất chung chấp nhận được về trạng th&aacute;i chung của mạng v&agrave; chuỗi khối c&ocirc;ng khai.</p> <p style="text-align: justify;">[quote]Luật đồng thuận l&agrave; một qu&aacute; tr&igrave;nh đưa ra quyết định nh&oacute;m trong đ&oacute; c&aacute;c th&agrave;nh vi&ecirc;n trong nh&oacute;m ph&aacute;t triển v&agrave; thống nhất đưa ra c&aacute;c quyết định v&igrave; lợi &iacute;ch chung tốt nhất cho to&agrave;n bộ nh&oacute;m. Luật đồng thuận kh&ocirc;ng dựa tr&ecirc;n sở th&iacute;ch của mỗi th&agrave;nh vi&ecirc;n m&agrave; dựa tr&ecirc;n lợi &iacute;ch chung. N&oacute; l&agrave; c&aacute;c thỏa thuận chung để đảm bảo sự đo&agrave;n kết v&agrave; niềm tin trong một nh&oacute;m.[/quote]</p> <p style="text-align: justify;">Định nghĩa một c&aacute;ch đơn giản, luật đồng thuận l&agrave; một c&aacute;ch thức để đạt được thỏa thuận trong một nh&oacute;m. Kh&aacute;c với qu&aacute; tr&igrave;nh bỏ phiếu sự đồng thuận đảm bảo rằng một thỏa thuận đạt được c&oacute; được lợi &iacute;ch cho to&agrave;n bộ c&aacute;c th&agrave;nh vi&ecirc;n trong nh&oacute;m, trong khi bỏ phiếu chỉ nhắm đến một nguy&ecirc;n tắc đa số m&agrave; kh&ocirc;ng c&oacute; bất kỳ suy nghĩ n&agrave;o về cảm x&uacute;c v&agrave; chỉ phục lợi &iacute;ch của một nh&oacute;m thiểu số. Trong trường hợp l&yacute; tưởng, luật đồng thuận c&oacute; thể được sử dụng bởi một nh&oacute;m người rải r&aacute;c tr&ecirc;n khắp thế giới để tạo ra một x&atilde; hội b&igrave;nh đẳng v&agrave; c&ocirc;ng bằng hơn nhằm mang lại lợi &iacute;ch cho to&agrave;n bộ người tham gia.</p> <p style="text-align: justify;">Phương ph&aacute;p được sử dụng để đưa ra quyết định đồng thuận gọi l&agrave; <em>&ldquo;Cơ chế luật đồng thuận</em>&rdquo;. Cơ chế luật đồng thuận cần phải đảm bảo:</p> <ul> <li style="text-align: justify;">T&igrave;m kiếm sự đồng &yacute; chung: Một cơ chế đồng thuận n&ecirc;n mang lại sự đồng &yacute; của c&agrave;ng nhiều người trong nh&oacute;m c&agrave;ng tốt.</li> <li style="text-align: justify;">T&iacute;nh cộng t&aacute;c: Tất cả c&aacute;c th&agrave;nh vi&ecirc;n tham gia n&ecirc;n c&ugrave;ng nhau l&agrave;m việc để đạt được kết quả theo nguy&ecirc;n tắc đặt lợi &iacute;ch cao nhất cho nh&oacute;m.</li> <li style="text-align: justify;">T&iacute;nh hợp t&aacute;c: Tất cả những người tham gia kh&ocirc;ng n&ecirc;n đặt lợi &iacute;ch c&aacute; nh&acirc;n l&ecirc;n trước v&agrave; l&agrave;m việc theo nh&oacute;m nhiều hơn v&igrave; c&aacute; nh&acirc;n.</li> <li style="text-align: justify;">T&iacute;nh b&igrave;nh đẳng: Một nh&oacute;m cố gắng để đạt được sự đồng thuận n&ecirc;n c&oacute; được c&agrave;ng nhiều sự b&igrave;nh đẳng c&agrave;ng tốt. Mỗi người bỏ phiếu kh&ocirc;ng thể quan trọng hơn những người kh&aacute;c.</li> <li style="text-align: justify;">T&iacute;nh bao qu&aacute;t: C&agrave;ng nhiều người tham gia v&agrave;o qu&aacute; tr&igrave;nh đồng thuận c&agrave;ng tốt. Qu&aacute; tr&igrave;nh đồng thuận kh&ocirc;ng giống như bỏ phiếu b&igrave;nh thường, nơi m&agrave; mọi người kh&ocirc;ng thực sự cảm thấy &yacute; kiến của họ được ghi nhận v&igrave; họ tin rằng l&aacute; phiếu của họ sẽ kh&ocirc;ng c&oacute; gi&aacute; trị về l&acirc;u d&agrave;i.</li> <li style="text-align: justify;">Sự tham gia: Cơ chế đồng thuận cần phải c&oacute; sự tham gia của tất cả mọi th&agrave;nh vi&ecirc;n trong qu&aacute; tr&igrave;nh tổng thể.</li> </ul> <p style="text-align: justify;">Một vấn đề cơ bản trong c&aacute;c hệ thống điện to&aacute;n ph&acirc;n t&aacute;n đa th&agrave;nh vi&ecirc;n l&agrave; việc đảm bảo được độ tin cậy của hệ thống tổng thể khi xuất hiện lỗi. Điều n&agrave;y thường y&ecirc;u cầu c&aacute;c quy tắc để đồng thuận về một số gi&aacute; trị dữ liệu chung cần thiết trong qu&aacute; tr&igrave;nh t&iacute;nh to&aacute;n.</p> <p style="text-align: justify;">Điều g&igrave; xảy ra khi một th&agrave;nh vi&ecirc;n tham gia quyết định kh&ocirc;ng tu&acirc;n theo c&aacute;c quy tắc v&agrave; can thiệp v&agrave;o trạng th&aacute;i của sổ c&aacute;i của anh ta?</p> <p style="text-align: justify;">Điều g&igrave; xảy ra khi c&aacute;c th&agrave;nh vi&ecirc;n n&agrave;y l&agrave; một phần rất lớn của mạng, nhưng kh&ocirc;ng phải l&agrave; đa số?</p> <p>Để tạo ra một giao thức đồng thuận an to&agrave;n, n&oacute; phải c&oacute; khả năng chịu lỗi.</p> <p>Một lời giải được chấp nhận l&agrave; thuật to&aacute;n <strong>Practical Byzantine Fault Tolerance</strong>, được sử dụng trong việc x&acirc;y dựng c&aacute;c hệ thống ph&acirc;n t&aacute;n c&oacute; khả năng chịu lỗi Byzantine nhưng trong m&ocirc;i trường tin cậy.</p> <h2 id="_he-thong-chiu-loi-byzantine-3">Hệ thống chịu lỗi Byzantine</h2> <p style="text-align: justify;">Hệ thống chịu <a href="https://en.wikipedia.org/wiki/Byzantine_fault">lỗi Byzantine</a>, hay <strong>Byzantine Fault Tolerance (BFT)</strong>, l&agrave; hệ thống c&oacute; thể giải quyết được vấn đề của b&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine.</p> <p style="text-align: justify;">Việc x&acirc;y dựng một hệ thống chịu lỗi Byzantine l&agrave; một điều cần thiết, nhưng cũng cực kỳ kh&oacute; khăn trong một hệ thống ph&acirc;n t&aacute;n.</p> <p><img class=" wp-image-4997 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/10/Byzantine-Fault-Tolerance-BFT.jpg" alt="Byzantine Fault Tolerance (BFT)" width="698" height="393" /></p> <p style="text-align: justify;">Năm 1999, 2 nh&agrave; khoa học m&aacute;y t&iacute;nh Miguel Castro v&agrave; Barbara Liskov giới thiệu thuật to&aacute;n <strong>"Practical Byzantine Fault Tolerance" (PBFT)</strong> c&oacute; thể quản l&yacute; c&aacute;c trạng th&aacute;i Byzantine với một hiệu suất cao, c&oacute; thể xử l&yacute; h&agrave;ng ngh&igrave;n truy vấn một gi&acirc;y với độ trễ cực thấp.</p> <p style="text-align: justify;">Sau sự ra đời của PBFT, h&agrave;ng loại c&aacute;c giao thức BFT kh&aacute;c cũng được giới thiệu với nhiều sự cải tiến về mặt hiệu năng, v&agrave; được ứng dụng rộng r&atilde;i hơn.</p> <p style="text-align: justify;">Byzantine Fault Tolerance hiện hữu trong những hệ thống điều khiển quan trọng của nhiều hệ thống phức tạp, cần ra quyết định dựa tr&ecirc;n sự tổng hợp th&ocirc;ng tin của rất nhiều nguồn kh&aacute;c nhau như của m&aacute;y bay, t&ecirc;n lửa, nh&agrave; m&aacute;y hạt nh&acirc;n...</p> <p style="text-align: justify;">Blockchain l&agrave; một cuốn sổ c&aacute;i được chia sẻ cho mọi th&agrave;nh vi&ecirc;n trong một mạng lưới phi tập trung (decentralized). Ở đ&oacute;, kh&ocirc;ng hề c&oacute; một b&ecirc;n thứ 3 được tin tưởng để quản l&yacute; sự vận h&agrave;nh của n&oacute;, m&agrave; tự c&aacute;c th&agrave;nh vi&ecirc;n của hệ thống phải tương t&aacute;c với nhau để đi đến một sự đồng thuận (consensus). Hay n&oacute;i c&aacute;ch kh&aacute;c, một hệ thống Blockchain cần c&oacute; khả năng chịu lỗi Byzantine.</p> <p style="text-align: justify;">Trong blockchain đầu ti&ecirc;n, Bitcoin, Nakamoto Satoshi đ&atilde; giới thiệu một một phương ph&aacute;p để giải quyết b&agrave;i to&aacute;n c&aacute;c vị tướng Byzantine, th&ocirc;ng qua nguy&ecirc;n l&yacute; tr&ograve; chơi v&agrave; tối đa h&oacute;a lợi &iacute;ch của c&aacute;c b&ecirc;n tham gia khi kh&ocirc;ng gian lận được gọi l&agrave; Bằng chứng c&ocirc;ng việc Proof-of-Work (PoW). Nguy&ecirc;n l&yacute; tr&ograve; chơi rất quan trọng trong việc khuyến kh&iacute;ch mạng lưới đồng thuận v&agrave; thực hiện tu&acirc;n thủ theo giao thức được thiết kế. Ch&uacute;ng ta sẽ t&igrave;m hiệu cụ thể về l&yacute; thuyết tr&ograve; chơi trong c&aacute;c b&agrave;i tiếp theo.</p> <p style="text-align: justify;">Cần nhớ rằng, b&ecirc;n cạnh PoW, ng&agrave;y nay c&aacute;c blockchain c&ograve;n c&oacute; sử dụng rất nhiều c&aacute;c luật đồng thuận kh&aacute;c. Chẳng hạn như Ethereum đ&atilde; c&ocirc;ng bố kế hoạch chuyển từ Proof of Work sang Proof of Stake (PoS - Bằng chứng cổ phần) trong thời gian tới. Blockchain Neo d&ugrave;ng giao thức đồng thuận Delegated Byzantine Fault Tolerance...</p> <p>Trong c&aacute;c b&agrave;i viết sau, ch&uacute;ng ta sẽ tiếp tục t&igrave;m hiểu cụ thể chi tiết một số giao thức đồng thuận phổ biến, c&aacute;c bạn ch&uacute; &yacute; theo d&otilde;i nh&eacute;.</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>