Sẽ cuộn điều khiển làn sóng Layer2? Và mạch zkEVM và kiểm tra bạn cần biết

Trung cấp12/27/2023, 8:47:30 AM
Bài viết này cung cấp những phân tích chi tiết về kiến trúc và công nghệ của Scroll, giúp người đọc hiểu được hiện trạng mạng và hướng phát triển trong tương lai của Scroll. Nó cũng giải thích các mạch và kiểm tra Scroll zkEVM.

Vào lúc 14:00 ngày 10 tháng 10, mạng chính Scroll của giải pháp Ethereum Lớp 2 đã tạo ra khối đầu tiên, đánh dấu sự ra mắt thành công của mạng chính Scroll. Tính đến ngày 25 tháng 10, hơn 7600 ETH đã được kết nối vào mạng Scroll thông qua các cầu nối chuỗi chéo và 24 nền tảng giao dịch phi tập trung đã hoạt động trên mạng chính Scroll, với tổng TVL khoảng 10 triệu USD.

Vào ngày 17 tháng 10, Scroll đã chính thức công bố ra mắt mạng chính của mình đồng thời tiếp tục duy trì cam kết về nguồn mở và phân quyền. Trong giai đoạn tiếp theo, Scroll sẽ tập trung vào việc xây dựng mạng lưới phân loại và bằng chứng cổ phần phi tập trung. Trong bài viết này, chúng tôi sẽ cung cấp những phân tích chi tiết về kiến trúc và công nghệ của Scroll để giúp mọi người hiểu được hiện trạng mạng hiện tại và hướng phát triển trong tương lai của Scroll. Chúng tôi cũng sẽ giải thích kiến thức kiểm tra và mạch zkEVM của Scroll để tăng cường các biện pháp bảo mật cho các dự án zk.

Scroll là ai, động lực của làn sóng Layer2?

Scroll là giải pháp mở rộng quy mô Ethereum Lớp 2 dựa trên công nghệ chứng minh không có kiến thức, nhằm cải thiện thông lượng và tốc độ giao dịch của mạng Ethereum. So với Optimistic Rollup, Scroll đạt được khả năng mở rộng thông qua bằng chứng không có kiến thức và tăng tốc việc tạo và xác minh bằng chứng không có kiến thức thông qua tăng tốc phần cứng. Nó cam kết đạt được khả năng tương thích EVM cấp mã byte. Điều này có nghĩa là các nhà phát triển có thể trực tiếp sử dụng các công cụ phát triển liên quan đến Solidity và Ethereum để xây dựng các hợp đồng thông minh và triển khai chúng trên Scroll mà không cần bất kỳ sửa đổi nào.

Theo trang web chính thức của Scroll, hiện có 10 thành viên cốt lõi trong nhóm Scroll, phân bố khắp Châu Á, Châu Mỹ và Châu Âu. Các thành viên trong nhóm có nhiều kinh nghiệm trong việc phát triển zkRollup và vận hành ngành, hầu hết họ đều tốt nghiệp các trường đại học danh tiếng và có bằng Tiến sĩ.

Hiện tại, hệ sinh thái Scroll rất phong phú, với các dự án cơ sở hạ tầng bao gồm ví, công cụ phát triển, cơ sở bảo mật, v.v. Mục tiêu là cung cấp hỗ trợ toàn diện cho các dự án trong toàn bộ vòng đời, từ thiết kế, phát triển, vận hành đến kiểm tra bảo mật. Hiện tại, có hơn 180 dự án hệ sinh thái trên mạng chính Scroll.

  1. Cái ví
    Scroll hiện hỗ trợ hầu hết tất cả các ví chính thống: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet. Ngoài ra, ví hệ sinh thái Scroll còn bao gồm Ví OKX, Ví Versa, v.v.

  2. Cầu xuyên chuỗi
    Cơ sở hạ tầng chuỗi chéo chính thức của Scroll bao gồm Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext, v.v. Ngoài ra, nó cũng bao gồm giao thức thanh khoản chuỗi chéo Synapse Protocol, Owlto Finance tập trung vào cầu nối chuỗi lớp 2, cầu nối chuỗi Ethereum Lớp 1 và lớp 2 Pheasant Network, Symbiosis, Catalyst, v.v.

  3. DeFi
    Trong hệ sinh thái Scroll, có một số dự án DeFi được thiết lập tốt, bao gồm giao thức cho vay Aave, công cụ tổng hợp DEX đa chuỗi DODO, DEX SushiSwap, công cụ tổng hợp DEX OpenOcean, giao thức DeFi đa chuỗi iZUMi Finance, DEX Syncswap, giao thức lợi nhuận Pendle Finance, Lending giao thức dForce và công cụ tổng hợp giao dịch đòn bẩy MUX Protocol. Ngoài ra còn có những dự án mang tính đổi mới như GMX chưa được áp dụng rộng rãi.

  4. Người khác
    Về khía cạnh NFT, trò chơi và xã hội, các dự án khác trong hệ sinh thái Scroll bao gồm NFTScan, nền tảng tác vụ Web3 QuestN, TaskOn, nền tảng ký giao thức điện tử EthSign, Galaxy Blitz, OmniKingdoms và các trò chơi blockchain trực tuyến khác.

Điều gì khiến công nghệ Scroll khác biệt với những công nghệ khác?

1. Kiến trúc tổng thể

Kiến trúc của Scroll bao gồm ba thành phần:

Nút cuộn: Nó tạo các khối trên mạng Scroll dựa trên giao dịch của người dùng, gửi các giao dịch này đến lớp cơ sở Ethereum và xử lý thông báo truyền giữa Ethereum và Scroll.

Con lăn: Con lăn chịu trách nhiệm chuyển đổi các hợp đồng thông minh thành các mạch zkEVM, sau đó tạo ra bằng chứng để chứng minh tính chính xác của các giao dịch. Có nhiều Con lăn trong mạng Scroll, xử lý các giao dịch song song và tăng tốc việc tạo bằng chứng thông qua phần cứng. Scroll đạt được khả năng tương thích ở cấp độ mã byte với EVM bằng cách trực tiếp chứng minh tính chính xác của quá trình xử lý mã byte EVM.

Hợp đồng tổng hợp và cầu nối: Các hợp đồng này cung cấp dữ liệu sẵn có cho các giao dịch Cuộn và xác minh bằng chứng hợp lệ do zkEVM tạo ra. Có thể nói, Scroll được kết nối với lớp cơ sở Ethereum thông qua các hợp đồng Rollup và Bridge. Thông qua các hợp đồng này, người dùng có thể trao đổi tin nhắn tùy ý giữa Ethereum và Scroll, đồng thời chuyển tài sản ERC-20 theo một trong hai hướng với sự trợ giúp của các hợp đồng cổng.


nguồn: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

Scroll là hợp đồng chính được triển khai trên chuỗi khối Ethereum:

Hợp đồng proxy định tuyến cổng (Đảm bảo ánh xạ chính xác các mã thông báo trong các hoạt động xuyên chuỗi): 0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6

Hợp đồng ủy quyền tin nhắn (Truyền tin nhắn giữa L1 và L2): 0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367

Điều đáng chú ý là các hợp đồng này có thể được sửa đổi bởi quản trị viên và chủ sở hữu proxy. Ngoài ra, Scroll đã kết hợp chức năng danh sách trắng cho phép điều chỉnh phí gas cho các địa chỉ cụ thể trong Scroll. Hiện tại, trình sắp xếp Scroll hoạt động theo cách tập trung, cho phép xem xét các tin nhắn và giao dịch trên mạng Scroll. Hơn nữa, có khả năng bỏ qua bất kỳ tin nhắn nào trong hàng đợi tin nhắn và trực tiếp xác nhận một tin nhắn cụ thể.

2. Cuộn quy trình làm việc zkEVM

Sau khi Scroll tạo một khối, nó sẽ đi qua một điều phối viên và nhiều người chứng minh (Rollers) để tạo ra các bằng chứng tổng hợp. Những bằng chứng này sau đó được gửi đến hợp đồng Ethereum Rollup để xác minh. Quá trình chi tiết như sau:

1, Trình sắp xếp thứ tự nhận các giao dịch mới. Máy ảo đọc mã byte được liên kết với mỗi giao dịch, tạo ra dấu vết thực thi và gửi nó đến điều phối viên. Đồng thời, trình sắp xếp thứ tự gửi dữ liệu giao dịch đến hợp đồng Tổng hợp.

2、Con lăn chuyển đổi dấu vết thực thi nhận được từ bộ điều phối thành các mạch zkEVM. Mỗi bước trong quá trình thực hiện tương ứng với một mạch zkEVM. Đối với các hàm không thân thiện với zk (chẳng hạn như hàm băm và Keccak), Scroll xây dựng các bảng tra cứu để ánh xạ đầu vào và đầu ra của các hàm này trong dấu vết thực thi tới bảng tra cứu. Các mạch bổ sung được sử dụng để xác minh tính chính xác của bảng tra cứu. Sau đó, các con lăn tạo ra bằng chứng cho các mạch zkEVM này.

3、Sau khi tạo bằng chứng, Rollers sẽ gửi chúng lại cho điều phối viên. Cứ sau vài khối, điều phối viên lại phân công ngẫu nhiên các nhiệm vụ tổng hợp cho một Con lăn. Sau đó, Con lăn được chỉ định sẽ tổng hợp các bằng chứng cho nhiều khối thành một bằng chứng duy nhất.

4、Cuối cùng, điều phối viên gửi bằng chứng tổng hợp cho hợp đồng Tổng hợp. Hợp đồng Rollup sử dụng bằng chứng này để xác minh tính chính xác của dữ liệu giao dịch và trạng thái đã gửi trước đó, từ đó xác nhận tính chính xác của khối.

Cuộn và kiểm tra mạch zkEVM

1. Mạch chính

zkEVM bao gồm nhiều mạch, mỗi mạch có nhiệm vụ xác minh một khía cạnh cụ thể của EVM (Máy ảo Ethereum). Các mạch này cuối cùng được kết hợp hoặc tổng hợp để tạo ra bằng chứng thực hiện giao dịch. Sơ đồ dưới đây minh họa mối quan hệ giữa các mạch này và các bảng.

Có các mạch phụ nhỏ hơn, chẳng hạn như mạch ECDSA và các mạch phụ liên quan đến opcode, không tương tác với các bảng và mạch khác theo cách ảnh hưởng đến sự kết hợp của mạch. Các mạch phụ này được bỏ qua khỏi sơ đồ cho rõ ràng.

Mạch EVM

Máy ảo Ethereum (EVM) là một máy trạng thái thiết lập các quy tắc chuyển đổi trạng thái hợp lệ trong giao thức Ethereum. Nó thực thi các lệnh (opcode) để đạt được các chuyển đổi này và tạo ra dấu vết thực thi. Mục tiêu của mạch EVM là tạo ra một hệ thống ràng buộc thể hiện dấu vết thực thi và có thể được xác minh bằng hệ thống chứng minh không có kiến thức.

Thiết kế cấp cao của mạch EVM có phần giống với thiết kế của chính EVM, giống như go-ethereum. Trong go-ethereum, trình thông dịch lặp qua tất cả các mã lệnh trên dấu vết thực thi. Đối với mỗi lệnh, trình thông dịch sẽ kiểm tra thông tin ngữ cảnh có liên quan như gas, ngăn xếp và bộ nhớ, sau đó gửi opcode đến JumpTable, nơi cung cấp hướng dẫn chi tiết để thực thi opcode.

Tương tự, trong các mạch EVM, Scroll xây dựng các bước thực thi dựa trên dấu vết thực thi và cung cấp bằng chứng cho các opcode và bối cảnh thực thi. Đối với mỗi bước thực hiện, một tập hợp các ràng buộc được áp dụng để kiểm tra thông tin theo ngữ cảnh. Đối với mỗi opcode, một tập hợp các ràng buộc được áp dụng để xác minh hành vi của nó. Trong dấu vết thực thi, cùng một mã hoạt động phải có cùng các ràng buộc. Scroll sử dụng bộ chọn để “mở” tất cả các bước có cùng mã hoạt động trong dấu vết thực thi và sử dụng hệ thống chứng minh phụ trợ để chứng minh hành vi của chúng.

Mạch trạng thái

Trong quá trình thực thi, tất cả các thao tác đọc và ghi của EVM đều được ghi vào rw_table và được sắp xếp theo biến rw_counter. Mục đích của mạch trạng thái là để chứng minh việc tạo ra rw_table chính xác.

Mạch MPT

Cây Merkle Patricia (MPT) là cấu trúc dữ liệu quan trọng được sử dụng trong lớp lưu trữ Ethereum. Trong zkevm-Circuits của Scroll, MPT được sửa đổi thành zkTrie, về cơ bản là một Merkle Patricia Trie nhị phân thưa thớt. Trong zkevm-Circuits, Scroll sử dụng bảng MPT để theo dõi từng bước chuyển đổi trạng thái của hoạt động MPT. Bảng MPT có bố cục như sau:

Mục tiêu của mạch MPT là xác minh tính chính xác của bảng MPT được đề cập ở trên. Nó đảm bảo rằng mỗi bản cập nhật được ghi trong bảng MPT đều dẫn đến thay đổi chính xác. Điều này có nghĩa là với mỗi lần cập nhật, mạch MPT đảm bảo rằng chỉ có một cách khả thi để thực hiện thay đổi. Điều này ngăn chặn những sửa đổi vô tình hoặc trái phép và đảm bảo tính toàn vẹn và chính xác của MPT. Cụ thể, khi MPT trải qua những thay đổi do cập nhật trong tài khoản hoặc bộ lưu trữ, mạch MPT phải chứng minh rằng những cập nhật này được thực hiện theo các quy tắc đã chỉ định. Ngoài ra, nó phải chứng minh rằng hàm băm gốc phản ánh chính xác kết quả của tất cả các thay đổi.

Mạch Keccak

Scroll đã triển khai phiên bản Keccak256 của riêng họ, tuân theo thông số kỹ thuật của NIST Keccak và thông số kỹ thuật của nhóm Keccak.

Và mạch Keccak được dùng để chứng minh tính đúng đắn của phép toán Keccak256. Việc triển khai mạch này rất phức tạp, chủ yếu là do bản thân thuật toán keccak256 không thân thiện với zk.

Mạch Tx

Mạch Tx cung cấp các ràng buộc để xác nhận tính chính xác của giao dịch. Nó chủ yếu kiểm tra các khía cạnh sau của giao dịch:

  1. Tính chính xác của CallDataLength và CallDataGasCost tích lũy: Xác định cổng tùy chỉnh và tìm hàng byte dữ liệu cuộc gọi cuối cùng trong bảng tx;

  2. Tính chính xác của dữ liệu liên quan đến TxSign và TxHash: Tìm kiếm bảng RLP và bảng Keccak;

  3. Chứng minh tính đúng đắn của “if tx_type là L1Msg, then msg_hash”: Xác minh bằng cách tìm kiếm trong bảng RLP;

  4. Thực thi chính xác chữ ký tx bằng ECDSA và khôi phục chính xác địa chỉ người gọi từ chữ ký ECDSA: Xác minh bằng cách tìm kiếm bảng sig;

  5. Hành vi chuyển tiếp chính xác của tx id, cum_num_txs và call_data_length;

  6. Một số ràng buộc cơ bản, chẳng hạn như giá trị Boolean của các biến chỉ báo nhất định.

Mạch mã byte

Các mạch EVM cần tìm kiếm bảng mã byte chứa thông tin mã byte chính xác. Điều này đảm bảo rằng các byte được lưu trữ trong hợp đồng khớp với các byte được tải từ bảng. Mục đích của mạch mã byte là đảm bảo tính chính xác của bảng mã byte. Điêu nay bao gôm:

  1. Các ràng buộc liên quan đến hành vi ranh giới với thẻ (tag): Ràng buộc ở dòng đầu tiên và dòng cuối cùng, chuyển đổi từ thẻ == byte sang tiêu đề và ngược lại, chuyển đổi từ tiêu đề sang tiêu đề;

  2. Các ràng buộc về kích thước mã: Bao gồm việc tính toán độ dài mã byte thông qua ràng buộc về chỉ mục của byte cuối cùng của mã byte;

  3. Các ràng buộc về hàm băm mã: Hạn chế chính xác hành vi RLC của byte trong hàm băm mã và xác minh hàm băm mã bằng cách tra cứu bảng Keccak;

  4. Đảm bảo tính chính xác của hành vi PUSH: is_code = push_data_left == 0 (phải là giá trị boolean) và xác minh kích thước của dữ liệu được đẩy cho PUSH1-PUSH32 bằng cách tra cứu push_table;

  5. Đảm bảo truyền chính xác trong từng dòng của mã byte.

2. Kiểm tra an ninh

Các chuỗi khác nhau có chức năng mô-đun kinh doanh tùy chỉnh riêng, thường sửa đổi các hợp đồng và mã hoạt động được biên dịch trước trong EVM. Trong số đó, Scroll zkEVM là giải pháp mở rộng quy mô lớp thứ hai dựa trên bằng chứng không có kiến thức. Giải pháp này tái tạo lại các mã hoạt động có liên quan bằng cách sử dụng các mạch và tạo ra bằng chứng dựa trên dấu vết thực thi. Việc triển khai phức tạp này làm tăng đáng kể độ khó của việc kiểm toán. Sau khi được các chuyên gia bảo mật Beosin đánh giá, việc kiểm tra bảo mật của zkEVM chủ yếu tập trung vào các khía cạnh sau:

  1. GAS: Khi tạo bằng chứng cho dấu vết thực thi của mạch zkEVM, nó cũng xác minh tính chính xác của mức tiêu thụ gas cho các giao dịch. Nếu các biến tự do không bị ràng buộc thường xuyên được sử dụng trong mạch triển khai của các opcode, điều đó có thể dẫn đến lỗi tạo bằng chứng hoặc các lỗi không xác định khác.

  2. An toàn bộ nhớ: Một số mạch zkEVM dựa trên các cam kết đa thức, chẳng hạn như cam kết KZG được Scroll sử dụng. Tuy nhiên, các phép tính đa thức không tự động căn chỉnh, vì vậy nếu mạch thiếu các ràng buộc, nó có thể dẫn đến phạm vi giá trị không nhất quán với phạm vi byte trong chương trình máy tính. Trong một số trường hợp, khi các nhà phát triển hợp đồng kích hoạt tính năng tối ưu hóa gas, việc sắp xếp dữ liệu nhỏ gọn có thể dẫn đến các vấn đề về an toàn bộ nhớ, chẳng hạn như đa thức hằng số BYTE_C4096 trong Polygon zkEVM. Đa thức cho phép các giá trị tham số vượt quá phạm vi giá trị byte tối đa là 255, điều này có khả năng cho phép các trình sắp xếp chuỗi độc hại thao túng các tham số để kiếm lợi nhuận trong một số nền tảng trao đổi áp dụng mô hình AMM. Về cơ bản, các loại lỗ hổng này phát sinh từ sự không nhất quán giữa phạm vi giá trị số được biểu thị bằng mạch và phạm vi giá trị biến của chương trình. Một ví dụ là lỗ hổng CVE-2023-33252 được các nhà nghiên cứu bảo mật Beosin phát hiện trong thư viện Snarkjs.

  3. Bảo mật Opcode: Khi triển khai opcode zkEVM, có các vấn đề bảo mật phổ biến, đặc biệt là về độ chính xác. Ví dụ: khi so sánh hai số trong mạch cơ bản, nếu độ chính xác của thao tác so sánh trong chương trình là 1 byte thì các ràng buộc của mạch cần chỉ định phạm vi giá trị. Nếu không, độ chính xác của các thao tác trong mạch sẽ vượt quá độ chính xác của chương trình, dẫn đến kết quả không chính xác.

  4. Hỗ trợ EIP bảo mật: Hỗ trợ các EIP tập trung vào bảo mật như EIP-2 và EIP-155.

  5. Vấn đề tập trung trong Sequencer: Hiện tại, tất cả bằng chứng do Scroll tạo ra đều phụ thuộc vào dấu vết thực thi do Sequencer tạo ra. Nếu Sequencer hoạt động độc hại, zkEVM không thể đảm bảo tính bảo mật cho tài sản của người dùng.

  6. Vấn đề tương thích: zkEVM tạo bằng chứng mạch dựa trên dấu vết thực thi và xác minh chúng trong hợp đồng. Ngay cả những nâng cấp nhỏ trong Sequencer cũng có thể dẫn đến những khác biệt đáng kể trong dấu vết thực thi được tạo ở cấp độ ngôn ngữ cơ bản.

Triển vọng tương lai của Scroll

  1. Scroll hiện áp dụng phiên bản KZG hai lớp của hệ thống chứng minh Halo2, sử dụng khả năng tăng tốc phần cứng GPU để tăng tốc độ tạo bản chứng minh. Nút cổ chai hiện đã chuyển sang tạo nhân chứng và sao chép dữ liệu. Ngoài ra, mức độ tập trung và chi phí vận hành phần cứng của Roller cũng là những khía cạnh mà Scroll cần xem xét để phát triển các hệ thống chứng minh nhiều giai đoạn trong tương lai.

  2. Bởi vì dấu vết thực thi EVM thay đổi linh hoạt nên có nhiều ràng buộc và quy mô mạch khác nhau. Hiện tại, để phù hợp với dấu vết thực thi thay đổi linh hoạt, mỗi bước của dấu vết thực thi cần phải đáp ứng quy mô mạch lớn nhất, dẫn đến lãng phí bộ nhớ thêm.

  3. Scroll's Roller hiện được kỳ vọng sẽ thu được lợi nhuận từ phí giao dịch mạng. Tuy nhiên, số lượng người dùng và phí giao dịch hiện tại trong mạng Scroll không thể trang trải chi phí vận hành của Roller và trình sắp xếp chuỗi. Trong tương lai, mạng Scroll cung cấp các động lực kinh tế như thế nào để thu hút người dùng và duy trì hoạt động mạng ổn định là một câu hỏi cần được xem xét.

Hiện tại, Beosin cũng hỗ trợ kiểm toán dự án zk. Đối với nghiên cứu bảo mật chuyên sâu về zk, bạn có thể đọc các bài viết sau: 1. Tấn công tính linh hoạt trong giao dịch của Bằng chứng Groth16; 2. Khám phá chuyên sâu về Tornado Cash để phát hiện các cuộc tấn công dễ uốn nắn trong các dự án ZKP.

Beosin, với tư cách là công ty bảo mật blockchain hàng đầu thế giới, đã thành lập chi nhánh tại hơn 10 quốc gia và khu vực trên toàn thế giới. Các dịch vụ của chúng tôi bao gồm kiểm tra bảo mật mã trước khi khởi động dự án, giám sát rủi ro bảo mật, cảnh báo và phòng ngừa sớm trong quá trình vận hành dự án, phục hồi tài sản cho các loại tiền ảo bị đánh cắp và các dịch vụ tuân thủ an toàn như KYT/AML. Chúng tôi cung cấp giải pháp toàn diện cho các sản phẩm và dịch vụ bảo mật blockchain. Hiện tại, chúng tôi đã cung cấp dịch vụ công nghệ bảo mật cho hơn 3000 doanh nghiệp blockchain trên toàn cầu và đã kiểm toán hơn 3000 hợp đồng thông minh. Cứ liên lạc nếu cần.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được in lại từ [Beosin]. Mọi bản quyền đều thuộc về tác giả gốc [Beosin]. Nếu có ý kiến phản đối việc tái bản này, vui lòng liên hệ với nhóm Gate Learn , họ sẽ xử lý kịp thời.
  2. Tuyên bố miễn trừ trách nhiệm pháp lý: Các quan điểm và ý kiến trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Việc dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch đều bị cấm.

Sẽ cuộn điều khiển làn sóng Layer2? Và mạch zkEVM và kiểm tra bạn cần biết

Trung cấp12/27/2023, 8:47:30 AM
Bài viết này cung cấp những phân tích chi tiết về kiến trúc và công nghệ của Scroll, giúp người đọc hiểu được hiện trạng mạng và hướng phát triển trong tương lai của Scroll. Nó cũng giải thích các mạch và kiểm tra Scroll zkEVM.

Vào lúc 14:00 ngày 10 tháng 10, mạng chính Scroll của giải pháp Ethereum Lớp 2 đã tạo ra khối đầu tiên, đánh dấu sự ra mắt thành công của mạng chính Scroll. Tính đến ngày 25 tháng 10, hơn 7600 ETH đã được kết nối vào mạng Scroll thông qua các cầu nối chuỗi chéo và 24 nền tảng giao dịch phi tập trung đã hoạt động trên mạng chính Scroll, với tổng TVL khoảng 10 triệu USD.

Vào ngày 17 tháng 10, Scroll đã chính thức công bố ra mắt mạng chính của mình đồng thời tiếp tục duy trì cam kết về nguồn mở và phân quyền. Trong giai đoạn tiếp theo, Scroll sẽ tập trung vào việc xây dựng mạng lưới phân loại và bằng chứng cổ phần phi tập trung. Trong bài viết này, chúng tôi sẽ cung cấp những phân tích chi tiết về kiến trúc và công nghệ của Scroll để giúp mọi người hiểu được hiện trạng mạng hiện tại và hướng phát triển trong tương lai của Scroll. Chúng tôi cũng sẽ giải thích kiến thức kiểm tra và mạch zkEVM của Scroll để tăng cường các biện pháp bảo mật cho các dự án zk.

Scroll là ai, động lực của làn sóng Layer2?

Scroll là giải pháp mở rộng quy mô Ethereum Lớp 2 dựa trên công nghệ chứng minh không có kiến thức, nhằm cải thiện thông lượng và tốc độ giao dịch của mạng Ethereum. So với Optimistic Rollup, Scroll đạt được khả năng mở rộng thông qua bằng chứng không có kiến thức và tăng tốc việc tạo và xác minh bằng chứng không có kiến thức thông qua tăng tốc phần cứng. Nó cam kết đạt được khả năng tương thích EVM cấp mã byte. Điều này có nghĩa là các nhà phát triển có thể trực tiếp sử dụng các công cụ phát triển liên quan đến Solidity và Ethereum để xây dựng các hợp đồng thông minh và triển khai chúng trên Scroll mà không cần bất kỳ sửa đổi nào.

Theo trang web chính thức của Scroll, hiện có 10 thành viên cốt lõi trong nhóm Scroll, phân bố khắp Châu Á, Châu Mỹ và Châu Âu. Các thành viên trong nhóm có nhiều kinh nghiệm trong việc phát triển zkRollup và vận hành ngành, hầu hết họ đều tốt nghiệp các trường đại học danh tiếng và có bằng Tiến sĩ.

Hiện tại, hệ sinh thái Scroll rất phong phú, với các dự án cơ sở hạ tầng bao gồm ví, công cụ phát triển, cơ sở bảo mật, v.v. Mục tiêu là cung cấp hỗ trợ toàn diện cho các dự án trong toàn bộ vòng đời, từ thiết kế, phát triển, vận hành đến kiểm tra bảo mật. Hiện tại, có hơn 180 dự án hệ sinh thái trên mạng chính Scroll.

  1. Cái ví
    Scroll hiện hỗ trợ hầu hết tất cả các ví chính thống: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet. Ngoài ra, ví hệ sinh thái Scroll còn bao gồm Ví OKX, Ví Versa, v.v.

  2. Cầu xuyên chuỗi
    Cơ sở hạ tầng chuỗi chéo chính thức của Scroll bao gồm Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext, v.v. Ngoài ra, nó cũng bao gồm giao thức thanh khoản chuỗi chéo Synapse Protocol, Owlto Finance tập trung vào cầu nối chuỗi lớp 2, cầu nối chuỗi Ethereum Lớp 1 và lớp 2 Pheasant Network, Symbiosis, Catalyst, v.v.

  3. DeFi
    Trong hệ sinh thái Scroll, có một số dự án DeFi được thiết lập tốt, bao gồm giao thức cho vay Aave, công cụ tổng hợp DEX đa chuỗi DODO, DEX SushiSwap, công cụ tổng hợp DEX OpenOcean, giao thức DeFi đa chuỗi iZUMi Finance, DEX Syncswap, giao thức lợi nhuận Pendle Finance, Lending giao thức dForce và công cụ tổng hợp giao dịch đòn bẩy MUX Protocol. Ngoài ra còn có những dự án mang tính đổi mới như GMX chưa được áp dụng rộng rãi.

  4. Người khác
    Về khía cạnh NFT, trò chơi và xã hội, các dự án khác trong hệ sinh thái Scroll bao gồm NFTScan, nền tảng tác vụ Web3 QuestN, TaskOn, nền tảng ký giao thức điện tử EthSign, Galaxy Blitz, OmniKingdoms và các trò chơi blockchain trực tuyến khác.

Điều gì khiến công nghệ Scroll khác biệt với những công nghệ khác?

1. Kiến trúc tổng thể

Kiến trúc của Scroll bao gồm ba thành phần:

Nút cuộn: Nó tạo các khối trên mạng Scroll dựa trên giao dịch của người dùng, gửi các giao dịch này đến lớp cơ sở Ethereum và xử lý thông báo truyền giữa Ethereum và Scroll.

Con lăn: Con lăn chịu trách nhiệm chuyển đổi các hợp đồng thông minh thành các mạch zkEVM, sau đó tạo ra bằng chứng để chứng minh tính chính xác của các giao dịch. Có nhiều Con lăn trong mạng Scroll, xử lý các giao dịch song song và tăng tốc việc tạo bằng chứng thông qua phần cứng. Scroll đạt được khả năng tương thích ở cấp độ mã byte với EVM bằng cách trực tiếp chứng minh tính chính xác của quá trình xử lý mã byte EVM.

