Skip to main content

Ouroboros Leios

Ngày 24 tháng 08 năm 2022

Ouroboros Leios sẽ thay đổi Đồng thuận Cardano như thế nào

Tải tài liệu Ouroboros Leios (bản dịch tiếng Việt)

Cardano sử dụng cơ chế đồng thuận PoS, tại thời điểm viết bài này, Cardano có khả năng xử lý 300 giao dịch đơn giản mỗi giây. Con số đó nhiều hơn gần 50 lần so với cơ chế đồng thuận PoW mà Bitcoin sử dụng. Tuy nhiên, đối với hệ thống tài chính toàn cầu, điều này vẫn chưa đủ. Nhóm IOG đang làm việc trên một phiên bản PoS mới mà họ đặt tên là Ouroboros Leios.

Trilemma: Bộ ba vấn đề nan giải của blockchain

Nhóm nhà phát triển của bất kỳ mạng blockchain nào đều muốn cân bằng ba đặc điểm quan trọng, đó là:

  1. Bảo mật (Security)
  2. Phi tập trung (Decentralization)
  3. Khả năng mở rộng (Scalability). 

Picture

Bộ ba vấn đề của blockchain đề cập tới lập luận phổ biến rằng các mạng blockchain phi tập trung chỉ có thể cung cấp được hai trong ba lợi ích tại bất kỳ thời điểm nào. Bảo mật thường là một tính năng ưu tiên hàng đầu và không nên đánh đổi. Vậy nên, các blockchain chủ yếu tìm đến sự đánh đổi giữa Phi tập trung và Khả năng mở rộng. Và thường thì các blockchain ưu tiên chọn Khả năng mở rộng và hy sinh tính Phi tập trung. Đó không phải là giải pháp tốt nhất, vì Phi tập trung là một tính năng chính của ngành công nghiệp blockchain. Hơn nữa, khi sự Phi tập trung giảm, hệ số Nakamoto cũng giảm, kéo theo suy giảm tính bảo mật.

Tạo ra một mạng lưới blockchain đạt được khả năng mở rộng cao trong khi không hy sinh tính Phi tập trung và bảo mật vẫn là một thách thức công nghệ đối với ngành công nghiệp blockchain. Cardano hiện là một trong những mạng phi tập trung nhất, với vài nghìn nhà vận hành pool đang sản xuất các khối (block). Cardano bắt buộc phải duy trì sự Phi tập trung hiện tại và hy sinh tính Phi tập trung hay Bảo mật để tăng trưởng thêm nữa. Tuy nhiên, việc tăng khả năng mở rộng cũng là điều cần thiết đối với sứ mệnh mà Cardano đang cố gắng hoàn thành.

Ouroboros Leios là một phần mở rộng chính cho cơ chế đồng thuận PoS hiện tại sẽ làm tăng đáng kể khả năng mở rộng và duy trì mức độ Phi tập trung hiện tại. Chúng ta hãy xem xét các chi tiết được biết cho đến nay.

Thông lượng (Throughput)

Các mạng blockchain sử dụng các khối như một tập hợp các giao dịch và tập lệnh (scripts) mà qua đó cơ chế đồng thuận của mạng lưới xảy ra. Từ góc độ mạng, sẽ không hiệu quả nếu đưa ra quyết định ở cấp độ toàn cầu cho từng giao dịch riêng lẻ. Sẽ hiệu quả hơn nếu thực hiện đồng thời nhiều giao dịch và đưa ra quyết định (đồng thuận) trên toàn bộ bộ sưu tập.

Khối là một đơn vị cơ bản được sử dụng để chuyển sang trạng thái mới ở cấp sổ cái. Nếu phần lớn mạng coi khối được đề xuất là hợp lệ, khối mới sẽ được lưu trữ trong blockchain mãi mãi và sẽ trở thành điểm khởi đầu cho quá trình chuyển đổi trạng thái tiếp theo.

Hai tham số ảnh hưởng đến thông lượng của mạng blockchain. Chúng là kích thước khối (block-size) và thời gian khối (block-time). 

Kích thước khối xác định kích thước tối đa của một khối, điều này ảnh hưởng đến số lượng giao dịch và tập lệnh có thể phù hợp với khối đó. Nếu kích thước khối là 88 kB (90.112 B) và một giao dịch đơn giản có kích thước, chẳng hạn như 300 B, thì 300 giao dịch có thể lấp đầy một khối.

Thời gian khối xác định khoảng thời gian giữa việc thêm các khối mới. Cardano có thời gian khối được đặt thành 20 giây. Điều này có nghĩa là trong 1 phút Cardano có thể xử lý 900 giao dịch đơn giản. Trong 10 phút, 9000 giao dịch, v.v.

Điều có thể xảy ra là, nếu số lượng người dùng muốn sử dụng mạng bắt đầu tăng lên, mạng có thể không chèn thêm được tất cả các giao dịch mới vào một khối mới. Do đó, một số giao dịch phải đợi trong mem-pool (bộ nhớ tạm) cho khối tiếp theo. 

Ví dụ: điều này sẽ xảy ra nếu 400 người dùng muốn gửi một giao dịch đơn giản trong vòng 20 giây và điều này sẽ lặp lại trong một giờ. 400 giao dịch nhiều hơn 300 giao dịch mà Cardano có thể dễ dàng xử lý. Như vậy, cứ sau 20 giây, 100 giao dịch lại bị bỏ lại, và những giao dịch bị bỏ lại này sẽ nằm ở trong mem-pool. 

Bạn có thể coi mem-pool như một kho lưu trữ tạm thời các giao dịch trên các node mạng. Khi một nhà sản xuất khối trở thành người đóng block tiếp theo, tức là giành được quyền tạo một khối mới trong một vị trí nhất định, nó sẽ lấy các giao dịch đã được xác thực trước từ mem-pool và đưa chúng vào khối. Sau đó, nó truyền khối tới mạng. Với mỗi khối mới được thêm vào, không gian mem-pool tăng lên khi các giao dịch đã có trong blockchain có thể được thực hiện. Tuy nhiên, các giao dịch mới lại liên tục đến.

Nếu số lượng giao dịch liên tục cao hơn số lượng mạng có thể xử lý, điều cần thiết là ngăn không cho mem-pool đầy vượt quá giới hạn yêu cầu. Mạng lưới buộc phải từ chối các giao dịch mới. Người dùng phải đợi lâu hơn để giải quyết các giao dịch đã có trong mem-pool. Người dùng không gửi được giao dịch phải thử lại. Cả hai trường hợp đều không tốt cho người dùng. Người dùng mong đợi rằng giao dịch của họ phải được thực hiện trong thời gian ngắn và mạng sẽ không gặp vấn đề về thông lượng.

Mem-pool có khả năng hấp thụ các đỉnh ngắn hạn, nhưng nó không có ý nghĩa gì cả nếu kích thước của mem-pool lớn hơn nhiều lần so với kích thước khối. Nếu trong mem-pool chứa quá nhiều giao dịch, chẳng hạn như tương đương 100 khối, điều đó có nghĩa là hầu hết các giao dịch mới được gửi sẽ không được đưa vào khối trong một thời gian tương đối dài. Lý tưởng nhất, số lượng giao dịch trong mem-pool phải càng ít càng tốt và mạng phải mở rộng quy mô đủ để các giao dịch không nằm trong mem-pool quá lâu.

Mạng phi tập trung có thể truyền các giao dịch tương đối nhanh chóng và về mặt lý thuyết chỉ bị giới hạn bởi băng thông Internet. Internet có thông lượng cao hơn các mạng blockchain vì các blockchain bị giới hạn bởi kích thước khối và thời gian khối. Nói cách khác, các mạng blockchain hiện không thể sử dụng hết thông lượng sẵn có của Internet khi sản xuất và truyền các khối. Điều khiến các mạng blockchain không thể nhanh hơn được là do cơ chế đồng thuận chậm chạp, hơn nữa còn bị giới hạn bởi kích thước của dữ liệu trong một khoảng thời gian nhất định. Trong khi các giao dịch mới được truyền qua mạng một cách liên tục một cách nhanh chóng, thì kết quả dẫn đến là mem-pool sẽ được lấp đầy nhanh.

