tek4

Proof of Work và Proof of Stake

by - September. 21, 2021
Kiến thức
Học
Công nghệ
<p style="text-align: justify;">Ở c&aacute;c phần trước, ch&uacute;ng ta đ&atilde; được biết rằng <a href="https://tek4.vn/blockchain-co-ban/">Blockchain</a> l&agrave; c&aacute;c hệ thống ph&acirc;n t&aacute;n do đ&oacute;, n&oacute; cần đạt được sự đồng thuận th&ocirc;ng qua c&aacute;c <a href="https://tek4.vn/luat-dong-thuan-la-gi/">cơ chế đồng thuận</a>, v&agrave; để đạt điều đ&oacute;, cần x&acirc;y dựng c&aacute;c cơ chế khuyến kh&iacute;ch tu&acirc;n theo <a href="https://tek4.vn/ly-thuyet-tro-choi-va-ung-dung-trong-blockchain/">l&yacute; thuyết tr&ograve; chơi</a> để c&aacute;c th&agrave;nh vi&ecirc;n tham gia tu&acirc;n thủ đ&uacute;ng v&agrave; kh&ocirc;ng gian lận trong giao thức. Một v&iacute; dụ điển h&igrave;nh của c&aacute;c giao thức đồng thuận theo cơ chế chung n&agrave;y l&agrave; Proof of Work v&agrave; Proof of Stake. Trong b&agrave;i viết n&agrave;y, ch&uacute;ng ta sẽ t&igrave;m hiểu hai giao thức n&agrave;y hoạt động như thế n&agrave;o v&agrave; ưu v&agrave; nhược điểm của mỗi giao thức đ&oacute;.</p> <p><img class=" wp-image-5206 aligncenter" style="display: block; margin-left: auto; margin-right: auto;" src="https://tek4.vn/wp-content/uploads/2019/10/Proof-of-work-vs-Proof-of-Stake.jpg" alt="Proof of work vs Proof of Stake" width="678" height="382" /></p> <h2 style="text-align: justify;">Proof of Work l&agrave; g&igrave;?</h2> <p style="text-align: justify;">Proof of Work l&agrave; một giao thức đồng thuận được với mục ti&ecirc;u ch&iacute;nh đầu ti&ecirc;n l&agrave; ngăn chặn c&aacute;c cuộc tấn c&ocirc;ng mạng như tấn c&ocirc;ng từ chối dịch vụ ph&acirc;n t&aacute;n (DDoS) hoặc c&aacute;c h&agrave;nh vi lạm dụng dịch vụ kh&aacute;c như spam với mục đ&iacute;ch l&agrave;m cạn kiệt t&agrave;i nguy&ecirc;n của hệ thống m&aacute;y t&iacute;nh bằng c&aacute;ch gửi nhiều y&ecirc;u cầu giả mạo. Proof of Work ngăn chặn điều n&agrave;y bằng c&aacute;ch y&ecirc;u cầu người sử dụng dụng vụ thực hiện một số c&ocirc;ng việc nhất định đ&ograve;i hỏi nguồn lực v&agrave; thời gian xử l&yacute; của m&aacute;y t&iacute;nh.</p> <p style="text-align: justify;">Kh&aacute;i niệm về Proof of Work được ph&aacute;t minh đầu ti&ecirc;n bởi Cynthia Dwork v&agrave; Moni Naor trong một b&agrave;i b&aacute;o được xuất bản năm 1993. Thuật ngữ "Bằng chứng c&ocirc;ng việc" hay PoW lần đầu ti&ecirc;n được đưa ra v&agrave; ch&iacute;nh thức h&oacute;a trong một b&agrave;i b&aacute;o năm 1999 của Markus Jakobsson v&agrave; Ari Juels.</p> <p style="text-align: justify;">T&iacute;nh chất quan trọng của Proof of Work l&agrave; t&iacute;nh bất đối xứng tức l&agrave;: c&ocirc;ng việc được y&ecirc;u cầu trong giao thức phải c&oacute; độ kh&oacute; vừa phải (nhưng khả thi) về ph&iacute;a người d&ugrave;ng nhưng lại dễ kiểm tra đối với ph&iacute;a kiểm chứng hay n&oacute;i c&aacute;ch kh&aacute;c l&agrave; kh&oacute; tạo nhưng dễ kiểm chứng.</p> <p><img class=" wp-image-5213 aligncenter" style="display: block; margin-left: auto; margin-right: auto;" src="https://tek4.vn/wp-content/uploads/2019/10/Proof-of-work.jpg" alt="Proof of work" width="580" height="349" /></p> <p style="text-align: justify;">Một hệ thống Proof of Work c&oacute; ứng dụng đầu ti&ecirc;n được biết tới l&agrave; Hashcash. Hệ thống n&agrave;y sử dụng nghịch đảo <a href="https://tek4.vn/hashing-ham-bam-co-che-dang-sau-su-toan-ven-cua-blockchain/">h&agrave;m băm</a> một phần để chứng minh rằng c&ocirc;ng việc đ&atilde; được thực hiện, kết quả của qu&aacute; tr&igrave;nh n&agrave;y sẽ tạo ra một m&atilde; th&ocirc;ng b&aacute;o chứng minh t&iacute;nh tin cậy được sử dụng để gửi email được th&ecirc;m v&agrave;o ti&ecirc;u đề thư. Chẳng hạn, ti&ecirc;u đề của thư sau đ&acirc;y đ&ograve;i hỏi khoảng $latex 2^{52}$ ph&eacute;p t&iacute;nh to&aacute;n băm để tạo được m&atilde; th&ocirc;ng b&aacute;o cho việc gửi thư đến calvin@comics.net:</p> <pre class="lang: decode:true ">X-Hashcash: 1:52:380119:calvin@comics.net:::9B760005E92F0DAE</pre> <p style="text-align: justify;">Để x&aacute;c minh t&iacute;nh hợp lệ của m&atilde; th&ocirc;ng b&aacute;o v&agrave; ti&ecirc;u đề n&agrave;y rất đơn giản. Ch&uacute;ng ta chỉ cần một t&iacute;nh to&aacute;n duy nhất bằng c&aacute;ch kiểm tra xem gi&aacute; trị băm SHA-1 của ti&ecirc;u đề (bỏ qua t&ecirc;n phần tiền tố X-Hashcash: bao gồm cả dấu hai chấm v&agrave; bất kỳ khoảng trắng n&agrave;o theo sau chữ số '1') c&oacute; phải bắt đầu bằng 52 số kh&ocirc;ng nhị ph&acirc;n c&oacute; g&igrave; trị l&agrave; 0,&nbsp;hoặc 13 số 0 trong hệ thập lục ph&acirc;n hay kh&ocirc;ng :</p> <pre class="">0000000000000756af69e2ffbdb930261873cd71</pre> <p style="text-align: justify;">Proof of Work khiến việc gửi email spam trở n&ecirc;n phức tạp đối với người gửi thư r&aacute;c, nhưng lại dễ d&agrave;ng đối với người d&ugrave;ng hợp ph&aacute;p. N&oacute;i c&aacute;ch kh&aacute;c, một người d&ugrave;ng hợp ph&aacute;p sẽ kh&ocirc;ng gặp bất kỳ kh&oacute; khăn n&agrave;o khi gửi email, nhưng một người gửi thư r&aacute;c sẽ phải ti&ecirc;u tốn một lượng điện năng đ&aacute;ng kể để gửi nhiều email c&ugrave;ng một l&uacute;c.</p> <p style="text-align: justify;">Tuy kh&aacute;i niệm Proof of Work đ&atilde; tồn tại&nbsp;một thời gian kh&aacute; l&acirc;u nhưng chỉ đến khi Bitcoin ra đời n&oacute; mới thật sự được biết đến rộng r&atilde;i. Satoshi Nakamoto đ&atilde; &aacute;p dụng n&oacute; nhằm tạo ra sự đồng thuận tr&ecirc;n Bitcoin. V&agrave; đ&acirc;y được coi l&agrave; một cuộc c&aacute;ch mạng với c&aacute;ch thức giao dịch truyền thống.</p> <p style="text-align: justify;">Proof of Work tạo ra một giao thức đồng thuận tin cậy ph&acirc;n t&aacute;n c&oacute; nghĩa l&agrave; bất kỳ người d&ugrave;ng n&agrave;o cũng c&oacute; thể thực hiện giao dịch tr&ecirc;n hệ thống m&agrave; kh&ocirc;ng cần phải tin tưởng v&agrave;o c&aacute;c dịch vụ của b&ecirc;n thứ ba.</p> <p style="text-align: justify;">Khi bạn sử dụng c&aacute;c phương thức thanh to&aacute;n truyền thống, bạn cần tin tưởng v&agrave;o b&ecirc;n thứ ba để thiết lập giao dịch của m&igrave;nh (v&iacute; dụ: Visa, Mastercard, PayPal, hoặc c&aacute;c ng&acirc;n h&agrave;ng truyền thống). B&ecirc;n thứ ba n&agrave;y giữ c&aacute;c sổ c&aacute;i giao dịch ri&ecirc;ng của họ trong đ&oacute; lưu trữ lịch sử c&aacute;c giao dịch v&agrave; số dư của từng t&agrave;i khoản. Khi thực hiện một giao dịch, b&ecirc;n thứ ba n&agrave;y sẽ x&aacute;c minh trong sổ c&aacute;i của họ xem giao dịch v&agrave; số dư t&agrave;i khoản của bạn c&oacute; hợp lệ hay kh&ocirc;ng. Chẳng hạn nếu T&ocirc;i gửi cho Bạn 1.000.000, b&ecirc;n thứ ba tin cậy sẽ trừ trong t&agrave;i khoản của t&ocirc;i 1.000.000 v&agrave; cộng th&ecirc;m v&agrave;o t&agrave;i khoản của bạn 1.000.000 tương ứng. Điều n&agrave;y diễn ra đ&ograve;i hỏi cả hai b&ecirc;n t&ocirc;i v&agrave; bạn đều phải tin rằng b&ecirc;n thứ ba n&agrave;y sẽ thực hiện đ&uacute;ng thao t&aacute;c n&agrave;y. Tuy nhi&ecirc;n, với Bitcoin v&agrave; một số loại tiền kỹ thuật số kh&aacute;c, mọi người trong mạng đều c&oacute; một bản sao của sổ c&aacute;i (blockchain), v&igrave; vậy kh&ocirc;ng ai phải tin tưởng v&agrave;o b&ecirc;n thứ ba, bởi v&igrave; bất kỳ ai cũng c&oacute; thể x&aacute;c minh trực tiếp th&ocirc;ng tin được ghi lại.</p> <h2 style="text-align: justify;">C&aacute;c biến thể của Proof of Work</h2> <p style="text-align: justify;">Nh&igrave;n chung mục ti&ecirc;u của Proof of Work l&agrave; y&ecirc;u cầu người d&ugrave;ng chứng minh đ&atilde; thực hiện một c&ocirc;ng việc g&igrave; đ&oacute;. Về cơ bản c&oacute; hai loại giao thức Proof-of-Work tương ứng với h&igrave;nh thức c&ocirc;ng việc m&agrave; người d&ugrave;ng cần thực hiện.</p> <ul> <li style="text-align: justify;">C&aacute;c giao thức th&aacute;ch thức - phản hồi: C&aacute;c giao thức dạng n&agrave;y y&ecirc;u cầu người d&ugrave;ng phải đưa ra c&aacute;c phản hồi hợp l&yacute; cho c&aacute;c th&aacute;ch thức được m&aacute;y chủ lựa chọn trước. Do c&aacute;c th&aacute;ch thức được m&aacute;y chủ lựa chọn ngẫu nhi&ecirc;n tại ph&iacute;a m&aacute;y chủ do đ&oacute; sẽ rất kh&oacute; khăn để m&aacute;y kh&aacute;ch c&oacute; thể giả mạo được nếu kh&ocirc;ng biết v&agrave; bỏ c&ocirc;ng sức để tạo ra phản hồi hợp lệ. C&aacute;c giao thức n&agrave;y y&ecirc;u cầu kết nối li&ecirc;n tục được duy tr&igrave; trong qu&aacute; tr&igrave;nh x&aacute;c thực để trao đổi c&aacute;c th&ocirc;ng điệp th&aacute;ch đố - giải đố.</li> <li style="text-align: justify;">C&aacute;c giao thức x&aacute;c minh lời giải: l&agrave; giao thức trong đ&oacute; một vấn đề chung được đưa ra cho tất cả người d&ugrave;ng, trong đ&oacute; lời giải thay đổi dựa tr&ecirc;n c&aacute;c tham số đầu v&agrave;o kh&aacute;c nhau. Người d&ugrave;ng c&oacute; nhiệm vụ phải t&igrave;m được lời giải với tham số tương ứng của m&igrave;nh v&agrave; cung cấp lời giải cho m&aacute;y chủ khi thực hiện xong giao thức. M&aacute;y chủ khi đ&oacute; sẽ c&oacute; nhiệm vụ kiểm chứng lại t&iacute;nh đ&uacute;ng đắn của lời giải. Trong trường hợp n&agrave;y, m&aacute;y chủ v&agrave; m&aacute;y kh&aacute;ch kh&ocirc;ng cần duy tr&igrave; kết nối li&ecirc;n tục. Kết nối chỉ cần được thiết lập khi lời giải được gửi đi. Hầu hết c&aacute;c giao thức n&agrave;y l&agrave; c&aacute;c thủ tục lặp kh&ocirc;ng giới hạn với x&aacute;c suất nhất định t&igrave;m được đ&aacute;p &aacute;n như Hashcash hay Bitcoin.</li> </ul> <p><img class=" wp-image-5217 aligncenter" style="display: block; margin-left: auto; margin-right: auto;" src="https://tek4.vn/wp-content/uploads/2019/10/Proof-of-Work_3.jpg" alt="Proof of Work_3" width="790" height="303" /></p> <p style="text-align: justify;">C&aacute;c giao thức x&aacute;c minh lời giải cần được thiết kế sao cho c&oacute; t&iacute;nh ổn định cao, với độ kh&oacute; vừa phải. Tức l&agrave; x&aacute;c suất để t&igrave;m ra lời giải với một nguồn lực hữu hạn định trước l&agrave; đủ cao để b&ecirc;n cần x&aacute;c thực c&oacute; thể thực hiện được trong giới hạn nguồn lực cho ph&eacute;p. C&aacute;c giới hạn đ&oacute; c&oacute; thể bao gồm:</p> <ul> <li style="text-align: justify;">Giới hạn về nguồn lực t&iacute;nh to&aacute;n của CPU.</li> <li style="text-align: justify;">Giới hạn bộ nhớ lưu trữ.</li> <li style="text-align: justify;">Giới hạn về năng lực v&agrave; tốc độ kết nối mạng.</li> </ul> <p style="text-align: justify;">Ngo&agrave;i ra, một số hệ thống PoW cung cấp một số t&iacute;nh năng cho ph&eacute;p tạo ra qu&aacute; tr&igrave;nh x&aacute;c thực kh&ocirc;ng đ&ograve;i hỏi nguồn lực thực hiện bằng c&aacute;ch cung cấp cho một số người tham gia một kh&oacute;a b&iacute; mật, để tạo ra bằng chứng c&ocirc;ng việc với chi ph&iacute; thấp. Chẳng hạn, c&aacute;c chủ sở hữu m&aacute;y chủ thư c&oacute; thể tạo ra c&aacute;c tem cho một số người d&ugrave;ng m&agrave; kh&ocirc;ng phải chịu chi ph&iacute; t&iacute;nh to&aacute;n cao. T&iacute;nh năng n&agrave;y c&oacute; thể cần thiết trong một số kịch bản sử dụng.</p> <h2 style="text-align: justify;">Proof of Work trong blockchain l&agrave;m việc như thế n&agrave;o?</h2> <p style="text-align: justify;">Trong blockchain, c&aacute;c hệ thống hoạt động tr&ecirc;n m&ocirc;i trường phi tập chung do đ&oacute; kh&ocirc;ng xuất hiện m&aacute;y chủ x&aacute;c thực chung, m&agrave; mọi th&agrave;nh vi&ecirc;n trong mạng đều c&oacute; thể đ&oacute;ng g&oacute;p tham gia v&agrave;o qu&aacute; tr&igrave;nh x&aacute;c thực bằng c&aacute;ch thực hiện một t&iacute;nh to&aacute;n với chi ph&iacute; cao, được gọi l&agrave; qu&aacute; tr&igrave;nh khai th&aacute;c. Mục ti&ecirc;u của việc khai th&aacute;c l&agrave;:</p> <ul> <li style="text-align: justify;">X&aacute;c minh t&iacute;nh hợp lệ của một giao dịch, trong đ&oacute; c&oacute; c&aacute;c h&agrave;nh vi lặp chi.</li> <li style="text-align: justify;">Tạo ra c&aacute;c đơn vị tiền kỹ thuật số mới bằng c&aacute;ch thưởng cho c&aacute;c thợ mỏ đ&atilde; thực hiện nhiệm vụ trước đ&oacute;.</li> </ul> <p>Qu&aacute; tr&igrave;nh n&agrave;y diễn ra cơ bản như sau:</p> <ul> <li>C&aacute;c giao dịch được gửi đi v&agrave; c&aacute;c thợ mỏ tiến h&agrave;nh x&aacute;c minh t&iacute;nh hợp lệ của c&aacute;c giao dịch;</li> <li>C&aacute;c giao dịch hợp lệ sẽ được lựa chọn để đ&oacute;ng g&oacute;i th&agrave;nh một <a href="https://tek4.vn/khoi-va-chuoi-khoi-trong-blockchain/">khối</a>;</li> <li>Thực hiện Proof of Work để c&oacute; thể th&ecirc;m c&aacute;c khối đ&atilde; được x&aacute;c minh v&agrave;o chuỗi khối blockchain c&ocirc;ng khai.</li> </ul> <p><img class="size-full wp-image-5216 aligncenter" style="display: block; margin-left: auto; margin-right: auto;" src="https://tek4.vn/wp-content/uploads/2019/10/Proof-of-Work_2.jpeg" alt="Proof of Work" width="620" height="300" /></p> <p style="text-align: justify;">Với c&aacute;ch thức n&agrave;y, c&aacute;c thợ mỏ sẽ c&oacute; động lực để x&aacute;c minh t&iacute;nh đ&uacute;ng đắn của c&aacute;c giao dịch được thực hiện, bởi chỉ c&oacute; những giao dịch hợp lệ mới được c&aacute;c th&agrave;nh vi&ecirc;n kh&aacute;c đồng thuận v&agrave; chấp nhận. Nếu một thợ mỏ bỏ qua việc x&aacute;c nhận, hoặc x&aacute;c nhận v&ocirc; tội vạ th&igrave; khi tạo được khối qua Proof of Work cũng bị c&aacute;c n&uacute;t kh&aacute;c trong mạng từ chối, do đ&oacute; sẽ mất đi to&agrave;n bộ chi ph&iacute; bỏ ra để t&iacute;nh to&aacute;n cho bằng chứng c&ocirc;ng việc (chi ph&iacute; n&agrave;y thường rất lớn v&agrave; đ&ograve;i hỏi rất nhiều năng lượng cũng như năng lực t&iacute;nh to&aacute;n của phần cứng). Ngược lại, khi một khối được chấp thuận th&igrave; người đầu ti&ecirc;n khai th&aacute;c được khối sẽ nhận được một phần thưởng tương ứng (hiện nay l&agrave; 12.5 BTC đối với Bitcoin v&agrave; 5 ETH đối với Ethereum). Ch&iacute;nh cơ chế tưởng thưởng n&agrave;y sẽ khuyến kh&iacute;ch người chơi kh&ocirc;ng gian lận (bởi gian lận sẽ bị cả mạng b&aacute;c bỏ v&agrave; mất t&agrave;i nguy&ecirc;n t&iacute;nh to&aacute;n v&ocirc; &iacute;ch) v&agrave; x&aacute;c minh cho c&aacute;c giao dịch hợp lệ một c&aacute;ch ch&iacute;nh x&aacute;c v&agrave; nhanh ch&oacute;ng.</p> <p style="text-align: justify;">Tất cả c&aacute;c thợ mỏ cạnh tranh để trở th&agrave;nh người đầu ti&ecirc;n t&igrave;m ra lời giải cho một vấn đề to&aacute;n học li&ecirc;n quan đến khối cần x&aacute;c nhận, một vấn đề c&oacute; t&iacute;nh bất đối xứng, dễ kiểm chứng nhưng lại kh&oacute; thực hiện, hay n&oacute;i c&aacute;ch kh&aacute;c l&agrave; kh&ocirc;ng thể giải quyết được theo bất kỳ c&aacute;ch n&agrave;o kh&aacute;c ngo&agrave;i việc v&eacute;t cạn với một x&aacute;c suất nhất định.</p> <p style="text-align: justify;">Từ quan điểm kỹ thuật, một b&agrave;i to&aacute;n ph&ugrave; hợp nhất với y&ecirc;u cầu của quy tr&igrave;nh khai th&aacute;c tr&ecirc;n đ&oacute; l&agrave; t&iacute;nh to&aacute;n gi&aacute; trị nghịch đảo của một h&agrave;m băm: bằng c&aacute;ch x&aacute;c định một số ngẫu nhi&ecirc;n (nonce), m&agrave; gi&aacute; trị băm của n&oacute; khi kết hợp với khối dữ liệu cần x&aacute;c minh nhỏ hơn một ngưỡng nhất định. Ngưỡng n&agrave;y, được gọi l&agrave; độ kh&oacute;, v&agrave; l&agrave; yếu tố quyết định t&iacute;nh chất cạnh tranh của qu&aacute; tr&igrave;nh khai th&aacute;c. Tham số n&agrave;y c&agrave;ng cao, th&igrave; khối lượng t&iacute;nh to&aacute;n trung b&igrave;nh cần thiết để tạo một khối mới c&agrave;ng cao.</p> <p style="text-align: justify;">Gi&aacute; trị n&agrave;y gi&uacute;p điều chỉnh chi ph&iacute; tạo khối, th&uacute;c đẩy c&aacute;c thợ mỏ n&acirc;ng cao hiệu quả của hệ thống khai th&aacute;c để duy tr&igrave; c&acirc;n bằng kinh tế t&iacute;ch cực. C&aacute;c tham số thường được cập nhật thường xuy&ecirc;n, chẳng hạn với Bitcoin l&agrave; khoảng 14 ng&agrave;y một lần để đảm bảo thời gian tạo một khối mới trung b&igrave;nh l&agrave; 10 ph&uacute;t, với Ethereum n&oacute; được cập nhật li&ecirc;n tục sau mỗi khối.</p> <p style="text-align: justify;">Chẳng hạn x&eacute;t v&iacute; dụ sau:</p> <pre>hash(X) = hash('test') = 0x0f = 15 &gt; 10 hash(X+1) = hash('test1') = 0xff = 255 &gt; 10 hash(X+2) = hash('test2') = 0x09 = 9 &lt; 10</pre> <p style="text-align: justify;">Ở đ&acirc;y độ kh&oacute; của việc t&iacute;nh to&aacute;n l&agrave; 1 (1 chữ số 0 ở đầu), gi&aacute; trị nonce thỏa m&atilde;n t&igrave;m được l&agrave; nonce=2 được nối với khối dữ liệu X l&agrave; chuỗi "test". Thợ mỏ sẽ t&igrave;m c&aacute;ch để t&igrave;m được gi&aacute; trị nonce n&agrave;y bằng c&aacute;ch v&eacute;t cạn lần lượt c&aacute;c gi&aacute; trị c&oacute; thể c&oacute;.</p> <p style="text-align: justify;">Khi độ kh&oacute; c&agrave;ng nhỏ, việc v&eacute;t cạn c&agrave;ng dễ. Bởi ch&uacute;ng ta t&igrave;m 1 số nhỏ hơn 1000 sẽ kh&oacute; khăn hơn rất nhiều l&agrave; t&igrave;m một số nhỏ hơn 1.000.000. V&agrave; do, gi&aacute; trị băm lu&ocirc;n c&oacute; k&iacute;ch thước cố định đối với mọi khối dữ liệu v&agrave;o. V&igrave; vậy, nếu y&ecirc;u cầu t&igrave;m ra số c&oacute; c&agrave;ng nhiều bit 0 ở đầu cũng c&oacute; nghĩa l&agrave; t&igrave;m ra một đ&aacute;p &aacute;n trong đ&oacute; kết quả băm nhỏ hơn 1 số rất nhỏ, v&agrave; điều n&agrave;y l&agrave; rất kh&oacute; so với t&igrave;m 1 số nhỏ hơn 1 số rất lớn (&iacute;t b&iacute;t 0 ở đầu).</p> <p><img class="aligncenter wp-image-5215" style="display: block; margin-left: auto; margin-right: auto;" src="https://tek4.vn/wp-content/uploads/2019/10/proof-of-work.jpg" alt="Độ kh&oacute;" width="567" height="426" /></p> <p style="text-align: justify;">Bằng chứng về c&ocirc;ng việc kh&ocirc;ng chỉ được sử dụng trong blockchain Bitcoin hay Ethereum m&agrave; c&ograve;n trong nhiều blockchain kh&aacute;c. Một số biến thể của bằng chứng c&ocirc;ng việc c&oacute; thể kh&aacute;c với nguy&ecirc;n l&yacute; chung ở tr&ecirc;n, do c&aacute;c đặc t&iacute;nh kỹ thuật được tạo ri&ecirc;ng cho từng blockchain. Tuy nhi&ecirc;n, c&aacute;c chức năng cơ bản về x&aacute;c minh v&agrave; tạo khối thường vẫn đảm bảo giống như tr&ecirc;n.</p> <p style="text-align: justify;">Về cơ bản trong c&aacute;c hệ thống Proof of Work, c&aacute;c thợ mỏ sỡ hữu quyền lực v&agrave; c&oacute; vai tr&ograve; cực kỳ quan trọng trong hệ thống blockchain v&agrave; nếu họ chọn gian lận để trục lợi c&aacute; nh&acirc;n, họ c&oacute; thể g&acirc;y ra sự t&agrave;n ph&aacute; trong hệ thống.</p> <p style="text-align: justify;">Để giảm thiểu điều đ&oacute;, blockchain sử dụng cơ chế l&yacute; thuyết tr&ograve; chơi để giữ cho hệ thống an to&agrave;n d&ugrave; c&oacute; rất nhiều gian lận xảy ra. Điều n&agrave;y đặc biệt quan trọng để giữ vững sự ổn định v&agrave; hoạt động hiệu quả của blockchain.</p> <p style="text-align: justify;">Nếu kh&ocirc;ng c&oacute; c&aacute;c cơ chế thưởng phạt theo l&yacute; thuyết tr&ograve; chơi mọi người sẽ c&oacute; động cơ để gian lận. Chẳng hạn, ch&uacute;ng ta rất quen thuộc với hệ thống chia sẻ file <a href="https://en.wikipedia.org/wiki/Torrent">Torrent</a>. Đ&acirc;y l&agrave; một trong những hệ thống chia sẻ file ngang h&agrave;ng phổ biến nhất tr&ecirc;n thế giới. Khi sử dụng torrent, người d&ugrave;ng c&oacute; hai vai tr&ograve;: tải xuống v&agrave; ph&aacute;t t&aacute;n (seeding). Sau khi tải xuống một tệp, họ c&oacute; nghĩa vụ chia sẻ n&oacute; qua mạng th&ocirc;ng qua một phương thức gọi l&agrave; seeding. Tuy nhi&ecirc;n, người d&ugrave;ng lại kh&ocirc;ng nhận được bất cứ phần thưởng n&agrave;o cho việc ph&aacute;t t&aacute;n tệp tin, v&agrave; do đ&oacute; họ từ chối việc ph&aacute;t t&aacute;n n&agrave;y. N&oacute;i c&aacute;ch kh&aacute;c, hầu hết người d&ugrave;ng Torrent đều "lừa đảo" v&igrave; họ kh&ocirc;ng thực hiện việc ph&aacute;t t&aacute;n tập tin của m&igrave;nh. Họ c&oacute; động cơ l&agrave;m điều n&agrave;y v&igrave; hệ thống kh&ocirc;ng c&oacute; m&ocirc; h&igrave;nh trừng phạt theo c&aacute;ch thức của blockchain.</p> <p style="text-align: justify;">Về mặt l&yacute; thuyết, c&aacute;c thợ mỏ c&oacute; thể x&aacute;c thực cho c&aacute;c giao dịch kh&ocirc;ng hợp lệ hoặc lặp chi, điều n&agrave;y c&oacute; thể dẫn đến ph&aacute; hủy hệ thống.</p> <p>Nhưng c&aacute;c thợ mỏ lại kh&ocirc;ng l&agrave;m như vậy. Blockchain được thiết kế để trở th&agrave;nh một trạng th&aacute;i c&acirc;n bằng Nash tự thực thi.</p> <p style="text-align: justify;">Nếu một thợ mỏ tạo ra một khối kh&ocirc;ng hợp lệ th&igrave; những người kh&aacute;c sẽ từ chối n&oacute; theo một quy tắc đ&atilde; được x&aacute;c định trong cơ chế của blockchain. Bất kỳ khối n&agrave;o được khai th&aacute;c tr&ecirc;n đỉnh của một khối kh&ocirc;ng hợp lệ sẽ trở th&agrave;nh một khối kh&ocirc;ng hợp lệ. Sử dụng quy tắc n&agrave;y, c&aacute;c thợ mỏ sẽ đơn giản bỏ qua khối kh&ocirc;ng hợp lệ v&agrave; tiếp tục khai th&aacute;c tr&ecirc;n chuỗi ch&iacute;nh. Kh&ocirc;ng c&oacute; người khai th&aacute;c n&agrave;o muốn khai th&aacute;c tr&ecirc;n một chuỗi kh&ocirc;ng hợp lệ bởi việc l&agrave;m của họ sẽ v&ocirc; &iacute;ch. V&agrave; cho d&ugrave; một nh&oacute;m cố gắng phối hợp để cố t&igrave;nh khai th&aacute;c khối n&agrave;y th&igrave; phần lớn mạng cũng kh&ocirc;ng chấp nhận n&oacute;. Theo l&yacute; thuyết tr&ograve; chơi, nếu phần lớn thợ mỏ kh&ocirc;ng thay đổi trạng th&aacute;i của họ, th&igrave; thiểu số sẽ kh&ocirc;ng c&oacute; bất kỳ động lực n&agrave;o để ở lại trạng th&aacute;i mới. Bởi vậy m&agrave; chẳng c&oacute; l&iacute; do g&igrave; để một thợ mỏ d&agrave;nh tất cả sức mạnh t&iacute;nh to&aacute;n để đối mặt với nguy cơ bị tẩy chay một c&aacute;ch v&ocirc; &iacute;ch.</p> <p style="text-align: justify;">Theo l&yacute; thuyết tr&ograve; chơi, chuỗi ch&iacute;nh tr&ecirc;n blockchain cũng l&agrave; một điểm Schelling tr&ecirc;n g&oacute;c độ của người d&ugrave;ng, v&agrave; chuỗi d&agrave;i nhất th&igrave; c&oacute; khả năng đ&ocirc;ng người d&ugrave;ng nhất, v&igrave; vậy một điểm rất tự nhi&ecirc;n m&agrave; hầu hết mọi người d&ugrave;ng đều sẽ sử dụng n&oacute;. Ngo&agrave;i ra n&oacute; đơn giản hơn khi sử dụng. Việc chuyển qua một chuỗi mới hơn kh&ocirc;ng cần thiết v&agrave; l&agrave;m phức tạp mọi thứ.</p> <h2 style="text-align: justify;">Nhược điểm của Proof of Work</h2> <p style="text-align: justify;">Tuy nhi&ecirc;n, c&oacute; hai nhược điểm ch&iacute;nh đối với hệ thống Proof of Work. Đầu ti&ecirc;n l&agrave; ch&uacute;ng l&atilde;ng ph&iacute; năng lượng, do đ&oacute;, g&acirc;y hại cho m&ocirc;i trường. Khi m&aacute;y t&iacute;nh thực hiện c&ocirc;ng việc t&iacute;nh to&aacute;n lu&ocirc;n đ&ograve;i hỏi sử dụng điện năng. Điều n&agrave;y c&oacute; thể g&acirc;y l&atilde;ng ph&iacute; một lượng ti&ecirc;u thụ điện năng cực lớn.</p> <p style="text-align: justify;">Tr&ecirc;n thực tế, đ&acirc;y l&agrave; một trong những vấn đề bị chỉ tr&iacute;ch nhiều nhất của Bitcoin v&agrave; c&aacute;c hệ thống tiền điện tử n&oacute;i chung. Một nh&agrave; nghi&ecirc;n cứu người H&agrave; Lan t&ecirc;n Alex de Vries đ&atilde; xuất bản một b&agrave;i luận v&agrave;o th&aacute;ng 5 năm 2018 ước t&iacute;nh rằng việc khai th&aacute;c Bitcoin l&agrave;m ti&ecirc;u thụ khoảng 24 Terawatt điện mỗi năm, gần bằng lượng điện được sử dụng tại Ireland.</p> <p style="text-align: justify;">Hạn chế lớn thứ hai đối với Proof of Work l&agrave; về an to&agrave;n. C&aacute;c blockchain sử dụng Proof of Work chỉ cung cấp đầy đủ t&iacute;nh an to&agrave;n của n&oacute; khi mạng lưới c&oacute; đủ lớn để c&aacute;c thợ mỏ cạnh tranh để nhận phần thưởng khối. Tr&ecirc;n c&aacute;c mạng lưới nhỏ, tin tặc vẫn c&oacute; thể c&oacute; được phần lớn sức mạnh t&iacute;nh to&aacute;n của mạng lưới một c&aacute;ch đơn giản v&agrave; dễ d&agrave;ng thực hiện c&aacute;c tấn c&ocirc;ng số đ&ocirc;ng hoặc tấn c&ocirc;ng 51%.</p> <p style="text-align: justify;">Hiện nay, việc thao t&uacute;ng blockchain Bitcoin thực tế l&agrave; kh&ocirc;ng thể. Tuy nhi&ecirc;n, c&oacute; h&agrave;ng loạt c&aacute;c blockchain sử dụng Proof of Work nhỏ hơn&nbsp; vẫn cực kỳ dễ bị tấn c&ocirc;ng 51%. Chẳng hạn ch&uacute;ng ta sẽ chỉ phải bỏ ra khoảng v&agrave;i trăm đ&ocirc; la một giờ để tấn c&ocirc;ng giao thức Proof of Work tr&ecirc;n NiceHash, một trang web cho ph&eacute;p người d&ugrave;ng thu&ecirc; năng lực băm để khai th&aacute;c tiền điện tử.</p> <p><img class=" wp-image-5220 aligncenter" style="display: block; margin-left: auto; margin-right: auto;" src="https://tek4.vn/wp-content/uploads/2019/10/51-attack.jpg" alt="51 attack" width="550" height="344" /></p> <p>Ch&iacute;nh v&igrave; những nhược điểm n&agrave;y, hệ thống Proof of Stake ra đời.</p> <h2>Proof of Stake</h2> <p style="text-align: justify;">Theo l&yacute; thuyết x&aacute;c suất thống k&ecirc;, ch&uacute;ng ta biết rằng, trong một tr&ograve; chơi xổ số, theo x&aacute;c suất, nếu A c&oacute; nhiều v&eacute; hơn B, anh ta c&oacute; nhiều khả năng gi&agrave;nh chiến thắng hơn.</p> <p style="text-align: justify;">Điều n&agrave;y rất giống với những g&igrave; diễn ra với Proof of Work ở tr&ecirc;n:</p> <p style="text-align: justify;">Trong Proof of Work, nếu A c&oacute; sức mạnh v&agrave; năng lực t&iacute;nh to&aacute;n nhiều hơn B - v&agrave; do đ&oacute; c&oacute; thể tạo ra nhiều c&ocirc;ng việc hơn - anh ta c&oacute; nhiều khả năng gi&agrave;nh chiến thắng (để khai th&aacute;c khối tiếp theo).</p> <p style="text-align: justify;">Xuất ph&aacute;t từ &yacute; tưởng n&agrave;y, ch&uacute;ng ta sẽ nhận thấy một điều rằng:</p> <p style="text-align: justify;">Hẳn nhi&ecirc;n nếu A c&oacute; nhiều cổ phần hơn B, nghĩa l&agrave; anh ta c&oacute; nhiều khả năng gi&agrave;nh chiến thắng hơn (để khai th&aacute;c khối tiếp theo).</p> <p style="text-align: justify;">Đ&oacute; l&agrave; &yacute; tưởng ch&iacute;nh của Proof of Stake tức l&agrave; thay thế năng lực t&iacute;nh to&aacute;n của PoW bằng cổ phần đ&oacute;ng g&oacute;p cho mạng lưới. Cổ phần đ&oacute; tương đương với một lượng tiền tệ m&agrave; một th&agrave;nh vi&ecirc;n sẵn s&agrave;ng kh&oacute;a n&oacute; lại trong một khoảng thời gian nhất định. Đổi lại, họ c&oacute; cơ hội tỷ lệ thuận với cổ phần của họ để trở th&agrave;nh người được chọn khối tiếp theo.</p> <p><img class=" wp-image-5218 aligncenter" style="display: block; margin-left: auto; margin-right: auto;" src="https://tek4.vn/wp-content/uploads/2019/10/proof-of-stake.jpg" alt="proof-of-stake" width="710" height="411" /></p> <p style="text-align: justify;">Mặc d&ugrave; quy tr&igrave;nh tổng thể của Proof of Stake vẫn giống như Proof of Work, tuy nhi&ecirc;n phương ph&aacute;p đạt được mục ti&ecirc;u cuối c&ugrave;ng của ch&uacute;ng ho&agrave;n to&agrave;n kh&aacute;c nhau. Trong POW, c&aacute;c thợ mỏ giải quyết c&aacute;c c&acirc;u đố kh&oacute; dưới dạng c&aacute;c vấn đề mật m&atilde; bằng c&aacute;ch sử dụng c&aacute;c t&agrave;i nguy&ecirc;n t&iacute;nh to&aacute;n của họ. C&ograve;n trong Proof of Stake, việc t&iacute;nh to&aacute;n kh&ocirc;ng hiệu quả được loại bỏ v&agrave; thay bằng một qu&aacute; tr&igrave;nh x&aacute;c nhận được thực hiện bởi những th&agrave;nh vi&ecirc;n x&aacute;c minh (validator). C&aacute;c validator kh&oacute;a lại một số Ether của họ như l&agrave; một cổ phần trong hệ sinh th&aacute;i. V&agrave; tiến h&agrave;nh đặt cược v&agrave;o c&aacute;c khối m&agrave; họ cảm thấy nhiều khả năng sẽ được th&ecirc;m v&agrave;o b&ecirc;n blockchain. Khi khối được th&ecirc;m v&agrave;o, người x&aacute;c minh sẽ nhận được phần thưởng khối tương ứng với cổ phần của họ.</p> <p style="text-align: justify;">Bằng chứng cổ phần thay thế qu&aacute; tr&igrave;nh khai th&aacute;c bởi qu&aacute; tr&igrave;nh x&aacute;c nhận. Qu&aacute; tr&igrave;nh n&agrave;y diễn ra cụ thể như sau:</p> <ul> <li style="text-align: justify;">X&aacute;c định số cổ phần đặt cược v&agrave; kh&oacute;a số cổ phần n&agrave;y lại (tức l&agrave; nếu qu&aacute; tr&igrave;nh đặc cược chưa th&agrave;nh c&ocirc;ng c&aacute;c validator sẽ kh&ocirc;ng sử dụng được số cổ phần n&agrave;y).</li> <li style="text-align: justify;">X&aacute;c nhận c&aacute;c giao dịch v&agrave; đ&oacute;ng n&oacute; th&agrave;nh c&aacute;c khối, đồng thời đặt cược cổ phần đ&atilde; kh&oacute;a v&agrave;o khối n&agrave;y.</li> <li style="text-align: justify;">Nếu khối được mạng lưới chấp nhận v&agrave; th&ecirc;m v&agrave;o blockchain, th&igrave; người x&aacute;c nhận sẽ nhận được phần thưởng tương ứng với tiền đặt cược của họ.</li> </ul> <p>Nh&igrave;n giao thức n&agrave;y c&oacute; vẻ rất ổn, n&oacute; cũng c&oacute; c&aacute;c cơ chế khuyến kh&iacute;ch c&aacute;c validator hoạt động đ&uacute;ng giao thức. Tuy nhi&ecirc;n, nếu để &yacute; ch&uacute;ng ta sẽ thấy một vấn đề như sau:</p> <p><img class="aligncenter wp-image-5214" src="https://tek4.vn/wp-content/uploads/2019/10/Proof-of-Stake.png" alt="Đặt cược kh&ocirc;ng bao giờ thua" width="718" height="236" /></p> <p style="text-align: justify;">Một validator c&oacute; thể lựa chọn đặt tiền cược v&agrave;o nhiều khối kh&aacute;c nhau, v&agrave; điều n&agrave;y l&agrave;m cho mạng trở l&ecirc;n rất dễ ph&acirc;n nh&aacute;nh. Bởi c&aacute;c validator trong trường hợp n&agrave;y sẽ chẳng mất g&igrave;, n&ecirc;n anh ta c&oacute; thể đặt cược v&agrave;o mọi phương &aacute;n c&oacute; thể. Đ&acirc;y gọi l&agrave; vấn đề đ&aacute;nh cược kh&ocirc;ng bao giờ thua. Điều n&agrave;y kh&ocirc;ng xảy ra trong Proof of Work. Bởi sẽ thật v&ocirc; nghĩa khi một người bỏ ra qu&aacute; nhiều t&agrave;i nguy&ecirc;n tr&ecirc;n một khối bị mạng từ chối.</p> <p style="text-align: justify;">Để ứng dụng được Proof of Stake trong blockchain, ch&uacute;ng ta cần phải giải quyết được vấn đề n&agrave;y. C&oacute; một số phương ph&aacute;p để khắc phục vấn đề n&agrave;y, chẳng hạn như sử dụng kết hợp PoW-PoS như trong blockchain Decred. Hoặc sử dụng cơ chế trừng phạt trong <a href="https://tek4.vn/ly-thuyet-tro-choi-va-ung-dung-trong-blockchain/">l&yacute; thuyết tr&ograve; chơi</a> được sử dụng trong giao thức Casper.</p> <p style="text-align: justify;">Nhắc lại một ch&uacute;t về l&yacute; thuyết tr&ograve; chơi, ch&uacute;ng ta biết rằng, ngo&agrave;i việc tưởng thưởng th&igrave; c&aacute;c h&agrave;nh vi trừng phạt cũng gi&uacute;p th&uacute;c đẩy động lực minh bạch v&agrave; khuyến kh&iacute;ch người d&ugrave;ng. V&agrave; ở đ&acirc;y, để giải quyết vấn đề tr&ograve; chơi kh&ocirc;ng bao giờ thua ở tr&ecirc;n, ch&uacute;ng ta sử dụng cơ chế trừng phạt. Cơ chế n&agrave;y được đề xuất trong giao thức Casper dự kiến sẽ được cộng đồng Ethereum sử dụng trong tương lai để thay thế cho Proof of Work.</p> <p style="text-align: justify;">Casper đ&atilde; thực hiện một quy tr&igrave;nh theo đ&oacute; c&aacute;c th&agrave;nh vi&ecirc;n trong mạng c&oacute; thể trừng phạt tất cả c&aacute;c yếu tố độc hại. Quy tr&igrave;nh hoạt động của n&oacute; vẫn tương tự như Proof of Stake cơ bản, nhưng n&oacute; bổ sung th&ecirc;m cơ chế trừng phạt c&aacute;c h&agrave;nh vi độc hại:</p> <ul> <li>C&aacute;c validator đ&oacute;ng g&oacute;p một phần Ether của m&igrave;nh l&agrave;m cổ phần đặt cược.</li> <li style="text-align: justify;">Sau đ&oacute;, họ sẽ bắt đầu x&aacute;c nhận c&aacute;c khối. C&oacute; nghĩa l&agrave;, khi họ ph&aacute;t hiện ra một khối m&agrave; họ nghĩ c&oacute; thể được th&ecirc;m v&agrave;o chuỗi, họ sẽ x&aacute;c nhận n&oacute; bằng c&aacute;ch đặt cược v&agrave;o n&oacute;. Nếu khối được nối th&ecirc;m v&agrave;o blockchain, th&igrave; người x&aacute;c nhận sẽ nhận sẽ nhận được phần thưởng tương ứng với tiền đặt cược của họ.</li> <li style="text-align: justify;">Tuy nhi&ecirc;n, nếu một người được x&aacute;c minh l&agrave; thực hiện h&agrave;nh động theo c&aacute;ch độc hại chẳng hạn như cố gắng đặt cược v&agrave;o hai khối kh&aacute;c nhau, th&igrave; họ sẽ ngay lập tức bị trừng phạt v&agrave; to&agrave;n bộ số cổ phần của họ đ&oacute;ng g&oacute;p sẽ bị mất.</li> </ul> <p style="text-align: justify;">Bất cứ ai h&agrave;nh động theo c&aacute;ch độc hại trong mạng lưới sẽ bị trừng phạt ngay lập tức bằng c&aacute;ch cắt cổ phần. Đ&acirc;y l&agrave; điểm kh&aacute;c biệt của Casper đối với hầu hết c&aacute;c giao thức POS kh&aacute;c. N&oacute; gi&uacute;p loại bỏ c&aacute;c yếu tố độc hại tr&ecirc;n mạng lưới.</p> <p><img class=" wp-image-5219 aligncenter" style="display: block; margin-left: auto; margin-right: auto;" src="https://tek4.vn/wp-content/uploads/2019/10/Đặt-cược-cổ-phần-trong-Proof-of-Stake.png" alt="Đặt cược cổ phần" width="657" height="387" /></p> <p>Hiện nay c&oacute; rất nhiều hệ thống blockchain sử dụng giao thức Proof of Stake thuần t&uacute;y, chẳng hạn như Nxt v&agrave; Blackcoin.</p> <p style="text-align: justify;">Proof of Stake kh&ocirc;ng đ&ograve;i hỏi phải sử dụng sức mạnh t&iacute;nh to&aacute;n lớn v&igrave; c&aacute;c yếu tố duy nhất ảnh hưởng đến cơ hội tạo khối của c&aacute;c validator l&agrave; tổng số cổ phần của họ v&agrave; mức độ phức tạp hiện tại của mạng. V&igrave; vậy, việc chuyển đổi từ PoW sang PoS n&agrave;y c&oacute; thể cung cấp c&aacute;c lợi &iacute;ch sau:</p> <ul> <li>Tiết kiệm năng lượng v&agrave; năng lực t&iacute;nh to&aacute;n;</li> <li style="text-align: justify;">Tăng t&iacute;nh an to&agrave;n cho mạng lưới khi việc thực hiện c&aacute;c cuộc tấn c&ocirc;ng trở n&ecirc;n đắt đỏ hơn: khi một hacker muốn mua 51% cổ phần của to&agrave;n mạng để tiến h&agrave;nh tấn c&ocirc;ng l&ecirc;n mạng lưới, th&igrave; theo c&aacute;c nguy&ecirc;n l&yacute; về thị trường, gi&aacute; th&agrave;nh cổ phẩn sẽ tăng rất nhanh, điều n&agrave;y l&agrave;m cho kẻ tấn c&ocirc;ng bị thiệt hại nặng nề hơn.</li> </ul> <p style="text-align: justify;">Ngo&agrave;i ra, Proof of Stake đặc biệt l&agrave; giao thức Casper đảm bảo an to&agrave;n cho hệ thống dựa tr&ecirc;n sự đồng thuận về kinh tế, v&agrave; sẽ tạo động lực tăng tốc sự đồng thuận l&agrave;m tăng tốc qu&aacute; tr&igrave;nh hoạt động của to&agrave;n mạng n&oacute;i chung.</p>