Hợp đồng tổng hợp và cầu nối: Các hợp đồng này cung cấp dữ liệu sẵn có cho các giao dịch Cuộn và xác minh bằng chứng hợp lệ do zkEVM tạo ra. Có thể nói, Scroll được kết nối với lớp cơ sở Ethereum thông qua các hợp đồng Rollup và Bridge. Thông qua các hợp đồng này, người dùng có thể trao đổi tin nhắn tùy ý giữa Ethereum và Scroll, đồng thời chuyển tài sản ERC-20 theo một trong hai hướng với sự trợ giúp của các hợp đồng cổng.


nguồn: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

Scroll là hợp đồng chính được triển khai trên chuỗi khối Ethereum:

Hợp đồng proxy định tuyến cổng (Đảm bảo ánh xạ chính xác các mã thông báo trong các hoạt động xuyên chuỗi): 0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6

Hợp đồng ủy quyền tin nhắn (Truyền tin nhắn giữa L1 và L2): 0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367

Điều đáng chú ý là các hợp đồng này có thể được sửa đổi bởi quản trị viên và chủ sở hữu proxy. Ngoài ra, Scroll đã kết hợp chức năng danh sách trắng cho phép điều chỉnh phí gas cho các địa chỉ cụ thể trong Scroll. Hiện tại, trình sắp xếp Scroll hoạt động theo cách tập trung, cho phép xem xét các tin nhắn và giao dịch trên mạng Scroll. Hơn nữa, có khả năng bỏ qua bất kỳ tin nhắn nào trong hàng đợi tin nhắn và trực tiếp xác nhận một tin nhắn cụ thể.

2. Cuộn quy trình làm việc zkEVM

Sau khi Scroll tạo một khối, nó sẽ đi qua một điều phối viên và nhiều người chứng minh (Rollers) để tạo ra các bằng chứng tổng hợp. Những bằng chứng này sau đó được gửi đến hợp đồng Ethereum Rollup để xác minh. Quá trình chi tiết như sau:

1, Trình sắp xếp thứ tự nhận các giao dịch mới. Máy ảo đọc mã byte được liên kết với mỗi giao dịch, tạo ra dấu vết thực thi và gửi nó đến điều phối viên. Đồng thời, trình sắp xếp thứ tự gửi dữ liệu giao dịch đến hợp đồng Tổng hợp.

2、Con lăn chuyển đổi dấu vết thực thi nhận được từ bộ điều phối thành các mạch zkEVM. Mỗi bước trong quá trình thực hiện tương ứng với một mạch zkEVM. Đối với các hàm không thân thiện với zk (chẳng hạn như hàm băm và Keccak), Scroll xây dựng các bảng tra cứu để ánh xạ đầu vào và đầu ra của các hàm này trong dấu vết thực thi tới bảng tra cứu. Các mạch bổ sung được sử dụng để xác minh tính chính xác của bảng tra cứu. Sau đó, các con lăn tạo ra bằng chứng cho các mạch zkEVM này.

3、Sau khi tạo bằng chứng, Rollers sẽ gửi chúng lại cho điều phối viên. Cứ sau vài khối, điều phối viên lại phân công ngẫu nhiên các nhiệm vụ tổng hợp cho một Con lăn. Sau đó, Con lăn được chỉ định sẽ tổng hợp các bằng chứng cho nhiều khối thành một bằng chứng duy nhất.

4、Cuối cùng, điều phối viên gửi bằng chứng tổng hợp cho hợp đồng Tổng hợp. Hợp đồng Rollup sử dụng bằng chứng này để xác minh tính chính xác của dữ liệu giao dịch và trạng thái đã gửi trước đó, từ đó xác nhận tính chính xác của khối.

Cuộn và kiểm tra mạch zkEVM

1. Mạch chính

zkEVM bao gồm nhiều mạch, mỗi mạch có nhiệm vụ xác minh một khía cạnh cụ thể của EVM (Máy ảo Ethereum). Các mạch này cuối cùng được kết hợp hoặc tổng hợp để tạo ra bằng chứng thực hiện giao dịch. Sơ đồ dưới đây minh họa mối quan hệ giữa các mạch này và các bảng.

Có các mạch phụ nhỏ hơn, chẳng hạn như mạch ECDSA và các mạch phụ liên quan đến opcode, không tương tác với các bảng và mạch khác theo cách ảnh hưởng đến sự kết hợp của mạch. Các mạch phụ này được bỏ qua khỏi sơ đồ cho rõ ràng.

Mạch EVM

Máy ảo Ethereum (EVM) là một máy trạng thái thiết lập các quy tắc chuyển đổi trạng thái hợp lệ trong giao thức Ethereum. Nó thực thi các lệnh (opcode) để đạt được các chuyển đổi này và tạo ra dấu vết thực thi. Mục tiêu của mạch EVM là tạo ra một hệ thống ràng buộc thể hiện dấu vết thực thi và có thể được xác minh bằng hệ thống chứng minh không có kiến thức.

Thiết kế cấp cao của mạch EVM có phần giống với thiết kế của chính EVM, giống như go-ethereum. Trong go-ethereum, trình thông dịch lặp qua tất cả các mã lệnh trên dấu vết thực thi. Đối với mỗi lệnh, trình thông dịch sẽ kiểm tra thông tin ngữ cảnh có liên quan như gas, ngăn xếp và bộ nhớ, sau đó gửi opcode đến JumpTable, nơi cung cấp hướng dẫn chi tiết để thực thi opcode.

Tương tự, trong các mạch EVM, Scroll xây dựng các bước thực thi dựa trên dấu vết thực thi và cung cấp bằng chứng cho các opcode và bối cảnh thực thi. Đối với mỗi bước thực hiện, một tập hợp các ràng buộc được áp dụng để kiểm tra thông tin theo ngữ cảnh. Đối với mỗi opcode, một tập hợp các ràng buộc được áp dụng để xác minh hành vi của nó. Trong dấu vết thực thi, cùng một mã hoạt động phải có cùng các ràng buộc. Scroll sử dụng bộ chọn để “mở” tất cả các bước có cùng mã hoạt động trong dấu vết thực thi và sử dụng hệ thống chứng minh phụ trợ để chứng minh hành vi của chúng.

