Ouroboros Leios và Peras giải quyết những thiếu sót của cơ chế đồng thuận Nakamoto
Ngày 4 tháng 07 năm 2024
Blockchain là một cấu trúc dữ liệu tuyến tính. Tuy nhiên, các giao thức Blockchain, bao gồm cả cơ chế đồng thuận của Nakamoto, tuân thủ tính tuyến tính này, dẫn đến kém hiệu quả. Mạng sử dụng sức mạnh tính toán và băng thông một cách không thường xuyên, khiến chúng thường xuyên không được sử dụng đúng mức. Xử lý tuần tự cản trở khả năng mở rộng. Ngược lại, Ouroboros Leios và Peras giới thiệu tính song song cho Cardano trong khi vẫn giữ được những lợi thế của cơ chế đồng thuận Nakamoto. Trong bài viết, chúng tôi sẽ giải thích lý do kém hiệu quả của thế hệ Blockchain đầu tiên và các giải pháp mà phiên bản mới của Ouroboros sẽ mang lại. Leios và Peras có thể được coi là thế hệ thứ hai của cơ chế đồng thuận Nakamoto.
Tại sao Blockchain thế hệ đầu tiên hoạt động tuần tự?
Blockchain hoạt động tuyến tính, với mỗi khối mới được thêm vào sẽ xây dựng dựa trên khối trước đó.
Tính tuyến tính này xuất phát từ thực tế là sự phụ thuộc dữ liệu—đặc biệt là các giao dịch—cũng tuyến tính trong quá trình xác thực. Hãy minh họa điều này bằng một ví dụ:
Hãy tưởng tượng rằng có một số giao dịch trong mem-pool. Cơ chế đồng thuận phải đảm bảo rằng không có khoản tiền (UTXO) nào được chi tiêu hai lần.
Trong hình, bạn có thể thấy rằng giao dịch 1 và 4 muốn chi tiêu cùng một UTXO A. Cơ chế đồng thuận đặt tất cả các giao dịch vào khối ngoại trừ giao dịch 4. Giao dịch 4 bị hủy vì nó đã cố gắng chi tiêu cùng một UTXO như giao dịch 1. Khối mới N+ 3 được thêm vào cuối Blockchain.
Để ngăn chặn các cuộc tấn công chi tiêu gấp đôi theo cách phi tập trung, các mạng phân tán dựa vào các thuật toán tuần tự. Mỗi khối chứa nhiều giao dịch có thể được xác thực chéo với nhau và với trạng thái global. Điều này đảm bảo tính chính xác—không có các cuộc tấn công chi tiêu gấp đôi hoặc tạo ra giá trị mới một cách đột ngột.
Cơ chế đồng thuận của Nakamoto tuân thủ cấu trúc tuyến tính này bằng cách hoạt động tuần tự.
Tương tự như Bitcoin, Cardano không thể xử lý ngay các giao dịch khi người dùng gửi chúng lên mạng. Thay vào đó, các giao dịch được phát đến tất cả các node và chờ trong mem-pool. Chúng chỉ được lấy từ mem-pool khi một node được chọn ngẫu nhiên có cơ hội tạo ra một khối mới. Trong trường hợp của Cardano, việc này có thể mất từ 1 đến 20 giây, trong khi đối với Bitcoin, thời gian trung bình lên tới 10 phút.
Nhiều giao thức BFT thế hệ đầu tiên hoạt động tương tự.
Tài nguyên máy tính mạng và băng thông được sử dụng nhiều nhất để tạo ra một khối mới. Node sản xuất khối tạo ra một khối mới sau đó được khuếch tán vào mạng để được các node khác xác thực. Tuy nhiên, đây là một khoảnh khắc rất ngắn. Giữa quá trình sản xuất các khối, những tài nguyên này vẫn chưa được sử dụng đúng mức. Tài nguyên chỉ được sử dụng để phổ biến các khối. Điều này có thể đòi hỏi nhu cầu tài nguyên liên tục nhưng tương đối thấp.
Trong hình, bạn có thể thấy quá trình sản xuất các khối trong đó việc sử dụng tài nguyên máy tính và băng thông tạm thời tăng lên (các đỉnh được hiển thị bằng các hình chữ nhật cao màu đỏ). Tuy nhiên, hầu hết các tài nguyên đều không được sử dụng đúng mức (hình chữ nhật màu đỏ thấp).
Đối với cơ chế đồng thuận của Nakamoto, các giao dịch không được coi là hoàn tất ngay lập tức khi được chèn vào một khối mới. Ngay cả một khối mới được thêm vào Blockchain cũng thiếu tính hoàn tất. Hardfork trên Blockchain có thể xảy ra, dẫn đến hai chuỗi cạnh tranh. Các chuỗi này tranh giành nhau để được đưa vào lịch sử Blockchain hoặc sẽ phải đối mặt với sự từ chối. Chỉ sau khi một số khối tiếp theo được thêm vào thì khối đó mới đạt được "tính hoàn tất" thực sự. Người dùng tham khảo số lượng xác nhận—các khối được thêm sau khối giao dịch của họ—để đánh giá tính hoàn tất này.
Do đó, cơ chế đồng thuận của Nakamoto có thời gian giải quyết tương đối dài. Trong trường hợp của Cardano, hàng chục giây đến vài phút có thể trôi qua kể từ thời điểm giao dịch được gửi cho đến thời điểm giao dịch được coi là hoàn tất. Trong trường hợp của Bitcoin, thời gian là nửa giờ đến một giờ.
Khoảng thời gian trôi qua từ khi gửi giao dịch đến khi đưa giao dịch vào khối được gọi là độ trễ giao dịch. Khoảng thời gian trôi qua kể từ khi chèn một giao dịch vào khối cho đến khi đạt được số lượng xác nhận cần thiết được gọi là giao dịch hoàn tất. Thời gian thanh toán là tổng độ trễ của giao dịch và "tính hoàn tất" của giao dịch.
Người dùng phải đợi vài khối để nhận được xác nhận rằng tiền của họ đã đến địa chỉ dự kiến. Tuy nhiên, trong trường hợp fork, giao dịch của người gửi có thể không được đưa vào Blockchain. Do đó, người nhận có thể không nhận được số tiền như mong đợi. Người nhận cần xem xét khả năng xảy ra fork khi xác định số lượng xác nhận cần thiết. Nếu xảy ra fork, thời gian cần thiết để giao dịch hoàn tất sẽ cao hơn.
Lưu ý rằng fork làm tăng nhu cầu sử dụng tài nguyên mạng vì các khối của chuỗi thay thế phải được phổ biến và xác nhận bởi tất cả các node.
cơ chế đồng thuận của Nakamoto vốn đã chậm khi đạt được đồng thuận về trạng thái global giữa các node (cổ phần/tỷ lệ băm của họ). Khối hoàn tất phụ thuộc vào tần suất thêm khối mới. Thật không may, mạng không thể bắt đầu hoạt động dựa trên cơ chế đồng thuận ngay sau khi thêm một khối, mặc dù có sẵn sức mạnh tính toán và băng thông. Những nguồn lực này không được sử dụng một cách hiệu quả.
Trong bối cảnh Bitcoin, điều quan trọng là phải phân biệt giữa sức mạnh tính toán của các node (pool) và sức mạnh tính toán của các công cụ khai thác ASIC. Các máy khai thác ASIC làm việc liên tục, hoạt động hết công suất để giải quyết các nhiệm vụ mật mã phức tạp và khai thác các khối mới. Trong khi đó, tài nguyên node vẫn không được sử dụng đúng mức ngay sau khi một khối mới được thêm vào cho đến khi người khai thác giải quyết thành công một nhiệm vụ, cho phép bổ sung các khối tiếp theo. Nói cách khác, sức mạnh tính toán của các công cụ khai thác ASIC không góp phần tăng thông lượng.
Để cải thiện thông lượng mạng và thời gian giải quyết, mạng Blockchain cần sử dụng tốt hơn các tài nguyên sẵn có. Tuy nhiên, để đạt được điều này đòi hỏi phải cân bằng giữa nhu cầu duy trì tính tuyến tính của Blockchain với việc đưa ra tính năng song song hóa. Thách thức này được giải quyết bằng các giao thức như Ouroboros Leios và Ouroboros Peras.
Song song hóa là điều bắt buộc
Một hệ thống tuần tự thực hiện các nhiệm vụ lần lượt theo một thứ tự cụ thể. Mỗi tác vụ được thực hiện riêng lẻ, tuân theo thứ tự chúng được nhận hoặc lập trình. Các hệ thống này đơn giản hơn để hiểu, thiết kế và thực hiện. Chúng mang tính quyết định và không gặp phải vấn đề đồng bộ hóa. Tuy nhiên, nhược điểm chính của chúng là hiệu suất thấp do xử lý một tác vụ.
Blockchain bao gồm nhiều node. Các node được chọn ngẫu nhiên thường tạo ra các khối mới. Một khối mới được khuếch tán vào mạng, do đó việc xác thực của nó thể hiện các yếu tố song song hóa, vì nhiều node có thể xác thực độc lập cùng một khối. Sự kém hiệu quả này phát sinh từ việc thiếu thực thi song song liên tục. Chỉ việc xác thực khối diễn ra song song chứ không phải việc chuẩn bị giao dịch trước khi sản xuất khối.
Hình ảnh cho thấy mỗi node tạo ra một khối mới khi được bầu làm slot leader. Thời gian còn lại, nguồn lực không được sử dụng đúng mức. Hình này không phản ánh việc xác nhận các khối và phổ biến các giao dịch mới.
Các hệ thống song song thực hiện nhiều nhiệm vụ hoặc hoạt động cùng một lúc. Chúng hỗ trợ đồng thời, cho phép một số tác vụ chạy đồng thời. Tuy nhiên, việc thực hiện các cơ chế đồng bộ hóa là rất quan trọng để tránh sai sót. Mặc dù các hệ thống song song cung cấp hiệu suất và khả năng mở rộng cao hơn nhưng chúng phức tạp hơn trong việc thiết kế và triển khai do yêu cầu đồng bộ hóa và truyền thông.
Thách thức đối với Blockchain nằm ở việc cho phép song song hóa trong khi vẫn duy trì việc bổ sung tuần tự các khối mới. Để đạt được sự cân bằng này đòi hỏi sự đồng bộ hóa giữa các quy trình và nhu cầu liên lạc ngày càng tăng. Tất cả các node mạng phải duy trì trạng thái global thống nhất, tính đến độ trễ của mạng trong quá trình phát tán dữ liệu.
Trong hình ảnh, bạn có thể thấy các node tạo ra một khối mới (nhiệm vụ màu vàng) khi được bầu làm slot leader và đồng thời thực hiện các nhiệm vụ tính toán chuyên sâu khác (nhiệm vụ màu trắng). Nguồn lực được sử dụng đầy đủ. Hình ảnh không mô tả những tác vụ cụ thể nào đang được xử lý. Chúng tôi sẽ mô tả điều đó sau.
Trong phần sắp tới, chúng ta sẽ đi sâu vào các nhiệm vụ mà các node có thể xử lý để tối đa hóa dung lượng mạng, giúp cải thiện thông lượng và giải quyết giao dịch nhanh hơn.
Ouroboros Leios và Peras
Một trong những khái niệm chính đằng sau Ouroboros Leios là việc tách rời quá trình xử lý giao dịch khỏi việc thêm các khối vào blockchain. Điều này tạo ra hai quá trình riêng biệt.
Một quy trình duy trì blockchain vẫn tuần tự trong khi quy trình còn lại xử lý các giao dịch tận dụng tối đa khả năng song song hóa.
Leios xác định ba loại khối: Khối xếp hạng (RB), Khối chứng thực (EB) và Khối đầu vào (IB). Nhiều loại khối cho phép Leios chia khối lượng công việc thành nhiều quy trình.
Bản thân các giao dịch được chứa trong Khối đầu vào. Các Khối đầu vào này đóng vai trò là nhà cung cấp giao dịch.
Khối chứng thực có thể tham chiếu nhiều Khối đầu vào. Các node xác thực các khối và bỏ phiếu về mức độ sẵn sàng đưa vào blockchain thông qua Khối xếp hạng.
Kết quả biểu quyết là một chứng chỉ mà các khối mang theo bên mình. Các chứng chỉ này được xác minh khi đưa vào Blockchain.
Việc xử lý Khối đầu vào và Khối chứng thực có thể tận dụng khả năng song song hóa và nhờ khả năng tách rời nên không bị giới hạn bởi tính tuần tự của blockchain.
Khối xếp hạng chỉ chứa các tham chiếu đến các giao dịch thông qua Khối chứng thực. Blockchain sẽ chỉ bao gồm các Khối xếp hạng, nghĩa là nó sẽ chỉ bao gồm các tham chiếu đến dữ liệu giao dịch.
Đọc bài viết của chúng tôi về Ourobors Leios và Peras trong đó mô tả các nguyên tắc cơ bản.
Cơ chế đồng thuận Nakamoto truyền thống xử lý một loạt giao dịch (một khối) trong khoảng thời gian được xác định trước do nhóm đặt ra. Trong bối cảnh băng thông và sức mạnh tính toán, khoảng thời gian này tương đối dài. Đối với Cardano, khoảng thời gian này là 20 giây. Do đó, trong khoảng thời gian 20 giây, các node riêng lẻ sử dụng tài nguyên của chúng trong thời gian chưa đầy 1 giây. Mỗi node chịu trách nhiệm tạo một khối mới hoặc xác thực một khối mới đến, bao gồm việc xử lý các giao dịch.
Bằng cách tách rời và giới thiệu nhiều khối, Ouroboros Leios cho phép xử lý song song nhiều tác vụ. Tài nguyên mạng có thể được sử dụng hiệu quả trong khoảng 20 giây.
Trong hình, bạn có thể thấy mỗi node xử lý nhiều tác vụ liên tục. Các tác vụ cho phép xử lý song song giữa các node được đánh dấu màu xanh lá cây và màu vàng. Các nhiệm vụ này liên quan đến Khối đầu vào và Khối chứng thực. Nhiệm vụ trắng yêu cầu xử lý tuần tự liên quan đến Khối xếp hạng. Chúng tôi đã bỏ qua việc xác thực các giao dịch đến và các nhiệm vụ không tốn Đa tài nguyên khác.
Ouroboros Leios giới thiệu một số nhiệm vụ thiết yếu, bao gồm đúc IB và EB, xác thực IB, chứng thực EB và tạo chứng chỉ cho EB. Các nhiệm vụ này cùng nhau nâng cao thông lượng bằng cách cho phép chuẩn bị một khối lượng giao dịch tương đối lớn mà chỉ RK tham chiếu. Do đó, kích thước của RB không phải là yếu tố hạn chế.
Ngược lại, Ouroboros Peras giới thiệu một tính năng bổ sung: bỏ phiếu trên Khối xếp hạng. Tính năng này tạo điều kiện cho việc giải quyết giao dịch nhanh hơn và có thể giải quyết các hardfork Blockchain nhanh hơn. Không giống như cơ chế đồng thuận ban đầu của Nakamoto do Satoshi đề xuất, Ouroboros Peras kết hợp nhiệm vụ mới lạ này.
Khi các node trong mạng thực hiện nhiều tác vụ hơn, đòi hỏi phải tăng cường giao tiếp, sức mạnh tính toán mạng và băng thông sẽ được sử dụng nhiều hơn đáng kể. Khối lượng công việc trung bình sẽ cao hơn và mạng sẽ không có dấu hiệu sử dụng tài nguyên tăng đột biến như thế hệ đồng thuận đầu tiên của Nakamoto.
Ouroboros Leios và Peras giải quyết những hạn chế của cơ chế đồng thuận Nakamoto trong khi vẫn duy trì được sức mạnh của nó, đặc biệt là sự nhấn mạnh vào tính liên tục. Trong trường hợp mức độ tham gia bỏ phiếu RB (Khối xếp hạng) thấp—có thể do ngừng hoạt động đột ngột ảnh hưởng đến một số lượng đáng kể các node mạng—cơ chế đồng thuận của Nakamoto sẽ quay trở lại hành vi truyền thống của nó. Do đó, việc bỏ phiếu cho RB không phải là điều kiện tiên quyết để đạt được cơ chế đồng thuận giữa các node.
Lời kết
Nhiều người dùng gửi giao dịch đồng thời, bất kể cơ chế đồng thuận của mạng. Mục tiêu chính của họ là giải quyết các giao dịch càng nhanh càng tốt. Do đó, mạng phải xác thực các giao dịch này gần như ngay lập tức sau khi gửi. Thông lượng cao đóng vai trò là biện pháp bảo vệ hiệu quả nhất chống lại tắc nghẽn mạng. Nếu giao dịch của người dùng chờ trong mem-pool trong một thời gian dài hoặc nếu người dùng cần gửi lại chúng, thì điều đó thể hiện sự thất bại so với các dịch vụ ngân hàng truyền thống có quy mô tốt và cho phép thanh toán ngay lập tức.
Các giải pháp "sharding" và Lớp 2 (Layer 2) giải quyết các thách thức khác với Ouroboros Leios và Peras. Các giao thức sau tập trung vào việc tối đa hóa dung lượng mạng trong một trạng thái global duy nhất. Ngược lại, thế hệ giải pháp Layer 2 ban đầu đã gặp phải những hạn chế, gây ra sự phức tạp cho người dùng cũng như phân chia người dùng và vốn. Mặt khác, "sharding" hứa hẹn là một công nghệ khả thi hơn.
Nguồn bài viết tại đây
Chia sẻ bài viết này trên Twitter | Facebook | Telegram
Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới