Giới thiệu
Thuật toán đồng thuận là một cơ chế cho phép người dùng hoặc máy phối hợp trong cài đặt phân tán. Nó cần đảm bảo rằng tất cả các tác nhân trong hệ thống có thể đồng ý về một nguồn sự thật duy nhất, ngay cả khi một số tác nhân thất bại. Nói cách khác, hệ thống phải có khả năng chịu lỗi (xem thêm: Giải thích về dung sai lỗi Byzantine).
Trong một thiết lập tập trung, một thực thể duy nhất có quyền lực trên hệ thống. Trong hầu hết các trường hợp, họ có thể thực hiện các thay đổi theo ý muốn – không có hệ thống quản trị phức tạp nào để đạt được sự đồng thuận giữa nhiều quản trị viên.
Nhưng trong một thiết lập phi tập trung, đó lại là một câu chuyện hoàn toàn khác. Giả sử chúng tôi đang làm việc với cơ sở dữ liệu phân tán – làm cách nào để chúng tôi đạt được thỏa thuận về những mục nào sẽ được thêm vào?
Vượt qua thách thức này trong một môi trường mà những người xa lạ không tin tưởng lẫn nhau có lẽ là bước phát triển quan trọng nhất mở đường cho blockchain. Trong bài viết này, chúng ta sẽ xem xét các thuật toán đồng thuận quan trọng như thế nào đối với hoạt động của tiền điện tử và sổ cái phân tán.
Thuật toán đồng thuận và tiền điện tử
Trong tiền điện tử, số dư của người dùng được ghi lại trong cơ sở dữ liệu – blockchain. Điều cần thiết là mọi người (hay chính xác hơn là mọi nút) đều duy trì một bản sao cơ sở dữ liệu giống hệt nhau. Nếu không, bạn sẽ sớm nhận được thông tin mâu thuẫn, làm suy yếu toàn bộ mục đích của mạng tiền điện tử.
Mật mã khóa công khai đảm bảo rằng người dùng không thể tiêu tiền của nhau. Nhưng vẫn cần phải có một nguồn thông tin xác thực duy nhất mà những người tham gia mạng lưới dựa vào để có thể xác định xem tiền đã được chi tiêu hay chưa.
Satoshi Nakamoto, người tạo ra Bitcoin, đã đề xuất hệ thống Bằng chứng công việc để điều phối những người tham gia. Chúng ta sẽ sớm tìm hiểu cách thức hoạt động của PoW – hiện tại, chúng ta sẽ xác định một số đặc điểm chung của nhiều thuật toán đồng thuận đang tồn tại.
Đầu tiên, chúng tôi yêu cầu người dùng muốn thêm khối (chúng tôi sẽ gọi họ là người xác nhận) phải cung cấp cổ phần. Cổ phần là một loại giá trị nào đó mà người xác nhận phải đưa ra, điều này ngăn cản họ hành động không trung thực. Nếu họ gian lận, họ sẽ mất tiền cược. Ví dụ bao gồm sức mạnh tính toán, tiền điện tử hoặc thậm chí là danh tiếng.
Tại sao họ lại bận tâm đến việc mạo hiểm nguồn tài nguyên của chính mình? Chà, cũng có phần thưởng nữa. Điều này thường bao gồm tiền điện tử gốc của giao thức và được tạo thành từ các khoản phí do người dùng khác trả, các đơn vị tiền điện tử mới được tạo hoặc cả hai.
Điều cuối cùng chúng ta cần là sự minh bạch. Chúng ta cần có khả năng phát hiện khi ai đó gian lận. Lý tưởng nhất là họ sẽ tốn kém để sản xuất các khối nhưng lại rẻ đối với bất kỳ ai xác nhận chúng. Điều này đảm bảo rằng người dùng thông thường luôn kiểm tra các trình xác thực.
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à cha đỡ đầu của các thuật toán đồng thuận blockchain. Nó lần đầu tiên được triển khai bằng Bitcoin, nhưng khái niệm thực tế đã xuất hiện được một thời gian. Trong Bằng chứng công việc, người xác thực (được gọi là người khai thác) băm dữ liệu họ muốn thêm cho đến khi tạo ra giải pháp cụ thể.
Hàm băm là một chuỗi các chữ cái và số dường như ngẫu nhiên được tạo khi bạn chạy dữ liệu thông qua hàm băm. Tuy nhiên, nếu bạn chạy lại cùng một dữ liệu, bạn sẽ luôn nhận được cùng một kết quả. Tuy nhiên, chỉ cần thay đổi một chi tiết và hàm băm của bạn sẽ hoàn toàn khác.
Nhìn vào kết quả đầu ra, bạn không thể biết thông tin nào được đưa vào hàm. Do đó, chúng rất hữu ích trong việc chứng minh rằng bạn biết một phần dữ liệu trước một thời điểm nhất định. Bạn có thể cung cấp cho ai đó hàm băm của nó và sau này khi bạn tiết lộ dữ liệu, người đó có thể chạy dữ liệu đó thông qua hàm để đảm bảo kết quả đầu ra giống nhau.
Trong Proof of Work, giao thức đặt ra các điều kiện để đảm bảo một khối hợp lệ. Ví dụ, nó có thể nói rằng chỉ một khối có hàm băm bắt đầu bằng 00 mới hợp lệ. Cách duy nhất để người khai thác tạo ra một cái phù hợp với sự kết hợp đó là sử dụng các đầu vào mạnh mẽ. Họ có thể điều chỉnh một tham số trong dữ liệu của mình để tạo ra kết quả khác nhau cho mỗi lần đoán cho đến khi nhận được hàm băm phù hợp.
Với các blockchain lớn, tiêu chuẩn được đặt ra rất cao. Để cạnh tranh với các công cụ khai thác khác, bạn sẽ cần một kho chứa đầy phần cứng băm đặc biệt (ASIC) để có cơ hội tạo ra một khối hợp lệ.
Tiền đặt cược của bạn khi khai thác là chi phí của những máy này và lượng điện cần thiết để chạy chúng. ASIC được xây dựng cho một mục đích, vì vậy chúng không được sử dụng trong các ứng dụng ngoài khai thác tiền điện tử. Cách duy nhất để bạn thu hồi khoản đầu tư ban đầu của mình là khai thác, điều này mang lại phần thưởng đáng kể nếu bạn thêm thành công một khối mới vào chuỗi khối.
Việc mạng xác minh rằng bạn thực sự đã tạo đúng khối là điều đơn giản. Ngay cả khi bạn đã thử hàng nghìn tỷ kết hợp để có được hàm băm phù hợp, họ chỉ cần chạy dữ liệu của bạn thông qua một hàm một lần. Nếu dữ liệu của bạn tạo ra hàm băm hợp lệ, dữ liệu đó sẽ được chấp nhận và bạn sẽ nhận được phần thưởng. Nếu không, mạng sẽ từ chối nó và bạn sẽ lãng phí thời gian và điện năng mà không được gì.
Bằng chứng về cổ phần (PoS)
Bằng chứng cổ phần (PoS) đã được đề xuất trong những ngày đầu của Bitcoin như một giải pháp thay thế cho Bằng chứng công việc. Trong hệ thống PoS, không có khái niệm về công cụ khai thác, phần cứng chuyên dụng hoặc mức tiêu thụ năng lượng lớn. Tất cả những gì bạn cần là một chiếc PC thông thường.
Vâng, không phải tất cả. Bạn vẫn cần đưa một số skin vào trò chơi. Trong PoS, bạn không đưa ra nguồn tài nguyên bên ngoài (như điện hoặc phần cứng) mà là nguồn tài nguyên nội bộ – tiền điện tử. Các quy tắc khác nhau với mỗi giao thức, nhưng nhìn chung, bạn phải nắm giữ số tiền tối thiểu để đủ điều kiện đặt cược.
Từ đó, bạn khóa tiền của mình trong ví (chúng không thể được di chuyển khi bạn đang đặt cược). Thông thường, bạn sẽ đồng ý với những người xác thực khác về những giao dịch nào sẽ được đưa vào khối tiếp theo. Theo một nghĩa nào đó, bạn đang đặt cược vào khối sẽ được chọn và giao thức sẽ chọn một khối.
Nếu khối của bạn được chọn, bạn sẽ nhận được một phần phí giao dịch, tùy thuộc vào số tiền đặt cược của bạn. Bạn càng khóa nhiều tiền thì bạn càng có cơ hội kiếm được nhiều tiền hơn. Nhưng nếu bạn cố gắng gian lận bằng cách đề xuất các giao dịch không hợp lệ, bạn sẽ mất một phần (hoặc toàn bộ) số tiền đặt cược của mình. Vì vậy, chúng tôi có cơ chế tương tự như PoW – hành động trung thực sẽ có lợi hơn hành động không trung thực.
Nhìn chung, không có đồng tiền mới nào được tạo ra như một phần thưởng cho người xác thực. Do đó, tiền bản địa của blockchain phải được phát hành theo một cách khác. Điều này có thể được thực hiện thông qua phân phối ban đầu (tức là ICO hoặc IEO) hoặc bằng cách khởi chạy giao thức với PoW trước khi chuyển sang PoS sau đó.
Cho đến nay, Proof of Stake thuần túy chỉ thực sự được triển khai trong các loại tiền điện tử nhỏ hơn. Do đó, không rõ liệu nó có thể đóng vai trò thay thế khả thi cho PoW hay không. Mặc dù về mặt lý thuyết thì có vẻ hợp lý nhưng thực tế nó sẽ rất khác.
Khi PoS được triển khai trên mạng với giá trị lớn, hệ thống sẽ trở thành sân chơi của lý thuyết trò chơi và các ưu đãi tài chính. Bất kỳ ai có bí quyết “hack” hệ thống PoS có thể sẽ chỉ làm như vậy nếu họ có thể thu được lợi ích từ nó - do đó, cách duy nhất để tìm hiểu xem nó có khả thi hay không là trên mạng trực tiếp.
Chúng ta sẽ sớm thấy PoS được thử nghiệm trên quy mô lớn – Casper sẽ được triển khai như một phần của chuỗi nâng cấp cho mạng Ethereum (gọi chung là Ethereum 2.0).
Các thuật toán đồng thuận khác
Bằng chứng công việc và Bằng chứng cổ phần là những thuật toán đồng thuận được thảo luận nhiều nhất. Nhưng có rất nhiều loại khác, tất cả đều có ưu điểm và nhược điểm riêng. Kiểm tra các bài viết sau đây:
Giải thích bằng chứng công việc bị trì hoãn
Giải thích về bằng chứng đồng thuận về cổ phần cho thuê
Bằng chứng về quyền được giải thích
Bằng chứng về vết bỏng được giải thích
Giải thích bằng chứng về cổ phần được ủy quyền
Giải thích về sự đồng thuận lai PoW/PoS
Bớt tư tưởng
Các cơ chế để đạt được sự đồng thuận là rất quan trọng đối với hoạt động của các hệ thống phân tán. Nhiều người tin rằng sự đổi mới lớn nhất của Bitcoin là việc sử dụng Bằng chứng công việc để cho phép người dùng đồng ý về một loạt thông tin được chia sẻ.
Các thuật toán đồng thuận ngày nay không chỉ củng cố các hệ thống tiền kỹ thuật số mà còn cả các chuỗi khối cho phép các nhà phát triển chạy mã trên một mạng phân tán. Chúng hiện là nền tảng của công nghệ blockchain và rất quan trọng đối với khả năng tồn tại lâu dài của các mạng khác nhau đang tồn tại.
Trong số tất cả các thuật toán đồng thuận, Proof of Work vẫn là thuật toán chiếm ưu thế. Một giải pháp thay thế đáng tin cậy hơn và an toàn hơn vẫn chưa được đề xuất. Điều đó nói lên rằng, có rất nhiều nghiên cứu và phát triển để thay thế PoW và chúng ta có thể sẽ thấy chúng xuất hiện nhiều hơn trong những năm tới.