Có những giải pháp dường như đơn giản như tăng kích thước khối hoặc giảm thời gian khối. Cả hai đều dẫn đến thông lượng cao hơn vì nhiều giao dịch sẽ phù hợp với một khối hơn và một khối mới sẽ được tạo ra thường xuyên hơn. Thật không may, việc thay đổi các thông số này có thể có tác động tiêu cực đến bảo mật và Phi tập trung. Ví dụ, khối càng lớn thì thời gian truyền trong mạng ngang hàng càng lâu (làm tăng độ trễ). Kích thước khối càng ngắn, nguy cơ tạo ra các nhánh càng lớn, vì nhà sản xuất khối có thể không nhận được khối được sản xuất cuối cùng kịp thời (và sử dụng khối trước đó).

Khi số lượng các node trong mạng tăng lên, số lượng bước nhảy mà dữ liệu phải đi qua trong mạng có thể tăng lên. Khi mỗi node xác thực dữ liệu trước khi gửi (để tránh gửi dữ liệu không hợp lệ qua mạng), việc phát tán dữ liệu bị chậm lại.

Làm thế nào để tăng thông lượng?

Như chúng tôi đã nói, hiện tại, các mạng blockchain hầu như không sử dụng hết hạn mức băng thông truyền thông. Hầu hết thời gian, các node chỉ trong trạng thái là chờ đợi. Họ nhận và xác thực trước và phát tán thêm các giao dịch và tập lệnh mới. Việc xác minh các giao dịch mới đến không phải là một nhiệm vụ đòi hỏi tính toán đối với các node. Họ chỉ còn một chút việc phải làm khi nhận được một khối mới hoặc được giao nhiệm vụ sản xuất một khối mới. 

Nếu thời gian khối được đặt thành 20 giây, chúng ta có thể thấy rằng node thực hiện công việc tối thiểu trong 19 giây và xác nhận hoặc tạo một khối mới sau mỗi 20 giây. Về việc sử dụng băng thông mạng, nó cũng tương tự. Có rất nhiều giao dịch nhỏ được gửi qua mạng mọi lúc, nhưng cứ 20 giây một lần, một khối tương đối lớn mới cần được phát tán, điều này mất nhiều thời gian hơn so với giao dịch.

Để tăng khả năng mở rộng, cần sử dụng sức mạnh tính toán của các node và tận dụng "thời gian rảnh" của chúng. Sẽ không hợp lý nếu chỉ sử dụng sức mạnh tính toán và băng thông của mạng khi một khối mới được tạo ra. Nói một cách đơn giản, thời gian khối càng dài thì sức mạnh tính toán và băng thông của mạng càng được sử dụng ít hơn.

Đừng nhầm lẫn nhiệm vụ của PoW với khả năng mở rộng của Bitcoin, về cơ bản, mạng lưới cũng sẽ không hoạt động trong 10 phút trong khi các thợ đào chỉ cố gắng giải quyết vấn đề mật mã chuyên sâu về tính toán.

Vì vậy, nó là cần thiết để sử dụng các nguồn tài nguyên sẵn có. Các giao dịch và tập lệnh đã được xác thực phải được chấp nhận, phát tán và lưu trữ trong blockchain càng sớm càng tốt. Nói cách khác, cần đưa các kết quả xác nhận vào khối càng sớm càng tốt, bất kể số lượng của chúng là bao nhiêu.

Nhiều người mới tiếp cận crypto không rõ về Phi tập trung chính xác là gì? Và quan trọng hơn, nó có thể thay đổi những gì? Bài viết này sẽ xem xét giao thức Cardano được phân cấp như thế nào và sau đó thảo luận về những gì tất cả có thể thay đổi trong xã hội của chúng ta thông qua Phi tập trung.

Làm thế nào để tăng thông lượng trong khi vẫn duy trì bảo mật và Phi tập trung? Không được thay đổi cơ bản về số lượng node trong mạng. Mạng phải vẫn mở để một node mới có thể tham gia bất kỳ lúc nào. 

Giải pháp phải độc lập với kích thước khối và các tham số thời gian khối. Cần phải sử dụng toàn bộ thông lượng của liên kết giao tiếp để có thể xử lý nhanh chóng càng nhiều giao dịch và tập lệnh mới càng tốt. Các node có thể sử dụng nhiều hơn sức mạnh tính toán của chúng trong khi chờ một khối mới được tạo. Nhóm IOG đã tìm ra giải pháp. 

tip

Cần phải tách hai việc xác thực giao dịchthực thi tập lệnh khỏi node sản xuất khối. Ouroboros Leios sẽ chia các nhiệm vụ liên quan đến xác thực và sản xuất khối thành hai nhóm node. Tuy nhiên, mọi node đều có thể thực hiện cả hai nhiệm vụ này.

Input Endorsers (Trình xác thực đầu vào)

Cardano chia thời gian thành các slot. Mỗi slot là một giây. Giao thức được thiết lập sao cho cứ khoảng 20 giây, một Slot leader ngẫu nhiên sẽ trở thành node sản xuất khối. Node sản xuất khối có quyền chèn các giao dịch vào một khối mới và công bố nó cho mạng lưới. Số lượng stake ảnh hưởng đến tần suất mà một node có thể trở thành node sản xuất khối. Node sản suất khối được chọn cũng là nhà sản xuất khối nếu nó sử dụng quyền và tạo ra một khối mới.

Trong hình bên dưới, bạn có thể thấy thời gian được chia thành các slot. Trong các vị trí 20 và 40 các node sản xuất khối mới được thay thế, đây là các node được đánh dấu 11 và 3. Các node này có thể tạo ra một khối mới và công bố nó.

Picture

Có các thực thể trong mạng (nhà vận hành stake pool) được người ủy quyền tin cậy và điều này có thể dược khai thác. Ngoài các nhà sản xuất khối, sẽ có một nhóm thứ hai được gọi là Input Endorsers. Do đó, trong một vị trí, có thể chọn ngẫu nhiên không chỉ các node đóng block (Slot leader) mà còn chọn một bộ Input Endorsers (về mặt lý thuyết là nhiều bộ Input Endorsers).

Vai trò của các Slot leader là không thay đổi và họ được giao nhiệm vụ sản xuất một khối mới. Input Endorsers có nhiệm vụ xác thực các giao dịch đầu vào sẽ được lưu trong khối. Chúng ta sẽ nói về nội dung của 'Đầu vào được xác nhận' ở phần sau. Trình Input Endorsers có thể được coi là lớp thứ hai sẽ xử lý sớm các giao dịch và tập lệnh trước khi chúng được chèn vào khối mới bởi một Slot leader được chọn ngẫu nhiên.

Input Endorsers sẽ được chọn ngẫu nhiên theo cơ chế tương tự như cách Slot leader được chọn. Sự khác biệt là các Input Endorsers có thể được chọn trong từng slot riêng lẻ (mỗi giây sẽ có một Input Endorsers được chọn) trước khi node Slot leader được chọn (khoảng 20 giây một lần). Các giao dịch đầu vào do Input Endorsers chuẩn bị sẽ chỉ được Slot leader chấp nhận nếu nó được xác minh bằng mật mã rằng Input Endorsers đã có được quyền chuẩn bị giao dịch đầu vào.

Ở giữa khoảng thời gian của hai khối, nhiều Input Endorsers sẽ được chọn ngẫu nhiên để chuẩn bị các giao dịch đầu vào. Khi node sản xuất khối được chọn, sẽ có nhiều 'Đầu vào đã được xác nhận' đã sẵn sàng để có thể được chèn vào khối. Thay vì node sản xuất khối chèn các giao dịch và tập lệnh đã chọn vào khối như hiện tại, node sản xuất khối sẽ chỉ chèn các tham chiếu đến các 'Đầu vào đã được xác nhận' vào khối. 

