BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Nghiên cứu ETH: Giải thích chi tiết về khái niệm và cơ chế Snap Sync của Rollup

Đọc bài viết này mất 21 phút
Snap Sync rất quan trọng trong việc giảm thiểu các vectơ tập trung hóa cho các nhà cung cấp cơ sở hạ tầng.
Tiêu đề gốc: "RFC: Đi sâu vào đồng bộ hóa nhanh cho các bản tổng hợp》
Tác giả gốc: George Spasov, kiến trúc sư và đồng sáng lập chuỗi khối LimeChain
Bản tổng hợp gốc: Sharon , BlockBeats


Lưu ý của người biên tập: Khi số lượng Bản tổng hợp tiếp tục tăng, các vấn đề cũng xuất hiện. Đồng bộ hóa nhanh một bản tổng hợp cho phép các nút lấy thông tin được xử lý trước từ những người tham gia khác trong hệ thống để đồng bộ hóa, đồng thời tự xác thực thông tin đó một cách chính xác. Đây cũng là một cách để “giảm bớt vectơ tập trung của các nhà cung cấp cơ sở hạ tầng”.


Tổng quan


Sau đây là phần khám phá các ý tưởng và khái niệm khác nhau để cải thiện nút Tổng hợp Thời gian để đồng bộ hóa trạng thái ban đầu của nó với Bản tổng hợp mới nhất của bản tổng hợp có liên quan đến thời gian. Sau đây, quy trình cải tiến này có thể được gọi là “Snap Sync” của Rollup, lấy cảm hứng từ quy trình L1 có tên tương tự. Tài liệu này phác thảo ý tưởng chung về cách có thể sử dụng Snap Sync cho Rollup và đi sâu vào vai trò cũng như nhu cầu của những người tham gia Rollup khác nhau.


Đồng bộ hóa Snap của các nút Tổng hợp là một khái niệm quan trọng vì quá trình tổng hợp dự kiến sẽ đạt được thông lượng cao hơn L1.


Mặc dù Rollup hứa hẹn rằng bất kỳ ai quan sát lớp sẵn có của dữ liệu sẽ có tất cả dữ liệu để thực thi lại và đồng bộ hóa Rollup, nhưng trên thực tế, việc này sẽ nhanh chóng trở nên rất chậm. Sự chậm chạp này có thể dẫn đến việc tập trung hóa bằng cách hợp nhất dữ liệu thành một số lượng nhỏ các thực thể dành riêng cho việc đồng bộ hóa liên tục L1.


Mục đích của Snap Sync là cho phép các nút đồng bộ hóa bằng cách lấy thông tin được xử lý trước từ những người tham gia khác trong hệ thống nhưng tự xác thực thông tin đó một cách chính xác.


Phối cảnh khái niệm


Sau đây là ý tưởng khái niệm, gồm 4 bước, có sẵn Snap Sync để cuộn lên. Nó phác thảo cách các nút Tổng hợp mới được đồng bộ hóa với mẹo Tổng hợp.


1. Nút đồng bộ hóa ghi lại khối cuối cùng gần đây nhất (lý tưởng không phải là cuối cùng) từ hợp đồng thông minh L1 của Rollup và hàm băm khối/gốc trạng thái của nó.

2. Nút kết nối với một hoặc nhiều nút ngang hàng và tải xuống trạng thái khối cuối cùng được chỉ định.

3. Nút xác minh mã băm khối/gốc trạng thái dựa trên mã băm khối/gốc trạng thái được L1 ghi lại ở bước 1.

4. Nút tiếp tục đồng bộ hóa lần quyết toán tiếp theo (nếu có) và trạng thái ảo từ L1.



Giải thích chuyên sâu


