Khung Shoal: Tối ưu hóa độ trễ nhận thức chung Bullshark trên Aptos
Aptos Labs gần đây đã giải quyết hai vấn đề quan trọng trong DAG BFT, giảm đáng kể trễ, và lần đầu tiên loại bỏ nhu cầu về thời gian chờ trong giao thức thực tế xác định. Nhìn chung, trong trường hợp không có lỗi, đã cải thiện trễ của Bullshark lên 40%, trong trường hợp có lỗi, đã cải thiện 80%.
Shoal là một khuôn khổ, thông qua xử lý theo quy trình và cơ chế uy tín của người dẫn đầu để tăng cường giao thức nhận thức chung dựa trên Narwhal ( như DAG-Rider, Tusk, Bullshark ). Quy trình xử lý thông qua việc giới thiệu một điểm neo trong mỗi vòng để giảm thiểu trễ sắp xếp DAG, uy tín của người dẫn đầu cải thiện thêm vấn đề trễ bằng cách đảm bảo điểm neo được liên kết với các nút xác thực nhanh nhất. Hơn nữa, uy tín của người dẫn đầu cho phép Shoal khai thác cấu trúc DAG bất đồng bộ để loại bỏ tất cả các trường hợp hết thời gian. Điều này cho phép Shoal cung cấp đặc tính phản hồi phổ quát, bao gồm cả phản hồi lạc quan thường cần thiết.
Công nghệ của Shoal tương đối đơn giản, chủ yếu là chạy nhiều phiên bản của giao thức cơ sở theo thứ tự từng cái một. Khi được khởi tạo với Bullshark, nó tạo thành một nhóm "cá mập" đang tham gia cuộc đua tiếp sức.
Bối cảnh và động lực
Trong quá trình theo đuổi hiệu suất cao của mạng blockchain, việc giảm độ phức tạp giao tiếp luôn là một điểm chú ý. Tuy nhiên, phương pháp này không mang lại sự cải thiện đáng kể về thông lượng. Ví dụ, Hotstuff được triển khai trong các phiên bản đầu tiên của Diem chỉ đạt 3500 TPS, thấp hơn nhiều so với mục tiêu 100k+ TPS.
Đột phá gần đây xuất phát từ việc nhận thức rằng việc truyền dữ liệu là nút thắt chính dựa trên thỏa thuận của các nhà lãnh đạo, có thể được hưởng lợi từ việc phân tán. Hệ thống Narwhal tách việc truyền dữ liệu khỏi logic nhận thức chung cốt lõi, đề xuất một kiến trúc trong đó tất cả các xác thực viên cùng truyền dữ liệu, trong khi thành phần nhận thức chỉ sắp xếp một lượng nhỏ siêu dữ liệu. Bài báo Narwhal báo cáo công suất 160.000 TPS.
Aptos trước đây đã giới thiệu Quorum Store, tức là việc triển khai Narwhal, tách biệt việc phát tán dữ liệu và Nhận thức chung, cũng như cách sử dụng nó để mở rộng giao thức Nhận thức chung hiện tại Jolteon. Jolteon là một giao thức dựa trên lãnh đạo, kết hợp con đường nhanh tuyến tính của Tendermint và sự thay đổi tầm nhìn theo phong cách PBFT, có thể giảm trễ của Hotstuff xuống 33%. Tuy nhiên, rõ ràng rằng giao thức Nhận thức chung dựa trên lãnh đạo không thể tận dụng đầy đủ tiềm năng thông lượng của Narwhal. Dù đã tách biệt việc phát tán dữ liệu và Nhận thức chung, nhưng khi thông lượng tăng lên, lãnh đạo của Hotstuff/Jolteon vẫn bị hạn chế.
Do đó, Aptos quyết định triển khai Bullshark trên Narwhal DAG, một giao thức nhận thức chung không có chi phí giao tiếp. Thật không may, so với Jolteon, cấu trúc DAG hỗ trợ Bullshark có khả năng thông lượng cao đã mang lại chi phí trễ 50%.
Bối cảnh DAG-BFT
Mỗi đỉnh trong Narwhal DAG đều liên kết với một vòng. Để vào vòng r, các xác thực viên phải đầu tiên có được n-f đỉnh thuộc vòng r-1. Mỗi xác thực viên có thể phát sóng một đỉnh mỗi vòng, và mỗi đỉnh ít nhất phải tham chiếu đến n-f đỉnh của vòng trước. Do tính bất đồng bộ của mạng, các xác thực viên khác nhau có thể quan sát các cái nhìn địa phương khác nhau của DAG tại bất kỳ thời điểm nào.
Một thuộc tính quan trọng của DAG là tính không mơ hồ: nếu hai nút xác thực có cùng đỉnh v trong cái nhìn địa phương của chúng về DAG, thì chúng có lịch sử nguyên nhân v hoàn toàn giống nhau.
Tổng序
Có thể đạt được sự đồng thuận về tổng thứ tự của tất cả các đỉnh trong DAG mà không có chi phí truyền thông bổ sung. Để làm điều này, các xác thực trong DAG-Rider, Tusk và Bullshark sẽ giải thích cấu trúc của DAG như một giao thức nhận thức chung, trong đó các đỉnh đại diện cho các đề xuất, các cạnh đại diện cho các phiếu bầu.
Mặc dù logic giao thoa cộng đồng trên cấu trúc DAG là khác nhau, nhưng tất cả các giao thức nhận thức chung dựa trên Narwhal hiện có đều có cấu trúc sau:
Điểm neo đã được đặt: cứ sau vài vòng (, ví dụ, trong Bullshark có hai vòng ) sẽ có một người lãnh đạo đã được xác định trước, đỉnh của người lãnh đạo được gọi là điểm neo.
Điểm neo sắp xếp: Các xác thực độc lập nhưng quyết định một cách nhất định điểm neo nào sẽ được sắp xếp và điểm neo nào sẽ bị bỏ qua.
Sắp xếp lịch sử nguyên nhân: Các xác thực viên xử lý danh sách các điểm neo có thứ tự một cách tuần tự, đối với mỗi điểm neo, sắp xếp tất cả các đỉnh chưa có thứ tự trong lịch sử nguyên nhân của nó thông qua các quy tắc xác định.
Chìa khóa để đảm bảo tính bảo mật là đảm bảo rằng trong bước 2, tất cả các nút xác thực trung thực tạo ra một danh sách điểm neo có thứ tự, để tất cả các danh sách chia sẻ cùng một tiền tố. Trong Shoal, có những quan sát sau về tất cả các giao thức trên: tất cả các người xác thực đều đồng ý với điểm neo có thứ tự đầu tiên.
Bullshark Trễ
Độ trễ của Bullshark phụ thuộc vào số vòng giữa các điểm neo có thứ tự trong DAG. Mặc dù phiên bản đồng bộ phần mềm của Bullshark thực tế hơn so với phiên bản không đồng bộ có độ trễ tốt hơn, nhưng vẫn chưa đạt đến mức tối ưu.
Chủ yếu tồn tại hai vấn đề:
Thời gian trễ trung bình của khối: Trong Bullshark, mỗi vòng chẵn có một điểm neo, và đỉnh của mỗi vòng lẻ được giải thích là một phiếu bầu. Trong các trường hợp phổ biến, cần hai vòng DAG để sắp xếp các điểm neo, tuy nhiên, các đỉnh trong lịch sử nguyên nhân của các điểm neo cần nhiều vòng hơn để chờ điểm neo được sắp xếp. Trong các trường hợp phổ biến, các đỉnh trong vòng lẻ cần ba vòng, trong khi các đỉnh không phải điểm neo trong vòng chẵn cần bốn vòng.
Trễ trường hợp sự cố: Nếu một vòng lãnh đạo không đủ nhanh để phát sóng điểm neo, thì không thể sắp xếp điểm neo ( do đó bị bỏ qua ), tất cả các đỉnh chưa được sắp xếp trong vài vòng trước phải chờ điểm neo tiếp theo được sắp xếp. Điều này sẽ làm giảm hiệu suất của mạng sao chép địa lý một cách đáng kể, đặc biệt là vì Bullshark sử dụng thời gian chờ để chờ lãnh đạo.
Khung Shoal
Shoal đã cải thiện Bullshark( hoặc bất kỳ giao thức BFT nào dựa trên Narwhal bằng cách xử lý qua dây chuyền, cho phép có một điểm neo trong mỗi vòng và giảm thiểu độ trễ của tất cả các đỉnh không phải là điểm neo trong DAG xuống còn ba vòng. Shoal cũng đã giới thiệu cơ chế danh tiếng lãnh đạo không tốn kém trong DAG, khiến cho việc lựa chọn nghiêng về phía lãnh đạo nhanh.
Thách thức
Trong bối cảnh giao thức DAG, xử lý theo quy trình và danh tiếng của người lãnh đạo được coi là những vấn đề khó khăn, lý do như sau:
Các nỗ lực xử lý dây chuyền trước đây đã cố gắng sửa đổi logic Bullshark cốt lõi, nhưng điều này về bản chất dường như là không thể.
Danh tiếng của người lãnh đạo được đưa vào DiemBFT và chính thức hóa trong Carousel, là việc lựa chọn động các lãnh đạo tương lai dựa trên hiệu suất trong quá khứ của các xác thực viên trong )Bullshark. Mặc dù việc có sự khác biệt về danh tính lãnh đạo không vi phạm tính an toàn của các giao thức này, nhưng trong Bullshark, điều này có thể dẫn đến thứ tự hoàn toàn khác nhau. Điều này dẫn đến cốt lõi của vấn đề, tức là lựa chọn động và xác định các vòng neo là cần thiết để giải quyết Nhận thức chung, và các xác thực viên cần đạt được sự đồng thuận về lịch sử có thứ tự để chọn các neo trong tương lai.
Giao thức
Mặc dù có những thách thức trên, nhưng giải pháp ẩn giấu trong sự đơn giản. Trong Shoal, khả năng thực hiện tính toán cục bộ trên DAG đã được tận dụng, cho phép lưu trữ và giải thích lại thông tin từ các vòng trước. Với sự đồng thuận của tất cả các xác thực về cái nhìn cốt lõi của điểm neo có thứ tự đầu tiên, Shoal kết hợp tuần tự nhiều phiên bản Bullshark để xử lý theo dạng ống dẫn, cho phép:
Điểm neo có thứ tự đầu tiên là điểm chuyển đổi của phiên bản.
Lịch sử nguyên nhân và kết quả của điểm neo được sử dụng để tính toán danh tiếng của người lãnh đạo
( Xử lý theo dây chuyền
V ánh xạ các lượt thành các nhà lãnh đạo. Shoal chạy lần lượt các phiên bản của Bullshark, vì vậy đối với mỗi phiên bản, điểm neo được xác định trước bởi ánh xạ F. Mỗi phiên bản sắp xếp một điểm neo, điều này sẽ kích hoạt chuyển sang phiên bản tiếp theo.
Ban đầu, Shoal đã khởi động phiên bản đầu tiên của Bullshark trong vòng đầu tiên của DAG và vận hành nó cho đến khi xác định được điểm neo có thứ tự đầu tiên, chẳng hạn như trong vòng r. Tất cả các xác thực viên đều đồng ý với điểm neo này. Do đó, tất cả các xác thực viên đều có thể đồng ý một cách chắc chắn để giải thích lại DAG bắt đầu từ vòng r+1. Shoal chỉ khởi động một phiên bản Bullshark mới trong vòng r+1.
Trong trường hợp tốt nhất, điều này cho phép Shoal sắp xếp một điểm neo trong mỗi vòng. Điểm neo của vòng đầu tiên được sắp xếp theo thể hiện đầu tiên. Sau đó, Shoal bắt đầu một thể hiện mới trong vòng thứ hai, mà bản thân nó có một điểm neo, điểm neo đó được sắp xếp bởi thể hiện đó, sau đó, một thể hiện mới khác được sắp xếp điểm neo trong vòng thứ ba, và sau đó quá trình này tiếp tục.
![Giải thích chi tiết về khung Shoal: Làm thế nào để giảm trễ Bullshark trên Aptos?])https://img-cdn.gateio.im/webp-social/moments-0b0928cb6240e994c1514c75e080a4b2.webp###
( Danh tiếng lãnh đạo
Trong thời gian sắp xếp Bullshark, việc bỏ qua điểm neo sẽ làm tăng Trễ. Trong trường hợp này, công nghệ xử lý theo chuỗi không thể làm gì, vì không thể khởi động một phiên bản mới trước điểm neo của phiên bản trước đó. Shoal đảm bảo rằng các nhà lãnh đạo tương ứng sẽ ít có khả năng được chọn trong tương lai để xử lý các điểm neo bị mất bằng cách sử dụng cơ chế danh tiếng để phân bổ một điểm cho mỗi nút xác minh dựa trên lịch sử hoạt động gần đây của nó. Các nhà xác minh phản hồi và tham gia vào giao thức sẽ nhận được điểm cao, nếu không, các nút xác minh sẽ được phân bổ điểm thấp, vì chúng có thể gặp sự cố, chậm hoặc làm điều xấu.
Ý tưởng là khi mỗi lần cập nhật điểm số, tính toán lại một cách xác định bản đồ đã định nghĩa từ vòng đến người lãnh đạo F, thiên về những người lãnh đạo có điểm số cao hơn. Để các xác thực đạt được sự đồng thuận trên bản đồ mới, họ nên đồng thuận về điểm số, từ đó đạt được sự đồng thuận trên lịch sử được sử dụng để sinh ra điểm số.
Trong Shoal, xử lý theo chuỗi và lãnh đạo danh tiếng có thể kết hợp một cách tự nhiên, vì chúng đều sử dụng cùng một công nghệ cốt lõi, đó là việc giải thích lại DAG sau khi đạt được Nhận thức chung về điểm neo có thứ tự đầu tiên.
Trên thực tế, sự khác biệt duy nhất là, sau khi sắp xếp các điểm neo trong vòng thứ r, những người xác thực chỉ cần tính toán ánh xạ mới F' từ vòng thứ r+1 dựa trên lịch sử nguyên nhân có thứ tự của các điểm neo trong vòng thứ r. Sau đó, các nút xác thực bắt đầu từ vòng thứ r+1 sử dụng hàm lựa chọn điểm neo được cập nhật F' để thực hiện một ví dụ mới của Bullshark.
![Giải thích chi tiết Shoal framework: Làm thế nào để giảm trễ Bullshark trên Aptos?])https://img-cdn.gateio.im/webp-social/moments-859e732e16c3eee0e2c93422474debc2.webp###
( Không cần trễ
Thời gian chờ đóng vai trò quan trọng trong tất cả các triển khai BFT đồng bộ phần xác định dựa trên lãnh đạo. Tuy nhiên, sự phức tạp mà chúng mang lại đã làm tăng số lượng trạng thái nội bộ cần được quản lý và quan sát, điều này làm tăng độ phức tạp của quá trình gỡ lỗi và cần nhiều kỹ thuật quan sát hơn.
Thời gian chờ cũng sẽ làm tăng đáng kể trễ, vì việc cấu hình chúng một cách thích hợp là rất quan trọng, và thường cần phải điều chỉnh động, vì nó phụ thuộc nhiều vào môi trường ) mạng ###. Trước khi chuyển sang người lãnh đạo tiếp theo, giao thức sẽ trả toàn bộ hình phạt trễ cho người lãnh đạo gặp sự cố. Do đó, cài đặt thời gian chờ không thể quá bảo thủ, nhưng nếu thời gian chờ quá ngắn, giao thức có thể bỏ qua những người lãnh đạo tốt.
Thật không may, các giao thức dựa trên lãnh đạo ( như Hotstuff và Jolteon ) về cơ bản cần có thời gian chờ, để đảm bảo rằng giao thức có thể tiến triển mỗi khi lãnh đạo gặp sự cố. Nếu không có thời gian chờ, ngay cả lãnh đạo gặp sự cố cũng có thể ngừng giao thức mãi mãi. Do không thể phân biệt lãnh đạo gặp sự cố và lãnh đạo chậm trong thời gian bất đồng bộ, thời gian chờ có thể dẫn đến việc các nút xác thực nhìn thấy sự thay đổi của tất cả lãnh đạo mà không có Nhận thức chung.
Trong Bullshark, trễ được sử dụng để xây dựng DAG, nhằm đảm bảo rằng trong quá trình đồng bộ hóa, các nhà lãnh đạo trung thực sẽ thêm điểm neo vào DA.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Khung Shoal đổi mới của Aptos: mang lại tối ưu hóa 40-80% trễ cho nhận thức chung Bullshark
Khung Shoal: Tối ưu hóa độ trễ nhận thức chung Bullshark trên Aptos
Aptos Labs gần đây đã giải quyết hai vấn đề quan trọng trong DAG BFT, giảm đáng kể trễ, và lần đầu tiên loại bỏ nhu cầu về thời gian chờ trong giao thức thực tế xác định. Nhìn chung, trong trường hợp không có lỗi, đã cải thiện trễ của Bullshark lên 40%, trong trường hợp có lỗi, đã cải thiện 80%.
Shoal là một khuôn khổ, thông qua xử lý theo quy trình và cơ chế uy tín của người dẫn đầu để tăng cường giao thức nhận thức chung dựa trên Narwhal ( như DAG-Rider, Tusk, Bullshark ). Quy trình xử lý thông qua việc giới thiệu một điểm neo trong mỗi vòng để giảm thiểu trễ sắp xếp DAG, uy tín của người dẫn đầu cải thiện thêm vấn đề trễ bằng cách đảm bảo điểm neo được liên kết với các nút xác thực nhanh nhất. Hơn nữa, uy tín của người dẫn đầu cho phép Shoal khai thác cấu trúc DAG bất đồng bộ để loại bỏ tất cả các trường hợp hết thời gian. Điều này cho phép Shoal cung cấp đặc tính phản hồi phổ quát, bao gồm cả phản hồi lạc quan thường cần thiết.
Công nghệ của Shoal tương đối đơn giản, chủ yếu là chạy nhiều phiên bản của giao thức cơ sở theo thứ tự từng cái một. Khi được khởi tạo với Bullshark, nó tạo thành một nhóm "cá mập" đang tham gia cuộc đua tiếp sức.
Bối cảnh và động lực
Trong quá trình theo đuổi hiệu suất cao của mạng blockchain, việc giảm độ phức tạp giao tiếp luôn là một điểm chú ý. Tuy nhiên, phương pháp này không mang lại sự cải thiện đáng kể về thông lượng. Ví dụ, Hotstuff được triển khai trong các phiên bản đầu tiên của Diem chỉ đạt 3500 TPS, thấp hơn nhiều so với mục tiêu 100k+ TPS.
Đột phá gần đây xuất phát từ việc nhận thức rằng việc truyền dữ liệu là nút thắt chính dựa trên thỏa thuận của các nhà lãnh đạo, có thể được hưởng lợi từ việc phân tán. Hệ thống Narwhal tách việc truyền dữ liệu khỏi logic nhận thức chung cốt lõi, đề xuất một kiến trúc trong đó tất cả các xác thực viên cùng truyền dữ liệu, trong khi thành phần nhận thức chỉ sắp xếp một lượng nhỏ siêu dữ liệu. Bài báo Narwhal báo cáo công suất 160.000 TPS.
Aptos trước đây đã giới thiệu Quorum Store, tức là việc triển khai Narwhal, tách biệt việc phát tán dữ liệu và Nhận thức chung, cũng như cách sử dụng nó để mở rộng giao thức Nhận thức chung hiện tại Jolteon. Jolteon là một giao thức dựa trên lãnh đạo, kết hợp con đường nhanh tuyến tính của Tendermint và sự thay đổi tầm nhìn theo phong cách PBFT, có thể giảm trễ của Hotstuff xuống 33%. Tuy nhiên, rõ ràng rằng giao thức Nhận thức chung dựa trên lãnh đạo không thể tận dụng đầy đủ tiềm năng thông lượng của Narwhal. Dù đã tách biệt việc phát tán dữ liệu và Nhận thức chung, nhưng khi thông lượng tăng lên, lãnh đạo của Hotstuff/Jolteon vẫn bị hạn chế.
Do đó, Aptos quyết định triển khai Bullshark trên Narwhal DAG, một giao thức nhận thức chung không có chi phí giao tiếp. Thật không may, so với Jolteon, cấu trúc DAG hỗ trợ Bullshark có khả năng thông lượng cao đã mang lại chi phí trễ 50%.
Bối cảnh DAG-BFT
Mỗi đỉnh trong Narwhal DAG đều liên kết với một vòng. Để vào vòng r, các xác thực viên phải đầu tiên có được n-f đỉnh thuộc vòng r-1. Mỗi xác thực viên có thể phát sóng một đỉnh mỗi vòng, và mỗi đỉnh ít nhất phải tham chiếu đến n-f đỉnh của vòng trước. Do tính bất đồng bộ của mạng, các xác thực viên khác nhau có thể quan sát các cái nhìn địa phương khác nhau của DAG tại bất kỳ thời điểm nào.
Một thuộc tính quan trọng của DAG là tính không mơ hồ: nếu hai nút xác thực có cùng đỉnh v trong cái nhìn địa phương của chúng về DAG, thì chúng có lịch sử nguyên nhân v hoàn toàn giống nhau.
Tổng序
Có thể đạt được sự đồng thuận về tổng thứ tự của tất cả các đỉnh trong DAG mà không có chi phí truyền thông bổ sung. Để làm điều này, các xác thực trong DAG-Rider, Tusk và Bullshark sẽ giải thích cấu trúc của DAG như một giao thức nhận thức chung, trong đó các đỉnh đại diện cho các đề xuất, các cạnh đại diện cho các phiếu bầu.
Mặc dù logic giao thoa cộng đồng trên cấu trúc DAG là khác nhau, nhưng tất cả các giao thức nhận thức chung dựa trên Narwhal hiện có đều có cấu trúc sau:
Điểm neo đã được đặt: cứ sau vài vòng (, ví dụ, trong Bullshark có hai vòng ) sẽ có một người lãnh đạo đã được xác định trước, đỉnh của người lãnh đạo được gọi là điểm neo.
Điểm neo sắp xếp: Các xác thực độc lập nhưng quyết định một cách nhất định điểm neo nào sẽ được sắp xếp và điểm neo nào sẽ bị bỏ qua.
Sắp xếp lịch sử nguyên nhân: Các xác thực viên xử lý danh sách các điểm neo có thứ tự một cách tuần tự, đối với mỗi điểm neo, sắp xếp tất cả các đỉnh chưa có thứ tự trong lịch sử nguyên nhân của nó thông qua các quy tắc xác định.
Chìa khóa để đảm bảo tính bảo mật là đảm bảo rằng trong bước 2, tất cả các nút xác thực trung thực tạo ra một danh sách điểm neo có thứ tự, để tất cả các danh sách chia sẻ cùng một tiền tố. Trong Shoal, có những quan sát sau về tất cả các giao thức trên: tất cả các người xác thực đều đồng ý với điểm neo có thứ tự đầu tiên.
Bullshark Trễ
Độ trễ của Bullshark phụ thuộc vào số vòng giữa các điểm neo có thứ tự trong DAG. Mặc dù phiên bản đồng bộ phần mềm của Bullshark thực tế hơn so với phiên bản không đồng bộ có độ trễ tốt hơn, nhưng vẫn chưa đạt đến mức tối ưu.
Chủ yếu tồn tại hai vấn đề:
Thời gian trễ trung bình của khối: Trong Bullshark, mỗi vòng chẵn có một điểm neo, và đỉnh của mỗi vòng lẻ được giải thích là một phiếu bầu. Trong các trường hợp phổ biến, cần hai vòng DAG để sắp xếp các điểm neo, tuy nhiên, các đỉnh trong lịch sử nguyên nhân của các điểm neo cần nhiều vòng hơn để chờ điểm neo được sắp xếp. Trong các trường hợp phổ biến, các đỉnh trong vòng lẻ cần ba vòng, trong khi các đỉnh không phải điểm neo trong vòng chẵn cần bốn vòng.
Trễ trường hợp sự cố: Nếu một vòng lãnh đạo không đủ nhanh để phát sóng điểm neo, thì không thể sắp xếp điểm neo ( do đó bị bỏ qua ), tất cả các đỉnh chưa được sắp xếp trong vài vòng trước phải chờ điểm neo tiếp theo được sắp xếp. Điều này sẽ làm giảm hiệu suất của mạng sao chép địa lý một cách đáng kể, đặc biệt là vì Bullshark sử dụng thời gian chờ để chờ lãnh đạo.
Khung Shoal
Shoal đã cải thiện Bullshark( hoặc bất kỳ giao thức BFT nào dựa trên Narwhal bằng cách xử lý qua dây chuyền, cho phép có một điểm neo trong mỗi vòng và giảm thiểu độ trễ của tất cả các đỉnh không phải là điểm neo trong DAG xuống còn ba vòng. Shoal cũng đã giới thiệu cơ chế danh tiếng lãnh đạo không tốn kém trong DAG, khiến cho việc lựa chọn nghiêng về phía lãnh đạo nhanh.
Thách thức
Trong bối cảnh giao thức DAG, xử lý theo quy trình và danh tiếng của người lãnh đạo được coi là những vấn đề khó khăn, lý do như sau:
Các nỗ lực xử lý dây chuyền trước đây đã cố gắng sửa đổi logic Bullshark cốt lõi, nhưng điều này về bản chất dường như là không thể.
Danh tiếng của người lãnh đạo được đưa vào DiemBFT và chính thức hóa trong Carousel, là việc lựa chọn động các lãnh đạo tương lai dựa trên hiệu suất trong quá khứ của các xác thực viên trong )Bullshark. Mặc dù việc có sự khác biệt về danh tính lãnh đạo không vi phạm tính an toàn của các giao thức này, nhưng trong Bullshark, điều này có thể dẫn đến thứ tự hoàn toàn khác nhau. Điều này dẫn đến cốt lõi của vấn đề, tức là lựa chọn động và xác định các vòng neo là cần thiết để giải quyết Nhận thức chung, và các xác thực viên cần đạt được sự đồng thuận về lịch sử có thứ tự để chọn các neo trong tương lai.
Giao thức
Mặc dù có những thách thức trên, nhưng giải pháp ẩn giấu trong sự đơn giản. Trong Shoal, khả năng thực hiện tính toán cục bộ trên DAG đã được tận dụng, cho phép lưu trữ và giải thích lại thông tin từ các vòng trước. Với sự đồng thuận của tất cả các xác thực về cái nhìn cốt lõi của điểm neo có thứ tự đầu tiên, Shoal kết hợp tuần tự nhiều phiên bản Bullshark để xử lý theo dạng ống dẫn, cho phép:
( Xử lý theo dây chuyền
V ánh xạ các lượt thành các nhà lãnh đạo. Shoal chạy lần lượt các phiên bản của Bullshark, vì vậy đối với mỗi phiên bản, điểm neo được xác định trước bởi ánh xạ F. Mỗi phiên bản sắp xếp một điểm neo, điều này sẽ kích hoạt chuyển sang phiên bản tiếp theo.
Ban đầu, Shoal đã khởi động phiên bản đầu tiên của Bullshark trong vòng đầu tiên của DAG và vận hành nó cho đến khi xác định được điểm neo có thứ tự đầu tiên, chẳng hạn như trong vòng r. Tất cả các xác thực viên đều đồng ý với điểm neo này. Do đó, tất cả các xác thực viên đều có thể đồng ý một cách chắc chắn để giải thích lại DAG bắt đầu từ vòng r+1. Shoal chỉ khởi động một phiên bản Bullshark mới trong vòng r+1.
Trong trường hợp tốt nhất, điều này cho phép Shoal sắp xếp một điểm neo trong mỗi vòng. Điểm neo của vòng đầu tiên được sắp xếp theo thể hiện đầu tiên. Sau đó, Shoal bắt đầu một thể hiện mới trong vòng thứ hai, mà bản thân nó có một điểm neo, điểm neo đó được sắp xếp bởi thể hiện đó, sau đó, một thể hiện mới khác được sắp xếp điểm neo trong vòng thứ ba, và sau đó quá trình này tiếp tục.
![Giải thích chi tiết về khung Shoal: Làm thế nào để giảm trễ Bullshark trên Aptos?])https://img-cdn.gateio.im/webp-social/moments-0b0928cb6240e994c1514c75e080a4b2.webp###
( Danh tiếng lãnh đạo
Trong thời gian sắp xếp Bullshark, việc bỏ qua điểm neo sẽ làm tăng Trễ. Trong trường hợp này, công nghệ xử lý theo chuỗi không thể làm gì, vì không thể khởi động một phiên bản mới trước điểm neo của phiên bản trước đó. Shoal đảm bảo rằng các nhà lãnh đạo tương ứng sẽ ít có khả năng được chọn trong tương lai để xử lý các điểm neo bị mất bằng cách sử dụng cơ chế danh tiếng để phân bổ một điểm cho mỗi nút xác minh dựa trên lịch sử hoạt động gần đây của nó. Các nhà xác minh phản hồi và tham gia vào giao thức sẽ nhận được điểm cao, nếu không, các nút xác minh sẽ được phân bổ điểm thấp, vì chúng có thể gặp sự cố, chậm hoặc làm điều xấu.
Ý tưởng là khi mỗi lần cập nhật điểm số, tính toán lại một cách xác định bản đồ đã định nghĩa từ vòng đến người lãnh đạo F, thiên về những người lãnh đạo có điểm số cao hơn. Để các xác thực đạt được sự đồng thuận trên bản đồ mới, họ nên đồng thuận về điểm số, từ đó đạt được sự đồng thuận trên lịch sử được sử dụng để sinh ra điểm số.
Trong Shoal, xử lý theo chuỗi và lãnh đạo danh tiếng có thể kết hợp một cách tự nhiên, vì chúng đều sử dụng cùng một công nghệ cốt lõi, đó là việc giải thích lại DAG sau khi đạt được Nhận thức chung về điểm neo có thứ tự đầu tiên.
Trên thực tế, sự khác biệt duy nhất là, sau khi sắp xếp các điểm neo trong vòng thứ r, những người xác thực chỉ cần tính toán ánh xạ mới F' từ vòng thứ r+1 dựa trên lịch sử nguyên nhân có thứ tự của các điểm neo trong vòng thứ r. Sau đó, các nút xác thực bắt đầu từ vòng thứ r+1 sử dụng hàm lựa chọn điểm neo được cập nhật F' để thực hiện một ví dụ mới của Bullshark.
![Giải thích chi tiết Shoal framework: Làm thế nào để giảm trễ Bullshark trên Aptos?])https://img-cdn.gateio.im/webp-social/moments-859e732e16c3eee0e2c93422474debc2.webp###
( Không cần trễ
Thời gian chờ đóng vai trò quan trọng trong tất cả các triển khai BFT đồng bộ phần xác định dựa trên lãnh đạo. Tuy nhiên, sự phức tạp mà chúng mang lại đã làm tăng số lượng trạng thái nội bộ cần được quản lý và quan sát, điều này làm tăng độ phức tạp của quá trình gỡ lỗi và cần nhiều kỹ thuật quan sát hơn.
Thời gian chờ cũng sẽ làm tăng đáng kể trễ, vì việc cấu hình chúng một cách thích hợp là rất quan trọng, và thường cần phải điều chỉnh động, vì nó phụ thuộc nhiều vào môi trường ) mạng ###. Trước khi chuyển sang người lãnh đạo tiếp theo, giao thức sẽ trả toàn bộ hình phạt trễ cho người lãnh đạo gặp sự cố. Do đó, cài đặt thời gian chờ không thể quá bảo thủ, nhưng nếu thời gian chờ quá ngắn, giao thức có thể bỏ qua những người lãnh đạo tốt.
Thật không may, các giao thức dựa trên lãnh đạo ( như Hotstuff và Jolteon ) về cơ bản cần có thời gian chờ, để đảm bảo rằng giao thức có thể tiến triển mỗi khi lãnh đạo gặp sự cố. Nếu không có thời gian chờ, ngay cả lãnh đạo gặp sự cố cũng có thể ngừng giao thức mãi mãi. Do không thể phân biệt lãnh đạo gặp sự cố và lãnh đạo chậm trong thời gian bất đồng bộ, thời gian chờ có thể dẫn đến việc các nút xác thực nhìn thấy sự thay đổi của tất cả lãnh đạo mà không có Nhận thức chung.
Trong Bullshark, trễ được sử dụng để xây dựng DAG, nhằm đảm bảo rằng trong quá trình đồng bộ hóa, các nhà lãnh đạo trung thực sẽ thêm điểm neo vào DA.