Các khối và các giao dịch 'Đầu vào đã được xác nhận' được phát tán độc lập trong mạng. Mỗi khối có thể chứa từ 0 đến N 'Đầu vào đã được xác nhận'.

Trong hình bên dưới, bạn có thể xem lại thời gian được chia thành các slot. Khoảng 20 giây một lần, một Slot leader mới sẽ được thay ra. Ngoài ra, một mã Input Endorsers được thay thế trong mỗi vị trí và nó được quyền tạo ra một đầu vào mới. Như vậy, có thời điểm có hai hành động thay thế diễn ra song song cùng lúc.

Picture

Phương pháp 'Đầu vào đã được xác nhận' chỉ có thể thực hiện được vì Cardano sử dụng mô hình Extended-UTXO. Có thể xác thực các giao dịch và tập lệnh cục bộ bất kể môi trường xung quanh (không có trạng thái toàn cầu - global state). Xác thực giao dịch và thực thi tập lệnh xảy ra cục bộ ở cấp Input Endorsers, tức là bên ngoài chuỗi chính vẫn nằm dưới sự kiểm soát của các Slot leader. Trách nhiệm tìm kiếm xung đột chi tiêu gấp đôi vẫn thuộc về các Slot leader đã chọn. Tuy nhiên, công việc của Slot leader sẽ ít hơn vì chỉ cần dựa vào việc phát hiện và giải quyết các xung đột của giao dịch UTXO.

Trong một giao dịch có thể được chứa trong nhiều 'Đầu vào đã được xác nhận'. Điều này có thể xảy ra nếu trình Input Endorsers không biết các giao dịch đầu vào trước đó trông như thế nào. Trong trường hợp một giao dịch được nhân trùng lặp, thì chỉ giao dịch xuất hiện đầu tiên của nó sẽ được ghi vào sổ cái.

Trong hình bên dưới, bạn có thể thấy cách một 'Đầu vào đã được xác nhận' mới được tạo mỗi giây. Ngay sau khi node sản xuất khối mới được thay thế, đã có sẵn nhiều 'Đầu vào đã được xác nhận' sẵn sàng được sử dụng. Node sản xuất khối chỉ thực hiện quá trình xác nhận và chèn tất cả các giao dịch 'Đầu vào đã được xác nhận' vào khối mới.

Picture

Hãy xem điều gì sẽ xảy ra từ việc gửi giao dịch đến khi chèn nó vào khối.

Khi một node nhận được một giao dịch mới, node sẽ xác thực nó. Tất cả các giao dịch hợp lệ sẽ được đưa vào mem-pool. Nếu một Slot leader và có quyền được tạo 'Đầu vào đã được xác nhận', nó sẽ bao gồm các giao dịch đã được xác thực trước trong đầu vào mới. Một loạt các giao dịch sẽ được tạo. Bạn có thể coi đây là một loại khối mới. Các 'Đầu vào đã được xác nhận' (khối) được phát tán trong mạng ngang hàng. Ngoài mem-pool cho các giao dịch, sẽ có một mem-pool cho các 'Đầu vào đã được xác nhận'. Các node sẽ giữ nhiều 'Đầu vào đã được xác nhận' trong mem-pool chuyên dụng để sẵn sàng sản xuất một khối mới trong trường hợp chúng trở thành node sản xuất khối. 

Các node không chỉ lưu trữ các 'Đầu vào đã được xác nhận' mà còn chứng minh cục bộ tính hợp lệ của chúng thông qua chứng chỉ Mithril, là bằng chứng mật mã về tính hợp lệ đối với các nhóm giao dịch.

Khi node sản xuất khối mới được chọn, nó sẽ chọn các 'Đầu vào đã được xác nhận' từ mem-pool và xác minh rằng không có chi tiêu trùng lắp nào xảy ra. Sau đó, nó sẽ chèn các tham chiếu của tất cả các 'Đầu vào đã được xác nhận' đã chọn vào khối mới. Sau đó, khối mới được phát tán đến mạng và việc xác nhận bởi các node khác được thực hiện theo cách tương tự như hiện tại. Trong quá trình phát tán khối mới, các node có thể loại bỏ đi các 'Đầu vào đã được xác nhận' đã sử dụng từ các mem-pool của chúng.

