An overview of Scroll’s architecture

Tổng quan về kiến ​​trúc của Scroll

Scroll là một zkrollup tương đương với EVM được xây dựng để mở rộng Ethereum. Về mặt kỹ thuật, Scroll được xây dựng dựa trên hai phần chính. Phần cốt lõi là Zkevm, được sử dụng để chứng minh tính đúng đắn của việc thực hiện EVM trong Lớp 2. Chúng tôi đã xây dựng nó một cách mở với nhóm khám phá quyền riêng tư và mở rộng tại Ethereum Foundation trong hơn một năm. Nhưng để biến Zkevm thành một zkrollup đầy đủ trên ethereum, chúng ta cũng cần xây dựng một kiến ​​trúc L2 hoàn chỉnh xung quanh nó.

 

Trong bài đăng này, chúng tôi sẽ cung cấp một cái nhìn tổng quan về kiến ​​trúc tổng thể của Scroll. Cụ thể hơn, chúng tôi sẽ bao gồm phiên bản ban đầu của Scroll, bao gồm một node giải trình tập trung và mạng chứng minh phi tập trung. Chúng tôi cam kết phi tập trung các nút giải trình trong tương lai và sẽ chia sẻ thiết kế của chúng tôi về điều này trong các bài viết trong tương lai.

Kiến trúc của Scroll Kiến trúc hiện tại bao gồm ba thành phần cơ sở hạ tầng (xem Hình 1):

Scroll node: Xây dựng các khối L2 từ các giao dịch của người dùng, xác nhận chúng vào lớp cơ sở Ethereum và truyền tin nhắn giữa L1 và L2. Mạng roller: Tạo các bằng chứng hợp lệ của ZKEVM để chứng minh rằng các giao dịch được thực hiện chính xác. Hợp đồng thông minh Rollup và Bridge: Cung cấp tính khả dụng dữ liệu cho các giao dịch của Scroll, xác minh bằng chứng hợp lệ của ZKEVM và cho phép người dùng di chuyển tài sản giữa Ethereum và Scroll. Trong phần tiếp theo, chúng tôi sẽ giải thích chi tiết vai trò của từng thành phần này.

Scroll node Scroll node là cách chính để các ứng dụng và người dùng tương tác với Scroll. Nó bao gồm ba mô-đun: Sequencer, Coordinator và Relayer.

Sequencer cung cấp giao diện JSON-RPC và chấp nhận các giao dịch L2. Cứ sau vài giây, nó lấy một loạt các giao dịch từ L2 Mempool và thực hiện chúng để tạo một khối L2 mới và một gốc trạng thái mới. Việc triển khai sequencer của chúng tôi dựa trên GO-Ethereum (Geth), một trong những cách triển khai Node Ethereum phổ biến nhất. Bằng cách fork Geth, chúng ta có thể đạt được khả năng tương thích tốt nhất và kế thừa bảo mật đã được thử nghiệm qua thời gian.

Khi một khối mới được tạo, Coordinator được thông báo và nhận được dấu vết thực thi của khối này từ Sequencer. Sau đó, nó gửi dấu vết thực thi đến một Roller được chọn ngẫu nhiên từ nhóm roller để tạo bằng chứng.

Relayer theo dõi các hợp đồng thông minh cầu và rollup được triển khai trên cả Ethereum và scroll. Nó có hai trách nhiệm chính. Đầu tiên, nó theo dõi hợp đồng rollup để theo dõi trạng thái của các khối L2 bao gồm tính khả dụng dữ liệu và bằng chứng hợp lệ của chúng. Thứ hai, nó theo dõi tiền gửi và các sự kiện rút từ các hợp đồng cầu được triển khai trên cả Ethereum và Scroll và chuyển tiếp các tin nhắn từ bên này sang bên kia.

Roller network Các con lăn đóng vai trò là provers trong mạng chịu trách nhiệm tạo ra các bằng chứng hợp lệ cho zkrollup. Các con lăn dự kiến sẽ sử dụng các máy gia tốc như GPU, FPGA và ASIC để giảm thời gian chứng minh và chi phí chứng minh. Hình 2 cho thấy cách một roller tạo ra bằng chứng hợp lệ cho mỗi khối. Quá trình bao gồm các bước sau:

  • Một con lăn trước tiên chuyển đổi dấu vết thực thi nhận được từ điều phối viên thành các nhân chứng mạch.

  • Nó tạo ra bằng chứng cho mỗi mạch Zkevm. Cuối cùng, nó sử dụng tập hợp bằng chứng để kết hợp các bằng chứng từ nhiều mạch ZKEVM thành một bằng chứng khối duy nhất.

Hợp đồng Rollup và Bridge Scroll kết nối với lớp cơ sở của Ethereum thông qua các hợp đồng thông minh Rollup và Bridge. Cùng nhau, chúng đảm bảo tính khả dụng của dữ liệu cho các giao dịch L2 và cho phép người dùng chuyển tài sản và truyền tin nhắn giữa L1 và L2.

Hợp đồng Rollup nhận được trạng thái gốc của L2 và các khối từ Sequencer. Nó lưu trữ trạng thái gốc ở trạng thái của Ethereum và dữ liệu khối L2 dưới dạng Ethereum calldata. Điều này cung cấp tính khả dụng của dữ liệu cho các khối của Scroll và tận dụng tính bảo mật của Ethereum để đảm bảo rằng các bộ chỉ mục bao gồm Scroll relayer có thể xây dựng lại các khối L2. Khi bằng chứng khối thiết lập tính hợp lệ của khối L2 đã được xác minh bằng hợp đồng rollup, khối tương ứng được coi là hoàn thành trên Scroll.

Các hợp đồng cầu được triển khai trên Ethereum và Scroll cho phép người dùng vượt qua các tin nhắn tùy ý giữa L1 và L2. Ngoài giao thức thông báo này, chúng tôi cũng đã xây dựng một giao thức bắc cầu không cần sự tin tưởng để cho phép người dùng bridge tài sản ERC-20 theo cả hai hướng. Để gửi tin nhắn hoặc tiền từ Ethereum đến Scroll, người dùng sử dụng giao dịch SendMessage trên hợp đồng Bridge. Relayer sẽ lập chỉ mục giao dịch này trên L1 và gửi nó đến Sequencer để đưa vào một khối L2. Gửi tin nhắn từ Scroll trở lại Ethereum sử dụng một quy trình tương tự trên hợp đồng L2 Bridge.

Zkrollup của Scroll hoạt động như thế nào? Đặt ba kiến trúc này lại với nhau, giờ đây chúng ta có thể giải thích quy trình làm việc của Zkrollup của Scroll, được tóm tắt trong Hình 3 dưới đây.

Các khối L2 trong Scroll được tạo, xác thực với Ethereum lớp cơ sở và hoàn thiện theo chuỗi các bước sau:

  1. Sequencer tạo ra một chuỗi các khối. Đối với khối thứ i, trình sắp xếp tạo một bằng chứng thực thi T và gửi nó đến Coordinator. Trong khi đó, nó cũng gửi dữ liệu giao dịch D là CallData vào hợp đồng Rollup trên Ethereum về tính khả dụng của dữ liệu, kết quả của trạng thái gốc và cam kết của trạng thái đối với dữ liệu giao dịch cho hợp đồng Rollup.

  2. Coordinator chọn ngẫu nhiên một roller để tạo bằng chứng hợp lệ cho từng bằng chứng khối. Để tăng tốc quá trình tạo bằng chứng, bằng chứng cho các khối khác nhau có thể được tạo song song trên các roller khác nhau.

  3. Sau khi tạo ra bằng chứng P cho khối thứ i, roller gửi nó trở lại Coordinator. Mỗi k khối, Coordinator gửi một nhiệm vụ tổng hợp cho một roller khác để tổng hợp các bằng chứng của k khối thành một tổng hợp bằng chứng A.

  4. Cuối cùng, Coordinator gửi tổng hợp bằng chứng A cho hợp đồng rollup để hoàn thiện các khối L2 I+1 đến I+K bằng cách xác minh bằng chứng tổng hợp chống lại các trạng thái dữ liệu giao dịch gốc và các cam kết về dữ liệu giao dịch được chuyển lên trước đây cho hợp dồng rollup. Hình 3 minh họa rằng các khối Scroll sẽ được hoàn thiện trên L1 trong một quy trình nhiều bước. Mỗi khối L2 sẽ tiến triển qua ba giai đoạn sau cho đến khi nó được hoàn thiện.

  • Precommitted cho biết một khối đã được đề xuất bởi một trình tự và được gửi đến các roller. Mặc dù các khối Precommited chưa phải là một phần cơ bản của Scroll L2 vì chúng chưa được đăng lên lớp cơ sở Ethereum, người dùng tin tưởng vào Sequencer có thể chọn hành động cho chúng thông qua việc dự đoán.

  • Commited cho biết dữ liệu giao dịch của khối này đã được đăng lên hợp đồng rollup trên Ethereum. Điều này đảm bảo rằng dữ liệu khối có sẵn, nhưng không chứng minh rằng nó đã được thực thi theo cách hợp lệ.

  • Finalized cho biết việc thực hiện chính xác các transactoin trong khối này đã được chứng minh bằng cách xác minh bằng chứng hợp lệ trên chuỗi trên Ethereum. Các khối hoàn thiện được coi là một phần cơ bản của chuỗi L2 Scroll. Đặt tất cả những thứ này lại với nhau, Scroll có thể thực thi mã byte EVM gốc trên L2 trong khi kế thừa các đảm bảo bảo mật mạnh mẽ từ lớp cơ sở của Ethereum. Trong bài tiếp theo trong loạt bài này, chúng tôi sẽ giải thích quy trình làm việc cho các nhà phát triển triển khai DAPPS trên Scroll và cách người dùng có thể tương tác với họ.

Tìm hiểu thêm Chúng tôi đã thiết kế kiến trúc của Scroll để phù hợp với tầm nhìn, giá trị và các nguyên tắc kỹ thuật của chúng tôi. Trong các bài viết sắp tới, chúng tôi giải thích cách Scroll sẽ sử dụng kiến trúc này để cung cấp trải nghiệm người dùng và nhà phát triển có thể mở rộng hơn so với Ethereum. Hãy theo dõi để tìm hiểu thêm và đăng ký để thử Testnet trước alpha của chúng tôi tại Signup.Scroll.io!

Nếu tầm nhìn của chúng tôi về việc mở rộng Ethereum theo cách mở và dựa trên cộng đồng cộng hưởng với bạn, chúng tôi đang tìm kiếm những cá nhân phù hợp để giúp Scroll trở thành giải pháp mở rộng thân thiện với nhà phát triển và người dùng nhất cho Ethereum.

  • Nếu bạn là nhà nghiên cứu ZK, ZKP, GO hoặc nhà phát triển Solidity hoặc kỹ sư GPU, chúng tôi đang thực hiện nhiều thách thức kỹ thuật thú vị ở rìa của những gì có thể. Hãy đến xây dựng các giải pháp tiên tiến cho những vấn đề này với chúng tôi!

  • Nếu bạn yêu thích việc nuôi dưỡng và phát triển các hệ sinh thái hoặc cộng đồng, chúng tôi đang tìm kiếm những người ủng hộ nhà phát triển và tổ chức cộng đồng để đảm bảo chúng tôi đang xây dựng theo cách phù hợp với cộng đồng và thân thiện với người dùng. Để tìm hiểu thêm về các vai trò này đối với Scroll, hãy xem trang web, Twitter, Discord hoặc trang của chúng tôi. Nếu bạn muốn đi thẳng vào code và xây dựng với chúng tôi, bạn có thể tìm thấy repos của chúng tôi tại github.com/scroll-techgithub.com/privacy-scaling-explorations/zkevm-circuits