Advertisement
Thuật toán đồng thuận là một số chính sách điều khiển sự đồng thuận của một Blockchain.
Thuật toán đồng thuận là gì?
Đối với các cấu trúc truyền thống, các cơ quan trung ương là nơi giải quyết các vấn đề. Chính vì thế mà sự đồng thuận của các bộ phận nhỏ hơn không phải vấn đề quan trọng. Tuy nhiên trong hệ thống phi tập trung (Blockchain) thì ngược lại, từng bộ phận nhỏ (các giao điểm) đóng vai trò quan trọng.
Chúng vừa là máy chủ điều phối hoạt động của hệ thống, vừa là nơi lưu trữ các dữ liệu quan trọng. Để hệ thống hoạt động trơn tru, các giao điểm này phải trao đổi dữ liệu cho nhau và thiết lập sự đồng thuận. Đó là lý do thuật toán đồng thuận Blockchain ra đời.
Thuật toán đồng thuận (consensus algorithm) là cơ chế giúp cho các nút đạt đến sự đồng thuận trong một mạng lưới Blockchain.
Mặt khác, thuật toán đồng thuận có thể hiểu là một số chính sách điều khiển sự đồng thuận của một Blockchain. Các Blockchain được thiết kế như một mạng lưới hệ thống phân tán và không bị ràng buộc vào một cơ quan trung ương. Tuy nhiên, các nút phân tán phải đồng thuận về tính hợp lệ của những thanh toán giao dịch.
Thuật toán đồng thuận bảo vệ những quy tắc giao thức đang được tuân theo và bảo vệ rằng toàn bộ những thanh toán giao dịch diễn ra một cách đáng tin cậy. Khi đó những đồng Coin chỉ hoàn toàn được hoàn toàn tiêu tốn trong một lần thanh toán giao dịch.
Phân biệt thuật toán đồng thuận (consensus algorithm) và giao thức (Protocol)
Thuật toán đồng thuận và giao thức là sự bổ trợ cho nhau. Tuy nhiên nghĩa của hai khái niệm này không hoàn toàn giống nhau. Hiểu một cách đơn giản, giao thức là các luật lệ cơ bản của một Blockchain. Thuật toán đồng thuận là cách thức Blockchain thi hành các luật lệ cơ bản đó.
Blockchain luôn luôn được xây dựng dựa trên một giao thức và hệ thống hoạt động dựa trên giao thức đó. Vì vậy mà bất kỳ ai tham gia vào Blockchain đều bắt buộc phải tuân theo giao thức được đặt ra của Blockchain đó.
Thuật toán đồng thuận là yếu tố giúp cho hệ thống thực hiện đúng giao thức và đảm bảo ai tham gia vào hệ thống cũng phải tuân theo.
Cách thức hoạt động của thuật toán đồng thuận trong tiền mã hóa
Trong giao dịch tiền mã hóa, số dư của người dùng luôn phải được ghi lại trong cơ sở dữ liệu (Blockchain). Các giao điểm (các node) luôn phải duy trì một bản sao cơ sở dữ liệu giống nhau để thông tin không bị xung đột. Nếu không mạng lưới tiền mã hóa đó sẽ bị phá vỡ.
Mật mã công khai (Public Key Cryptography) đảm bảo rằng người dùng không thể tiêu tiền của nhau. Tuy nhiên cần phải có một nguồn xác thực duy nhất để những người tham gia mạng lưới có thể xác định tiền đã được chi hay chưa.
Để làm được điều này, cha đẻ của Bitcoin (Satoshi Nakamoto) đã đề xuất một hệ thống tên là Proof of Work (PoW), sau này khi thị trường tiền mã hóa phát triển hơn, các nhà phát triển đã phát hành nhiều hệ thống hơn (gọi là thuật toán) để duy trì hoạt động ổn định của Blockchain.
Các loại thuật toán đồng thuận tiêu biểu trong crypto
Proof of Work (PoW) – Bằng chứng công việc
PoW là thuật toán đồng thuận đầu tiên được áp dụng thành công cho công nghệ Blockchain. Hiện nay, nó vẫn được sử dụng bởi Bitcoin và một số đồng tiền điện tử khác như Ethereum, Litecoin, ZCash, Monero…
Thuật toán này đòi hỏi những người tham gia thực hiện các côg việc sâu về tính toán để nhận được nhiều phép thử hơn trên mỗi giây. Các tính toán của họ được xác minh bởi những người tham gia khác trong mạng lưới. Nói cách khác, khả năng tính toán Hashing function càng cao thì người tham gia càng có thể dễ dàng tìm ra giải pháp cho những khối tiếp theo.
Chuỗi băm (Hash) là một chuỗi ký tự và số ngẫu nhiên được tạo ra khi người dùng chạy dữ liệu thông qua một hàm băm. Nếu chạy đi chạy lại cùng một dữ liệu thì hàm băm nhận được luôn là một kết quả duy nhất. Nhưng nếu thay đổi một chi tiết nhỏ trong dữ liệu, hàm băm nhận được sẽ hoàn toàn khác.
Tuy vậy, tại thuật toán PoW cho phép các thợ đào sở hữu cơ hội như nhau. Nó đảm bảo rằng các thợ đào chỉ có thể xác nhận một khối giao dịch mới và thêm nó vào Blockchain nếu nhận được sự đồng thuận từ các nút phân tác và đưa ra được một bằng chứng công việc hợp lệ cho Hashing.
PoW giúp cho các Blockchain như Bitcoin hay Ethereum có khả năng chống chọi lại các cuộc tấn công (chẳng hạn Tấn công 51% hay tấn công nhờ vào chiếm đa số). Bên cạnh đó, khả năng này có được nhờ vào tính phi tập trung của mạng lưới. Quá trình đào của các thợ mỏ có chi phí rất cao khiến họ sẽ không đủ khả năng đầu tư nguồn lực cá nhân để phá vỡ mạng lưới.
Và việc xác minh rằng thợ đào có đang đào đúng khối hay không là điều không cần thiết. Lý do là kể cả khi thợ đào thiết lập một chuỗi băm phù hợp qua hàng nghìn tỷ lần kết hợp và chạy dữ liệu, mạng lưới chỉ cần chạy dữ liệu của họ duy nhất một lần. Nếu chuỗi băm đó phù hợp và được chấp nhận thì thợ đào sẽ nhận được phần thưởng và ngược lại.
Proof of Stake (PoS) – Bằng chứng cổ phần
Trong những ngày đầu Bitcoin xuất hiện, các nhà phát triển đã đề xuất Proof of Stake (PoS) như một giải pháp tối ưu để thay thế PoW vào năm 2011. Trong hệ thống này, khái niệm về công cụ đào, phần cứng chuyên dụng hay mức tiêu thụ năng lượng lớn là không tồn tại. Thứ duy nhất các thợ đào cần là một chiếc PC thông thường.
Trên thực tế, thợ đào vẫn cần đầu tư nhiều thứ khác. Đó là tài nguyên từ bên trong (tiền mã hóa). Tức là thợ đào cần có một số tiền tối thiểu để đủ điều kiện Stake. Số tiền này bị khóa trong một chiếc ví và thợ đào không thể di chuyển nó khi đang Stake. Đó là lý do vì sao đến nay, PoS chỉ được triển khai với các đồng tiền mã hóa nhỏ.
Trong PoS, các khối được xác nhận theo tỷ lệ cổ phần của những người tham gia. Trình xác nhận hợp lệ của mỗi khối (thợ đúc tiền) được xác định bằng tỷ lệ cổ phần của đồng tiền điện tử chứ không phải bằng lượng công suất tính toán được phân bổ.
Mỗi hệ thống thuật toán đồng thuận PoS có thể thực hiện thuật toán theo nhiều cách khác nhau, miễn là Blockchain được đảm bảo bằng một quá trình bầu chọn giả ngẫu nhiên dựa trên việc xem xét tài giản của nút và thời gian đồng coin được khóa hoặc stake (tuổi coin) với một hệ số ngẫu nhiên.
Trong thời gian tới, các nhà phát triển sẽ cho chạy thử nghiệm PoS trên một quy mô lớn (Casper) trong loạt các nâng cấp của mạng lưới Ethereum (được gọi chung là Ethereum 2.0).
Delegated Proof of Stake (DPoS) – PoS được ủy quyền
Cách thức hoạt động của DPoS tương tự như PoS. Nhưng thay vì Staking trước thì mạng lưới sẽ thực hiện thuật toán bỏ phiếu cho một nhóm người được quyền xác nhận giao dịch.
Để đảm bảo tính công bằng và minh bạch thì DPoS sẽ thường xuyên được thực hiện bỏ phiếu và thay đổi liên tục hệ thống để đảm bảo những cá nhân được chọn là trung thực.
Hiểu một cách khác, một Blockchian sử dụng DPoS sẽ dựa vào một hệ thống bầu chọn. Trong đó, những chủ sở hữu cổ phần sẽ giao các công việc của mình cho bên thứ ba. Tức là họ có thể bầu chọn ra một số đại diện (nhân chứng) để thay họ thực hiện công việc bảo mật mạng. Họ có trách nhiệm phải đạt được sự đồng thuận khi tạo ra và xác thực các khối mới.
Quyền bầu chọn tương ứng với tỷ lệ số lượng người dùng và hệ thống bầu chọn thay đổi theo từng dự án. Mỗi đại diện sẽ trình bày về một đề xuất riêng khi họ yêu cầu nhận phiếu bầu. Các phần thưởng mà đại diện nhận được sẽ chia theo tỷ lệ cho những người đã bầu cho họ.
Thuật toán DPoS tạo ra một hệ thống bầu chọn phụ thuộc trực tiếp vào sự tín nhiệm và danh tiếng của những người đại diện. Nếu một node được bầu chọn nhưng hoạt động không hiệu quả và có các hành vi sai trái sẽ nhanh chóng bị trục xuất và thay thế bởi node khác.
Ngoài ba thuật toán tiêu biểu kể trên, các mạng lưới còn sử dụng các thuật toán khác để duy trì tính đồng thuận, ví dụ Delayed Proof of Work, Leased Proof of Stake, Proof of Authority, Proof of Burn, Hybrid PoW/PoS…
Kết luận
Các thuật toán đồng thuận rất quan trọng đối với hoạt động của hệ thống phi tập trung. Nó giúp củng cố các hệ thống tiền mã hóa (Blockchain) và cho phép các nhà phát triển chạy node trên một hệ thống phi tập trung. Có thể nhận xét rằng, thuật toán đồng thuận là thành phần quan trọng quyết định khả năng tồn tại lâu dài của các mạng, đặc biệt là trong bối cảnh thị trường crypto ngày càng phát triển và hình thành nhiều loại tiền điện tử khác nhau.