Trong bài viết này, 0xSamo, tác giả của LXDAO, sử dụng EtherScan một cách linh hoạt để phân tích các thành phần cốt lõi trên chuỗi của Starknet, cấu trúc phí cuộn lạc quan/zk và cơ chế blob của EIP-4844. , Tỷ lệ hệ thống SHARP đã được khám phá và tiết lộ cho mọi người sự thật đằng sau việc Giảm 99% phí xử lý của Starknet: Nâng cấp Cancun để giảm phí xử lý DA chỉ là lý do phụ, lý do thực sự làPhát hành tiền tệ Starknet Sau đó, kho bạc có các nguồn thu nhập khác và không còn phải dựa vào phí để tạo thu nhập nên đã hạ thấp đáng kể tiêu chuẩn Giá khí L2.
Lời nói đầu
EIP-4844 as Bản nâng cấp lớn nhất của Ethereum sau The Merge đã thu hút đủ sự chú ý. Không gian lưu trữ tạm thời Blob được giới thiệu trong bản nâng cấp này tương đương với việc bổ sung một toa tàu gắn bên hông vào tàu Ethereum, cung cấp không gian DA rẻ hơn mà không ảnh hưởng đến trạng thái vận hành ban đầu của tàu.
Các dự án Layer2 như Optimism, StarkNet và Arbitrum đều hỗ trợ EIP-4844 trong một thời gian ngắn và đạt được hiệu quả giảm chi phí đáng kể. Kho bạc LXDAO Đối với các giao dịch được tạo khi phân phối tiền lương cho những người đóng góp trên Optimism, phí gas trước và sau EIP-4844 thực sự khác nhau 100 lần.
Nhưng trong khi rất ngạc nhiên, chúng tôi phát hiện ra rằngStarkNet, với tư cách là đại diện của ZK Rollup, cũng đã đạt được hiệu quả giảm phí đáng kinh ngạc. Mức gas từng vượt quá 1 đô la Mỹ đã giảm xuống còn 0,01 đô la Mỹ .
Tại sao phí xử lý của Starknet có thể giảm nhiều như vậy
OP Rollup và ZK Rollup trên DA cấp một space Nhu cầu khác nhau
Cả hai có sự phụ thuộc cực kỳ khác nhau vào không gian DA. OP Rollup sẽ đóng gói và nén tất cả chi tiết của các giao dịch gần đây, bao gồm chữ ký người dùng và dữ liệu khác, rồi tải tất cả chúng lên mạng cấp một. Nó không yêu cầu quá nhiều nhiệm vụ kiểm tra trên mạng lớp một và hầu như mọi chi phí đều nằm trong không gian DA của mạng lớp một.
Ngược lại, ZK Rollup có tốc độ nén cao hơn đối với dữ liệu trên chuỗi. Ví dụ: không cần tải lên chữ ký số của các giao dịch Lớp 2 và chỉ dựa vào ZK Proof để đảm bảo giao dịch hợp lệ; hơn nữa, ZK Rollup không cần đóng gói tất cả các chi tiết giao dịch mà chỉ cần đóng gói tất cả các chi tiết giao dịch; kết quả thay đổi trạng thái trên chuỗi.
Ví dụ: trên mạng lớp thứ hai, 100 người dùng đã giao dịch trên cặp giao dịch USDC/USDT. Sau mỗi giao dịch, hợp đồng tài sản Số dư của USDC. và USDT sẽ thay đổi. Đối với OP Rollup, dữ liệu DA được tạo đằng sau các hành vi giao dịch này là 100 giao dịch và 400 lần thay đổi số dư của 200 tài khoản;
Và đối vớiĐối với ZK Rollup, một tổng cộng 200 thay đổi đối với hợp đồng tài sản có thể được nén thành 2 thay đổi tóm tắt trạng thái cuối cùng, giúp giảm đáng kể kích thước của dữ liệu DA.
ZK Rollup xác minh lượng Gas bổ sung mà ZKP tiêu thụ
Hiểu Sau khi hiểu sự khác biệt giữa hai loại này, ấn tượng đầu tiên của bạn có thể là phí gas của ZK Rollup sẽ tương đối thấp, nhưng những sinh viên đã thực hành nó đều nên biết rằng Trước EIP-4844, ZK Rollup như StarkNet và ZkSync, trong số những thứ khác. Phí cao hơn đáng kể so với OP Rollup, đặc biệt là StarkNet. Do sử dụng thuật toán STARK nên kích thước của bằng chứng không có kiến thức của nó lớn hơn và phí chuyển giao thường cao hơn Lớp khác. 2.
(Bảng phí L2 tại một thời điểm nào đó trong năm 2023)
Lý do khiến ZK Rollup không đè bẹp OP Rollup ngay khi nó lên mạng rất đơn giản: mặc dù nó tốt cho các giao dịch Dữ liệu có tốc độ nén cao hơn, giúp tiết kiệm chi phí truyền dữ liệu đến một lớp, nhưng nó yêu cầu xác minh bằng chứng không có kiến thức trên một lớp của mạng, điều này làm tăng chi phí tính toán.
Blob chỉ có thể giảm phí DA và không giúp ích nhiều trong phần tính toán. So với OP Rollup, ZK Rollup có ít lợi ích hơn trên EIP-4844. khó có thể không ngạc nhiên khi chúng ta thấy rằng Starknet đã nhanh chóng chuyển từ trạng thái phí xử lý cực kỳ đắt đỏ sang phí gas ở mức phần trăm.
Khám phá cơ cấu phí của Starknet
ZK Rollup thường phức tạp hơn hơn OP Rollup. Hình ảnh bên dưới là bản ghi giao dịch được tạo khi bộ sắp xếp Optimism xuất bản dữ liệu DA lên mạng lớp đầu tiên. Bất kỳ ai cũng có thể hiểu tại sao phí giao dịch của OP giảm hai bậc sau khi triển khai EIP-4844.
Nhưng khi điều tra nguồn gốc phí xử lý Starknet, tác giả bài viết này gặp khó khăn không nhỏ, bởi sự tương tác giữa các thành phần khác nhau của Starknet phức tạp hơn. Chúng ta hãy hồi tưởng lại toàn bộ quá trình này.
Lớp DA đang biến mất
Vì dựa trên sự khám phá dựa trên kinh nghiệm về cấu trúc phí của Optimism, tất nhiên chúng tôi nghĩ rằng chỉ cần tìm địa chỉ hợp đồng nơi Starknet gửi dữ liệu lên mạng chính. Loại hợp đồng quan trọng này phải nằm trong danh sách tiêu thụ Gas của Etherscan và nó phải có. Không khó để tìm thấy, chẳng hạn như Scroll, vẫn chưa thích ứng với EIP-4844 và hợp đồng của nó vẫn đứng đầu danh sách tiêu thụ gas.
Khi tìm kiếm từ khóa Starknet, chúng tôi sẽ tìm thấy ba thành phần liên quan: Toán tử, Hợp đồng cốt lõi và Đăng ký thông tin trang bộ nhớ trên EtherScan. Tuy nhiên, hợp đồng thứ ba có vẻ liên quan đến DA đã ngừng sử dụng nó gần hai năm trước. .
Hiện tại chúng ta có thể thấy rằng Starkent's Operator liên tục tương tác với Core Contract và liên tục gọi chức năng "Update State".
Nếu chúng tôi xem lại các bản ghi trên chuỗi trước và sau khi kích hoạt nâng cấp Cancun, chúng tôi sẽ thấy rằng hành vi "Trạng thái cập nhật" của Nhà điều hành thực sự đã trải qua những thay đổi chi tiết. Đầu tiên, tên chức năng được đổi thành "UpdateStateKzgDA". Thứ hai, chức năng cập nhật trạng thái cũ sẽ Hợp đồng cốt lõi truyền ProgramOutput, onchainDataHash và onchainDataSize, trong khi phiên bản mới của chức năng tải lên ProgramOutput và < mạnh>KzgProof.
KzgProof ở đây, thường được gọi là KZG Proof, đóng vai trò tương tự như datahash của Blob và có mối quan hệ tương ứng với dữ liệu được lưu trữ trong Blob. Điều đáng chú ý là phiên bản mới của chức năng cập nhật trạng thái tiêu tốn nhiều gas hơn phiên bản cũ. Vậy câu hỏi đặt ra là tại sao Starknet có thể giảm phí xử lý thấp đến vậy? Lý do là gì?
Để biết thêm thông tin, vui lòng tham khảo trang web khoa học phổ biến Layer2 MyFirstLayer2 trong LXDAO: mạnh> p>https://layer2.myfirst.io/zh#3.3-optimistic-rollup
< strong>Phân tích sau thất bại đầu tiên
Mặc dù lần khám phá đầu tiên không thành công nhưng chúng ta vẫn có thể rút ra một số suy luận và phỏng đoán. Những người bạn đã xem MyFirstLayer2 phải biết rằng vấn đề cốt lõi của Rollup là vấn đề DA (tính khả dụng của dữ liệu) và tất cả họ đều tải dữ liệu chính lên mạng chính để giải quyết vấn đề về tính khả dụng của dữ liệu. Bằng cách này, tất cả mọi người đều có thể dễ dàng truy cập dữ liệu. họ cần có được.
Hãy nhìn lại OP Rollup nén và tóm tắt một cách đơn giản và thô sơ tất cả các hướng dẫn, gói và giao dịch. tải chúng lên mạng cấp một, những người khác có thể tải xuống dữ liệu đã nén, sau đó giải nén và phát lại từng giao dịch để tìm hiểu về các thay đổi trạng thái của mạng cấp hai.
ZK Rollup không cần tải lên chi tiết giao dịch đầy đủ mà chỉ cần tải lên State Diff cần được tải lên (lượng thay đổi trạng thái trước và sau mỗi đợt được thực thi). ZKRollup sử dụng ZKP để đảm bảo rằng State Diff là hợp lệ và chính xác. Những người khác có thể trực tiếp phủ State Diff trên Prev_GlobalState để biết trạng thái mới nhất của mạng lớp thứ hai.
Tất cả chúng ta đều biết rằng dữ liệu trongBlob chỉ là một chuỗi văn bản nhị phân bị cắt xén và mạng lớp đầu tiên chỉ đảm bảo rằng dữ liệu Blob sẽ không bị một số người giả mạo các nút độc hại sau khi được tải lên, nhưng Nó không chịu trách nhiệm xác minh nội dung của những dữ liệu này. Tất nhiên, hợp đồng thông minh được triển khai ở lớp đầu tiên không thể đọc trực tiếp nội dung của Blob.
Do đó, nếu ZK Proof vẫn được xác minh bằng một lớp thì ZK Proof không được đặt trong Blob, vì vậy chúng ta có thể đánh giá rằng Starknet có thể có một lớp như vậy Hiệu quả giảm phí đáng kể ít liên quan đến ZKP. Nguyên nhân có thể là do sự thay đổi vị trí lưu trữ của State diff.
Nhiệm vụ sau đây rõ ràng là để xác nhận xem Starknet đã đặt State diff ở đâu? Trước đây nó được đặt ở đâu? Bây giờ nó có được đặt trong đốm màu không?
Ngoài ra, chỉ có thể tìm thấy một StateRoot trong các tham số đầu vào của hàm UpdateState, điều này khiến mọi người thắc mắc liệu Starknet có tải lên dữ liệu đáng lẽ phải được tải lên trực tiếp hay không Thay vào đó, nó được gửi đến DAC off-chain (Ủy ban sẵn sàng dữ liệu) của chính nó. Nếu điều này thực sự xảy ra thì mức phí cao trước đây của Starknet là hoàn toàn không hợp lý và chỉ có thể giải thích là...
Hệ thống SHARP
May mắn thay, sau khi thảo luận với @0xYandhii, tôi đã ngộ ra trước khi ra mắt mạng chính phổ quát, sản phẩm đầu tiên của Starknet là. thực ra StarkEX, trong đó có sàn giao dịch phái sinh hóa học dYdX cũng là một sản phẩm của thời kỳ đó.
Sau khi mạng chính trực tuyến, sản phẩm ban đầu không bị bỏ rơi mà thay vào đó đã chia sẻ hợp đồng xác thực với mạng chính. Điều đó là SHARP: Hệ thống xác minh và chứng minh được chia sẻ, sau đó chúng tôi đã tìm thấy các hợp đồng liên quan như SHARP Blockchain Writer và SHARP Verifier.
Mở trình duyệt khối để truy vấn các giao dịch liên quan, bạn có thể thấy rằngSHARP Blockchain Writer đã thực hiện 4 loại hoạt động sau:
-
1. VerifyMerkle:Xác minh cây Merkle
- < /li >
2. VerifyFRI: Được sử dụng để đảm bảo rằng dữ liệu hoặc kết quả tính toán được gửi tuân theo các quy tắc cụ thể mà không làm lộ hình ảnh gốc của dữ liệu.
3. Đăng ký trang bộ nhớ liên tục: p> strong>Có vẻ như đây là một hàm được gọi khi ghi dữ liệu vào một lớp mạng.
4. Xác minh bằng chứng và đăng ký: p> mạnh>Nó có thể được gọi một lần trong thời gian nhanh nhất, hoặc một hoặc hai giờ vào thời gian chậm nhất. Đáng lẽ sau khi Starknet tích lũy được số lượng giao dịch đủ lớn, nó sẽ thống nhất xác minh tính hợp lệ của. ZKP của các giao dịch này.
Không khó để nhận ra 1, 2, 4 là các hàm liên quan đến ZKProof, còn hàm thứ 3 hiển nhiên là hướng tới Bước ghi dữ liệu vào mạng lớp là chức năng rất có thể liên quan đến tải lên khác biệt trạng thái.
Chúng tôi suy đoán rằng phí gọi của các chức năng 1, 2 và 4 không thay đổi đáng kể trước và sau khi nâng cấp Blob, trong khichức năng thứ ba chi phí sử dụng sẽ giảm đáng kể, điều này có thể giải thích tại sao hiệu quả giảm phí của Starknet lại đáng kể đến vậy.
Vì vậy, tác giả tiếp tục duyệt trình duyệt khối, và phiên bản cũ thứ hai đến cuối cùng và phiên bản đầu tiên đến cuối cùng trước EIP-4844 đã được đã nâng cấp. Thực hiện một chu kỳ xác minh cho mỗi giai đoạn trong số ba giai đoạn của phiên bản mới nhất và đếm lượng Gas tiêu thụ của mỗi chức năng trong số bốn chức năng mỗi lần chúng được gọi.
Kết quả như sau khiến người ta gãi đầu.
Chi phí của chức năng thứ ba liên quan đến việc phát hành dữ liệu đã giảm một nửa, nhưng xét theo tỷ lệ chi phí của nó trong toàn bộ quá trình xác minh ZK Proof, mức giảm chi phí DA này không thể chứng minh các Giả thuyết trước đây của chúng tôi được đề xuất.
Tại thời điểm này, cuộc thám hiểm gần như đã kết thúc. Tác giả có cảm giác như một nhà vật lý đang ngồi trước máy va chạm hạt lớn trong thế giới ba vật. tế bào não đang gào thét: Điều này thật vô nghĩa! Tôi thậm chí còn vào cộng đồng Starknet để đăng bài hỏi, nhưng có lẽ vì câu hỏi quá phức tạp nên không ai trong cộng đồng người Anh trả lời.
Khám phá GasUsed của hệ thống SHARP
Tại thời điểm này, chúng tôi còn lại Bí quyết nhỏ cuối cùng là trong dữ liệu giao dịch csv đã tải xuống trước đó, chỉ có ETH được tiêu thụ bởi phí gas và không có thông tin nào như GasPrice, Gaslimit, v.v., do đó tác động của biến động giá đơn vị gas đến kết quả thống kê không thể loại trừ. Vì vậy, tác giả đã viết một tập lệnh để đếm GasUsed (phần đã sử dụng của Gaslimit) thực sự được tiêu thụ bởi mỗi giao dịch liên quan.
Lần này cuối cùng chúng tôi đã tìm ra manh mối. Bạn có thể thấy rằngTrước khi nâng cấp Cancun, chức năng có tên Đăng ký Trang bộ nhớ liên tục sẽ được kích hoạt hai lần mỗi khi dữ liệu DA được tải lên, một lần tiêu tốn 50.000 gas và lần còn lại tiêu tốn 300.000 gas mạnh>.
Sau khi nâng cấp Cancun, hầu hết tất cả các giao dịch gọi chức năng Đăng ký Trang bộ nhớ liên tục chỉ tiêu tốn 50.000 gas.
Trước đây chúng tôi lấy quá ít mẫu. Sau lần nâng cấp đó, đó là giai đoạn phí gas của mạng chính tăng vọt. Điều này ảnh hưởng đến kết quả thống kê của chúng tôi và khiến chúng tôi tin rằng chi phí gọi chức năng Đăng ký trang bộ nhớ liên tục đã cao ở mức cao. Không có gì thay đổi trước hoặc sau khi nâng cấp Kun và khi chúng tôi áp dụng số liệu thống kê rộng rãi hơn, chúng tôi nhanh chóng phát hiện ra vấn đề.
Theo ý tưởng này, chúng tôi đã tổ chức lại dữ liệu GasUsed của ba thời điểm, lần này hợp lý hơn nhiều. Tại thời điểm này, có thể khẳng định rằng Đăng ký Chức năng Trang bộ nhớ liên tục liên quan đến tải lên dữ liệu DA thực sự đã giảm đáng kể phí xử lý sau khi nâng cấp Cancun. Đây phải là bước đầu tiên của việc lưu trữ State Diff và nâng cấp Cancun Cuối cùng, dữ liệu DA được chuyển đến Blob.
Theo dõi, chúng tôi tìm thấy sơ đồ cấu trúc sản phẩm của Starknet trên trang web L2beat. Chúng tôi có thể thấy rằng State diff thực sự được lưu trữ trên chuỗi Ethereum thông qua chức năng trên. .
(Nguồn ảnh: L2BEAT)
Cuối cùng, chúng tôi tính toán dựa trên số GasUsed (dựa trên số lượng GasUsed hiện tại được chọn ngẫu nhiên mẫu nhỏ hơn Dựa trên ước tính rộng dựa trên khối lượng), chúng tôi đi đến kết luận: Sau khi nâng cấp Starknet ở Cancun, phí DA đã thay đổi khoảng 4 đến 10 lần, thấp hơn một chút so với mức độ lớn.
Điều này cũng phù hợp với dự đoán ban đầu của chúng tôi: Sau khi nâng cấp EIP-4844, những lợi ích mà ZK Rollup thu được không còn như trước nữa tốt như OP Rollup nhiều.
Tóm tắt
Sau khám phá trên , Cuối cùng, chúng tôi đã tìm ra lý do khiến phí xử lý của Starnet giảm mạnh và kết luận vẫn hơi hấp dẫn.
Phí DA đã giảm đáng kể, nhưng điều này không thể giải thích cho sự sụt giảm hai bậc độ lớn
Rõ ràng là Starnet trước đây đã tải trực tiếp dữ liệu thay đổi trạng thái có trong mỗi Lô lên mạng lớp đầu tiên. Bây giờ, nó đặt phần dữ liệu này vào Blob, vì vậy nó có thể được sử dụng trong Phần dữ liệu DA Về mặt phí xử lý, hiệu quả giảm phí thấp hơn một chút.
Nhưng làm sao giải thích được việc phí Starknet giảm 99%? Chỉ dựa vào việc giảm phí DA rõ ràng là chưa đủ. Lời giải thích hợp lý duy nhất là trước khi nâng cấp ở Cancun, Starknet đã thu quá nhiều phí từ người dùng. Trước khi STRK được phát hành, tất cả các hoạt động và ưu đãi cộng đồng của Starknet đều cần có tiền. Ngoài việc đốt tiền của nhà đầu tư, còn có một khoảng cách cắt kéo giữa số ETH được tính cho người dùng và số ETH thực tế được tiêu thụ. Starknet duy trì một trong những phương thức hoạt động là lý do tại sao trước đây phí gas của Starknet lại cao như vậy.
Bây giờ việc phát hành mã thông báo STRK đã mang lại đủ tiền cho Starknet, đã đến lúc đưa Gas trở lại mức hợp lý và tận dụng bản nâng cấp Cancun. bao cát ở chân được tháo ra cùng nhau, hiệu quả giảm phí thực sự khiến nhiều người bất ngờ.
Vấn đề mất dữ liệu lịch sử cuộn lên
OP Rollup đang được thực hiện được nâng cấp Sau đó, sau khi chuyển dữ liệu ban đầu được lưu trữ trong giao dịch Calldata sang khu vực lưu trữ tạm thời của Blob, một chút tin cậy thực sự đã bị hy sinh.
Trước đây, dữ liệu trong không gian Calldata được lưu trữ vĩnh viễn, điều đó có nghĩa là bất kỳ ai cũng có thể tải xuống đủ dữ liệu lịch sử từ mạng chính Ethereum để xác minh và đồng bộ hóa trạng thái hiện tại của OPR.
Tuy nhiên, sau khi nâng cấp Cancun, dữ liệu Blob được đặt hết hạn và bị loại bỏ. Nếu không có thực thể nào trong toàn bộ mạng lưu dữ liệu Blob trước đây thì lịch sử của Hồ sơ giao dịch OPR có thể bị mất.
Mặc dù trạng thái mạng Lớp 2 mới nhất vẫn có thể được bảo vệ - vì thời gian lưu trữ Blob vượt quá thời gian thử thách 7-14 ngày của OP, mỗi Blob trước khi hết hạn, trạng thái cấp độ thứ hai tương ứng của nó vẫn đáng tin cậy. Hồ sơ giao dịch trong mười ngày gần nhất duy trì tính bảo mật của OPR trên cơ sở luân phiên.
Nếu ZK Rollup muốn tận hưởng các lợi ích của Blob, thì nó cũng cần chuyển dữ liệu trạng thái lớp thứ hai quan trọng từ không gian Calldata sang không gian Blob. Điều này có nghĩa là sau một thời gian, chúng ta không thể dựa vào dữ liệu do mạng cấp một cung cấp để phát lại trạng thái của mạng cấp hai như trước nữa.
Có lẽ điều này sẽ trở thành tiêu chuẩn. Trong tương lai, tất cả các mạng lớp thứ hai sẽ dựa vào Blob để duy trì trạng thái bảo mật mới nhất và mỗi L2 cũng cần nghĩ ra phương pháp riêng của mình. Phương pháp này giải quyết vấn đề lưu trữ dữ liệu giao dịch lịch sử và đạt được sự cân bằng tốt hơn giữa tính bảo mật và hiệu quả.
Xu hướng tích hợp của OP và ZK
Trước đây, không. Thế hệ đầu tiên của OP Rollup là thế hệ đầu tiên được đưa lên mạng, nhưng thế hệ đầu tiên của ZK Rollup không mang lại phí gas cạnh tranh hơn sau khi nó lên mạng. Với xu hướng mô-đun hóa tiếp theo do OP Stack và Polygon SDK mang lại, OP Stack thậm chí còn có kế hoạch giới thiệu công nghệ ZK trong tương lai để giảm thời gian thử thách.
Điều này chắc chắn chỉ ra một thực tế rằng hai con đường kỹ thuật của OP và ZK không phải là sự cạnh tranh sinh tử. Họ sẽ học hỏi lẫn nhau và có một sự cạnh tranh sinh tử. Tuy nhiên, đây là lần ZK "quý tộc" học được từ OP "đơn giản và thô thiển".
Thật khó để tưởng tượng rằng công nghệ của mạng lớp thứ hai đã phát triển đến mức như vậy chỉ trong hai hoặc ba năm. Có lẽ đây chính là sức hấp dẫn của nó. thế giới chuỗi khối.
Tài liệu tham khảo:
[1]FeedTheFed. Tính khả dụng của dữ liệu với EIP4844[EB/OL]. (2024-02-11)[2024-04-16] https://community.starknet.io/t/data-availability-with-eip4844/113065.h
[2] Nhóm nghiên cứu L2BEAT. Starknet[EB/OL] [2024-04-16]. https: / /l2beat.com/scaling/projects/starknet?selectedChart=activity#contracts.