Mạch trạng thái

Trong quá trình thực thi, tất cả các thao tác đọc và ghi của EVM đều được ghi vào rw_table và được sắp xếp theo biến rw_counter. Mục đích của mạch trạng thái là để chứng minh việc tạo ra rw_table chính xác.

Mạch MPT

Cây Merkle Patricia (MPT) là cấu trúc dữ liệu quan trọng được sử dụng trong lớp lưu trữ Ethereum. Trong zkevm-Circuits của Scroll, MPT được sửa đổi thành zkTrie, về cơ bản là một Merkle Patricia Trie nhị phân thưa thớt. Trong zkevm-Circuits, Scroll sử dụng bảng MPT để theo dõi từng bước chuyển đổi trạng thái của hoạt động MPT. Bảng MPT có bố cục như sau:

Mục tiêu của mạch MPT là xác minh tính chính xác của bảng MPT được đề cập ở trên. Nó đảm bảo rằng mỗi bản cập nhật được ghi trong bảng MPT đều dẫn đến thay đổi chính xác. Điều này có nghĩa là với mỗi lần cập nhật, mạch MPT đảm bảo rằng chỉ có một cách khả thi để thực hiện thay đổi. Điều này ngăn chặn những sửa đổi vô tình hoặc trái phép và đảm bảo tính toàn vẹn và chính xác của MPT. Cụ thể, khi MPT trải qua những thay đổi do cập nhật trong tài khoản hoặc bộ lưu trữ, mạch MPT phải chứng minh rằng những cập nhật này được thực hiện theo các quy tắc đã chỉ định. Ngoài ra, nó phải chứng minh rằng hàm băm gốc phản ánh chính xác kết quả của tất cả các thay đổi.

Mạch Keccak

Scroll đã triển khai phiên bản Keccak256 của riêng họ, tuân theo thông số kỹ thuật của NIST Keccak và thông số kỹ thuật của nhóm Keccak.

Và mạch Keccak được dùng để chứng minh tính đúng đắn của phép toán Keccak256. Việc triển khai mạch này rất phức tạp, chủ yếu là do bản thân thuật toán keccak256 không thân thiện với zk.

Mạch Tx

Mạch Tx cung cấp các ràng buộc để xác nhận tính chính xác của giao dịch. Nó chủ yếu kiểm tra các khía cạnh sau của giao dịch:

  1. Tính chính xác của CallDataLength và CallDataGasCost tích lũy: Xác định cổng tùy chỉnh và tìm hàng byte dữ liệu cuộc gọi cuối cùng trong bảng tx;

  2. Tính chính xác của dữ liệu liên quan đến TxSign và TxHash: Tìm kiếm bảng RLP và bảng Keccak;

  3. Chứng minh tính đúng đắn của “if tx_type là L1Msg, then msg_hash”: Xác minh bằng cách tìm kiếm trong bảng RLP;

  4. Thực thi chính xác chữ ký tx bằng ECDSA và khôi phục chính xác địa chỉ người gọi từ chữ ký ECDSA: Xác minh bằng cách tìm kiếm bảng sig;

  5. Hành vi chuyển tiếp chính xác của tx id, cum_num_txs và call_data_length;

  6. Một số ràng buộc cơ bản, chẳng hạn như giá trị Boolean của các biến chỉ báo nhất định.

Mạch mã byte

Các mạch EVM cần tìm kiếm bảng mã byte chứa thông tin mã byte chính xác. Điều này đảm bảo rằng các byte được lưu trữ trong hợp đồng khớp với các byte được tải từ bảng. Mục đích của mạch mã byte là đảm bảo tính chính xác của bảng mã byte. Điêu nay bao gôm:

  1. Các ràng buộc liên quan đến hành vi ranh giới với thẻ (tag): Ràng buộc ở dòng đầu tiên và dòng cuối cùng, chuyển đổi từ thẻ == byte sang tiêu đề và ngược lại, chuyển đổi từ tiêu đề sang tiêu đề;

  2. Các ràng buộc về kích thước mã: Bao gồm việc tính toán độ dài mã byte thông qua ràng buộc về chỉ mục của byte cuối cùng của mã byte;

  3. Các ràng buộc về hàm băm mã: Hạn chế chính xác hành vi RLC của byte trong hàm băm mã và xác minh hàm băm mã bằng cách tra cứu bảng Keccak;

  4. Đảm bảo tính chính xác của hành vi PUSH: is_code = push_data_left == 0 (phải là giá trị boolean) và xác minh kích thước của dữ liệu được đẩy cho PUSH1-PUSH32 bằng cách tra cứu push_table;

  5. Đảm bảo truyền chính xác trong từng dòng của mã byte.

2. Kiểm tra an ninh

Các chuỗi khác nhau có chức năng mô-đun kinh doanh tùy chỉnh riêng, thường sửa đổi các hợp đồng và mã hoạt động được biên dịch trước trong EVM. Trong số đó, Scroll zkEVM là giải pháp mở rộng quy mô lớp thứ hai dựa trên bằng chứng không có kiến thức. Giải pháp này tái tạo lại các mã hoạt động có liên quan bằng cách sử dụng các mạch và tạo ra bằng chứng dựa trên dấu vết thực thi. Việc triển khai phức tạp này làm tăng đáng kể độ khó của việc kiểm toán. Sau khi được các chuyên gia bảo mật Beosin đánh giá, việc kiểm tra bảo mật của zkEVM chủ yếu tập trung vào các khía cạnh sau:

  1. GAS: Khi tạo bằng chứng cho dấu vết thực thi của mạch zkEVM, nó cũng xác minh tính chính xác của mức tiêu thụ gas cho các giao dịch. Nếu các biến tự do không bị ràng buộc thường xuyên được sử dụng trong mạch triển khai của các opcode, điều đó có thể dẫn đến lỗi tạo bằng chứng hoặc các lỗi không xác định khác.

  2. An toàn bộ nhớ: Một số mạch zkEVM dựa trên các cam kết đa thức, chẳng hạn như cam kết KZG được Scroll sử dụng. Tuy nhiên, các phép tính đa thức không tự động căn chỉnh, vì vậy nếu mạch thiếu các ràng buộc, nó có thể dẫn đến phạm vi giá trị không nhất quán với phạm vi byte trong chương trình máy tính. Trong một số trường hợp, khi các nhà phát triển hợp đồng kích hoạt tính năng tối ưu hóa gas, việc sắp xếp dữ liệu nhỏ gọn có thể dẫn đến các vấn đề về an toàn bộ nhớ, chẳng hạn như đa thức hằng số BYTE_C4096 trong Polygon zkEVM. Đa thức cho phép các giá trị tham số vượt quá phạm vi giá trị byte tối đa là 255, điều này có khả năng cho phép các trình sắp xếp chuỗi độc hại thao túng các tham số để kiếm lợi nhuận trong một số nền tảng trao đổi áp dụng mô hình AMM. Về cơ bản, các loại lỗ hổng này phát sinh từ sự không nhất quán giữa phạm vi giá trị số được biểu thị bằng mạch và phạm vi giá trị biến của chương trình. Một ví dụ là lỗ hổng CVE-2023-33252 được các nhà nghiên cứu bảo mật Beosin phát hiện trong thư viện Snarkjs.

  3. Bảo mật Opcode: Khi triển khai opcode zkEVM, có các vấn đề bảo mật phổ biến, đặc biệt là về độ chính xác. Ví dụ: khi so sánh hai số trong mạch cơ bản, nếu độ chính xác của thao tác so sánh trong chương trình là 1 byte thì các ràng buộc của mạch cần chỉ định phạm vi giá trị. Nếu không, độ chính xác của các thao tác trong mạch sẽ vượt quá độ chính xác của chương trình, dẫn đến kết quả không chính xác.

  4. Hỗ trợ EIP bảo mật: Hỗ trợ các EIP tập trung vào bảo mật như EIP-2 và EIP-155.

  5. Vấn đề tập trung trong Sequencer: Hiện tại, tất cả bằng chứng do Scroll tạo ra đều phụ thuộc vào dấu vết thực thi do Sequencer tạo ra. Nếu Sequencer hoạt động độc hại, zkEVM không thể đảm bảo tính bảo mật cho tài sản của người dùng.

  6. Vấn đề tương thích: zkEVM tạo bằng chứng mạch dựa trên dấu vết thực thi và xác minh chúng trong hợp đồng. Ngay cả những nâng cấp nhỏ trong Sequencer cũng có thể dẫn đến những khác biệt đáng kể trong dấu vết thực thi được tạo ở cấp độ ngôn ngữ cơ bản.

Triển vọng tương lai của Scroll

  1. Scroll hiện áp dụng phiên bản KZG hai lớp của hệ thống chứng minh Halo2, sử dụng khả năng tăng tốc phần cứng GPU để tăng tốc độ tạo bản chứng minh. Nút cổ chai hiện đã chuyển sang tạo nhân chứng và sao chép dữ liệu. Ngoài ra, mức độ tập trung và chi phí vận hành phần cứng của Roller cũng là những khía cạnh mà Scroll cần xem xét để phát triển các hệ thống chứng minh nhiều giai đoạn trong tương lai.

  2. Bởi vì dấu vết thực thi EVM thay đổi linh hoạt nên có nhiều ràng buộc và quy mô mạch khác nhau. Hiện tại, để phù hợp với dấu vết thực thi thay đổi linh hoạt, mỗi bước của dấu vết thực thi cần phải đáp ứng quy mô mạch lớn nhất, dẫn đến lãng phí bộ nhớ thêm.

  3. Scroll's Roller hiện được kỳ vọng sẽ thu được lợi nhuận từ phí giao dịch mạng. Tuy nhiên, số lượng người dùng và phí giao dịch hiện tại trong mạng Scroll không thể trang trải chi phí vận hành của Roller và trình sắp xếp chuỗi. Trong tương lai, mạng Scroll cung cấp các động lực kinh tế như thế nào để thu hút người dùng và duy trì hoạt động mạng ổn định là một câu hỏi cần được xem xét.

Hiện tại, Beosin cũng hỗ trợ kiểm toán dự án zk. Đối với nghiên cứu bảo mật chuyên sâu về zk, bạn có thể đọc các bài viết sau: 1. Tấn công tính linh hoạt trong giao dịch của Bằng chứng Groth16; 2. Khám phá chuyên sâu về Tornado Cash để phát hiện các cuộc tấn công dễ uốn nắn trong các dự án ZKP.

Beosin, với tư cách là công ty bảo mật blockchain hàng đầu thế giới, đã thành lập chi nhánh tại hơn 10 quốc gia và khu vực trên toàn thế giới. Các dịch vụ của chúng tôi bao gồm kiểm tra bảo mật mã trước khi khởi động dự án, giám sát rủi ro bảo mật, cảnh báo và phòng ngừa sớm trong quá trình vận hành dự án, phục hồi tài sản cho các loại tiền ảo bị đánh cắp và các dịch vụ tuân thủ an toàn như KYT/AML. Chúng tôi cung cấp giải pháp toàn diện cho các sản phẩm và dịch vụ bảo mật blockchain. Hiện tại, chúng tôi đã cung cấp dịch vụ công nghệ bảo mật cho hơn 3000 doanh nghiệp blockchain trên toàn cầu và đã kiểm toán hơn 3000 hợp đồng thông minh. Cứ liên lạc nếu cần.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được in lại từ [Beosin]. Mọi bản quyền đều thuộc về tác giả gốc [Beosin]. Nếu có ý kiến phản đối việc tái bản này, vui lòng liên hệ với nhóm Gate Learn , họ sẽ xử lý kịp thời.
  2. Tuyên bố miễn trừ trách nhiệm pháp lý: Các quan điểm và ý kiến trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Việc dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch đều bị cấm.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500