*Chuyển tiếp tiêu đề gốc: Khám phá hệ thống chứng minh và cầu nối Ethereum Canonical của Eclipse
Eclipse bao gồm ba lớp:
Sơ đồ bên dưới minh họa cách các mô-đun này tương tác:
Phần còn lại của bài viết này sẽ tập trung vào cầu Ethereum của Eclipse, như thể hiện trong sơ đồ. Blobstream sẽ chuyển tiếp các chứng thực được ký bởi bộ xác thực của Celestia để chứng nhận với Ethereum rằng dữ liệu cho một loạt vị trí của Eclipse đã được xuất bản chính xác. Điều này cho phép cầu nối của Eclipse xác minh dữ liệu được cung cấp để chống gian lận đối với các gốc dữ liệu đã được ký từ Celestia. Trong phần còn lại của phần này, chúng tôi sẽ phác thảo các quy trình trong đó:
Quy trình khi người dùng gửi tiền vào Eclipse thông qua cầu nối Ethereum gốc được tóm tắt như sau:
Sơ đồ bên dưới hiển thị các tương tác giữa Ethereum, Celestia và SVM Executor trong luồng tiền gửi được mô tả ở trên:
Quy trình xuất bản các lô vị trí của Eclipse lên Celestia dưới dạng các đốm màu dữ liệu được tóm tắt bên dưới:
Sơ đồ bên dưới của Celestia giải thích cách cam kết dữ liệu trong một khối Celestia nhất định được lưu trữ trong tiêu đề khối:
Tương tự như các L2 khác sử dụng bằng chứng gian lận (Arbitrum, Fuel và nhiều loại khác), việc rút tiền từ Eclipse yêu cầu một khoảng thời gian thử thách trong đó người xác minh có thể gửi bằng chứng gian lận trong trường hợp chuyển đổi trạng thái không hợp lệ:
Trong phần cuối cùng này, chúng tôi sẽ trình bày chi tiết về thiết kế hệ thống chống gian lận của Eclipse, lấy cảm hứng từ Anatoly Ykovenko và John Adler. Nói chung, đối với bất kỳ bằng chứng gian lận nào, người xác minh phải:
Trong trường hợp của Eclipse, (1) Celestia kết hợp các khối khối mà người thực thi SVM của Eclipse đăng, cho phép bằng chứng bao gồm giao dịch thông qua nhân chứng Merkle. Đối với (2), không giống như các L2 dựa trên EVM, đăng gốc Merkle lên cây trạng thái toàn cầu, vì lý do hiệu suất, Eclipse không cập nhật cây trạng thái toàn cầu trên cơ sở từng giao dịch, nhưng chúng tôi sẽ giải thích cách chúng tôi đảm bảo tính chính xác của đầu vào chi tiết hơn dưới đây. Cuối cùng, trong trường hợp (3), trình xác minh của Eclipse tạo ra bằng chứng zk về (các) đầu ra cho một giao dịch nhất định, không giống như cách tiếp cận trò chơi xác minh tương tác phổ biến trên các L2 dựa trên EVM.
Tất cả các giao dịch Eclipse có thể được biểu diễn dưới dạng lấy danh sách các tài khoản đầu vào, thực hiện giao dịch và tạo danh sách các tài khoản đầu ra tổng hợp:
Quan sát quan trọng đối với thiết kế chống gian lận của chúng tôi là để thực hiện giao dịch, mọi S_InputAccount luôn phải là S_OutputAccount của một số giao dịch trước đó. Điều này cho phép chúng tôi tham chiếu giao dịch cuối cùng trong chuỗi tạo ra một tài khoản đầu vào nhất định thay vì cung cấp nhân chứng Merkle cho cây trạng thái toàn cầu. Do thiết kế của chúng tôi, chúng tôi đưa ra các loại cáo buộc gian lận bổ sung, chẳng hạn như tham chiếu đến giao dịch trước đó không hợp lệ hoặc tài khoản đầu vào đã được "chi tiêu" bởi một số giao dịch sau đó. Chúng tôi mô tả quá trình này chi tiết hơn dưới đây:
Ngoài ra, các lô dữ liệu giao dịch được đăng lên Celestia có các cam kết được chuyển tiếp sang hợp đồng Ethereum. Các cam kết bao gồm:
Như đã giải thích ở trên, có một số cách có thể phát hiện ra một lô là không chính xác:
Nếu bất kỳ lô cam kết nào được phát hiện là không chính xác, hợp đồng cầu nối Eclipse sẽ khôi phục cầu nối về cam kết lô cuối cùng được chứng minh là đúng. Lưu ý rằng các giao dịch không bao giờ bị xóa khỏi chuỗi, ngay cả trong trường hợp gian lận, do đó chỉ cần tính lại cam kết.
Bài viết này nhằm mục đích cung cấp hướng dẫn cấp cao về cầu nối giảm thiểu độ tin cậy của Eclipse trên Ethereum và giải thích một số chi tiết về thiết kế chống gian lận của chúng tôi. Do tính chất mô-đun của L2 và sự non trẻ của hệ thống công nghệ của chúng tôi, chúng tôi sẽ tiếp tục phát hành các bài viết và tài liệu về các khía cạnh khác nhau của Eclipse trong những tuần tới.
Để tham gia vào Eclipse Testnet, vui lòng làm theo hướng dẫn của chúng tôi tại đây. Bạn có thể liên hệ với chúng tôi trên Twitter hoặc Discord nếu có thắc mắc cụ thể về Testnet, cầu nối hoặc các câu hỏi kỹ thuật của chúng tôi.
[1]: Nút tính toán kết quả của các giao dịch SVM và áp dụng đầu ra cuối cùng cho trạng thái mới của Eclipse
[2]: Một nhà điều hành chuyển các sự kiện trên chuỗi giữa Ethereum và Eclipse
[3]: Lưu ý rằng người thực thi, không phải người sắp xếp chuỗi, đăng nội dung này. Nếu nó được đưa vào dữ liệu được đăng bởi trình sắp xếp chuỗi, điều đó sẽ gây thêm sự phức tạp là trình sắp xếp chuỗi có thể bỏ qua một số đếm, khiến người thực thi không thể thực hiện công việc của họ một cách chính xác. Điều này có thể được bù đắp trong thiết kế chống gian lận, nhưng nó sẽ làm tăng thêm độ phức tạp. Ưu điểm thứ hai của việc chỉ có người thực thi đăng số đếm là nó giúp dễ dàng cho phép đăng ghi đè giao dịch lên Celestia, nếu muốn.
[4]: Tài khoản SVM có thể được biểu diễn bằng một hàm băm duy nhất. Cách duy nhất để sửa đổi hàm băm này là thông qua một giao dịch.
[5]: Để thực hiện việc này mà không cần băm quá nhiều, chúng tôi sẽ chạy theo dõi trên từng chương trình đã thực thi để xem phần nào của mỗi sysvar đã sử dụng thực sự được truy cập. Điều này có thể thực hiện được nhưng sẽ yêu cầu sửa đổi trình thông dịch BPF của Solana.
[6]: Điều này bao gồm dữ liệu về các giao dịch đã thử nhưng không thực hiện được.
*Chuyển tiếp tiêu đề gốc: Khám phá hệ thống chứng minh và cầu nối Ethereum Canonical của Eclipse
Eclipse bao gồm ba lớp:
Sơ đồ bên dưới minh họa cách các mô-đun này tương tác:
Phần còn lại của bài viết này sẽ tập trung vào cầu Ethereum của Eclipse, như thể hiện trong sơ đồ. Blobstream sẽ chuyển tiếp các chứng thực được ký bởi bộ xác thực của Celestia để chứng nhận với Ethereum rằng dữ liệu cho một loạt vị trí của Eclipse đã được xuất bản chính xác. Điều này cho phép cầu nối của Eclipse xác minh dữ liệu được cung cấp để chống gian lận đối với các gốc dữ liệu đã được ký từ Celestia. Trong phần còn lại của phần này, chúng tôi sẽ phác thảo các quy trình trong đó:
Quy trình khi người dùng gửi tiền vào Eclipse thông qua cầu nối Ethereum gốc được tóm tắt như sau:
Sơ đồ bên dưới hiển thị các tương tác giữa Ethereum, Celestia và SVM Executor trong luồng tiền gửi được mô tả ở trên:
Quy trình xuất bản các lô vị trí của Eclipse lên Celestia dưới dạng các đốm màu dữ liệu được tóm tắt bên dưới:
Sơ đồ bên dưới của Celestia giải thích cách cam kết dữ liệu trong một khối Celestia nhất định được lưu trữ trong tiêu đề khối:
Tương tự như các L2 khác sử dụng bằng chứng gian lận (Arbitrum, Fuel và nhiều loại khác), việc rút tiền từ Eclipse yêu cầu một khoảng thời gian thử thách trong đó người xác minh có thể gửi bằng chứng gian lận trong trường hợp chuyển đổi trạng thái không hợp lệ:
Trong phần cuối cùng này, chúng tôi sẽ trình bày chi tiết về thiết kế hệ thống chống gian lận của Eclipse, lấy cảm hứng từ Anatoly Ykovenko và John Adler. Nói chung, đối với bất kỳ bằng chứng gian lận nào, người xác minh phải:
Trong trường hợp của Eclipse, (1) Celestia kết hợp các khối khối mà người thực thi SVM của Eclipse đăng, cho phép bằng chứng bao gồm giao dịch thông qua nhân chứng Merkle. Đối với (2), không giống như các L2 dựa trên EVM, đăng gốc Merkle lên cây trạng thái toàn cầu, vì lý do hiệu suất, Eclipse không cập nhật cây trạng thái toàn cầu trên cơ sở từng giao dịch, nhưng chúng tôi sẽ giải thích cách chúng tôi đảm bảo tính chính xác của đầu vào chi tiết hơn dưới đây. Cuối cùng, trong trường hợp (3), trình xác minh của Eclipse tạo ra bằng chứng zk về (các) đầu ra cho một giao dịch nhất định, không giống như cách tiếp cận trò chơi xác minh tương tác phổ biến trên các L2 dựa trên EVM.
Tất cả các giao dịch Eclipse có thể được biểu diễn dưới dạng lấy danh sách các tài khoản đầu vào, thực hiện giao dịch và tạo danh sách các tài khoản đầu ra tổng hợp:
Quan sát quan trọng đối với thiết kế chống gian lận của chúng tôi là để thực hiện giao dịch, mọi S_InputAccount luôn phải là S_OutputAccount của một số giao dịch trước đó. Điều này cho phép chúng tôi tham chiếu giao dịch cuối cùng trong chuỗi tạo ra một tài khoản đầu vào nhất định thay vì cung cấp nhân chứng Merkle cho cây trạng thái toàn cầu. Do thiết kế của chúng tôi, chúng tôi đưa ra các loại cáo buộc gian lận bổ sung, chẳng hạn như tham chiếu đến giao dịch trước đó không hợp lệ hoặc tài khoản đầu vào đã được "chi tiêu" bởi một số giao dịch sau đó. Chúng tôi mô tả quá trình này chi tiết hơn dưới đây:
Ngoài ra, các lô dữ liệu giao dịch được đăng lên Celestia có các cam kết được chuyển tiếp sang hợp đồng Ethereum. Các cam kết bao gồm:
Như đã giải thích ở trên, có một số cách có thể phát hiện ra một lô là không chính xác:
Nếu bất kỳ lô cam kết nào được phát hiện là không chính xác, hợp đồng cầu nối Eclipse sẽ khôi phục cầu nối về cam kết lô cuối cùng được chứng minh là đúng. Lưu ý rằng các giao dịch không bao giờ bị xóa khỏi chuỗi, ngay cả trong trường hợp gian lận, do đó chỉ cần tính lại cam kết.
Bài viết này nhằm mục đích cung cấp hướng dẫn cấp cao về cầu nối giảm thiểu độ tin cậy của Eclipse trên Ethereum và giải thích một số chi tiết về thiết kế chống gian lận của chúng tôi. Do tính chất mô-đun của L2 và sự non trẻ của hệ thống công nghệ của chúng tôi, chúng tôi sẽ tiếp tục phát hành các bài viết và tài liệu về các khía cạnh khác nhau của Eclipse trong những tuần tới.
Để tham gia vào Eclipse Testnet, vui lòng làm theo hướng dẫn của chúng tôi tại đây. Bạn có thể liên hệ với chúng tôi trên Twitter hoặc Discord nếu có thắc mắc cụ thể về Testnet, cầu nối hoặc các câu hỏi kỹ thuật của chúng tôi.
[1]: Nút tính toán kết quả của các giao dịch SVM và áp dụng đầu ra cuối cùng cho trạng thái mới của Eclipse
[2]: Một nhà điều hành chuyển các sự kiện trên chuỗi giữa Ethereum và Eclipse
[3]: Lưu ý rằng người thực thi, không phải người sắp xếp chuỗi, đăng nội dung này. Nếu nó được đưa vào dữ liệu được đăng bởi trình sắp xếp chuỗi, điều đó sẽ gây thêm sự phức tạp là trình sắp xếp chuỗi có thể bỏ qua một số đếm, khiến người thực thi không thể thực hiện công việc của họ một cách chính xác. Điều này có thể được bù đắp trong thiết kế chống gian lận, nhưng nó sẽ làm tăng thêm độ phức tạp. Ưu điểm thứ hai của việc chỉ có người thực thi đăng số đếm là nó giúp dễ dàng cho phép đăng ghi đè giao dịch lên Celestia, nếu muốn.
[4]: Tài khoản SVM có thể được biểu diễn bằng một hàm băm duy nhất. Cách duy nhất để sửa đổi hàm băm này là thông qua một giao dịch.
[5]: Để thực hiện việc này mà không cần băm quá nhiều, chúng tôi sẽ chạy theo dõi trên từng chương trình đã thực thi để xem phần nào của mỗi sysvar đã sử dụng thực sự được truy cập. Điều này có thể thực hiện được nhưng sẽ yêu cầu sửa đổi trình thông dịch BPF của Solana.
[6]: Điều này bao gồm dữ liệu về các giao dịch đã thử nhưng không thực hiện được.