Một thuật toán đồng thuận là một cơ chế cơ bản cho phép sự phối hợp giữa người dùng hoặc máy móc trong một môi trường phân tán. Chức năng chính của nó là đảm bảo rằng tất cả các tác nhân trong hệ thống đạt được thỏa thuận về một nguồn sự thật duy nhất, ngay cả khi một số thành phần gặp sự cố. Khái niệm này, được biết đến với tên gọi là khả năng chịu lỗi, là điều thiết yếu cho sự hoạt động của các mạng blockchain.
Trong các hệ thống tập trung, một thực thể duy nhất kiểm soát và cung cấp mạng lưới, có thể thực hiện sửa đổi theo ý mình mà không cần các hệ thống quản trị phức tạp. Tuy nhiên, trong các hệ thống phi tập trung, tình huống thay đổi một cách triệt để. Khi làm việc với các cơ sở dữ liệu phân tán, câu hỏi đặt ra là: làm thế nào để thiết lập các thỏa thuận về dữ liệu nào sẽ được đưa vào?
Vượt qua thách thức này trong một môi trường mà các bên tham gia không tin tưởng lẫn nhau có lẽ là tiến bộ quan trọng nhất đã mở đường cho các blockchain. Bài viết này khám phá lý do tại sao các thuật toán đồng thuận là rất quan trọng cho việc hoạt động của các loại tiền điện tử và các sổ cái phân tán.
Thuật toán đồng thuận và tiền điện tử
Trong hệ sinh thái tiền điện tử, số dư của người dùng được ghi lại trong một cơ sở dữ liệu được gọi là blockchain. Điều quan trọng là tất cả các nút phải giữ một bản sao giống hệt như cơ sở dữ liệu này, vì sự xuất hiện của thông tin mâu thuẫn có thể làm tổn hại đến tính toàn vẹn của toàn bộ mạng.
Mật mã khóa công khai đảm bảo rằng người dùng không thể chi tiêu các đồng tiền của người khác. Tuy nhiên, phải có một nguồn sự thật duy nhất mà các bên tham gia dựa vào để xác định xem các quỹ đã được sử dụng hay chưa.
Satoshi Nakamoto, người sáng lập Bitcoin, đã đề xuất hệ thống Proof of Work (PoW) để phối hợp các người tham gia. Chúng ta sẽ phân tích cách hoạt động của nó sau, nhưng trước tiên hãy xác định các đặc điểm chung giữa các thuật toán đồng thuận khác nhau hiện có.
Ban đầu, người dùng muốn thêm các khối ( người xác thực ) được yêu cầu cung cấp một khoản đảm bảo hoặc "stake". Yếu tố này đại diện cho một giá trị mà người xác thực phải cam kết để ngăn chặn họ hành động độc hại. Nếu cố gắng lừa dối hệ thống, họ sẽ mất khoản đảm bảo của mình, có thể bao gồm sức mạnh tính toán, tiền điện tử hoặc danh tiếng của họ.
Tại sao họ lại mạo hiểm tài nguyên của chính mình? Câu trả lời rất đơn giản: có một phần thưởng đang chờ đợi. Thông thường, phần thưởng này thể hiện dưới dạng tiền điện tử gốc của giao thức, dựa trên các khoản phí do người dùng thanh toán, trên các loại tiền điện tử mới được tạo ra, hoặc từ cả hai nguồn.
Yêu cầu cơ bản cuối cùng là tính minh bạch. Cần phải có khả năng xác định khi ai đó cố gắng lừa dối hệ thống. Lý tưởng nhất, việc sản xuất các khối nên tốn kém cho các validator, nhưng lại rẻ cho bất kỳ người dùng nào để xác minh chúng. Điều này đảm bảo rằng các validator cũng được giám sát bởi những người dùng bình thường.
Các loại thuật toán đồng thuận
Bằng chứng công việc (PoW)
Proof of Work (PoW) là thuật toán đồng thuận blockchain nổi bật. Nó được triển khai lần đầu tiên với Bitcoin, mặc dù khái niệm này đã tồn tại từ rất lâu trước đó. Trong hệ thống này, các xác thực viên (được gọi là thợ mỏ) áp dụng các hàm băm vào dữ liệu mà họ muốn thêm cho đến khi tạo ra một giải pháp cụ thể.
Một hash là một chuỗi ký tự có vẻ ngẫu nhiên được tạo ra khi thực hiện một hàm băm. Nếu dữ liệu đầu vào giống hệt nhau, kết quả sẽ giống nhau. Tuy nhiên, sự thay đổi nhỏ nhất sẽ tạo ra một hash hoàn toàn khác.
Dữ liệu đầu ra không cho phép xác định dữ liệu đầu vào, biến chức năng này thành một phương pháp hiệu quả để chứng minh rằng một dữ liệu đã được biết đến trong một khoảng thời gian nhất định. Băm có thể được cung cấp cho một bên thứ ba và, khi tiết lộ dữ liệu, người đó có thể xác minh rằng đầu ra khớp với việc thực hiện chúng trong chức năng.
Trong PoW, giao thức xác định các điều kiện làm cho một khối hợp lệ. Ví dụ, nó có thể quy định rằng chỉ một khối có hash bắt đầu bằng "00" là hợp lệ. Cách duy nhất để một thợ mỏ tạo ra một khối hợp lệ là thông qua brute force, thay đổi một tham số trong dữ liệu của họ để tạo ra các kết quả khác nhau cho đến khi tìm thấy kết quả đúng.
Trên các blockchain chính, mức độ khó khăn cực kỳ cao. Để cạnh tranh hiệu quả, cần có các cơ sở được trang bị ASIC, phần cứng được thiết kế đặc biệt để tăng khả năng tạo ra một khối hợp lệ.
Trong khai thác, đầu tư tương ứng với chi phí của các máy móc này và năng lượng điện cần thiết cho hoạt động của chúng. Các ASIC được thiết kế độc quyền cho việc khai thác, không có giá trị sử dụng ngoài lĩnh vực này. Cách duy nhất để thu hồi khoản đầu tư ban đầu là khai thác và kiếm phần thưởng bằng cách thêm thành công các khối mới vào blockchain.
Việc xác minh một khối bởi mạng là đơn giản: một lần thực thi hàm cho phép kiểm tra các kết quả. Nếu dữ liệu tạo ra một hash hợp lệ, khối sẽ được chấp nhận và thợ mỏ sẽ nhận được phần thưởng của mình. Ngược lại, mạng sẽ vô hiệu hóa nó, dẫn đến việc lãng phí thời gian và điện năng.
Chứng minh cổ phần (PoS)
Proof of Stake (PoS) được đề xuất vào những ngày đầu của Bitcoin như một sự thay thế cho Proof of Work. Trong PoS không có thợ mỏ, phần cứng chuyên dụng hay tiêu thụ năng lượng lớn. Điều duy nhất cần thiết là một máy tính thông thường.
Và một yếu tố bổ sung quan trọng: đầu tư vào các đồng tiền của hệ thống. Trong PoS, thay vì sử dụng tài nguyên bên ngoài (phần cứng và điện), thì sử dụng tài nguyên nội bộ (tiền điện tử). Các quy tắc thay đổi tùy theo giao thức, nhưng thường yêu cầu một giá trị tối thiểu để tham gia vào việc staking.
Các quỹ phải được khóa trong một ví ( không thể di chuyển trong thời gian staking ). Thông thường, các validator thống nhất các giao dịch nào sẽ được đưa vào khối tiếp theo. Theo một cách nào đó, người ta cược vào khối nào sẽ được chọn, để cho giao thức quyết định phần còn lại.
Nếu khối được đề xuất được chọn, người xác thực sẽ nhận một phần của các khoản phí giao dịch, tỷ lệ với số stake của họ. Càng nhiều số tiền bị khóa, xác suất thắng càng cao. Tuy nhiên, cố gắng lừa dối hệ thống bằng cách cung cấp các giao dịch không hợp lệ sẽ dẫn đến việc mất một phần hoặc toàn bộ stake. Do đó, một cơ chế tương tự như PoW được thiết lập: hành động trung thực sẽ có lợi hơn là hành động gian lận.
Thông thường, các loại tiền mã hóa mới được tạo ra không nằm trong phần thưởng của người xác thực. Do đó, đồng tiền gốc của blockchain phải được phát hành theo cách khác. Điều này có thể thực hiện thông qua một đợt phân phối ban đầu ( chẳng hạn như ICO hoặc IEO) hoặc sử dụng PoW trong các giai đoạn đầu của giao thức trước khi chuyển sang PoS.
Cho đến nay, Proof of Stake thuần túy chủ yếu được triển khai trong các loại tiền điện tử có vốn hóa thấp hơn. Do đó, chưa được chứng minh hoàn toàn liệu nó có thể trở thành một sự thay thế khả thi cho PoW ở quy mô lớn hay không. Mặc dù về lý thuyết có vẻ hợp lệ, việc triển khai thực tế gặp phải nhiều thách thức khác nhau.
Khi PoS được triển khai trên các mạng có khối lượng thông tin lớn, hệ thống trở thành một lĩnh vực thử nghiệm hoàn hảo cho các động lực tài chính và lý thuyết trò chơi. Những người sở hữu kiến thức để "hack" một hệ thống PoS chỉ sẽ cố gắng nếu có khả năng tận dụng nó, vì vậy cách duy nhất để đánh giá sự dễ bị tổn thương của nó là thử nghiệm trực tiếp trên mạng.
Sớm thôi chúng ta sẽ thấy các thử nghiệm quy mô lớn của PoS với việc triển khai Casper như một phần của các bản cập nhật mạng Ethereum ( cũng được biết đến với tên gọi Ethereum 2.0).
Các thuật toán đồng thuận khác
Proof of Work và Proof of Stake là hai thuật toán đồng thuận phổ biến nhất, nhưng còn nhiều biến thể khác, mỗi biến thể đều có ưu điểm và nhược điểm riêng:
Bằng chứng của công việc bị trì hoãn
Cho thuê Bằng chứng cổ phần
Chứng nhận quyền lực
Chứng minh đốt
Ủy quyền Bằng chứng cổ phần
Đồng thuận hybrid PoW/PoS
Kết luận
Các cơ chế để đạt được sự đồng thuận là rất quan trọng cho hoạt động của các hệ thống phân phối. Nhiều người cho rằng đổi mới lớn nhất của Bitcoin nằm ở việc sử dụng Proof of Work để cho phép người dùng đồng ý về một tập hợp các sự kiện chung.
Hiện nay, các thuật toán đồng thuận không chỉ hỗ trợ các hệ thống tiền tệ kỹ thuật số mà còn cả các blockchain cho phép các nhà phát triển thực thi mã trên các mạng phân tán. Chúng là một trụ cột cơ bản của công nghệ blockchain và rất cần thiết cho khả năng tồn tại lâu dài của các mạng lưới hiện có.
Trong tất cả các thuật toán đồng thuận, Proof of Work vẫn là thuật toán được sử dụng nhiều nhất. Thực tế, vẫn chưa có giải pháp thay thế nào đáng tin cậy và an toàn hơn được đề xuất. Tuy nhiên, hiện đang có một cuộc nghiên cứu và phát triển mạnh mẽ để thay thế PoW, và rất có khả năng sẽ xuất hiện các giải pháp đồng thuận mới trong những năm tới.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Thuật toán đồng thuận trong blockchain là gì?
Giới thiệu
Một thuật toán đồng thuận là một cơ chế cơ bản cho phép sự phối hợp giữa người dùng hoặc máy móc trong một môi trường phân tán. Chức năng chính của nó là đảm bảo rằng tất cả các tác nhân trong hệ thống đạt được thỏa thuận về một nguồn sự thật duy nhất, ngay cả khi một số thành phần gặp sự cố. Khái niệm này, được biết đến với tên gọi là khả năng chịu lỗi, là điều thiết yếu cho sự hoạt động của các mạng blockchain.
Trong các hệ thống tập trung, một thực thể duy nhất kiểm soát và cung cấp mạng lưới, có thể thực hiện sửa đổi theo ý mình mà không cần các hệ thống quản trị phức tạp. Tuy nhiên, trong các hệ thống phi tập trung, tình huống thay đổi một cách triệt để. Khi làm việc với các cơ sở dữ liệu phân tán, câu hỏi đặt ra là: làm thế nào để thiết lập các thỏa thuận về dữ liệu nào sẽ được đưa vào?
Vượt qua thách thức này trong một môi trường mà các bên tham gia không tin tưởng lẫn nhau có lẽ là tiến bộ quan trọng nhất đã mở đường cho các blockchain. Bài viết này khám phá lý do tại sao các thuật toán đồng thuận là rất quan trọng cho việc hoạt động của các loại tiền điện tử và các sổ cái phân tán.
Thuật toán đồng thuận và tiền điện tử
Trong hệ sinh thái tiền điện tử, số dư của người dùng được ghi lại trong một cơ sở dữ liệu được gọi là blockchain. Điều quan trọng là tất cả các nút phải giữ một bản sao giống hệt như cơ sở dữ liệu này, vì sự xuất hiện của thông tin mâu thuẫn có thể làm tổn hại đến tính toàn vẹn của toàn bộ mạng.
Mật mã khóa công khai đảm bảo rằng người dùng không thể chi tiêu các đồng tiền của người khác. Tuy nhiên, phải có một nguồn sự thật duy nhất mà các bên tham gia dựa vào để xác định xem các quỹ đã được sử dụng hay chưa.
Satoshi Nakamoto, người sáng lập Bitcoin, đã đề xuất hệ thống Proof of Work (PoW) để phối hợp các người tham gia. Chúng ta sẽ phân tích cách hoạt động của nó sau, nhưng trước tiên hãy xác định các đặc điểm chung giữa các thuật toán đồng thuận khác nhau hiện có.
Ban đầu, người dùng muốn thêm các khối ( người xác thực ) được yêu cầu cung cấp một khoản đảm bảo hoặc "stake". Yếu tố này đại diện cho một giá trị mà người xác thực phải cam kết để ngăn chặn họ hành động độc hại. Nếu cố gắng lừa dối hệ thống, họ sẽ mất khoản đảm bảo của mình, có thể bao gồm sức mạnh tính toán, tiền điện tử hoặc danh tiếng của họ.
Tại sao họ lại mạo hiểm tài nguyên của chính mình? Câu trả lời rất đơn giản: có một phần thưởng đang chờ đợi. Thông thường, phần thưởng này thể hiện dưới dạng tiền điện tử gốc của giao thức, dựa trên các khoản phí do người dùng thanh toán, trên các loại tiền điện tử mới được tạo ra, hoặc từ cả hai nguồn.
Yêu cầu cơ bản cuối cùng là tính minh bạch. Cần phải có khả năng xác định khi ai đó cố gắng lừa dối hệ thống. Lý tưởng nhất, việc sản xuất các khối nên tốn kém cho các validator, nhưng lại rẻ cho bất kỳ người dùng nào để xác minh chúng. Điều này đảm bảo rằng các validator cũng được giám sát bởi những người dùng bình thường.
Các loại thuật toán đồng thuận
Bằng chứng công việc (PoW)
Proof of Work (PoW) là thuật toán đồng thuận blockchain nổi bật. Nó được triển khai lần đầu tiên với Bitcoin, mặc dù khái niệm này đã tồn tại từ rất lâu trước đó. Trong hệ thống này, các xác thực viên (được gọi là thợ mỏ) áp dụng các hàm băm vào dữ liệu mà họ muốn thêm cho đến khi tạo ra một giải pháp cụ thể.
Một hash là một chuỗi ký tự có vẻ ngẫu nhiên được tạo ra khi thực hiện một hàm băm. Nếu dữ liệu đầu vào giống hệt nhau, kết quả sẽ giống nhau. Tuy nhiên, sự thay đổi nhỏ nhất sẽ tạo ra một hash hoàn toàn khác.
Dữ liệu đầu ra không cho phép xác định dữ liệu đầu vào, biến chức năng này thành một phương pháp hiệu quả để chứng minh rằng một dữ liệu đã được biết đến trong một khoảng thời gian nhất định. Băm có thể được cung cấp cho một bên thứ ba và, khi tiết lộ dữ liệu, người đó có thể xác minh rằng đầu ra khớp với việc thực hiện chúng trong chức năng.
Trong PoW, giao thức xác định các điều kiện làm cho một khối hợp lệ. Ví dụ, nó có thể quy định rằng chỉ một khối có hash bắt đầu bằng "00" là hợp lệ. Cách duy nhất để một thợ mỏ tạo ra một khối hợp lệ là thông qua brute force, thay đổi một tham số trong dữ liệu của họ để tạo ra các kết quả khác nhau cho đến khi tìm thấy kết quả đúng.
Trên các blockchain chính, mức độ khó khăn cực kỳ cao. Để cạnh tranh hiệu quả, cần có các cơ sở được trang bị ASIC, phần cứng được thiết kế đặc biệt để tăng khả năng tạo ra một khối hợp lệ.
Trong khai thác, đầu tư tương ứng với chi phí của các máy móc này và năng lượng điện cần thiết cho hoạt động của chúng. Các ASIC được thiết kế độc quyền cho việc khai thác, không có giá trị sử dụng ngoài lĩnh vực này. Cách duy nhất để thu hồi khoản đầu tư ban đầu là khai thác và kiếm phần thưởng bằng cách thêm thành công các khối mới vào blockchain.
Việc xác minh một khối bởi mạng là đơn giản: một lần thực thi hàm cho phép kiểm tra các kết quả. Nếu dữ liệu tạo ra một hash hợp lệ, khối sẽ được chấp nhận và thợ mỏ sẽ nhận được phần thưởng của mình. Ngược lại, mạng sẽ vô hiệu hóa nó, dẫn đến việc lãng phí thời gian và điện năng.
Chứng minh cổ phần (PoS)
Proof of Stake (PoS) được đề xuất vào những ngày đầu của Bitcoin như một sự thay thế cho Proof of Work. Trong PoS không có thợ mỏ, phần cứng chuyên dụng hay tiêu thụ năng lượng lớn. Điều duy nhất cần thiết là một máy tính thông thường.
Và một yếu tố bổ sung quan trọng: đầu tư vào các đồng tiền của hệ thống. Trong PoS, thay vì sử dụng tài nguyên bên ngoài (phần cứng và điện), thì sử dụng tài nguyên nội bộ (tiền điện tử). Các quy tắc thay đổi tùy theo giao thức, nhưng thường yêu cầu một giá trị tối thiểu để tham gia vào việc staking.
Các quỹ phải được khóa trong một ví ( không thể di chuyển trong thời gian staking ). Thông thường, các validator thống nhất các giao dịch nào sẽ được đưa vào khối tiếp theo. Theo một cách nào đó, người ta cược vào khối nào sẽ được chọn, để cho giao thức quyết định phần còn lại.
Nếu khối được đề xuất được chọn, người xác thực sẽ nhận một phần của các khoản phí giao dịch, tỷ lệ với số stake của họ. Càng nhiều số tiền bị khóa, xác suất thắng càng cao. Tuy nhiên, cố gắng lừa dối hệ thống bằng cách cung cấp các giao dịch không hợp lệ sẽ dẫn đến việc mất một phần hoặc toàn bộ stake. Do đó, một cơ chế tương tự như PoW được thiết lập: hành động trung thực sẽ có lợi hơn là hành động gian lận.
Thông thường, các loại tiền mã hóa mới được tạo ra không nằm trong phần thưởng của người xác thực. Do đó, đồng tiền gốc của blockchain phải được phát hành theo cách khác. Điều này có thể thực hiện thông qua một đợt phân phối ban đầu ( chẳng hạn như ICO hoặc IEO) hoặc sử dụng PoW trong các giai đoạn đầu của giao thức trước khi chuyển sang PoS.
Cho đến nay, Proof of Stake thuần túy chủ yếu được triển khai trong các loại tiền điện tử có vốn hóa thấp hơn. Do đó, chưa được chứng minh hoàn toàn liệu nó có thể trở thành một sự thay thế khả thi cho PoW ở quy mô lớn hay không. Mặc dù về lý thuyết có vẻ hợp lệ, việc triển khai thực tế gặp phải nhiều thách thức khác nhau.
Khi PoS được triển khai trên các mạng có khối lượng thông tin lớn, hệ thống trở thành một lĩnh vực thử nghiệm hoàn hảo cho các động lực tài chính và lý thuyết trò chơi. Những người sở hữu kiến thức để "hack" một hệ thống PoS chỉ sẽ cố gắng nếu có khả năng tận dụng nó, vì vậy cách duy nhất để đánh giá sự dễ bị tổn thương của nó là thử nghiệm trực tiếp trên mạng.
Sớm thôi chúng ta sẽ thấy các thử nghiệm quy mô lớn của PoS với việc triển khai Casper như một phần của các bản cập nhật mạng Ethereum ( cũng được biết đến với tên gọi Ethereum 2.0).
Các thuật toán đồng thuận khác
Proof of Work và Proof of Stake là hai thuật toán đồng thuận phổ biến nhất, nhưng còn nhiều biến thể khác, mỗi biến thể đều có ưu điểm và nhược điểm riêng:
Kết luận
Các cơ chế để đạt được sự đồng thuận là rất quan trọng cho hoạt động của các hệ thống phân phối. Nhiều người cho rằng đổi mới lớn nhất của Bitcoin nằm ở việc sử dụng Proof of Work để cho phép người dùng đồng ý về một tập hợp các sự kiện chung.
Hiện nay, các thuật toán đồng thuận không chỉ hỗ trợ các hệ thống tiền tệ kỹ thuật số mà còn cả các blockchain cho phép các nhà phát triển thực thi mã trên các mạng phân tán. Chúng là một trụ cột cơ bản của công nghệ blockchain và rất cần thiết cho khả năng tồn tại lâu dài của các mạng lưới hiện có.
Trong tất cả các thuật toán đồng thuận, Proof of Work vẫn là thuật toán được sử dụng nhiều nhất. Thực tế, vẫn chưa có giải pháp thay thế nào đáng tin cậy và an toàn hơn được đề xuất. Tuy nhiên, hiện đang có một cuộc nghiên cứu và phát triển mạnh mẽ để thay thế PoW, và rất có khả năng sẽ xuất hiện các giải pháp đồng thuận mới trong những năm tới.