Pipelining – Giải pháp mở rộng lớp đồng thuận của Cardano
Mở rộng quy mô và thông lượng là những cân nhắc quan trọng đối với bất kỳ blockchain nào để duy trì tăng trưởng và khả năng cạnh tranh so với các nền tảng khác. Khi Cardano bước vào giai đoạn phát triển Basho, các nhà phát triển tập trung vào việc đảm bảo rằng Cardano mở rộng quy mô để đáp ứng nhu cầu ngày càng tăng của hệ sinh thái.
Giới thiệu
Pipelining là một cải tiến đối với lớp đồng thuận để tạo điều kiện cho việc truyền khối nhanh hơn. Nó cho phép tăng nhiều hơn nữa về khoảng không, điều này sẽ giúp tăng thêm hiệu suất và khả năng cạnh tranh của Cardano.
Kỹ thuật
Để hiểu cách kỹ thuật này đạt được mục tiêu đề ra, trước tiên cần nắm được cách các khối lan truyền ở thời điểm hiện tại.
Hiện tại, một khối trải qua sáu bước khi nó di chuyển trong chuỗi:
- Truyền tiêu đề khối (block header)
- Xác thực tiêu đề khối
- Yêu cầu nội dung khối (block body) và truyền tải
- Xác thực nội dung khối và tiện ích mở rộng chuỗi cục bộ
- Truyền tiêu đề khối đến các node hạ lưu
- Truyền nội dung khối đến các node hạ lưu
Các giao thức đồng thuận sổ cái được đặc trưng bởi hai tham số về thời gian:
-
- Δp: độ trễ mạng tối đa để một khối mới lan truyền tới node, ví dụ 95% mạng lưới
- Δb: thời gian (dự kiến) giữa việc tạo ra hai khối mới
Thông thường Δb được chọn lớn hơn một chút so với Δp để đảm bảo rằng việc lan truyền block trước đó phải kết thúc trước khi block mới được tạo. Ở Cardano, chúng ta có Δp = 5s và Δb = 20s.

Hình 1 mô tả một cách đơn giản cách thức hoạt động lan truyền block trong mạng lưới. Nhà sản xuất khối gửi tiêu đề khối mới của họ đến Peer 1 (ô h màu trắng), chiếm các liên kết mạng của cả hai node trong khoảng thời gian được chỉ ra bởi ô h màu trắng. Peer 1 sau đó xác nhận tiêu đề khối (liên quan đến tính toán cục bộ trong khoảng thời gian được thể hiện bởi ô hv màu xám). Nếu tiêu đề hợp lệ, nội dung khối được tải xuống bởi Peer 1 (ô b màu trắng), một lần nữa chiếm các liên kết mạng của cả hai node. Cuối cùng, Peer 1 xác nhận phần nội dung khối (ô bv màu xám) và chỉ khi phần nội dung khối cũng hợp lệ, Peer 1 sẵn sàng lan truyền khối cho các node ngang hàng khác theo luồng của những gì vừa được mô tả.
Tuy nhiên một tác dụng phụ trong chế độ vận hành này đó là CPU của một node và liên kết mạng chỉ được sử dụng trong một phần nhỏ của khoảng thời gian Δp = 5s, trong khi phần lớn là không hoạt động trong phần còn lại của khoảng thời gian Δb = 20s.
Cụ thể, lượng dữ liệu chúng ta có thể đưa vào một khối được xác định bởi độ trễ mạng ngang hàng của khối và thời gian xác thực cần thiết, cả hai đều tăng gần như tuyến tính với kích thước khối (block size). Các nhà phát triển đo đạc được rằng, để đảm bảo mạng lan truyền trong Δp = 5s, kích thước khối không được vượt quá 2 MB.
Tuy nhiên, thông lượng giao dịch có thể vượt giới hạn này bằng cách áp dụng các thay đổi cho mạng ngang hàng và các lớp đồng thuận thông qua kỹ thuật khuếch tán pipelining (Diffusion pipelining)
Diffusion pipelining
Quay trở lại với hình 1, có thể thấy rằng tất cả các hành động của các nút được thực hiện theo một trình tự nghiêm ngặt, và do đó Δp cần phải phù hợp với thời gian yêu cầu của một node nhân với số bước nhảy trong đường dẫn ngang hàng. Mặc dù điều này là cần thiết cho việc truyền tải mạng lưới, nhưng nó không phải để xác thực khối.
Ở hình 2, bằng cách cho phép các khối được lan truyền trước khi quá trình xác thực đầy đủ diễn ra, giúp loại trừ xác nhận nội dung khối khỏi quá trình lan truyền. Ngay sau khi Peer 1 nhận được phần nội dung khối (ô b), nó đã có thể bắt đầu truyền tải khối đồng thời để xác thực phần nội dung khối.
Ngược lại với sơ đồ trong Hình 1, Δp giờ đây chỉ cần tính đến việc xác thực nội dung một lần. Điều này dẫn đến có nhiều thời gian hơn để truyền tải mạng ngang hàng và xác thực nội dung, do đó cho phép thông lượng giao dịch cao hơn. Có thể dễ thấy khi so sánh với Hình 1, mức tăng này được minh họa bằng xác thực nội dung lớn hơn (‘bv’)
Lưu ý rằng giải pháp này không phải được áp dụng lên toàn bộ cách giao thức hiện đang hoạt động, các nhà phát triển Cardano đơn giản là thêm một giao thức nhỏ mới như là một giải pháp ngoài luồng cho các đối tác. Đối tác có thể được thông báo trước một khối mong muốn nhìn thấy trước khi nó được xác thực đầy đủ, cho phép các node hạ lưu tìm nạp trước phần thân khối mới. Điều này tiết kiệm rất nhiều thời gian vì giảm đáng kể thời gian xác thực một khối qua nhiều bước.
Kết luận
Pipelining chỉ là một trong những trụ cột hỗ trợ Cardano mở rộng quy mô, song vẫn còn nhiều các giải pháp khác để tăng thông lượng. Kết hợp lại, tất cả những thay đổi sẽ đưa Cardano đến vị trí mà nó nhanh hơn các đối thủ cạnh tranh và là một nền tảng cạnh tranh cao cho tài chính phi tập trung (DeFi)
Source:
[2] https://iohk.io/en/blog/posts/2022/03/21/increasing-the-transaction-throughput-of-cardano/