Cơ chế đồng thuận của Blockchain

Lina Network

|
Tháng Bảy 24, 2020

Trước khi đi vào từng ứng dụng cụ thể của Blockchain trong cuộc sống, chúng ta sẽ cùng tìm hiểu về cơ chế đồng thuận, chìa khóa làm nên các tính năng nổi bật của Blockchain – tính bảo mật, minh bạch, liên kết v.v. so với nền tảng internet hiện tại cũng như trong hệ thống thanh toán ngân hàng.

Vì sao nói Blockchain là nền tảng lưu trữ bảo mật nhất hiện nay?

Ngày xưa ở Việt Nam, vua là người có quyền hành tối cao, là người quyết định cuối cùng cho mọi vấn đề liên quan trong đất nước. Đồng thời, Vua cũng là người phân quyền cho những người có chức vụ nhỏ hơn ông và có quyền hạn đặc biệt chỉ sau ông như tể tướng, tướng quân, quan tỉnh, quan huyện… Vậy muốn lật đổ 1 vương triều thì kẻ địch nên lật đổ ai? Có phải toàn bộ các quan tỉnh, toàn bộ dân chúng, toàn bộ các tướng hay chỉ cần lật đổ và tiêu diệt mỗi ông vua?

Mạng lưới internet truyền thống sẽ hoạt động một cách giống như thời phong kiến ở Việt Nam, máy chủ sẽ đại diện cho Vua, là nơi đầu não của toàn mạng lưới, lưu trữ thông tin, phân quyền hạn đến các máy tính khác. Nếu tin tặc muốn lấy thông tin của 1 triệu người, bọn chúng sẽ chỉ cần đánh vào máy chủ có quyền hạn cao nhất lưu trữ thông của 1 triệu người này, nói cách khác là đánh vào ông Vua của mạng lưới mà không nhất thiết phải vào từng máy tính một.

Blockchian consensus

Nhìn thấy được lỗ hổng này, Blockchain ra đời như một phương pháp để thông tin người dùng được an toàn hơn. Trong mạng lưới của Blockchain sẽ không tồn tại duy nhất 1 ông Vua, mà sẽ tồn tại hàng ngàn ông Vua có quyền hạn ngang bằng nhau. Nghĩa là, mọi vấn đề xảy ra trong mạng lưới sẽ phải được các ông ấy họp và bầu chọn, tức 51% phiếu tán thành thì lệnh mới được thực thi, và không một ông Vua nào có thể ra quyết định 1 mình được, ta gọi đó là cơ chế đồng thuận (Consensus Mechanism).

Cơ chế đồng thuận trong Blockchain

Cơ chế đồng thuận là một cơ chế giúp các nhà giao dịch đưa ra các thỏa thuận mà không gặp vấn đề gì về lợi ích, mong muốn ảnh hưởng của các nhóm thiểu số. Đồng thời, đảm bảo rằng 1 nhóm nào đó không thể dùng quyền của mình để áp đặt hay điều khiển cả một tổ hợp người dùng trên cùng mạng lưới.

Cơ chế đồng thuận của Blockchain

Cơ chế đồng thuận chịu trách nhiệm duy trì tính toàn vẹn và bảo mật của hệ thống phân tán. Khi một giao dịch được diễn ra, hệ thống trên Blockchain sẽ gửi thông tin đến các nút cá nhân. Giao dịch chỉ được diễn ra khi nhận được nhiều sự đồng thuận hơn từ các nút cùng trong mạng lưới đó.

Hiện nay, nền tảng blockchain có hai cơ chế đồng thuận chính: đồng thuận bằng Bằng chứng công việc (Proof of Work) và Bằng chứng cổ phần (Proof of Stake).

Bằng chứng công việc (Proof of Work)

Proof of work (PoW) là gì?

Bitcoin mining is the proof of work

Proof-of-Work hay PoW, được đề xuất bởi Satoshi. Ông đã giải quyết được vấn đề của các nhà mật mã học tồn tại từ vài chục năm trước. Cách giải quyết vấn đề đồng thuận ko phải bằng phương pháp mật mã, mà là sự kết hợp với sức mạnh phần cứng. Trong hệ thống Bitcoin cũng như Ethereum PoW dùng để quyết định nút nào “giành” được quyền thêm một block mới vào blockchain hiện tại (xác minh giao dịch).

