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