Trong hình bên dưới, bạn có thể thấy cách một node nhận các giao dịch mới và cả các đầu vào mới được xác nhận từ mạng ngang hàng. Cả hai đều được lưu trữ trong các bể ghi nhớ chuyên dụng. Node đã gặp may và được bầu làm slot leader (đóng block), vì vậy nó đã tạo ra một khối mới.

Picture

Lưu ý rằng khái niệm này ủy quyền xác thực các giao dịchthực thi tập lệnh cho tất cả các node và không tạo gánh nặng cho Slot leader làm slot leader. Nó cho phép sử dụng sức mạnh tính toán của các node trong thời gian “nhàn rỗi” trong khi tất cả các node đều chờ đợi node sản xuất khối mới được chọn.

Các giao dịch và tập lệnh được mạng xử lý liên tục mọi lúc, vì vậy việc tạo một khối mới là một quá trình tương đối nhanh chóng. Bởi vì các tham chiếu đến các đầu vào được xác nhận được sử dụng, kích thước khối có thể giữ nguyên như ngày nay, nhưng khối lượng dữ liệu được xử lý có thể lớn hơn nhiều lần. Nói cách khác, mỗi 'Đầu vào đã được xác nhận' có thể chứa 1000 giao dịch. Do đó, việc phát tán khối sẽ không bị chậm lại do kích thước. Tuy nhiên, đồng thời, các node có quyền truy cập vào tất cả dữ liệu cần thiết được tham chiếu trong khối mới.

Khái niệm này có thể giống với các giải pháp Layer2 như ZK Rollups và Optimistic Rollups hoặc các giải pháp khác như Lightning Network. Tuy nhiên, ưu điểm của giải pháp này là không có mạng thứ hai với cơ sở hạ tầng riêng. Mọi thứ sẽ nằm dưới sự kiểm soát của các nhà vận hành stake pool hiện tại trong mạng Cardano. Người dùng sẽ không nhận thấy sự thay đổi này, nhưng họ sẽ cảm nhận được hiệu suất tốt hơn. Không cần sử dụng cầu nối hoặc các địa chỉ khác nhau để trải nghiệm người dùng sẽ không bị ảnh hưởng theo hướng tiêu cực.

KẾT LUẬN

Tại thời điểm viết bài, tất cả người hâm mộ đang háo hức chờ đợi thêm thông tin chi tiết từ các đội IOG. Có lẽ câu hỏi lớn nhất đối với chúng ta là các giao dịch và tập lệnh sẽ được lưu trữ ở đâu và như thế nào, vì khối sẽ chỉ tham chiếu dữ liệu. Bởi vì Cardano sẽ mở rộng quy mô tốt hơn nhiều, nó cũng sẽ tạo ra nhiều dữ liệu hơn cần được lưu trữ ở đâu đó. Giải pháp lý tưởng sẽ là thông qua sharding để các node không phải lưu trữ tất cả dữ liệu mà chỉ lưu một phần dữ liệu. Hãy xem nhóm IOG giải quyết vấn đề này như thế nào.

Còn quá sớm để tuyên bố rằng bộ ba vấn đề trilemma của blockchain đã được giải quyết. Tuy nhiên, Ouroboros Leios sẽ là một bước tiến đáng kể vì thông lượng mạng sẽ không bị giới hạn bởi kích thước khối và các thông số thời gian khối. Hiện tại vẫn chưa biết khả năng mở rộng của Cardano sẽ cao đến mức nào. Tuy nhiên, có nhiều khả năng chúng ta sẽ tăng lên ít nhất là một mức độ lớn. Trước đây, người ta nói rằng blockchain là một cơ sở dữ liệu chậm. Ouroboros Leios vô hiệu hóa lập luận này và có thể viết lại lịch sử của cơ chế đồng thuận mạng.

Nguồn bài viết tại đây

Video giải thích về Ouroboros Leios


Picture


Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới