Optimism 기술 문서

Tác giả Optimism Collective · 2021

Optimism không có whitepaper truyền thống. Là một optimistic rollup Ethereum Layer 2, thiết kế và thông số kỹ thuật của nó được ghi lại qua tài liệu kỹ thuật, đặc tả OP Stack và các bài đăng nghiên cứu thay vì một bài báo học thuật chính thức duy nhất.

Tóm tắt

Bài viết giải quyết vấn đề về khả năng mở rộng trong blockchain phi tập trung bằng cách phân tích sự cân bằng giữa thông lượng giao dịch và yêu cầu phần cứng để chạy một nút. Bản tổng hợp, tức là các công nghệ để xác minh trên chuỗi các khối được thực hiện ngoài chuỗi, được trình bày dưới dạng bằng chứng lỗi hoặc tính hợp lệ. Chúng tôi so sánh Tổng hợp lạc quan và Tổng hợp hợp lệ về thời gian rút tiền, chi phí giao dịch, kỹ thuật tối ưu hóa và khả năng tương thích với hệ sinh thái Ethereum. Phân tích của chúng tôi cho thấy rằng Optimism Bedrock hiện có tốc độ nén khí xấp xỉ 20:1, trong khi StarkNet đạt được tốc độ nén chi phí ghi lưu trữ vào khoảng 24:1. Chúng tôi cũng thảo luận về các kỹ thuật để tối ưu hóa hơn nữa các tỷ lệ này, chẳng hạn như việc sử dụng hợp đồng bộ đệm và bộ lọc Bloom. Cuối cùng, kết luận của chúng tôi nêu bật sự cân bằng giữa độ phức tạp và tính linh hoạt trong việc lựa chọn giữa Tổng hợp lạc quan và hợp lệ. Từ khóa Blockchain, Khả năng mở rộng, Rollup 1. Giới thiệu Công nghệ Blockchain đã thu hút được sự chú ý đáng kể nhờ tiềm năng cách mạng hóa các ngành công nghiệp khác nhau. Tuy nhiên, khả năng mở rộng vẫn là một thách thức lớn, vì hầu hết blockchain phải đối mặt với sự đánh đổi giữa khả năng mở rộng, phân cấp và bảo mật, thường được gọi là Bộ ba bất khả thi về khả năng mở rộng [1, 2]. Để tăng thông lượng của blockchain, một giải pháp đơn giản là tăng kích thước khối của nó. Trong ngữ cảnh Ethereum, điều này có nghĩa là tăng lượng gas tối đa mà một khối có thể chứa. Vì mỗi nút đầy đủ phải xác thực mọi giao dịch của mọi khối nên khi thông lượng tăng lên, các yêu cầu về phần cứng cũng tăng lên, dẫn đến tính tập trung cao hơn của mạng. Một số blockchain, chẳng hạn như Bitcoin và Ethereum, tối ưu hóa thiết kế của họ để tối đa hóa khả năng phân cấp kiến ​​trúc của họ, trong khi những blockchain khác, chẳng hạn như Binance Smart Chain và Solana, được thiết kế để nhanh và rẻ nhất có thể. Mạng phi tập trung giới hạn một cách giả tạo thông lượng của blockchain để giảm yêu cầu phần cứng để tham gia vào mạng. Trong những năm qua, nhiều nỗ lực đã được thực hiện để tìm ra giải pháp cho Bộ ba bất khả thi, chẳng hạn như các kênh trạng thái [3] và Plasma [4, 5]. Các giải pháp này có đặc điểm là chuyển một số hoạt động ra khỏi chuỗi, liên kết hoạt động trên chuỗi với hoạt động ngoài chuỗi bằng cách sử dụng smart contracts và xác minh DLT 2023: Hội thảo công nghệ sổ cái phân tán lần thứ 5, ngày 25-26 tháng 5 năm 2023, Bologna, Ý $ [email protected] (L. Donno) https://lucadonnoh.github.io/ (L. Donno) 0000-0001-9221-3529 (L. Donno) © 2023 Bản quyền bài viết này thuộc về các tác giả. Được phép sử dụng theo Giấy phép Creative Commons Ghi công 4.0 Quốc tế (CC BY 4.0). Kỷ yếu hội thảo CEUR http://ceur-ws.org ISSN 1613-0073 Kỷ yếu hội thảo CEUR (CEUR-WS.org) trên chuỗi những gì đang diễn ra ngoài chuỗi. Tuy nhiên, cả kênh Plasma và kênh trạng thái đều bị hạn chế trong việc hỗ trợ smart contract chung. Các bản tổng hợp là blockchain (được gọi là Layer 2 hoặc L2) xuất bản các khối của chúng trên một blockchain (Layer 1 hoặc L1) khác và do đó kế thừa các thuộc tính đồng thuận, tính khả dụng của dữ liệu và bảo mật. Chúng, không giống như các giải pháp khác, hỗ trợ tính toán tùy ý. Tập hợp có ba thành phần chính: • Trình sắp xếp thứ tự: các nút nhận giao dịch Tổng hợp từ người dùng và kết hợp chúng thành một khối được gửi tới Layer 1. Khối này bao gồm ít nhất gốc trạng thái (ví dụ: gốc Merkle) và dữ liệu cần thiết để xây dựng lại và xác thực trạng thái. Layer 1 định nghĩa...

초록

이 백서는 트랜잭션 처리량과 노드를 실행하기 위한 하드웨어 요구 사항 간의 균형을 분석하여 분산형 blockchain의 확장성 문제를 해결합니다. 롤업, 즉 오프체인에서 실행되는 블록의 온체인 검증 기술은 오류 또는 유효성 증명의 형태로 제공됩니다. 출금 시간, 거래 비용, 최적화 기술 및 Ethereum 생태계와의 호환성과 관련하여 낙관적 롤업과 유효성 롤업을 비교합니다. 우리의 분석에 따르면 Optimism Bedrock의 가스 압축률은 현재 약 20:1인 반면 StarkNet의 스토리지 쓰기 비용 압축률은 약 24:1입니다. 또한 캐시 계약 및 Bloom 필터 사용과 같이 이러한 속도를 더욱 최적화하는 기술에 대해서도 논의합니다. 궁극적으로 우리의 결론은 낙관적 롤업과 유효성 롤업 간의 선택에서 복잡성과 민첩성 간의 균형을 강조합니다. 키워드 블록체인, 확장성, 롤업 1. 서론 블록체인 기술은 다양한 산업에 혁명을 일으킬 수 있는 잠재력으로 인해 큰 주목을 받고 있습니다. 그러나 대부분의 blockchain은 일반적으로 확장성 트릴레마[1, 2]라고 불리는 확장성, 분산화 및 보안 간의 균형에 직면하기 때문에 확장성은 여전히 ​​주요 과제로 남아 있습니다. blockchain의 처리량을 늘리기 위한 간단한 해결책은 블록 크기를 늘리는 것입니다. Ethereum의 맥락에서 이는 블록이 보유할 수 있는 최대 가스 양을 늘리는 것을 의미합니다. 각 풀 노드는 모든 블록의 모든 트랜잭션을 검증해야 하므로 처리량이 증가함에 따라 하드웨어 요구 사항도 증가하여 네트워크의 중앙 집중화가 더욱 강화됩니다. Bitcoin 및 Ethereum와 같은 일부 blockchain은 아키텍처 분산을 극대화하기 위해 설계를 최적화하는 반면, 바이낸스 스마트 체인 및 솔라나와 같은 다른 blockchain은 최대한 빠르고 저렴하도록 설계되었습니다. 분산형 네트워크는 네트워크에 참여하기 위한 하드웨어 요구 사항을 낮추기 위해 blockchain의 처리량을 인위적으로 제한합니다. 수년에 걸쳐 상태 채널 [3] 및 플라즈마[4, 5]와 같은 Trilemma에 대한 솔루션을 찾으려는 시도가 있었습니다. 이러한 솔루션은 일부 활동을 오프체인으로 이동하고, smart contracts를 사용하여 온체인 활동을 오프체인 활동에 연결하고, DLT 2023을 검증하는 특징을 가지고 있습니다: 제5차 분산 원장 기술 워크숍, 2023년 5월 25~26일, 이탈리아 볼로냐 $ [email protected] (L. Donno) https://lucadonnoh.github.io/ (L. Donno) 0000-0001-9221-3529 (L. Donno) © 2023 이 논문의 저작권은 저자에게 있습니다. Creative Commons License Attribution 4.0 International(CC BY 4.0)에 따라 사용이 허용됩니다. CEUR Workshop Proceedings http://ceur-ws.org ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) 온체인에서 일어나는 일 오프체인에서 일어나는 일입니다. 그러나 플라즈마 및 상태 채널 모두 일반 smart contract 지원이 제한됩니다. 롤업은 자신의 블록을 다른 blockchain(Layer 1 또는 L1)에 게시하여 합의, 데이터 가용성 및 보안 속성을 상속하는 blockchain(Layer 2 또는 L2라고 함)입니다. 다른 솔루션과 달리 임의 계산을 지원합니다. 롤업에는 세 가지 주요 구성 요소가 있습니다. • 시퀀서: 사용자로부터 롤업 트랜잭션을 수신하고 이를 Layer 1로 전송되는 블록으로 결합하는 노드입니다. 블록은 최소한 상태 루트(예: Merkle 루트)와 상태를 재구성하고 검증하는 데 필요한 데이터로 구성됩니다. Layer 1은 다음을 정의합니다...

Giới thiệu

  1. Giới thiệu Công nghệ chuỗi khối đã thu hút được sự chú ý đáng kể do tiềm năng cách mạng hóa các ngành công nghiệp khác nhau. Tuy nhiên, khả năng mở rộng vẫn là một thách thức lớn vì hầu hết blockchain đều gặp phải sự đánh đổi giữa khả năng mở rộng, phân cấp và bảo mật, thường được gọi là Khả năng mở rộng Trilemma [1, 2]. Để tăng thông lượng của blockchain, một giải pháp tầm thường là để tăng kích thước khối của nó. Trong ngữ cảnh Ethereum, điều này có nghĩa là tăng mức tối đa lượng khí mà một khối có thể chứa. Vì mỗi nút đầy đủ phải xác thực mọi giao dịch của mọi khối, khi thông lượng tăng lên thì các yêu cầu về phần cứng cũng tăng lên, dẫn đến yêu cầu lớn hơn tập trung của mạng. Một số blockchain, chẳng hạn như Bitcoin và Ethereum, tối ưu hóa được thiết kế để tối đa hóa khả năng phân cấp kiến trúc của họ, trong khi những nền tảng khác, chẳng hạn như Binance Smart Chain và Solana, được thiết kế để nhanh và rẻ nhất có thể. Mạng phi tập trung giới hạn thông lượng của blockchain một cách giả tạo để hạ thấp yêu cầu phần cứng xuống tham gia vào mạng lưới. Trong những năm qua, người ta đã nỗ lực tìm ra giải pháp cho Bộ ba bất khả thi, chẳng hạn như nhà nước kênh [3] và Plasma [4, 5]. Các giải pháp này có đặc điểm là di chuyển một số hoạt động ngoài chuỗi, liên kết hoạt động trên chuỗi với hoạt động ngoài chuỗi bằng smart contracts và xác minh DLT 2023: Hội thảo Công nghệ sổ cái phân tán lần thứ 5, ngày 25-26 tháng 5 năm 2023, Bologna, Ý $ [email protected] (L. Donno) https://lucadonnoh.github.io/ (L. Donno) 0000-0001-9221-3529 (L. Donno) © 2023 Bản quyền của bài viết này thuộc về tác giả của nó. Được phép sử dụng theo Giấy phép Creative Commons Ghi công 4.0 Quốc tế (CC BY 4.0). CEUR Xưởng Thủ tục tố tụng http://ceur-ws.org ISSN 1613-0073 Kỷ yếu Hội thảo CEUR (CEUR-WS.org)trên chuỗi những gì đang xảy ra ngoài chuỗi. Tuy nhiên, cả hai kênh Plasma và trạng thái đều bị hạn chế về sự ủng hộ của họ đối với smart contracts chung. Các tập hợp là blockchain (được gọi là Layer 2 hoặc L2) xuất bản các khối của chúng trên một blockchain khác (Layer 1 hoặc L1) và do đó kế thừa các thuộc tính đồng thuận, tính khả dụng của dữ liệu và bảo mật. Họ, không giống như các giải pháp khác, hỗ trợ tính toán tùy ý. Bản tổng hợp có ba thành phần chính: • Trình sắp xếp: các nút nhận giao dịch Tổng hợp từ người dùng và kết hợp chúng thành một khối được gửi tới Layer 1. Khối này bao gồm ít nhất gốc trạng thái (ví dụ: Merkle root) và dữ liệu cần thiết để xây dựng lại và xác thực trạng thái. Layer 1 xác định chính tắc blockchain của L2 bằng cách thiết lập thứ tự của dữ liệu được xuất bản. • Nút cuộn đầy đủ: các nút lấy, xử lý và xác thực các khối Rollup từ Lớp 1 bằng cách xác minh rằng gốc là chính xác. Nếu một khối chứa các giao dịch không hợp lệ thì đó là bị loại bỏ, điều này ngăn cản Trình sắp xếp chuỗi tạo các khối hợp lệ bao gồm các khối không hợp lệ giao dịch. • Nút ánh sáng cuộn lên: các nút nhận khối cuộn lên từ Layer 1 nhưng không tính toán bản thân nhà nước mới. Họ xác minh rằng gốc trạng thái mới là hợp lệ bằng cách sử dụng các kỹ thuật chẳng hạn như bằng chứng lỗi hoặc tính hợp lệ. Bản tổng hợp đạt được khả năng mở rộng bằng cách giảm chi phí phân bổ của các giao dịch theo số lượng của người dùng tăng lên. Điều này là do chi phí đảm bảo tính hợp lệ của blockchain tăng tuyến tính liên quan đến chi phí xác minh các giao dịch riêng lẻ. Các bản cuộn khác nhau tùy theo cơ chế đảm bảo tính hợp lệ của việc thực hiện giao dịch tại các nút nhẹ: trong Optimistic Rollups nó được đảm bảo bởi một mô hình kinh tế và bằng chứng lỗi, trong khi Hiệu lực Rollups nó được đảm bảo bằng mật mã bằng cách sử dụng bằng chứng hợp lệ. Các nút ánh sáng có thể được triển khai dưới dạng smart contract trên Layer 1. Họ chấp nhận gốc rễ của trạng thái mới và xác minh tính hợp lệ hoặc bằng chứng lỗi: do đó, các bản tổng hợp này được gọi là Hợp đồng thông minh Bản cuộn. Nếu các nút nhẹ độc lập thì chúng được gọi là Bản tổng hợp có chủ quyền [6]. Ưu điểm của sử dụng Hợp đồng thông minh Rollup là để có thể xây dựng một cầu nối giảm thiểu sự tin cậy giữa hai bên blockchains: vì tính hợp lệ của trạng thái L2 được chứng minh cho L1, nên một hệ thống giao dịch từ L2 đến L1 có thể được thực hiện, cho phép rút tiền. Nhược điểm là chi phí của giao dịch phụ thuộc vào chi phí xác minh trạng thái trên L1: nếu lớp cơ sở bị bão hòa bởi các hoạt động khác, chi phí giao dịch trên Rollup cũng tăng lên. Các lớp dữ liệu và đồng thuận là những lớp quyết định tính bảo mật của hệ thống như họ xác định thứ tự của các giao dịch, ngăn chặn các cuộc tấn công và cung cấp dữ liệu để chứng minh trạng thái hiệu lực. Đóng góp giấy tờ Trong bài viết này, chúng tôi nghiên cứu Tổng hợp lạc quan và hợp lệ, hai cải tiến giải pháp cho Bộ ba bất khả thi về khả năng mở rộng, tập trung vào các triển khai đáng chú ý, chẳng hạn như Optimism Bedrock và StarkNet. Những đóng góp của chúng tôi bao gồm sự so sánh toàn diện về những giải pháp, phân tích thời gian rút tiền và thảo luận về cuộc tấn công có thể xảy ra vào Optimism Đá nền. Ngoài ra, chúng tôi tính toán tỷ lệ nén khí của chúng, cung cấp các tối ưu hóa dành riêng cho ứng dụng và trình bày những ưu điểm cũng như nhược điểm của việc loại bỏ Ethereum Máy ảo (EVM).

Cấu trúc giấy Bài viết được tổ chức như sau. Trong phần 2 Bản tổng hợp lạc quan là được giới thiệu bằng cách phân tích Optimism Bedrock. Trong phần 3 Bản tổng hợp hợp lệ được giới thiệu bởi phân tích StarkNet. Trong phần 4 chúng ta so sánh hai giải pháp. Cuối cùng, trong phần 5 chúng ta vẽ một số kết luận.

소개

  1. 소개 블록체인 기술은 혁명을 일으킬 수 있는 잠재력으로 인해 큰 주목을 받고 있습니다. 다양한 산업. 그러나 대부분의 blockchain이 직면한 것처럼 확장성은 여전히 주요 과제로 남아 있습니다. 일반적으로 확장성, 분산화, 보안 간의 균형을 유지합니다. 확장성 트릴레마 [1, 2]. blockchain의 처리량을 늘리기 위한 간단한 해결책은 다음과 같습니다. 블록 크기를 늘리려면 Ethereum의 맥락에서 이는 최대값을 늘리는 것을 의미합니다. 블록이 담을 수 있는 가스의 양. 각 전체 노드는 모든 거래의 유효성을 검사해야 하므로 블록, 처리량이 증가하면 하드웨어 요구 사항도 증가하므로 더 큰 문제가 발생합니다. 네트워크의 중앙화. Bitcoin 및 Ethereum과 같은 일부 blockchain는 Binance Smart와 같은 다른 사람들은 아키텍처 분산화를 극대화하도록 설계합니다. 체인과 솔라나는 최대한 빠르고 저렴하게 설계되었습니다. 분산형 네트워크 하드웨어 요구 사항을 낮추기 위해 blockchain의 처리량을 인위적으로 제한합니다. 네트워크에 참여합니다. 수년에 걸쳐 국가와 같은 트릴레마에 대한 해결책을 찾으려는 시도가 있었습니다. 채널 [3] 및 플라즈마 [4, 5]. 이러한 솔루션은 일부 활동을 이동시키는 특성을 가지고 있습니다. 오프체인, smart contracts를 사용하여 온체인 활동을 오프체인 활동에 연결하고 확인 DLT 2023: 제5회 분산 원장 기술 워크숍, 2023년 5월 25~26일, 이탈리아 볼로냐 $ [email protected] (L. Donno) https://lucadonnoh.github.io/ (L. 도노) 0000-0001-9221-3529 (L. 돈노) © 2023 본 논문의 저작권은 해당 저자에게 있습니다. Creative Commons License Attribution 4.0 International(CC BY 4.0)에 따라 사용이 허용됩니다. CEUR 워크숍 절차 http://ceur-ws.org ISSN 1613-0073 CEUR 워크숍 진행(CEUR-WS.org)온체인에서 오프체인에서 무슨 일이 일어나고 있는지. 그러나 플라즈마와 상태 채널은 모두 제한되어 있습니다. 일반적인 smart contract에 대한 지원. 롤업은 다른 blockchain에 블록을 게시하는 blockchain(Layer 2 또는 L2라고 함)입니다. (Layer 1 또는 L1)이므로 합의, 데이터 가용성 및 보안 속성을 상속합니다. 그들은, 다른 솔루션과 달리 임의 계산을 지원합니다. 롤업에는 세 가지 주요 구성요소가 있습니다. • 시퀀서: 사용자로부터 롤업 트랜잭션을 수신하고 이를 하나의 노드로 결합하는 노드입니다. Layer 1로 전송되는 블록입니다. 블록은 최소한 상태 루트(예: Merkle 루트) 및 상태를 재구성하고 검증하는 데 필요한 데이터입니다. Layer 1은 게시된 데이터의 순서를 설정하여 L2의 표준 blockchain입니다. • 롤업 전체 노드: 레이어에서 롤업 블록을 획득, 처리 및 검증하는 노드
  2. 루트가 올바른지 확인합니다. 블록에 유효하지 않은 거래가 포함된 경우 이는 시퀀서가 유효하지 않은 블록을 포함하는 유효한 블록을 생성하는 것을 방지합니다. 거래. • 롤업 라이트 노드: Layer 1에서 롤업 블록을 얻지만 계산하지 않는 노드 새로운 국가 그 자체. 기술을 사용하여 새로운 상태 루트가 유효한지 확인합니다. 결함이나 타당성 증명과 같은 것입니다. 롤업은 거래의 상각 비용을 숫자만큼 줄여 확장성을 달성합니다. 사용자가 증가합니다. 이는 blockchain 유효성을 보장하는 비용이 준선형적으로 증가하기 때문입니다. 거래를 개별적으로 확인하는 데 드는 비용과 관련하여. 롤업은 다음에 따라 다릅니다. 라이트 노드에서 트랜잭션 실행의 유효성을 보장하는 메커니즘: 낙관적 롤업은 경제 모델과 결함 증명을 통해 보장되지만 유효성은 유지됩니다. 롤업은 유효성 증명을 사용하여 암호화 방식으로 보장됩니다. 라이트 노드는 Layer 1에서 smart contracts로 구현될 수 있습니다. 그들은 근본 원인을 받아들인다. 새로운 상태 및 유효성 또는 결함 증명 확인: 따라서 이러한 롤업을 스마트 계약이라고 합니다. 롤업. 라이트 노드가 독립적인 경우 소버린 롤업(Sovereign Rollup) [6]이라고 합니다. 장점 스마트 계약 롤업을 사용하면 둘 사이에 신뢰가 최소화된 브리지를 구축할 수 있습니다. blockchains: L2 상태의 유효성이 L1에 입증되었으므로 트랜잭션 시스템은 L2~L1을 구현하여 출금이 가능합니다. 단점은 제작비용이 트랜잭션은 L1의 상태를 확인하는 비용에 따라 달라집니다. 기본 레이어가 다음으로 포화된 경우 다른 활동으로 인해 롤업 거래 비용도 증가합니다. 데이터 및 합의 계층은 다음과 같이 시스템의 보안을 결정하는 계층입니다. 트랜잭션 순서를 정의하고, 공격을 방지하며, 상태를 증명할 수 있는 데이터를 제공합니다. 유효성. 논문 투고 본 논문에서는 혁신적인 두 가지 롤업인 낙관적 롤업과 유효성 롤업을 연구합니다. Optimism Bedrock 및 StarkNet와 같은 주목할만한 구현에 중점을 둔 확장성 트릴레마에 대한 솔루션입니다. 우리의 기여에는 다음 사항에 대한 포괄적인 비교가 포함됩니다. 솔루션, 철수 시간 분석 및 Optimism에 대한 가능한 공격에 대한 논의 기반암. 또한 가스 압축 비율을 계산하고, 애플리케이션별 최적화를 제공하며, Ethereum에서 벗어날 때의 장점과 단점을 제시합니다. 가상 머신(EVM).

종이 구조 논문은 다음과 같이 구성되어 있습니다. 섹션 2 낙관적 롤업은 다음과 같습니다. Optimism Bedrock을 분석하여 소개되었습니다. 섹션 3에서 유효성 롤업은 다음과 같이 소개됩니다. StarkNet을 분석 중입니다. 섹션 4에서는 두 솔루션을 비교합니다. 마지막으로 5장에서 그림을 그립니다. 몇 가지 결론.

Tổng hợp lạc quan

  1. Bản tổng hợp lạc quan Ý tưởng chấp nhận một cách lạc quan đầu ra của các khối mà không cần xác minh việc thực hiện chúng là đã có mặt trong báo cáo chính thức Bitcoin [7], thảo luận về các nút ánh sáng. Các nút này chỉ theo sau chuỗi tiêu đề bằng cách xác minh quy tắc đồng thuận, khiến chúng dễ bị chấp nhận khối chứa các giao dịch không hợp lệ trong trường hợp bị tấn công 51%. Nakamoto đề xuất giải quyết việc này vấn đề bằng cách sử dụng hệ thống “cảnh báo” để cảnh báo các nút ánh sáng rằng một khối chứa các giao dịch không hợp lệ. Cơ chế này lần đầu tiên được thực hiện bởi Al-Bassam, Sonnino và Buterin [8] trong đó có lỗi hệ thống bằng chứng dựa trên mã sửa lỗi [9] được sử dụng. Để có thể tạo điều kiện cho bằng chứng lỗi, điều cần thiết là dữ liệu từ tất cả các khối, bao gồm cả các khối không hợp lệ, có sẵn để mạng: đây là Vấn đề về tính khả dụng của dữ liệu, được giải quyết bằng cách sử dụng dữ liệu xác suất cơ chế lấy mẫu Thiết kế Optimistic Rollup đầu tiên được trình bày bởi John Adler và Mikerah Quintyne-Collins vào năm 2019 [10], trong đó các khối được xuất bản trên blockchain khác điều đó xác định sự đồng thuận của họ về việc đặt hàng. 2.1. Optimism Đá gốc Bedrock [11] là phiên bản mới nhất của Optimism, một Bản tổng hợp hợp đồng thông minh. Phiên bản trước, Máy ảo Optimistic (OVM) yêu cầu một trình biên dịch đặc biệt để biên dịch Solidity thành mã byte riêng: ngược lại, Bedrock hoàn toàn tương đương với EVM ở chỗ công cụ thực thi tuân theo thông số kỹ thuật của Giấy vàng Ethereum [12]. 2.1.1. Tiền gửi Người dùng có thể gửi tiền giao dịch thông qua hợp đồng trên Ethereum, Cổng thông tin Optimism bằng cách gọi hàm DepositTransaction. Khi một giao dịch được thực hiện, một Sự kiện TransactionDeposited được phát ra, mỗi nút trong Rollup sẽ lắng nghe để xử lý tiền gửi. Giao dịch ký gửi là giao dịch L2 có nguồn gốc từ L1. Nếu người gọi của là một hợp đồng, địa chỉ được chuyển đổi bằng cách thêm một giá trị không đổi vào nó: điều này ngăn cản các cuộc tấn công trong đó hợp đồng trên L1 có cùng địa chỉ với hợp đồng trên L2 nhưng có mã khác. Việc đưa vào L2 của giao dịch gửi tiền được đảm bảo bằng thông số kỹ thuật trong trình tự cửa sổ. Giao dịch đã gửi là loại giao dịch tương thích EIP-2718 mới [13] với tiền tố 0x7E, trong đó các trường được mã hóa rlp là: • byte32 sourceHash: hash xác định duy nhất nguồn của giao dịch. • địa chỉ từ: địa chỉ của người gửi. • địa chỉ tới: địa chỉ người nhận hoặc địa chỉ 0 nếu giao dịch gửi tiền là việc tạo hợp đồng.• uint256 mint: giá trị được tạo trên L2. • Giá trị uint256: giá trị được gửi tới người nhận. • dữ liệu byte: dữ liệu đầu vào. • byte gasLimit: giới hạn gas của giao dịch. sourceHash được tính là keccak256 hash của khối L1 hash và nhật ký L1 chỉ mục, xác định duy nhất một sự kiện trong một khối. Vì các giao dịch ký gửi được bắt đầu trên L1 nhưng được thực hiện trên L2 nên hệ thống cần có cơ chế thanh toán L1 cho lượng gas sử dụng cho L2. Một giải pháp là gửi ETH qua Cổng thông tin, nhưng điều này ngụ ý rằng mọi người gọi (ngay cả những người gọi gián tiếp) đều phải được đánh dấu là phải trả tiền và đây là không thể thực hiện được đối với nhiều dự án hiện có. Cách khác là đốt khí tương ứng trên L1. Gas 𝑔được phân bổ cho giao dịch ký gửi được gọi là gas được đảm bảo. Giá khí L2 trên L1 không được đồng bộ hóa tự động mà được ước tính bằng cơ chế tương tự như EIP-1559 [14]. Lượng gas tối đa được đảm bảo cho mỗi khối Ethereum là 8 triệu, với mục tiêu là 2 triệu. Số lượng 𝑐 ETH cần thiết để thanh toán gas trên L2 là 𝑐= 𝑔𝑏L2 trong đó 𝑏L2 là phí cơ bản trên L2. Hợp đồng trên L1 đốt cháy một lượng khí bằng 𝑐/𝑏L2. Gas dành để gọi Giao dịch gửi tiền được hoàn trả trên L2: nếu số tiền này lớn hơn lượng gas được đảm bảo, không có khí đốt. Giao dịch đầu tiên của khối rollup là giao dịch ký gửi thuộc tính L1, được sử dụng để đăng ký trên L2 triển khai trước các thuộc tính của khối Ethereum. Các thuộc tính mà predeploy cung cấp quyền truy cập là số khối, dấu thời gian, phí cơ sở, khối hash và trình tự số, là số khối của L2 so với khối L1 được liên kết (còn gọi là epoch); con số này được đặt lại khi một kỷ nguyên mới bắt đầu. 2.1.2. Trình tự Các nút Tổng hợp lấy chuỗi Optimism hoàn toàn từ Ethereum. Chuỗi này được mở rộng mỗi khi giao dịch mới được xuất bản trên L1 và các khối của nó được tổ chức lại mỗi lần Ethereum khối được tổ chức lại. Bản tổng hợp blockchain được chia thành các kỷ nguyên. Đối với mỗi 𝑛 số khối của Ethereum thì có 𝑛epoch tương ứng. Mỗi kỷ nguyên chứa ít nhất một khối và mỗi khối trong một kỷ nguyên chứa một giao dịch được ký gửi thuộc tính L1. Khối đầu tiên trong một kỷ nguyên chứa tất cả các giao dịch được gửi qua Cổng thông tin. Layer 2 khối cũng có thể chứa các giao dịch được sắp xếp theo trình tự, tức là các giao dịch được gửi trực tiếp đến Bộ sắp xếp thứ tự. Trình sắp xếp chuỗi chấp nhận các giao dịch từ người dùng và xây dựng các khối. Với mỗi khối, nó xây dựng một đợt sẽ được xuất bản vào Ethereum. Một số lô có thể được xuất bản theo cách nén, lấy tên kênh. Một kênh có thể được chia thành nhiều khung, trong trường hợp nó quá lớn để một giao dịch duy nhất. Một kênh được định nghĩa là nén với ZLIB [15] của mã hóa rlp lô. Các trường của một lô là số kỷ nguyên, kỷ nguyên hash, kỷ nguyên gốc hash, kỷ nguyên dấu thời gian và danh sách giao dịch. Cửa sổ tuần tự, được xác định bằng một kỷ nguyên, chứa số cố định 𝑤 của L1 liên tiếp các khối mà bước phái sinh lấy làm đầu vào để xây dựng số lượng khối L2 thay đổi. cho kỷ nguyên 𝑛, cửa sổ tuần tự 𝑛bao gồm các khối [𝑛, 𝑛+𝑤). Điều này ngụ ý rằng việc đặt hàng các giao dịch và khối L2 trong cửa sổ tuần tự không được cố định cho đến khi cửa sổ kết thúc. Giao dịch rollup được gọi là an toàn nếu lô chứa nó đã được xác nhận trên L1. Khungđược đọc từ các khối L1 để xây dựng lại các lô. Việc triển khai hiện tại không cho phép quá trình giải nén kênh bắt đầu cho đến khi nhận được tất cả các khung tương ứng. không hợp lệ lô được bỏ qua. Các giao dịch khối riêng lẻ được lấy từ các đợt, được được công cụ thực thi sử dụng để áp dụng các chuyển đổi trạng thái và thu được trạng thái Tổng hợp. 2.1.3. Rút tiền Để xử lý việc rút tiền, hệ thống nhắn tin L2-to-L1 được triển khai. Ethereum cần biết trạng thái L2 để chấp nhận rút tiền và điều này được thực hiện bằng cách xuất bản trên L2 Đầu ra Oracle smart contract trên L1 gốc trạng thái của mỗi khối L2. Những rễ này được chấp nhận một cách lạc quan là hợp lệ (hoặc đã hoàn thiện) nếu không có bằng chứng lỗi nào được thực hiện trong quá trình thời gian tranh chấp. Chỉ những địa chỉ được chỉ định là Người đề xuất mới có thể xuất bản các gốc đầu ra. Hiệu lực nguồn gốc đầu ra được khuyến khích bằng cách yêu cầu Người đề xuất đặt cọc một khoản tiền sẽ bị cắt giảm nếu họ cho thấy đã đề xuất một gốc không hợp lệ. Giao dịch được bắt đầu bằng cách gọi hàm bắt đầu Rút tiền khi triển khai trước trên L2 và sau đó hoàn tất trên L1 bằng cách gọi hàm FinalizeWithdrawalTransaction trên Cổng thông tin Optimism đã đề cập trước đó. Gốc đầu ra tương ứng với khối L2 được lấy từ L2 Output Oracle; nó là xác minh rằng nó đã được hoàn tất, tức là thời gian tranh chấp đã trôi qua; nó được xác minh rằng đầu ra Bằng chứng gốc khớp với Bằng chứng của Oracle; đã xác minh rằng đã bao gồm hash số tiền rút trong đó sử dụng Bằng chứng rút tiền; việc rút tiền vẫn chưa được hoàn tất; và sau đó là cuộc gọi đến địa chỉ đích được thực hiện, với giới hạn gas, lượng Ether và dữ liệu được chỉ định. 2.1.4. Cannon: hệ thống chống lỗi Nếu một Rollup Full Node, bằng cách thực hiện cục bộ các lô và giao dịch được gửi, phát hiện ra rằng trạng thái Layer 2 không khớp với gốc trạng thái được Người đề xuất xuất bản trên chuỗi, nó có thể thực thi bằng chứng lỗi trên L1 để chứng minh rằng kết quả của quá trình chuyển khối là không chính xác. Bởi vì chi phí chung, việc xử lý toàn bộ khối Rollup trên L1 là quá tốn kém. Giải pháp đã thực hiện của Bedrock chỉ thực hiện trên chuỗi chỉ dẫn đầu tiên về sự bất đồng của minigeth, biên dịch nó thành kiến trúc MIPS được thực thi trên trình thông dịch trực tuyến và được xuất bản trên L1. minigeth là phiên bản đơn giản của geth 1 trong đó sự đồng thuận, RPC và cơ sở dữ liệu đã được gỡ bỏ. Để tìm hướng dẫn đầu tiên về sự bất đồng, tìm kiếm nhị phân tương tác được tiến hành giữa người khởi xướng bằng chứng lỗi và người xuất bản gốc đầu ra. Khi bằng chứng bắt đầu, cả hai bên xuất bản gốc của trạng thái bộ nhớ MIPS trong quá trình thực thi khối trong hợp đồng Thử thách: nếu hash khớp thì có nghĩa là cả hai bên đều đồng ý về nửa đầu của quá trình thực hiện do đó xuất bản phần gốc của nửa sau, nếu không thì nửa của nửa đầu được xuất bản, v.v. Làm như vậy đạt được chỉ dẫn đầu tiên về sự bất đồng theo số bước logarit so với lần thực hiện ban đầu. Nếu một trong hai điểm dừng tương tác, khi kết thúc thời gian tranh chấp, người tham gia kia sẽ tự động thắng. Để xử lý hướng dẫn, trình thông dịch MIPS cần truy cập vào bộ nhớ của nó: vì gốc là sẵn có, các ô nhớ cần thiết có thể được xuất bản bằng cách chứng minh sự bao gồm của chúng. Để truy cập trạng thái của EVM, việc sử dụng được tạo ra từ Preimage Oracle: đưa ra hash của một khối mà nó trả về 1https://geth.ethereum.org/docs

tiêu đề khối, từ đó người ta có thể lấy hash của khối trước đó và quay lại chuỗi hoặc lấy hash trạng thái và nhật ký mà từ đó người ta có thể lấy tiền ảnh. oracle được minigeth triển khai và thay thế cơ sở dữ liệu. Các truy vấn được thực hiện tới các nút khác để có được những hình ảnh tiền đề.

낙관적 롤업

  1. 낙관적 롤업 실행을 검증하지 않고 블록의 출력을 낙관적으로 받아들이는 아이디어는 다음과 같습니다. 라이트 노드에 대해 논의하는 Bitcoin 백서 [7]에 이미 나와 있습니다. 이 노드는 다음과 같습니다. 합의 규칙을 검증하여 헤더 체인을 블록 수용에 취약하게 만듭니다. 51% 공격이 발생한 경우 유효하지 않은 거래가 포함됩니다. 나카모토는 이 문제를 해결할 것을 제안합니다. 문제는 블록에 유효하지 않은 트랜잭션이 포함되어 있음을 라이트 노드에 경고하는 "경고" 시스템을 사용하는 것입니다. 이 메커니즘은 Al-Bassam, Sonnino 및 Buterin [8]에 의해 처음 구현되었습니다. 오류 수정 코드 [9]을 기반으로 한 증명 시스템이 사용됩니다. 생성이 가능하도록 하기 위해 결함 방지를 위해서는 유효하지 않은 블록을 포함한 모든 블록의 데이터를 사용할 수 있어야 합니다. 네트워크: 이것은 확률적 데이터를 사용하여 해결되는 데이터 가용성 문제입니다. 샘플링 메커니즘. 최초의 낙관적 롤업 디자인은 John Adler가 발표했으며 2019년 Mikerah Quintyne-Collins [10], 블록이 다른 blockchain에 게시됨 이는 주문에 대한 합의를 정의합니다. 2.1. Optimism 기반암 Bedrock [11]은 스마트 계약 롤업인 Optimism의 최신 버전입니다. 이전 버전, OVM(Optimistic Virtual Machine)은 Solidity를 자체 버전으로 컴파일하기 위해 임시 컴파일러가 필요했습니다. 자체 바이트 코드: 대조적으로 Bedrock은 실행 엔진이 EVM과 완전히 동일합니다. Ethereum Yellow Paper 사양 [12]을 따릅니다. 2.1.1. 예금 사용자는 Ethereum, Optimism 포탈의 컨트랙트를 통해 예금거래 기능을 호출하여 거래를 입금할 수 있습니다. 트랜잭션이 실행되면, Rollup의 각 노드가 처리를 위해 수신 대기하는 TransactionDeposited 이벤트가 발생합니다. 예금. 입금된 트랜잭션은 L1에서 파생된 L2 트랜잭션입니다. 전화를 건 사람이 함수는 계약이므로 주소는 상수 값을 추가하여 변환됩니다. L1 계약의 주소는 L2 계약과 동일하지만 코드가 다른 공격입니다. 예치된 트랜잭션의 L2 포함은 시퀀스 내의 사양에 의해 보장됩니다. 창. 예치된 거래는 접두사가 0x7E인 새로운 EIP-2718 호환 거래 유형 [13]입니다. 여기서 rlp로 인코딩된 필드는 다음과 같습니다. • bytes32 sourceHash: hash 트랜잭션 소스를 고유하게 식별합니다. • 주소 보낸 사람: 보낸 사람의 주소입니다. • 주소: 수신자 주소 또는 입금된 거래가 다음인 경우 0 주소입니다. 계약 생성.• uint256 mint: L2에 생성될 값입니다. • uint256 value: 수신자에게 전송될 값입니다. • 바이트 데이터: 입력 데이터입니다. • bytes gasLimit: 트랜잭션의 가스 한도입니다. sourceHash는 L1 블록 hash의 keccak256 hash과 L1 로그로 계산됩니다. 블록의 이벤트를 고유하게 식별하는 인덱스입니다. 입금된 트랜잭션은 L1에서 시작되지만 L2에서 실행되므로 시스템에는 L2에 소비된 가스에 대해 L1에 지불하는 메커니즘입니다. 한 가지 해결책은 포털을 통해 ETH를 보내는 것입니다. 그러나 이는 모든 발신자(간접 발신자 포함)가 지불 대상으로 표시되어야 함을 의미하며 이는 많은 기존 프로젝트에서는 불가능합니다. 대안은 L1에서 해당 가스를 연소하는 것입니다. 입금된 거래에 할당된 가스𝑔를 보장가스라고 합니다. L2 가스 가격은 L1은 자동으로 동기화되지 않지만 EIP-1559와 유사한 메커니즘을 사용하여 추정됩니다. [14]. Ethereum 블록당 보장되는 최대 가스량은 800만 개이며, 목표는 다음과 같습니다. 200만. L2의 가스 비용을 지불하는 데 필요한 ETH의 수량 𝑐은 𝑐= 𝑔𝑏L2입니다. 여기서 𝑏L2는 L2의 기본 수수료. L1 계약은 𝑐/𝑏L2에 해당하는 양의 가스를 소모합니다. 통화에 소비된 가스 예금 거래는 L2에서 상환됩니다. 이 금액이 보장된 가스보다 큰 경우, 가스가 연소되지 않습니다. rollup 블록의 첫 번째 트랜잭션은 등록하는 데 사용되는 L1 속성 예치 트랜잭션입니다. L2에서는 Ethereum 블록의 속성을 사전 배포합니다. 사전 배포가 제공하는 속성 액세스 권한은 블록 번호, 타임스탬프, 기본 수수료, 블록 hash 및 시퀀스입니다. number는 연관된 L1 블록에 대한 L2의 블록 번호입니다(epoch라고도 함). 이 숫자는 새로운 시대가 시작되면 재설정됩니다. 2.1.2. 시퀀싱 롤업 노드는 Ethereum에서 완전히 Optimism 체인을 파생합니다. 이 체인은 확장되었습니다 L1에 새로운 트랜잭션이 게시될 때마다 해당 블록이 재구성됩니다. Ethereum 블록이 재구성되었습니다. 롤업 blockchain은 여러 시대로 구분됩니다. 각 𝑛에 대해 Ethereum의 블록 번호에 해당하는 𝑛epoch가 있습니다. 각 시대에는 최소한 하나의 시대가 포함됩니다. 블록이며, 한 시대의 각 블록에는 L1 속성 예치 트랜잭션이 포함됩니다. 첫 번째 블록 한 시대에는 포털을 통해 입금된 모든 거래가 포함됩니다. Layer 2 블록은 또한 순차 트랜잭션이 포함되어 있습니다. 즉, 시퀀서로 직접 전송되는 트랜잭션입니다. Sequencer는 사용자의 트랜잭션을 수락하고 블록을 구축합니다. 각 블록마다 구성됩니다. Ethereum에 게시될 배치입니다. 여러 배치를 압축된 방식으로 게시할 수 있습니다. 이름 채널을 복용. 채널이 너무 큰 경우 여러 프레임으로 나눌 수 있습니다. 단일 거래. 채널은 rlp로 인코딩된 ZLIB [15]을 사용한 압축으로 정의됩니다. 배치. 배치의 필드는 에포크 번호, 에포크 hash, 상위 hash, 타임스탬프와 거래 목록. 에포크로 식별되는 시퀀싱 윈도우에는 고정된 수의 연속 L1 𝑤이 포함됩니다. 파생 단계에서 가변 개수의 L2 블록을 구성하기 위해 입력으로 사용하는 블록입니다. 에 대한 epoch 𝑛, 시퀀싱 창 𝑛에는 블록 [𝑛, 𝑛+𝑤)이 포함됩니다. 이는 주문을 의미합니다. 시퀀싱 윈도우 내의 L2 트랜잭션 및 블록 수는 해당 윈도우가 끝날 때까지 수정되지 않습니다. rollup 트랜잭션이 포함된 배치가 L1에서 확인된 경우 안전하다고 합니다. 프레임L1 블록에서 읽어 배치를 재구성합니다. 현재 구현에서는 다음을 허용하지 않습니다. 모든 해당 프레임이 수신될 때까지 채널의 압축 해제가 시작됩니다. 유효하지 않음 배치는 무시됩니다. 개별 블록 트랜잭션은 배치에서 획득됩니다. 상태 전환을 적용하고 롤업 상태를 얻기 위해 실행 엔진에서 사용됩니다. 2.1.3. 인출 인출을 처리하기 위해 L2-to-L1 메시징 시스템이 구현됩니다. Ethereum 인출을 수락하려면 L2의 상태를 알아야 하며 이는 게시를 통해 수행됩니다. L2 출력 Oracle smart contract on L1 각 L2 블록의 상태 루트. 이들 뿌리 오류 증명이 수행되는 동안 오류가 수행되지 않으면 낙관적으로 유효(또는 최종)된 것으로 받아들여집니다. 분쟁기간. 제안자로 지정된 주소만 출력 루트를 게시할 수 있습니다. 타당성 제안자가 삭감된 지분을 예치하도록 함으로써 생산량 루트에 대한 인센티브가 부여됩니다. 잘못된 루트를 제안한 것으로 나타났습니다. 트랜잭션은 함수를 호출하여 시작됩니다. L2의 사전 배포에서 Withdrawal을 시작한 다음 함수를 호출하여 L1에서 마무리했습니다. 앞에서 언급한 Optimism 포털의 finalizeWithdrawalTransaction입니다. L2 블록에 해당하는 출력 루트는 L2 출력 Oracle에서 가져옵니다. 그것은이다 확정되었음을 확인합니다. 즉, 분쟁 기간이 경과했음을 확인합니다. 출력되는 것이 확인됩니다. 루트 증명은 Oracle 증명과 일치합니다. 출금의 hash이 포함된 것으로 확인됩니다 인출 증명을 사용하여; 철회가 아직 완료되지 않았습니다. 그리고 나서 지정된 가스 한도, Ether 양 및 데이터를 사용하여 대상 주소에 대한 호출이 실행됩니다. 2.1.4. 대포: 결함 방지 시스템 롤업 전체 노드가 로컬에서 일괄 처리 및 입금된 트랜잭션을 실행하여 다음을 발견한 경우 Layer 2 상태가 제안자가 체인에 게시한 상태 루트와 일치하지 않으면 실행할 수 있습니다. 블록 전환 결과가 잘못되었음을 증명하기 위해 L1에 대한 결함 증명. 때문에 오버헤드로 인해 L1에서 전체 Rollup 블록을 처리하는 데 비용이 너무 많이 듭니다. 구현된 솔루션 Bedrock은 minigeth의 불일치에 대한 첫 번째 지시만 온체인에서 실행합니다. 온체인 인터프리터에서 실행되고 게시되는 MIPS 아키텍처로 컴파일 L1에. minigeth는 합의, RPC 및 데이터베이스가 포함된 geth 1의 단순화된 버전입니다. 제거되었습니다. 불일치하는 첫 번째 명령을 찾기 위해 대화형 이진 검색이 다음 사이에서 수행됩니다. 결함 증명을 시작한 사람과 출력 루트를 게시한 사람입니다. 증명할 때 시작하면 양 당사자는 실행 중간에 MIPS 메모리 상태의 루트를 게시합니다. 챌린지 계약의 차단: hash이 일치하면 양 당사자가 다음에 동의한다는 의미입니다. 실행의 전반부는 후반부의 절반의 루트를 게시하고, 그렇지 않으면 절반을 게시합니다. 상반기 등이 게재됩니다. 그렇게 하면 첫 번째 불일치 지시가 달성됩니다. 원래 실행과 비교하여 로그 단계 수로 표시됩니다. 둘 중 하나가 멈추면 분쟁 기간이 끝나면 다른 참가자가 자동으로 승리합니다. 명령어를 처리하려면 MIPS 인터프리터가 메모리에 액세스해야 합니다. 루트는 다음과 같습니다. 필요한 메모리 셀이 포함되어 있음을 증명함으로써 공개될 수 있습니다. 접근하려면 EVM의 상태, Preimage Oracle이 사용됩니다. 반환되는 블록의 hash이 제공됩니다. 1https://geth.ethereum.org/docs

블록 헤더에서 이전 블록의 hash을 얻고 이전 블록으로 돌아갈 수 있습니다. 체인을 연결하거나 사전 이미지를 얻을 수 있는 상태 및 로그의 hash을 가져옵니다. oracle minigeth에 의해 구현되며 데이터베이스를 대체합니다. 쿼리는 다른 노드에 수행됩니다. 사전 이미지를 얻습니다.

Bản tổng hợp hiệu lực

  1. Bản tổng hợp hiệu lực Mục tiêu của Tổng hợp tính hợp lệ là để chứng minh tính hợp lệ của quá trình chuyển đổi trạng thái bằng mật mã đưa ra chuỗi các giao dịch với bằng chứng ngắn có thể được xác minh dưới dạng so sánh tuyến tính đến thời điểm tính toán ban đầu. Các loại chứng chỉ này được gọi là bằng chứng toàn vẹn tính toán và được triển khai trên thực tế với SNARK (ARgument of Knowledge không tương tác ngắn gọn), sử dụng số học mạch làm mô hình tính toán của chúng. Việc triển khai SNARK khác nhau sẽ khác nhau về thời gian chứng minh, thời gian xác minh, nhu cầu thiết lập đáng tin cậy và khả năng kháng lượng tử [16, 17]. STARK (Có thể mở rộng Đối số kiến thức minh bạch) [18] là một loại SNARK không yêu cầu độ tin cậy thiết lập và có khả năng chống lượng tử, đồng thời mang lại một số hiệu quả trong việc chứng minh và xác minh so với các giải pháp khác. 3.1. StarkNet StarkNet là Bản tổng hợp hiệu lực hợp đồng thông minh được phát triển bởi StarkWare sử dụng STARK hệ thống bằng chứng để xác thực trạng thái của nó thành Ethereum. Để tạo thuận lợi cho việc xây dựng các bằng chứng có giá trị, một máy ảo khác với EVM được sử dụng, có ngôn ngữ cấp cao là Cairo. 3.1.1. Tiền gửi Người dùng có thể gửi tiền giao dịch qua hợp đồng vào Ethereum bằng cách gọi sendMessageToL2 chức năng. Thông báo được ghi lại bằng cách tính hash của nó và tăng bộ đếm. Trình sắp xếp chuỗi lắng nghe sự kiện LogMessageToL2 và mã hóa thông tin trong giao dịch StarkNet gọi một hàm của hợp đồng có trang trí l1_handler. Khi kết thúc quá trình thực hiện, khi bằng chứng về sự chuyển đổi trạng thái được tạo ra, việc tiêu thụ tin nhắn sẽ được đính kèm với nó và nó bị xóa bằng cách giảm bộ đếm của nó. Thông số kỹ thuật StarkNet không yêu cầu bao gồm các giao dịch ký gửi, do đó, gas cần có thị trường để khuyến khích Người sắp xếp chuỗi xuất bản chúng trên L2. Ở phiên bản hiện tại, vì Sequencer được tập trung và quản lý bởi StarkWare, chi phí của các giao dịch ký gửi chỉ được xác định bởi chi phí thực hiện khoản tiền gửi. Chi phí này được thanh toán bằng cách gửi ETH tới gửiMessageToL2. Các Ether này vẫn bị khóa trên L1 và được chuyển đến Bộ sắp xếp chuỗi vào ngày L1, khi giao dịch gửi tiền được đưa vào quá trình chuyển đổi trạng thái. Số lượng ETH được gửi, nếu giao dịch gửi tiền được bao gồm, được chi tiêu đầy đủ, bất kể lượng gas tiêu thụ trên L2. StarkNet không có hệ thống tự động cung cấp các thuộc tính khối L1. Ngoài ra, Fossil là một giao thức được phát triển bởi Oiler Network 2 cho phép, với hash của một chặn, mọi thông tin có được từ Ethereum bằng cách xuất bản các hình ảnh đầu tiên. 2https://www.oiler.network/3.1.2. Trình tự Trạng thái hiện tại của StarkNet có thể được bắt nguồn hoàn toàn từ Ethereum. Bất kỳ sự khác biệt trạng thái giữa các lần chuyển đổi được xuất bản trên L1 dưới dạng calldata. Sự khác biệt được công bố cho từng hợp đồng và được lưu dưới dạng uint256[] với mã hóa sau: • Số lĩnh vực liên quan đến triển khai hợp đồng. • Đối với từng hợp đồng được công bố: – Địa chỉ hợp đồng được công bố. – hash của hợp đồng đã công bố. – Số lượng đối số của người xây dựng hợp đồng. – Danh sách các đối số của hàm tạo • Số hợp đồng đã được sửa đổi lưu trữ. • Đối với mỗi hợp đồng được sửa đổi: – Địa chỉ của hợp đồng sửa đổi. – Số lượng cập nhật lưu trữ. – Cặp khóa-giá trị của địa chỉ lưu trữ với các giá trị mới. Sự khác biệt về trạng thái được công bố theo thứ tự, do đó chỉ cần đọc chúng một cách tuần tự là đủ xây dựng lại nhà nước. 3.1.3. Rút tiền Để gửi tin nhắn từ L2 đến L1, syscall send_message_to_L1 được sử dụng. Tin nhắn là được xuất bản lên L1 bằng cách tăng bộ đếm hash của nó cùng với bằng chứng và được hoàn thiện bằng cách gọi hàm tiêu thụMessageFromL2 trên StarkGate smart contract trên L1, hàm này giảm dần quầy. Bất kỳ ai cũng có thể hoàn tất việc rút tiền. 3.1.4. Bằng chứng hiệu lực Máy ảo Cairo [19] được thiết kế để hỗ trợ việc xây dựng các bằng chứng STARK. Ngôn ngữ Cairo cho phép mô tả tính toán bằng chương trình cấp cao ngôn ngữ, và không trực tiếp như một mạch. Điều này được thực hiện bằng hệ phương trình đa thức 3 thể hiện một phép tính đơn lẻ: chu trình FDE của kiến trúc von Neumann. số do đó, các ràng buộc là cố định và độc lập với loại tính toán, chỉ cho phép một Chương trình xác minh cho mọi chương trình có tính toán cần được chứng minh. StarkNet tổng hợp nhiều giao dịch thành một bằng chứng STARK duy nhất bằng cách sử dụng một bằng chứng được chia sẻ có tên là SHARP. Bằng chứng được gửi tới smart contract vào ngày Ethereum để xác minh tính hợp lệ của chúng và cập nhật gốc Merkle tương ứng với trạng thái mới. Chi phí tuyến tính để xác minh một bằng chứng hợp lệ cho phép chi phí của nó được khấu hao qua nhiều giao dịch. 3gọi là Biểu diễn trung gian đại số (AIR)

유효성 롤업

  1. 유효성 롤업 유효성 롤업의 목표는 상태 전환의 유효성을 암호화로 증명하는 것입니다. 준선형적으로 비교하여 검증할 수 있는 짧은 증거가 있는 일련의 거래를 고려했을 때 원래 계산 시점까지. 이러한 종류의 인증서를 계산 무결성 증명이라고 하며 실제로 산술 연산을 사용하는 SNARK(Succint Non-interactive ARgument of Knowledge)로 구현됩니다. 회로를 계산 모델로 사용합니다. 다양한 SNARK 구현은 증명 시간이 다릅니다. 검증 시간, 신뢰할 수 있는 설정 및 양자 저항의 필요성 [16, 17]. STARK(확장 가능 투명한 지식 인수) [18]은 신뢰할 수 있는 정보가 필요하지 않은 SNARK 유형입니다. 증명 및 검증의 효율성을 일부 포기하면서 설정 및 양자 저항성을 갖습니다. 다른 솔루션에 비해. 3.1. StarkNet StarkNet은 STARK를 사용하는 StarkWare에서 개발한 스마트 계약 유효성 롤업입니다. Ethereum에 대한 상태를 검증하는 증명 시스템입니다. 타당성 증명의 구축을 용이하게 하기 위해, EVM과 다른 가상 머신이 사용되며, 고급 언어는 Cairo입니다. 3.1.1. 예금 사용자는 sendMessageToL2를 호출하여 Ethereum의 계약을 통해 거래를 입금할 수 있습니다. 기능. 메시지는 hash을 계산하고 카운터를 증가시켜 기록됩니다. 시퀀서 LogMessageToL2 이벤트를 수신하고 StarkNet 트랜잭션의 정보를 인코딩합니다. l1_handler 데코레이터가 있는 계약의 함수를 호출합니다. 실행이 끝나면, 상태 전환 증명이 생성되면 메시지 소비가 여기에 첨부됩니다. 카운터를 줄임으로써 삭제됩니다. StarkNet 사양에서는 예치된 거래를 포함할 것을 요구하지 않으므로 가스 시퀀서가 L2에 게시하도록 장려하려면 시장이 필요합니다. 현재 버전에서는 시퀀서는 예치된 거래 비용인 StarkWare에 의해 중앙 집중화되고 관리됩니다. 예금 실행 비용에 의해서만 결정됩니다. 이 비용은 ETH를 전송하여 지불됩니다. sendMessageToL2. 이 Ether는 L1에 고정된 상태로 유지되며 L1의 Sequencer로 전송됩니다. L1, 예치된 트랜잭션이 상태 전환에 포함될 때. 다음과 같은 경우 전송된 ETH 금액 예치된 거래가 포함되어 소비된 가스량에 관계없이 완전히 소비됩니다. L2에. StarkNet에는 L1 블록 속성을 자동으로 사용할 수 있게 만드는 시스템이 없습니다. 또는 Fossil은 Oiler Network 2에서 개발한 프로토콜로, 주어진 hash을 허용합니다. 블록, 사전 이미지 게시를 통해 Ethereum에서 얻을 수 있는 모든 정보. 2https://www.oiler.network/3.1.2. 시퀀싱 StarkNet의 현재 상태는 Ethereum에서 완전히 파생될 수 있습니다. 모든 상태 차이 전환 간은 L1에 호출 데이터로 게시됩니다. 각 계약에 대한 차이점이 게시됩니다. 다음 인코딩을 사용하여 uint256[]으로 저장됩니다. • 계약 배포와 관련된 분야의 수. • 게시된 각 계약에 대해 다음을 수행합니다. – 게시된 계약의 주소입니다. – 게시된 계약의 hash. – 계약 생성자의 인수 수. – 생성자 인수 목록 • 저장공간이 수정된 계약의 수. • 수정된 각 계약에 대해: – 수정된 계약서의 주소. – 스토리지 업데이트 횟수. – 새 값이 포함된 저장소 주소의 키-값 쌍입니다. 상태 차이는 순서대로 공개되므로 순차적으로 읽어도 충분합니다. 상태를 재구성합니다. 3.1.3. 인출 L2에서 L1으로 메시지를 보내려면 시스템 호출 send_message_to_L1이 사용됩니다. 메시지는 증명과 함께 hash 카운터를 늘려 L1에 게시하고 L1의 StarkGate smart contract에 있는 ConsumerMessageFromL2 함수는 감소합니다. 카운터. 누구나 출금을 완료할 수 있습니다. 3.1.4. 유효성 증명 Cairo Virtual Machine [19]은 STARK 증명 구축을 용이하게 하도록 설계되었습니다. Cairo 언어를 사용하면 계산을 고급 프로그래밍으로 설명할 수 있습니다. 언어가 아닌 회로로 직접적으로 사용됩니다. 이는 다항 방정식 시스템에 의해 수행됩니다. 단일 계산을 나타내는 그림 3: 폰 노이만 아키텍처의 FDE 사이클. 번호 따라서 제약 조건은 고정되어 있고 계산 유형에 독립적이므로 하나만 허용됩니다. 계산을 증명해야 하는 모든 프로그램에 대한 검증 프로그램입니다. StarkNet은 공유 증명자를 사용하여 여러 거래를 단일 STARK 증명으로 집계합니다. SHARP라는 이름이 붙었습니다. 증명은 Ethereum의 smart contract로 전송되어 유효성을 확인합니다. 새로운 상태에 해당하는 Merkle 루트를 업데이트합니다. 검증의 하위 선형 비용 유효성 증명을 통해 여러 거래를 통해 비용을 분할 상환할 수 있습니다. 3대수 중간 표현(AIR)이라고 함

So sánh

  1. So sánh 4.1. Thời gian rút tiền Khía cạnh quan trọng nhất giúp phân biệt Bản tổng hợp lạc quan với Bản tổng hợp hợp lệ là thời gian trôi qua kể từ khi bắt đầu rút tiền cho đến khi hoàn tất việc rút tiền. Trong cả hai trường hợp, việc rút tiền được khởi tạo trên L2 và hoàn tất trên L1. Vào StarkNet, việc quyết toán có thể thực hiện được vì ngay khi bằng chứng hợp lệ của gốc trạng thái mới được chấp nhận vào Ethereum: về mặt lý thuyết, đó là có thể rút tiền trong khối đầu tiên của L1 sau khi khởi tạo. Trong thực tế, tần suất gửi bằng chứng hợp lệ trên Ethereum là sự cân bằng giữa tốc độ chặn hoàn thiện và tổng hợp bằng chứng. Hiện StarkNet cung cấp bằng chứng hợp lệ để xác minh cứ sau 10 giờ 4, nhưng nó dự định sẽ giảm khi hoạt động giao dịch tăng lên. Trên Optimism Bedrock, chỉ có thể hoàn tất việc rút tiền khi tranh chấp kết thúc khoảng thời gian (hiện tại là 7 ngày), sau đó root sẽ tự động được coi là hợp lệ. Chiều dài của khoảng thời gian này chủ yếu được xác định bởi thực tế là các bằng chứng lỗi có thể được kiểm duyệt trên Ethereum cho đến khi sự kết thúc của nó. Xác suất thành công của kiểu tấn công này giảm theo cấp số nhân khi thời gian tăng lên: E[giá trị bị trừ] = 𝑉𝑝𝑛 trong đó 𝑛 là số khối trong một khoảng, 𝑉 là số tiền có thể bị trừ bằng cách xuất bản một gốc không hợp lệ và 𝑝là xác suất thực hiện kiểm duyệt thành công tấn công trong một khối duy nhất. Giả sử xác suất này là 99%, giá trị bị khóa trong Rollup là một triệu Ether và số khối trong một khoảng là 1800 (6 giờ khối với 12 giờ khoảng thời gian giây): giá trị dự kiến là khoảng 0,01391 Ether. Hệ thống được đảm bảo an toàn bởi yêu cầu Người đề xuất đặt cược số lượng Ether lớn hơn nhiều so với giá trị dự kiến. Winzer và cộng sự. đã chỉ ra cách thực hiện một cuộc tấn công kiểm duyệt bằng cách sử dụng smart contract đơn giản điều đó đảm bảo rằng các vùng bộ nhớ nhất định ở trạng thái không thay đổi [20]. Mô hình hóa cuộc tấn công như một trò chơi Markov, bài báo cho thấy rằng kiểm duyệt là chiến lược chủ đạo cho một nhà sản xuất khối nếu họ nhận được nhiều tiền bồi thường hơn mức bao gồm giao dịch thay đổi bộ nhớ. Giá trị 𝑝được thảo luận ở trên có thể được xem là phần trăm của khối hợp lý các nhà sản xuất trong mạng lưới, nơi “hợp lý” không tính đến việc có thể bị phạt các yếu tố bên ngoài, chẳng hạn như ít tin tưởng hơn vào blockchain làm giảm giá trị tiền điện tử của nó. Đoạn mã sau trình bày một smart contract có thể được sử dụng để thực hiện một cuộc tấn công kiểm duyệt trên Bedrock. Cuộc tấn công khai thác động cơ của các nhà sản xuất khối bằng cách đưa hối lộ cho họ để kiểm duyệt các giao dịch có thể sửa đổi các phần cụ thể của bang. Hợp đồng chính chức năng, requireBribe, cho phép các nhà sản xuất khối nhận hối lộ nếu họ kiểm duyệt thành công giao dịch được nhắm mục tiêu bằng cách kiểm tra xem gốc đầu ra không hợp lệ không được chạm vào. hàm requireBribe(byte bộ nhớ storageProof) bên ngoài { require(!claimed[block.number], "đã nhận hối lộ"); Dòng điện bộ nhớ đề xuất đầu ra = storageOracle.getStorage(L2_ORACLE, block.number, SLOT, lưu trữProof); require(invalidOutputRoot == current.outputRoot, "tấn công thất bại"); đã xác nhận quyền sở hữu[block.number] = true; (bool đã gửi, ) = block.coinbase.call{value: hối lộAmount}(""); 4https://etherscan.io/address/0xc662c410c0ecf747543f5ba90660f6abebd9c8c4require(đã gửi, "không gửi được ether"); } Liệt kê 1: Ví dụ về một hợp đồng khuyến khích cuộc tấn công kiểm duyệt vào Bedrock. Độ dài của thời gian tranh chấp cũng phải tính đến thực tế là bằng chứng lỗi được bằng chứng tương tác và do đó phải cung cấp đủ thời gian để người tham gia tương tác và mọi tương tác đều có thể bị kiểm duyệt. Nếu nước đi cuối cùng xảy ra vào thời điểm rất gần với khi kết thúc thời gian tranh chấp, chi phí kiểm duyệt sẽ ít hơn đáng kể. Mặc dù kiểm duyệt là chiến lược thống trị, khả năng thành công sẽ thấp hơn vì các nút kiểm duyệt dễ bị tấn công Tấn công từ chối dịch vụ: kẻ tấn công có thể tạo ra các giao dịch rất phức tạp kết thúc bằng công bố bằng chứng lỗi miễn phí vì sẽ không phải trả phí. Trong những trường hợp đặc biệt, thời gian tranh chấp kéo dài cho phép phối hợp trong trường hợp giải quyết thành công. tấn công kiểm duyệt để tổ chức một fork và loại trừ các nhà sản xuất khối tấn công. Khác cuộc tấn công có thể xảy ra bao gồm việc xuất bản nhiều đề xuất gốc cấp bang hơn mức mà các bên tranh chấp có thể xác minh, có thể tránh được bằng cách sử dụng giới hạn tần số. 4.1.1. Rút tiền lạc quan nhanh chóng Vì tính hợp lệ của Tổng hợp lạc quan có thể được xác minh bất kỳ lúc nào bởi bất kỳ Nút đầy đủ nào, nên đáng tin cậy oracle có thể được sử dụng để biết trên L1 liệu việc rút tiền có thể được hoàn tất một cách an toàn hay không. Cái này cơ chế được đề xuất lần đầu tiên bởi Maker [21]: oracle xác minh việc rút tiền, xuất bản kết quả trên L1 trong đó khoản vay chịu lãi được gán cho người dùng, kết quả này được tự động đóng cửa sau 7 ngày, tức là khi việc rút tiền thực sự có thể được hoàn tất. Giải pháp này đưa ra một giả định về độ tin cậy, nhưng trong trường hợp của Maker, nó được giảm thiểu do toán tử oracle được quản lý bởi cùng một tổ chức chịu rủi ro bằng cách cung cấp khoản vay. 4.2. Chi phí giao dịch Chi phí của giao dịch L2 chủ yếu được xác định bởi sự tương tác với L1. Trong cả hai giải pháp chi phí tính toán của các giao dịch rất rẻ vì nó được thực hiện hoàn toàn ngoài chuỗi. Optimism xuất bản dữ liệu cuộc gọi giao dịch L2 dưới dạng dữ liệu cuộc gọi và hiếm khi (hoặc không bao giờ) thực hiện lỗi bằng chứng, do đó calldata là tài nguyên đắt nhất. Vào ngày 12 tháng 1 năm 2022, mạng Bedrock đã được khởi chạy trên mạng thử nghiệm Goerli của Ethereum. Có thể tính được tốc độ nén khí bằng cách theo dõi lượng gas được sử dụng trên Bedrock trong một khoảng thời gian nhất định và bằng cách so sánh nó với lượng gas tiêu tốn cho L1 cho các khối tương ứng. Sử dụng phương pháp này để nén khí tỷ lệ ∼20: 1 được tìm thấy, nhưng con số này có thể khác với hoạt động thực tế trên mạng chính. StarkNet xuất bản trên Ethereum mọi thay đổi ở trạng thái L2 dưới dạng dữ liệu cuộc gọi, do đó dung lượng lưu trữ sẽ bị hạn chế nguồn tài nguyên đắt giá nhất. Vì mạng không sử dụng EVM nên chi phí giao dịch nén không thể được ước tính tầm thường. Bằng cách giả định chi phí thực hiện và lệnh gọi tới không đáng kể, có thể tính được tỷ lệ nén của việc ghi lưu trữ so với L1. Giả sử không có hợp đồng nào được triển khai và 10 ô chưa được truy cập trước đó trên StarkNet được đã sửa đổi, tỷ lệ nén chi phí ghi lưu trữ là ∼24: 1. Nếu một ô bị ghi đè 𝑛lần giữa các lần xuất bản dữ liệu, chi phí cho mỗi lần ghi sẽ là 1/𝑛so với chi phí của một lần viết, vì chỉ có lần cuối cùng được xuất bản. Chi phí có thể được giảm thiểu hơn nữa bằng cáchnén các giá trị được sử dụng thường xuyên. Chi phí xác minh bằng chứng hợp lệ được chia cho các giao dịch mà nó đề cập đến: ví dụ: StarkNet khối 4779 chứa 200 giao dịch và bằng chứng hợp lệ tiêu tốn 267830 đơn vị gas hoặc 1339,15 gas cho mỗi giao dịch. 4.2.1. Tối ưu hóa dữ liệu cuộc gọi: hợp đồng bộ đệm Trình bày bên dưới là smart contract triển khai bộ nhớ đệm địa chỉ cho các địa chỉ được sử dụng thường xuyên địa chỉ bằng cách tận dụng thực tế là việc lưu trữ và thực thi ít tốn kém hơn nhiều tài nguyên, cùng với hợp đồng Bạn bè thể hiện việc sử dụng nó. Cái sau theo dõi “bạn bè” của một địa chỉ có thể được đăng ký bằng cách gọi hàm addFriend. Nếu một địa chỉ đã được sử dụng ít nhất một lần, nó có thể được thêm bằng cách gọi addFriendWithCache chức năng: các chỉ mục bộ đệm là số nguyên 4 byte trong khi địa chỉ được biểu thị bằng 20 byte, vì vậy có mức tiết kiệm 5:1 cho đối số hàm. Logic tương tự có thể được sử dụng cho dữ liệu khác các loại như số nguyên hoặc nói chung hơn là byte. hợp đồng Địa chỉCache { ánh xạ (địa chỉ => uint32) địa chỉ công cộng2key; địa chỉ[] public key2address; hàm cacheWrite(address _address) trả về nội bộ (uint32) { require(key2address.length < type(uint32).max, "AddressCache: bộ đệm đã đầy"); require(address2key[_address] == 0, "AddressCache: địa chỉ đã được lưu vào bộ nhớ đệm"); // khóa phải bắt đầu từ 1 vì 0 có nghĩa là "không tìm thấy" khóa uint32 = uint32(key2address.length + 1); address2key[_address] = khóa; key2address.push(_address); chìa khóa trả lại; } hàm cacheRead(uint32 _key) chế độ xem công khai trả về (địa chỉ) { require(_key <= key2address.length && _key > 0, "AddressCache: không tìm thấy khóa"); trả về key2address[_key - 1]; } } Liệt kê 2: Hợp đồng bộ nhớ đệm địa chỉ. hợp đồng Bạn bè là Địa chỉCache { ánh xạ (địa chỉ => địa chỉ []) bạn bè công khai; hàm addFriend(địa chỉ _friend) công khai { bạn bè[msg.sender].push(_friend); cacheWrite(_friend); } hàm addFriendWithCache(uint32 _friendKey) public { bạn bè[msg.sender].push(cacheRead(_friendKey)); } hàm getFriends() chế độ xem công khai trả về (địa chỉ [] bộ nhớ) { trả lại bạn bè[msg.sender];} } Liệt kê 3: Ví dụ về một hợp đồng kế thừa bộ đệm địa chỉ. Hợp đồng hỗ trợ trong bộ đệm khoảng 4 tỷ (232) địa chỉ và việc thêm một byte sẽ mang lại khoảng 1 nghìn tỷ (240). 4.2.2. Tối ưu hóa lưu trữ: Bộ lọc của Bloom Trên StarkNet có một số kỹ thuật để giảm thiểu mức sử dụng bộ nhớ. Nếu không cần thiết phải đảm bảo tính sẵn có của dữ liệu gốc thì chỉ cần lưu hash trên chuỗi của nó là đủ: cái này là cơ chế được sử dụng để lưu dữ liệu cho ERC-721 (NFT) [22], tức là liên kết IPFS giải quyết vấn đề hash dữ liệu nếu có. Đối với dữ liệu được lưu trữ nhiều lần, có thể sử dụng tra cứu bảng tương tự như hệ thống bộ nhớ đệm được giới thiệu cho Optimism, yêu cầu tất cả giá trị phải được lưu tại ít nhất một lần. Đối với một số ứng dụng, có thể tránh việc lưu tất cả các giá trị bằng cách sử dụng bộ lọc Bloom [23, 24, 25], tức là cấu trúc dữ liệu xác suất cho phép người ta biết chắc chắn liệu một phần tử không thuộc về một tập hợp nhưng thừa nhận một xác suất sai nhỏ nhưng không đáng kể tích cực. Bộ lọc Bloom được khởi tạo dưới dạng mảng 𝑚bit ở mức 0. Để thêm một phần tử, các hàm 𝑘hash với sự phân bố ngẫu nhiên đồng đều được sử dụng, mỗi ánh xạ tới một bit của mảng được đặt đến 1. Để kiểm tra xem một phần tử có thuộc tập hợp hay không, chúng tôi chạy các hàm 𝑘hash và xác minh rằng các 𝑘bit được đặt thành 1. Trong bộ lọc Bloom đơn giản, không có cách nào để phân biệt liệu một phần tử thực sự thuộc về tập hợp hoặc là dương tính giả, xác suất tăng theo số số mục tăng lên. Sau khi chèn phần tử 𝑛: P[dương tính giả] = (︃ 1 − [︂ 1 −1 𝑚 ]︂𝑘𝑛)︃𝑘 ≈ (︁ 1 −𝑒−𝑘𝑛/𝑚)︁𝑘 giả định tính độc lập của xác suất của mỗi tập hợp bit. Nếu 𝑛 phần tử (có kích thước tùy ý!) dự kiến sẽ được đưa vào và xác suất cho phép dương tính giả là 𝑝, kích thước của mảng có thể được tính như sau: 𝑚= −𝑛ln 𝑝 (ln 2)2 Trong khi số hàm hash tối ưu là: 𝑘= 𝑚 𝑛ln 2 Nếu chúng ta giả sử chèn 1000 phần tử với dung sai 1% thì kích thước của mảng là 9585 bit với 𝑘= 6, trong khi với dung sai 0,1%, nó trở thành 14377 bit với 𝑘= 9. Nếu một triệu phần tử dự kiến sẽ được chèn vào, kích thước của mảng sẽ trở thành khoảng 1170 kB cho 1% và 1775 kB cho 0,1%, có cùng giá trị 𝑘, vì nó chỉ phụ thuộc vào 𝑝[26]. Trong một trò chơi mà người chơi không được phân công vào đối thủ mà họ đã thách đấu, thay vì lưu vào bộ nhớ cho mỗi người chơi danh sách các đối thủ trong quá khứ, người ta có thể sử dụng Bloom bộ lọc. Rủi ro không thách thức một số người chơi thường có thể chấp nhận được và bộ lọc có thể được đặt lại định kỳ.4.3. Ethereum khả năng tương thích Ưu điểm chính của việc tương thích với EVM và Ethereum là sử dụng lại tất cả các tính năng có sẵn công cụ. Ethereum smart contracts có thể được xuất bản trên Optimism mà không cần sửa đổi hay các cuộc kiểm toán mới. Ví vẫn tương thích, các công cụ phát triển và phân tích tĩnh, phân tích chung công cụ, công cụ lập chỉ mục và oracle. Ethereum và Solidity có lịch sử lâu đời được nghiên cứu kỹ lưỡng các lỗ hổng bảo mật, chẳng hạn như các cuộc tấn công vào lại, tràn và tràn, flash loan và oracle thao tác. Vì điều này, Optimism đã có thể nắm bắt được một lượng lớn giá trị trong thời gian ngắn thời gian. Việc chọn sử dụng một máy ảo khác đồng nghĩa với việc phải xây dựng lại toàn bộ hệ sinh thái, với lợi thế là có quyền tự do thực hiện lớn hơn. StarkNet thực hiện tài khoản sự trừu tượng hóa, là một cơ chế trong đó mỗi tài khoản là một smart contract có thể triển khai logic tùy ý miễn là nó tuân thủ một giao diện (do đó có thuật ngữ trừu tượng): điều này cho phép việc sử dụng các sơ đồ chữ ký số khác nhau, khả năng thay đổi khóa riêng bằng cách sử dụng cùng một địa chỉ hoặc sử dụng multisig. Cộng đồng Ethereum đề xuất giới thiệu tính năng này cơ chế với EIP-2938 vào năm 2020, nhưng đề xuất này vẫn tồn tại hơn một năm vì các bản cập nhật khác được ưu tiên hơn [27]. Một lợi ích quan trọng khác thu được từ tính tương thích là khả năng sử dụng lại các ứng dụng khách hiện có: Optimism sử dụng một phiên bản geth cho nút riêng của nó chỉ với ∼800 dòng khác nhau, đã được được phát triển, thử nghiệm và duy trì từ năm 2014. Có một khách hàng mạnh mẽ là rất quan trọng vì nó xác định những gì được chấp nhận là hợp lệ hay không có trong mạng. Một lỗi trong việc thực hiện bằng chứng lỗi hệ thống có thể khiến bằng chứng không chính xác được chấp nhận là đúng hoặc bằng chứng chính xác cho một bằng chứng không hợp lệ khối được chấp nhận là không chính xác, làm tổn hại đến hệ thống. Khả năng xảy ra loại này cuộc tấn công có thể được hạn chế với sự đa dạng của khách hàng rộng hơn: Optimism có thể sử dụng lại ngoài việc lấy các ứng dụng khách Ethereum khác đã được duy trì và việc phát triển một ứng dụng khách khác dựa trên Erigon đang được tiến hành đã được tiến hành. Vào năm 2016, một vấn đề trong việc quản lý bộ nhớ của geth đã bị khai thác để Tấn công DoS và tuyến phòng thủ đầu tiên là khuyến nghị sử dụng Parity, tuyến phòng thủ thứ hai ứng dụng khách đã sử dụng tại thời điểm đó 5. StarkNet gặp phải vấn đề tương tự với bằng chứng hợp lệ, nhưng ứng dụng khách phải được viết từ đầu và hệ thống chứng minh phức tạp hơn nhiều, và do đó nó cũng phức tạp hơn nhiều để đảm bảo tính chính xác.

비교

  1. 비교 4.1. 출금시간 낙관적 롤업과 유효성 롤업을 구별하는 가장 중요한 측면은 출금 초기화부터 완료까지 소요되는 시간입니다. 두 경우 모두, 인출은 L2에서 초기화되고 L1에서 완료됩니다. StarkNet에서 다음과 같이 마무리가 가능합니다. Ethereum에서 새로운 상태 루트의 유효성 증명이 승인되자마자 이론적으로는 다음과 같습니다. 초기화 후 L1의 첫 번째 블록에서 자금을 인출할 수 있습니다. 실제로는 Ethereum에서 유효성 증명을 보내는 빈도는 블록 속도 간의 균형입니다. 마무리 및 증명 집계. 현재 StarkNet은 검증을 위한 유효성 증명을 제공합니다. 10시간마다 4. 단, 거래 활동이 증가함에 따라 감소하도록 의도되었습니다. Optimism Bedrock에서는 분쟁이 끝난 후에만 출금을 완료할 수 있습니다. 기간(현재 7일)이 지나면 루트는 자동으로 유효한 것으로 간주됩니다. 길이 이 기간은 주로 결함 증명이 Ethereum에서 검열될 수 있다는 사실에 의해 결정됩니다. 그것의 끝. 이러한 유형의 공격의 성공 확률은 시간이 지남에 따라 기하급수적으로 감소합니다. E[감산값] = 𝑉𝑝𝑛 여기서 𝑛는 간격의 블록 수, 𝑉는 차감할 수 있는 자금의 양입니다. 유효하지 않은 루트를 게시하여 𝑝는 검열을 성공적으로 수행할 확률입니다. 단일 블록으로 공격합니다. 이 확률이 99%라고 가정하면 Rollup에 고정된 값이 는 100만 이더이고, 간격의 블록은 1800개입니다(12개의 블록이 있는 6시간의 블록). 초 간격): 예상 값은 약 0.01391 Ether입니다. 시스템은 다음에 의해 안전하게 만들어집니다. 제안자에게 예상 가치보다 훨씬 더 많은 양의 Ether를 스테이킹하도록 요청합니다. Winzeret al. 간단한 smart contract을 사용하여 검열 공격을 수행하는 방법을 보여주었습니다. 이는 상태의 특정 메모리 영역이 변경되지 않도록 보장합니다([20]). 공격 모델링 마르코프 게임으로서 이 논문은 검열이 합리적인 판단을 위한 지배적인 전략임을 보여줍니다. 블록 생산자가 변경된 거래를 포함하는 것보다 더 많은 보상을 받는 경우 기억. 위에서 논의된 𝑝값은 합리적인 블록의 백분율로 볼 수 있습니다. 네트워크의 생산자는 "합리적"이라고 할 때 처벌 가능성을 고려하지 않습니다. 암호화폐 가치를 감소시키는 blockchain에 대한 신뢰도 저하와 같은 외부 효과. 다음 코드는 검열 공격을 수행하는 데 사용할 수 있는 smart contract을 나타냅니다. 베드락에. 공격은 뇌물을 제공하여 블록 생산자의 인센티브를 이용합니다. 주의 특정 부분을 수정하는 거래를 검열합니다. 계약의 주요 내용 함수인 ClaimBribe를 사용하면 블록 생산자가 검열에 성공한 경우 뇌물을 요구할 수 있습니다. 유효하지 않은 출력 루트가 건드리지 않았는지 확인하여 대상 트랜잭션을 처리합니다. 함수 ClaimBribe(바이트 메모리 StorageProof) 외부 { require(!claimed[block.number], "뇌물은 이미 청구되었습니다."); OutputProposal 메모리 현재 = StorageOracle.getStorage(L2_ORACLE, block.number, SLOT, 저장 증명); require(invalidOutputRoot == current.outputRoot, "공격 실패"); 청구됨[block.number] = true; (부울 전송됨, ) = block.coinbase.call{value: bribeAmount}(""); 4https://etherscan.io/address/0xc662c410c0ecf747543f5ba90660f6abebd9c8c4require(sent, "이더 전송 실패"); } 목록 1: Bedrock에 대한 검열 공격을 장려하는 계약의 예. 분쟁 기간의 길이는 또한 결함 증명이 다음과 같다는 사실을 고려해야 합니다. 대화형 증거이므로 참가자가 상호 작용할 수 있는 충분한 시간이 제공되어야 합니다. 모든 상호작용은 검열될 수 있습니다. 마지막 이동이 매우 가까운 시간에 발생하는 경우 분쟁 기간이 끝나면 검열 비용이 훨씬 적습니다. 검열이 이루어지긴 하지만 지배적인 전략에서는 검열 노드가 취약하기 때문에 성공 가능성이 낮습니다. 서비스 거부 공격: 공격자는 다음으로 끝나는 매우 복잡한 트랜잭션을 생성할 수 있습니다. 수수료가 지불되지 않으므로 무료로 결함 증명을 게시합니다. 극단적인 경우 긴 분쟁 기간을 통해 성공적인 경우 조정이 가능합니다. 검열 공격을 통해 포크를 구성하고 공격하는 블록 생산자를 배제합니다. 또 다른 가능한 공격은 논쟁자가 확인할 수 있는 것보다 더 많은 상태 루트 제안을 게시하는 것으로 구성됩니다. 이는 주파수 제한을 사용하여 피할 수 있습니다. 4.1.1. 빠른 낙관적 인출 낙관적 롤업의 유효성은 언제든지 전체 노드에서 확인할 수 있으므로 신뢰할 수 있는 oracle을 사용하여 L1에서 출금이 안전하게 완료될 수 있는지 확인할 수 있습니다. 이 메커니즘은 Maker [21]에 의해 처음 제안되었습니다. oracle는 출금을 확인하고, 이자부 대출이 사용자에게 할당된 L1의 결과는 자동으로 7일이 지나면 종료됩니다. 즉, 인출이 실제로 완료될 수 있는 시점입니다. 이 솔루션 신뢰 가정을 도입하지만 Maker의 경우 oracle 연산자 이후로 최소화됩니다. 대출을 제공함으로써 위험을 감수하는 동일한 조직에 의해 관리됩니다. 4.2. 거래비용 L2 트랜잭션 비용은 대부분 L1과의 상호작용에 의해 결정됩니다. 두 솔루션 모두 트랜잭션의 계산 비용은 완전히 오프체인에서 실행되므로 매우 저렴합니다. Optimism은 L2 트랜잭션 calldata를 calldata로 게시하고 오류를 거의(또는 전혀) 실행하지 않습니다. 증명하므로 calldata는 가장 비싼 리소스입니다. 2022년 1월 12일 Bedrock 네트워크 Ethereum의 Goerli 테스트넷에서 출시되었습니다. 가스 압축률을 계산할 수 있습니다. 특정 기간 동안 베드락에서 사용된 가스의 양을 추적하고 이를 비교함으로써 해당 블록의 L1에 소비된 가스의 양입니다. 이 방법을 사용하여 가스 압축 ~20:1의 비율이 발견되었으나, 이 수치는 메인넷의 실제 활동과 다를 수 있습니다. StarkNet은 L2 상태의 모든 변경 사항을 Ethereum에 호출 데이터로 게시하므로 스토리지는 가장 비싼 자원. 네트워크는 EVM을 사용하지 않으므로 거래 비용은 압축은 사소하게 추정할 수 없습니다. 실행 비용과 호출 데이터를 가정하여 무시할 수 있으므로 스토리지 쓰기의 압축률을 계산할 수 있습니다. L1. 배포된 계약이 없고 StarkNet에서 이전에 액세스하지 않은 10개의 셀이 다음과 같다고 가정합니다. 수정된 결과 ~24:1의 스토리지 쓰기 비용 압축률이 발견되었습니다. 셀을 덮어쓴 경우 𝑛데이터 게시 사이에 각 쓰기 비용은 비용과 비교하여 1/𝑛입니다. 단일 쓰기의 경우 마지막 쓰기만 게시되기 때문입니다. 비용을 더욱 최소화할 수 있습니다.자주 사용되는 값을 압축합니다. 유효성 증명 검증 비용은 다음과 같이 나뉩니다. 참조하는 트랜잭션: 예를 들어 StarkNet 블록 4779에는 200개의 트랜잭션이 포함되어 있으며 그 유효성 증명은 각 거래마다 267830개 가스 또는 1339.15개 가스를 소비합니다. 4.2.1. 통화 데이터 최적화: 캐시 계약 아래에는 자주 사용되는 주소 캐시를 구현한 smart contract이 나와 있습니다. 저장 및 실행 비용이 훨씬 저렴하다는 점을 활용하여 주소를 지정합니다. 리소스와 그 사용을 보여주는 Friends 계약이 함께 제공됩니다. 후자는 다음을 추적합니다. addFriend 함수를 호출하여 등록할 수 있는 주소의 "친구"입니다. 주소인 경우 이미 한 번 이상 사용된 경우 addFriendWithCache를 호출하여 추가할 수 있습니다. 함수: 캐시 인덱스는 4바이트 정수이고 주소는 20바이트로 표시됩니다. 따라서 함수 인수가 5:1로 절약됩니다. 다른 데이터에도 동일한 논리를 사용할 수 있습니다. 정수 또는 더 일반적으로는 바이트와 같은 유형입니다. 계약 AddressCache { 매핑(주소 => uint32) 공개 주소2키; 주소[] 공개 키2주소; 함수 캐시Write(address _address) 내부 반환(uint32) { require(key2address.length < type(uint32).max, "AddressCache: 캐시가 가득 찼습니다."); require(address2key[_address] == 0, "AddressCache: 주소가 이미 캐시되었습니다."); // 0은 "찾을 수 없음"을 의미하므로 키는 1부터 시작해야 합니다. uint32 키 = uint32(key2address.length + 1); address2key[_address] = 키; key2address.push(_address); 리턴 키; } 함수 캐시읽기(uint32 _key) 공개 보기는 (주소) {를 반환합니다. require(_key <= key2address.length && _key > 0, "AddressCache: 키를 찾을 수 없습니다."); return key2address[_key - 1]; } } 목록 2: 주소 캐시 계약. 계약 친구는 AddressCache입니다. 매핑(주소 => 주소[]) 공개 친구; 함수 addFriend(주소_친구) 공개 { 친구[msg.sender].push(_friend); 캐시쓰기(_friend); } 함수 addFriendWithCache(uint32 _friendKey) 공개 { 친구[msg.sender].push(cacheRead(_friendKey)); } 함수 getFriends() 공개 보기는 (주소[] 메모리)를 반환합니다. 친구에게 돌아가기[msg.sender];} } 목록 3: 주소 캐시를 상속하는 계약의 예. 계약은 캐시에서 약 40억(232)개의 주소를 지원하며 1바이트를 추가하면 약 1조(240). 4.2.2. 스토리지 최적화: Bloom의 필터 StarkNet에는 스토리지 사용량을 최소화하는 몇 가지 기술이 있습니다. 꼭 필요하지 않은 경우 원본 데이터의 가용성을 보장하면 hash을 온체인에 저장하는 것으로 충분합니다. ERC-721(NFT) [22], 즉 IPFS 링크를 해결하는 데이터를 저장하는 데 사용되는 메커니즘입니다. 사용 가능한 경우 데이터의 hash. 여러 번 저장된 데이터의 경우 조회 기능을 사용할 수 있습니다. 테이블은 Optimism에 도입된 캐싱 시스템과 유사하며 모든 값을 다음 위치에 저장해야 합니다. 적어도 한 번은. 일부 애플리케이션의 경우 Bloom 필터를 사용하면 모든 값을 저장하지 않을 수 있습니다. [23, 24, 25], 즉, 확실하게 알 수 있는 확률적 데이터 구조입니다. 요소는 집합에 속하지 않지만 작지만 무시할 수 없는 거짓 확률을 허용합니다. 긍정적인 점. 블룸 필터는 0에서 𝑚비트 배열로 초기화됩니다. 요소를 추가하려면 𝑘hash 함수를 사용하세요. 균일한 무작위 분포가 사용되며 각각은 설정된 배열의 비트에 매핑됩니다.
  2. 요소가 세트에 속하는지 확인하기 위해 𝑘hash 함수를 실행하고 확인합니다. 𝑘 비트가 1로 설정되어 있습니다. 간단한 Bloom 필터에서는 요소가 실제로 세트에 속하거나 위양성(수에 따라 증가하는 확률)입니다. 항목이 증가합니다. 𝑛요소를 삽입한 후: P[거짓양성] = (︃ 1 - [︂ 1 −1 𝑚 ]︂𝑘𝑛)︃𝑘 ≒ (︁ 1 −𝑒−𝑘𝑛/𝑚)︁𝑘 각 비트 세트의 확률은 독립이라고 가정합니다. 𝑛요소(임의의 크기)가 다음과 같은 경우 포함될 것으로 예상되며 허용되는 잘못된 긍정의 확률은 𝑝, 즉 배열의 크기입니다. 다음과 같이 계산할 수 있습니다. 𝑚= −𝑛ln 𝑝 (2)2 hash 함수의 최적 개수는 다음과 같습니다. 𝑘= 𝑚 𝑛2에 허용오차가 1%인 1000개의 요소를 삽입한다고 가정하면 배열의 크기는 9585비트입니다. 𝑘= 6인 경우 허용 오차가 0.1%인 경우 𝑘= 9인 경우 14377비트가 됩니다. 요소가 백만 개이면 삽입될 것으로 예상되면 배열의 크기는 1%의 경우 약 1170kB, 1%의 경우 약 1775kB가 됩니다. 0.1%, 𝑝[26]에만 의존하므로 𝑘 값이 동일합니다. 플레이어가 이미 도전한 상대에게 배정되어서는 안 되는 게임에서, 각 플레이어의 저장소에 과거 상대 목록을 저장하는 대신 Bloom을 사용할 수 있습니다. 필터. 일부 플레이어에게 도전하지 않는 위험은 대개 허용되며 필터는 재설정될 수 있습니다. 주기적으로.4.3. Ethereum 호환성 EVM 및 Ethereum과 호환되는 주요 이점은 사용 가능한 모든 항목을 재사용한다는 것입니다. 도구. Ethereum smart contracts는 수정 없이 Optimism에 게시될 수 있습니다. 새로운 감사. 지갑은 호환성을 유지하며 개발 및 정적 분석 도구, 일반 분석 도구, 색인 도구 및 oracles. Ethereum 및 Solidity는 오랫동안 잘 연구된 역사를 가지고 있습니다. 재진입 공격, 오버플로 및 언더플로, 플래시 대출 및 oracle과 같은 취약점 조작. 이로 인해 Optimism은 단시간에 많은 가치를 포착할 수 있었습니다. 시간. 다른 가상 머신을 채택한다는 것은 전체 생태계를 재구축해야 한다는 것을 의미합니다. 구현의 자유도가 더 높다는 장점이 있습니다. StarkNet은 기본적으로 계정을 구현합니다. 추상화는 각 계정이 구현할 수 있는 smart contract인 메커니즘입니다. 인터페이스를 준수하는 한 임의의 논리(따라서 추상화라는 용어가 사용됨): 이를 통해 다양한 디지털 서명 체계 사용, 개인 키를 변경하는 기능 동일한 주소를 사용하거나 다중 서명을 사용하세요. Ethereum 커뮤니티에서 이 기능의 도입을 제안했습니다. 2020년에 EIP-2938과 함께 메커니즘을 도입했지만 제안은 1년 넘게 오래된 상태로 남아 있습니다. 다른 업데이트에는 더 많은 우선순위가 부여되었습니다([27]). 호환성을 통해 얻을 수 있는 또 다른 중요한 이점은 기존 클라이언트를 재사용한다는 것입니다. Optimism 자체 노드에 약 800줄의 차이만 있는 geth 버전을 사용합니다. 2014년부터 개발, 테스트 및 유지 관리되었습니다. 강력한 클라이언트를 갖는 것은 정의에 따라 매우 중요합니다. 네트워크에서 유효한 것으로 허용되는 것과 그렇지 않은 것. 결함 증명 구현의 버그 시스템으로 인해 잘못된 증거가 올바른 것으로 받아들여지거나 잘못된 증거에 대한 올바른 증거로 받아들여질 수 있습니다. 차단을 잘못된 것으로 받아들여 시스템을 손상시킵니다. 이런 종류의 확률 더 넓은 클라이언트 다양성으로 공격을 제한할 수 있습니다. Optimism는 geth 외에 재사용할 수 있습니다. 다른 Ethereum 클라이언트는 이미 유지 관리되고 있으며 다른 Erigon 기반 클라이언트의 개발은 이미 진행 중입니다. 2016년에는 geth의 메모리 관리 문제가 악용되었습니다. DoS 공격과 첫 번째 방어선은 두 번째로 가장 많이 사용되는 Parity의 사용을 권장하는 것이었습니다. 당시 사용했던 클라이언트 5. StarkNet은 유효성 증명과 관련해 동일한 문제에 직면했지만 클라이언트는 처음부터 작성해야 하며 증명 시스템은 훨씬 더 복잡합니다. 정확성을 보장하는 것도 훨씬 더 복잡합니다.

Phần kết luận

  1. Kết luận Rollups là giải pháp hứa hẹn nhất hiện nay để giải quyết vấn đề về khả năng mở rộng trong blockchains phi tập trung, mở đường cho kỷ nguyên blockchain mô-đun trái ngược với nguyên khối blockchains. Lựa chọn phát triển Tổng hợp lạc quan hoặc Tổng hợp hợp lệ chủ yếu được hiển thị như một sự đánh đổi giữa sự phức tạp và sự nhanh nhẹn. StarkNet có nhiều ưu điểm như nhanh rút tiền, cấu trúc không có khả năng chuyển đổi trạng thái không hợp lệ, chi phí giao dịch thấp hơn tại chi phí cho thời gian phát triển dài hơn và tính không tương thích với EVM, trong khi Optimism có tận dụng nền kinh tế mạng để nhanh chóng chiếm được thị phần lớn trên thị trường. Optimism Tuy nhiên, Bedrock sở hữu thiết kế mô-đun cho phép nó trở thành Hiệu lực 5https://blog.ethereum.org/2016/09/22/ethereum-network-currently-undergoing-dos-attack

Cập nhật trong tương lai: Cannon hiện đang sử dụng minigeth được biên dịch thành MIPS để kiểm tra lỗi của nó hệ thống, nhưng kiến trúc tương tự có thể được sử dụng để thu được một mạch điện và tạo ra các bằng chứng hợp lệ. Việc biên dịch một máy phức tạp như EVM cho một vi kiến trúc sẽ mang lại kết quả đơn giản hơn mạch không cần phải sửa đổi và xác minh lại trong trường hợp nâng cấp. RISC Zero là một vi kiến trúc có thể xác minh được với bằng chứng STARK đã được phát triển dựa trên RISC-V rằng có thể được sử dụng cho mục đích này thay thế cho MIPS [28]. Một khía cạnh không nên đánh giá thấp là sự phức tạp trong việc hiểu cách thức công nghệ hoạt động. Điểm mạnh của blockchain truyền thống là có thể xác minh trạng thái của blockchain mà không tin cậy bất kỳ thực thể bên thứ ba nào. Tuy nhiên, trong trường hợp StarkNet, đó là cần thiết phải tin tưởng vào việc triển khai khi không thể xác minh các thành phần khác nhau dựa trên mật mã và toán học nâng cao. Điều này ban đầu có thể tạo ra xích mích đối với việc áp dụng công nghệ, nhưng khi các công cụ và việc sử dụng bằng chứng về tính toàn vẹn ngày càng phát triển bên ngoài trường blockchain hy vọng vấn đề này sẽ được giải quyết.

결론

  1. 결론 롤업은 오늘날 확장성 문제를 해결하기 위해 사용할 수 있는 가장 유망한 솔루션입니다. 탈중앙화된 blockchain, 모듈형 blockchain 시대의 길을 열다 모놀리식 blockchains. 낙관적 롤업 또는 유효성 롤업 개발 선택이 주로 표시됩니다. 복잡성과 민첩성 사이의 절충안입니다. StarkNet은 빠른 속도와 같은 많은 장점을 가지고 있습니다. 인출, 유효하지 않은 상태 전환의 구조적 불가능, 낮은 거래 비용 개발 기간이 길어지고 EVM과의 비호환성이 발생하는 반면 Optimism은(는) 네트워크 경제를 활용하여 시장의 주요 점유율을 빠르게 확보했습니다. Optimism 그러나 Bedrock은 Validity가 될 수 있는 모듈식 설계를 보유하고 있습니다. 5https://blog.ethereum.org/2016/09/22/ethereum-network-currently-undergoing-dos-attack

향후 롤업: Cannon은 현재 오류 방지를 위해 MIPS로 컴파일된 minigeth를 사용합니다. 시스템이지만 동일한 아키텍처를 사용하여 회로를 얻고 유효성 증명을 생성할 수 있습니다. 마이크로아키텍처에 대해 EVM과 같은 복잡한 시스템을 컴파일하면 더 간단해집니다. 업그레이드 시 수정 및 재검증이 필요하지 않은 회로입니다. RISC 제로는 RISC-V을 기반으로 이미 개발 중인 STARK 증명을 갖춘 검증 가능한 마이크로 아키텍처 MIPS [28] 대신 이 목적으로 사용할 수 있습니다. 과소평가해서는 안되는 한 가지 측면은 어떻게 이해하는 것이 복잡하다는 것입니다. 기술이 작동합니다. 기존 blockchain의 장점은 상태를 확인할 수 있다는 것입니다. 제3자 실체를 신뢰하지 않고 blockchain. 그러나 StarkNet의 경우에는 다양한 구성요소를 검증하는 것이 불가능할 때 구현을 신뢰하는 데 필요함 암호화 및 고급 수학을 기반으로 합니다. 이로 인해 처음에는 마찰이 발생할 수 있습니다. 기술을 채택했지만 무결성 증명의 도구와 사용이 발전함에 따라 blockchain 필드 외부에서는 이 문제가 해결되기를 바랍니다.