PoW là sự ghi nhận công sức bỏ ra để hoàn thành công việc. Nút nào hoàn thành công việc trước thì được quyền thêm block mới vào blockchain. Công việc ở đây là tìm một giá trị nonce bất kì thỏa mãn điều kiện nào đó. Ví dụ:

hash(nonce) < 000000000000000000285a375f9d33e17…

Ở đây, hash là một hàm băm mật mã, nonce là một giá trị ngẫu nhiên được tìm ra sao cho hash(nonce) nhỏ hơn một ngưỡng nào đó. Giá trị 000000000000000000285a375f9d33e17… là ví dụ cho một ngưỡng nào đó. Quá trình tìm ra giá trị nonce là một quá trình thử sai nhàm chán. Các nút thường sẽ bắt đầu với nonce = 0, 1, …, đến khi nào giá trị hash của nonce thoả điều kiện ngưỡng. Ví dụ bắt đầu với 18 số 0.

Vì là quá trình thử sai nhàm chán, nên năng lực tính toán của các nút rất quan trọng. Tốc độ của vi xử lý càng nhanh, thì tốc độ thử sai sẽ nhanh, và khả năng tìm ra nonce sẽ cao hơn. Khi một block mới được tìm thấy, nó sẽ được công bố trên toàn mạng để các nút khác kiểm tra. Nếu mọi tính toán, giao dịch trong block đó chính xác, các nút sẽ cập nhật vào blockchain đang lưu trữ cục bộ tại nút đó.

Vấn đề mâu thuẫn xảy ra là vì khoảng cách địa lý, cùng một thời điểm các nút sẽ lưu trữ 2 phiên bản blockchain khác nhau. Ví dụ như hình trên, các nước ở châu Mỹ đang có chuỗi blockchain là …P →A, còn các nước châu Á có chuỗi blockchain là …P →B. Việc mining lúc này vẫn diễn ra bình thường.

Sau đó, một block X mới được tìm thấy từ một nút ở khu vực châu Á đang lưu trữ chuỗi hiện tại là …P →B, và chuỗi blockchain sẽ được cập nhật lại là … P →B →X. Khi blockchain mới này được thông báo đến các nút ở khu vực châu Mỹ, lúc này có sự mâu thuẫn. Chuỗi …P →A và chuỗi … P →B →X. Theo luật của PoW, chuỗi blockchain nào dài hơn thì sẽ thành chuỗi chính. Do đó, các nút ở châu Mỹ phải cập nhật lại chuỗi blockchain mới là … P →B →X. Khi đó sự thống nhất của chuỗi blockchain trên hệ thống được đảm bảo.

Sử dụng PoW liệu có công bằng?

Có người nói rằng sẽ không công bằng khi giả sử 1 nút có năng lực tính toán rất cao và 1 nút có năng lực tính toán rất thấp. Ví dụ A có 100 máy S9 và B có 1 máy S9. Vậy lúc nào A cũng sẽ tìm được nonce trước B là đúng hay sai? Điều này không đúng. Vì bài toán tìm nonce ở mỗi nút là khác nhau nên giá trị nonce tìm được cũng khác nhau. Cùng xem ví dụ sau.

A và B mỗi người được giao một bể đầy bong bóng khác nhau; trong mỗi bể đều có 1 bong bóng có chứa chìa khoá bên trong; ai tìm được chìa khoá trong bể của mình trước là người thắng cuộc. Mặc dù A có tốc độ tìm bóng nhanh gấp 100 lần B, nhưng khả năng bốc được quả bóng chứa chìa khoá là ngẫu nhiên, nên có thể B sẽ may mắn hơn bốc được bóng có chìa khoá sớm, và tìm được chìa khoá trước A.

Vấn đề của PoW

PoW giải quyết tốt vấn đề đồng thuận. Tuy nhiên, PoW lại vướng vào 2 vấn đề khác:

  • Tiêu tốn năng lượng điện và cuộc chạy đua phần cứng
  • Tiềm ẩn nguy cơ tấn công 51%

Tấn công 51% là gì?

Như ta đã biết, Pow là cuộc chạy đua giành quyền thêm một block mới vào blockchain, và các giao dịch được ghi trong block đó coi như là được xác nhận. Khi một nút có năng lực tính toán chiếm phần lớn hệ thống (>50%) thì có khả năng kiểm soát việc tạo ra các block mới.

51 attack in blockchain

Có hai nguy cơ nguy hiểm đe dọa đến hệ thống như sau:

  • Tấn công từ chối dịch vụ
  • Tấn công double spending

Có dễ dàng tấn công 51%?

Tấn công 51% hoàn toàn có thể xảy ra. Hiện nay, việc mining chủ yếu được thực hiện theo hình thức tập trung. Đó là các cá nhân sẽ tham gia chung một pool đào để tăng năng lực tính toán và tăng sức cạnh tranh.

Image for post

Như hình trên, chỉ cần 3 pools lớn là BTC.com, AntPool, và SlushPool liên thủ với nhau thì hoàn toàn có thể tạo ra cuộc tấn công 51%. Tuy nhiên, đây là hệ thống phi tập trung có sự tham gia của cả cộng đồng, việc tấn công có thể dẫn đến hậu quả đáng tiếc. Ví dụ cộng đồng có thể biểu quyết để loại bỏ sự tham gia của các máy đào từ các pool này. Đây như là một cách trừng phạt vì hành vi tấn công hệ thống.

PoW là thuật toán đồng thuận đầu tiên, nên tất nhiên có nhiều hạn chế. Những hệ thống với sự tham gia của rất nhiều nút như Bitcoin và Ethereum, thì ngoài vấn đề ảnh hưởng môi trường do tiêu thụ điện năng nhiều, PoW đáp ứng tốt với hệ thống hiện tại.

Bằng chứng cổ phần (Proof of Stake)

Đồng thuận Proof of Stake là một phương pháp thay thế trong việc quyết định ai sẽ là người được quyền bổ sung block mới và xác nhận trạng thái hiện thời của blockchain. Thay cho việc các miner sẽ cạnh tranh nhau trong việc tìm lời giải cho các bài toán, với Bằng chứng cổ phần, người tạo ra block tiếp theo sẽ được quyết định dựa theo một số quy trình dựa trên số lượng coin giữ trong ví (cổ phần - stake) của họ. Quy trình này tin tưởng vào việc những người nắm giữ nhiều cổ phần nhất sẽ đưa ra các quyết định hợp lý cho toàn bộ mạng lưới.

Đồng thuận Bằng chứng Cổ phần loại bỏ hao phí năng lượng cực lớn trong việc khai thác, tuy nhiên, việc không có sự tiêu tốn năng lượng đôi khi lại gây ra một vấn đề khác - còn gọi là “nothing at stake (cổ phần bằng 0)”. Với trường hợp một chuỗi được “fork” ra, các forger (thợ rèn) PoS (thuật ngữ “forging” được dùng để thay thế cho thuật ngữ “mining”) sẽ có cơ hội nhận được nhiều lợi ích, phần thưởng khi khai thác trên cả 2 chuỗi với chi phí không đáng kể. Đây là một vấn đề đáng ngại cho toàn bộ mạng lưới bởi mục đích chính của đồng thuận là để chỉ tồn tại 1 chuỗi duy nhất và tính duy nhất đó cũng chính là mục tiêu của cơ chế đồng thuận.

Không chỉ vậy, Bằng chứng Cổ phần còn có một vấn đề khác liên quan tới việc phân phối token. Không chỉ vậy, Bằng chứng Cổ phần còn có một vấn đề khác liên quan tới việc phân phối token. Các forger PoS, với chi phí vận hành cực thấp, không phải chịu sức ép về việc phải bán các đồng coin họ nhận được khi duy trì mạng lưới. Những người nắm giữ lượng cổ phần lớn khi tham gia vào mạng lưới Bằng chứng Cổ phần thường có xu hướng làm tăng số lượng cổ phần của họ trong tổng khối lượng lưu thông bởi họ thu được phần thưởng từ block và phí giao dịch từ người dùng trong mạng lưới.

The above are the basic technical characteristics of the blockchain which studied and synthesized from the Lina Network technical team. Let’s explore the application of this technology in the following article.

Nguồn: Kryptolight, Binance Academy