Nhìn vào Các khái niệm trên có vẻ đơn giản, nhưng như mọi khi, ma quỷ nằm ở các chi tiết. Các tính năng dành riêng cho Rollup của Snap Sync bắt đầu xuất hiện khi bạn bắt đầu xem xét mục tiêu và động lực của các tác nhân khác nhau trong hệ thống Rollup. Dưới đây là một số cân nhắc quan trọng đối với thiết kế Snap Sync nhằm cung cấp thông tin đầu vào bổ sung để đưa ra giải pháp khái niệm hoàn chỉnh hơn.


Vai trò của các nút theo sau


Những người tham gia chính trong quá trình tổng hợp là trình sắp xếp thứ tự và bằng chứng (Optimistic Rollup có thể coi trình xác minh của nó như một người chứng minh).


Công việc của bộ sắp xếp là (bằng cách nào đó) lấy các giao dịch của người dùng và sắp xếp chúng vào L1. Họ được trả tiền cho dịch vụ xuất bản các chuỗi Tổng hợp (hợp lệ lý tưởng). Người chứng minh lấy dữ liệu và tạo ra bằng chứng về tính hợp lệ của một chuỗi nhất định. Người chứng minh được trả thù lao khi gửi bằng chứng hợp lệ trong L1.


Cuối cùng, cả hai người tham gia sẽ được khen thưởng cho hành động cụ thể của họ. Trình sắp xếp chuỗi được thanh toán bằng cách sắp xếp các giao dịch sửa đổi trạng thái L2 theo trình tự.


Để trình tự sắp xếp thực hiện công việc của mình, họ chỉ cần trạng thái ảo gần đây nhất và một số phiên bản của nhóm bộ nhớ (riêng tư hoặc công khai). Họ không cần quan tâm (đọc bộ lưu trữ) về trạng thái đã được xác minh hoặc chưa được xác minh trong quá khứ.


Người chứng nhận được trả tiền để cung cấp bằng chứng. Họ chỉ yêu cầu thông tin trình tự từ lớp L1 DA. Họ cũng không cần quan tâm đến (đọc lưu trữ) các trạng thái trong quá khứ.


Điều này để lại một khoảng trống đáng kể cho người dùng cuối - không có tác nhân nào có nhiệm vụ phục vụ các yêu cầu RPC để đọc trạng thái hiện tại hoặc lịch sử. Mặc dù các nhà thiết kế Rollup thường xem các nút theo dõi là phiên bản "đơn giản hóa" của trình sắp xếp thứ tự, nhưng trên thực tế, giờ đây người ta có thể lập luận rằng họ là một tác nhân hoàn toàn độc lập với một mục tiêu riêng - phục vụ người dùng mạng.


Suy ra từ nút L1, bạn nên yêu cầu đọc trạng thái từ "nút đầy đủ" của chính mình. Người ta có thể suy ra rằng "nút đầy đủ của riêng bạn" tương đương với "nút theo dõi của riêng bạn". Nút người theo dõi cần lưu một số hoặc tất cả trạng thái lịch sử của Tổng hợp để có thể phân phát các yêu cầu RPC cho dữ liệu lịch sử (của bạn).


Một số hoạt động lịch sử rất, rất phổ biến là - "Hãy cho tôi sự kiện phát ra từ hợp đồng X", "Đưa cho tôi biên lai giao dịch của hàm băm giao dịch của tôi" . Hiện tại không có diễn viên nào khác cần thiết để phục vụ bất kỳ ai trong số họ.


Loại nút theo dõi và loại đồng bộ hóa



Một cách đơn giản để đồng bộ hóa nút theo dõi là tải xuống các chuỗi L2 từ lớp L1 DA và thực hiện lại chúng cho đến khi nhận được lời nhắc. Như đã đề cập trước đó, là chế độ Đồng bộ hóa duy nhất, chế độ này nhanh chóng trở nên chậm một cách phi thực tế.


Do đó, đây là phiên bản khả thi nhưng chưa đầy đủ của nút theo dõi. Sau đây, chúng tôi đề cập đến các nút được đồng bộ hóa hoàn toàn từ L1 DA và lưu trữ trạng thái hoàn chỉnh dưới dạng các nút theo dõi lưu trữ.


Có thể suy ra rằng nhiều trường hợp sử dụng yêu cầu các nút đồng bộ hóa nhanh hơn nhiều so với việc lưu trữ các nút theo dõi có thể cung cấp. Đây là những nhu cầu thực sự có thể được kích hoạt từ hoạt động bình thường của Rollup, nền kinh tế tiền điện tử của nó hoặc hoàn toàn là để nắm bắt các cơ hội (MEV?) một cách nhanh chóng. Các nút như vậy có thể được kết nối với các nút theo dõi hồ sơ và được đồng bộ hóa với lời nhắc của Rollup bằng cách sử dụng "phối cảnh khái niệm hóa" được nêu ở trên.


Sâu hơn, nếu nút theo dõi chỉ tải xuống trạng thái được xác minh mới nhất từ nút theo dõi lưu trữ và đồng bộ hóa về phía trước (bằng cách thực hiện lại trạng thái ảo), thì Phần lớn nó không đáp ứng được các yêu cầu mà chúng tôi yêu cầu các nút theo dõi phải đáp ứng. Họ sẽ không thể trả lời các câu hỏi về trạng thái lịch sử (gần đây hoặc không) của bất kỳ khối nào trước điểm kiểm tra cuối cùng. Điều này nêu rõ rằng các nút theo dõi cần đồng bộ hóa từ trạng thái trước trạng thái được xác định cuối cùng.


Từ quan điểm của người vận hành nút theo sau, hai quyết định riêng biệt có thể được đưa ra. Những quyết định này hơi giống với mẫu được các nút L1 sử dụng để đồng bộ hóa chuỗi.


Đầu tiên, nút theo dõi có thể chọn trình tự xác minh lịch sử cố định (điểm kiểm tra) làm điểm bắt đầu và đồng bộ hóa tiếp theo từ đó. Giống như Geth ở chế độ đồng bộ hóa ảnh chụp nhanh chỉ lưu trữ 128 khối cuối cùng, các nút theo dõi Snap có thể đồng bộ hóa bắt đầu từ chuỗi xác thực X (ví dụ: 32) cuối cùng.


Ngoài ra, nó có thể tùy ý giữ lại trạng thái chỉ X cuối cùng (ví dụ: 32) của lời nhắc được xác thực bất kỳ lúc nào. Các nút theo dõi Snap sẽ có thể phân phát các truy vấn về trạng thái và khối mới nhất được tổng hợp. Tham số X cần được chọn cẩn thận để đảm bảo sự cân bằng hợp lý giữa nhu cầu dữ liệu lịch sử của hầu hết người dùng và nhu cầu lưu trữ của các nút theo dõi Snap.


Thứ hai, nút theo dõi có thể chọn chụp đồng bộ hóa theo cách tương tự như nút chụp theo dõi, nhưng cũng giữ nhiều/tất cả các chuỗi đã được xác minh khác. . Chúng ta có thể gọi nút này là nút theo dõi đầy đủ. Điều quan trọng cần lưu ý là các nút theo dõi đầy đủ không cần thực hiện lại các giao dịch giữa các điểm kiểm tra lịch sử cũ mà chỉ lưu trạng thái cho chúng.


Cơ chế này cho phép các nút theo dõi đầy đủ thực hiện các yêu cầu phục vụ cho các trạng thái Tổng hợp cũ hơn. Các nút theo dõi đầy đủ có thể xem thông tin khối được yêu cầu, tính toán các điểm kiểm tra đã được đồng bộ hóa và xác minh trước đó và chỉ thực hiện lại chuỗi giao dịch tiếp theo cho đến khối được yêu cầu.


Cách tiếp cận này không chiếm nhiều dung lượng lưu trữ như các nút lưu trữ nhưng cũng kém hiệu quả và nhanh chóng hơn trong việc phản hồi các truy vấn vì dữ liệu cần phải được tải xuống và được thực hiện lại.


Tất cả ba loại nút theo sau đều có những sự cân bằng cụ thể riêng và tối ưu cho các trường hợp sử dụng khác nhau của người dùng.


Trình sắp xếp trình tự và trình chứng minh cũng yêu cầu các nút theo sau


Như đã đề cập ở trên, nhà sản xuất đặt hàng và trình chứng minh có yêu cầu dữ liệu trạng thái của riêng họ. Tương tự như người dùng, họ cần đồng bộ hóa bằng cách nào đó đến điểm mong muốn trong Rollup. Về cơ bản, điều này có nghĩa là trình sắp xếp chuỗi và trình chuẩn hóa cần một cơ chế để nhanh chóng đồng bộ hóa đến trạng thái cuối cùng mới nhất và tiếp tục từ đó. Trớ trêu thay, điều này thực sự có nghĩa là họ cần một số dạng nút theo dõi để đồng bộ hóa nhanh chóng. (Ai là người sắp xếp trình tự được đơn giản hóa bây giờ?)


Người trình tự và người kiểm chứng muốn Snap Sync và bắt đầu sắp xếp đều có thể kết nối với các nút người theo dõi, tải xuống trạng thái cuối cùng mới nhất, xác thực nó và tiếp tục đồng bộ hóa trạng thái ảo.


Các hướng nghiên cứu sâu hơn


Nghiên cứu sâu về cơ chế Snap Sync sẽ dẫn đến một số vấn đề thực tế. Những điều này cần được xem xét và cần nghiên cứu và lên ý tưởng thêm.


Cơ chế trạng thái tuần tự hóa


Trong văn bản trên, chúng tôi chuyển dữ liệu điểm kiểm tra. Độ phức tạp là ẩn đằng sau "trạng thái kết nối và tải xuống". Tuy nhiên, về cơ bản, điều này có nghĩa là cần phải có một giao thức được xác định để tuần tự hóa, phân vùng và truyền trạng thái Tổng hợp tại bất kỳ điểm kiểm tra cụ thể nào.


Cơ chế trạng thái tải xuống


Mặc dù bất kỳ nút nào tìm kiếm Snap Sync đều có thể kết nối với "một" người theo dõi, nhưng điều này mang lại các vấn đề về tính sống động và khả năng sử dụng. Đồng bộ hóa song song từ nhiều người theo dõi theo cách giống như "torrent" có thể tăng tốc quá trình Đồng bộ hóa Snap thông qua song song hóa và cho phép xác minh và xác minh thêm dữ liệu đã tải xuống.


Kết luận


Snap Sync rất quan trọng trong việc giảm thiểu các vectơ tập trung hóa cho các nhà cung cấp cơ sở hạ tầng. Mặc dù nhìn bề ngoài, quá trình đồng bộ hóa nhanh có phần đơn giản nhưng một số sắc thái thú vị sẽ xuất hiện khi tính đến các ưu đãi, vai trò và nhu cầu khác nhau của các tác nhân khác nhau trong mạng.


Quá trình đồng bộ hóa chứng minh rằng vai trò (thường bị hiểu lầm) của các nút theo sau là đặc biệt và quan trọng đối với hệ sinh thái Rollup, đồng thời yêu cầu thiết kế cẩn thận. Sau khi nghiên cứu chuyên sâu về các nút theo dõi, các chế độ đồng bộ hóa khác nhau của các nút theo dõi đã xuất hiện theo nhu cầu của các nhà khai thác.


Cuối cùng nhưng không kém phần quan trọng, phân tích trên cho thấy tầm quan trọng của các nút theo dõi đối với những người tham gia khác trong danh sách giới tính (người ra lệnh và người chứng minh). Điều này làm cho các nút theo sau trở nên rất quan trọng đối với sự mạnh mẽ của hệ thống tổng thể.


Chúng tôi hoan nghênh mọi ý kiến đóng góp về phân tích trên. Mọi ý tưởng, đề xuất và/hoặc đóng góp cho "Khu vực nghiên cứu sâu hơn" đều được hoan nghênh.


Liên kết gốc


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi