Rollups là tất cả các cơn thịnh nộ by@Vitalik
448 lượt đọc

Rollups là tất cả các cơn thịnh nộ

2022/06/27
từ tác giả @Vitalik 448 lượt đọc
tldt arrow
VI
Read on Terminal Reader

dài quá đọc không nổi

Rollups là tất cả các cơn thịnh nộ trong cộng đồng Ethereum và sẵn sàng trở thành giải pháp khả năng mở rộng quan trọng cho Ethereum trong tương lai gần. Nhưng chính xác thì công nghệ này là gì, bạn có thể mong đợi gì từ nó và bạn sẽ có thể sử dụng nó như thế nào? Bài đăng này sẽ cố gắng trả lời một số câu hỏi chính đó. Thông tin cơ bản: Chia tỷ lệ lớp 1 và lớp 2 là gì? Có hai cách để mở rộng quy mô hệ sinh thái blockchain. Đầu tiên, bạn có thể làm cho chính blockchain có khả năng giao dịch cao hơn. Thách thức chính với kỹ thuật này là các blockchain có "khối lớn hơn" vốn dĩ khó xác minh hơn và có khả năng trở nên tập trung hơn. Để tránh những rủi ro như vậy, các nhà phát triển có thể tăng hiệu quả của phần mềm máy khách hoặc bền vững hơn, sử dụng các kỹ thuật như sharding để cho phép công việc xây dựng và xác minh chuỗi được chia thành nhiều nút; nỗ lực được gọi là "eth2" hiện đang xây dựng bản nâng cấp này lên Ethereum.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Rollups là tất cả các cơn thịnh nộ
Vitalik Buterin HackerNoon profile picture

@Vitalik

Vitalik Buterin
react to story with heart

Rollups là tất cả các cơn thịnh nộ trong cộng đồng Ethereum và sẵn sàng trở thành giải pháp khả năng mở rộng quan trọng cho Ethereum trong tương lai gần.

Nhưng chính xác thì công nghệ này là gì, bạn có thể mong đợi gì từ nó và bạn sẽ có thể sử dụng nó như thế nào? Bài đăng này sẽ cố gắng trả lời một số câu hỏi chính đó.

Thông tin cơ bản: Chia tỷ lệ lớp 1 và lớp 2 là gì?

Có hai cách để mở rộng quy mô hệ sinh thái blockchain. Đầu tiên, bạn có thể làm cho chính blockchain có khả năng giao dịch cao hơn .

Thách thức chính với kỹ thuật này là các blockchain có "khối lớn hơn" vốn dĩ khó xác minh hơn và có khả năng trở nên tập trung hơn.

Để tránh những rủi ro như vậy, các nhà phát triển có thể tăng hiệu quả của phần mềm máy khách hoặc bền vững hơn, sử dụng các kỹ thuật như sharding để cho phép công việc xây dựng và xác minh chuỗi được chia thành nhiều nút; nỗ lực được gọi là "eth2" hiện đang xây dựng bản nâng cấp này lên Ethereum.

Thứ hai, bạn có thể thay đổi cách bạn sử dụng blockchain . Thay vì đặt tất cả hoạt động trực tiếp trên blockchain, người dùng thực hiện phần lớn hoạt động của họ ngoài chuỗi trong một giao thức "lớp 2".

Có một hợp đồng thông minh trên chuỗi, chỉ có hai nhiệm vụ: xử lý tiền gửi và rút tiền, đồng thời xác minh bằng chứng rằng mọi thứ diễn ra ngoài chuỗi đều tuân theo các quy tắc.

Có nhiều cách để thực hiện những bằng chứng này, nhưng tất cả đều có chung đặc điểm là xác minh các bằng chứng trên chuỗi rẻ hơn nhiều so với việc tính toán ban đầu ngoài chuỗi.

Kênh trạng thái so với Plasma so với bản cuộn

Ba kiểu chia tỷ lệ lớp 2 chính là kênh trạng thái , Plasma và cuộn lên.

Chúng là ba mô hình khác nhau, với những điểm mạnh và điểm yếu khác nhau, và tại thời điểm này, chúng tôi khá tự tin rằng tất cả các quy mô lớp 2 đều rơi vào khoảng ba loại này (mặc dù vẫn tồn tại những tranh cãi về tên gọi, ví dụ: xem "validium" ).

Các kênh hoạt động như thế nào?

Xem thêm: https://www.jeffcoleman.ca/state-channelsstatechannels.org

Hãy tưởng tượng rằng Alice cung cấp kết nối internet cho Bob, đổi lại Bob trả cho cô ấy 0,001 đô la cho mỗi megabyte. Thay vì thực hiện giao dịch cho mỗi lần thanh toán, Alice và Bob sử dụng lược đồ lớp 2 sau đây.

Đầu tiên, Bob đặt $ 1 (hoặc một số ETH hoặc stablecoin tương đương) vào một hợp đồng thông minh. Để thực hiện khoản thanh toán đầu tiên của mình cho Alice, Bob ký một "vé" (một tin nhắn ngoài chuỗi), chỉ đơn giản là "0,001 đô la" và gửi cho Alice.

Để thực hiện khoản thanh toán thứ hai, Bob sẽ ký một vé khác có nội dung "0,002 đô la" và gửi cho Alice. Và tiếp tục như vậy cho nhiều khoản thanh toán nếu cần. Khi Alice và Bob giao dịch xong, Alice có thể xuất bản vé có giá trị cao nhất cho chuỗi, được bọc trong một chữ ký khác của chính cô ấy.

Hợp đồng thông minh xác minh chữ ký của Alice và Bob, thanh toán cho Alice số tiền trên vé của Bob và trả lại phần còn lại cho Bob.

Nếu Alice không muốn đóng kênh (do ác ý hoặc lỗi kỹ thuật), Bob có thể bắt đầu thời gian rút tiền (ví dụ: 7 ngày); nếu Alice không cung cấp vé trong thời gian đó, Bob sẽ nhận lại toàn bộ số tiền của mình.

Kỹ thuật này rất mạnh mẽ: nó có thể được điều chỉnh để xử lý các khoản thanh toán hai chiều, các mối quan hệ hợp đồng thông minh (ví dụ: Alice và Bob thực hiện một hợp đồng tài chính bên trong kênh) và thành phần (nếu Alice và Bob có một kênh mở và Bob và Charlie cũng vậy, Alice có thể tương tác một cách đáng tin cậy với Charlie).

Nhưng có những giới hạn đối với những gì các kênh có thể làm.

Không thể sử dụng các kênh để gửi tiền ngoài chuỗi cho những người chưa phải là người tham gia. Các kênh không thể được sử dụng để đại diện cho các đối tượng không có chủ sở hữu lôgic rõ ràng (ví dụ: Uniswap).

Và các kênh, đặc biệt nếu được sử dụng để làm những việc phức tạp hơn các khoản thanh toán định kỳ đơn giản, đòi hỏi một lượng vốn lớn sẽ bị khóa lại.

Plasma hoạt động như thế nào?

Xem thêm: giấy Plasma gốc , và Plasma Cash .

Để đặt cọc một tài sản, người dùng sẽ gửi nó đến hợp đồng thông minh quản lý chuỗi Plasma. Chuỗi Plasma chỉ định nội dung đó một ID duy nhất mới (ví dụ: 537).

Mỗi chuỗi Plasma có một nhà điều hành (đây có thể là một tác nhân tập trung, hoặc một đa ký tự, hoặc một cái gì đó phức tạp hơn như PoS hoặc DPoS). Mỗi khoảng thời gian (có thể là 15 giây, hoặc một giờ, hoặc bất kỳ thứ gì ở giữa), nhà điều hành tạo một "lô" bao gồm tất cả các giao dịch Plasma mà họ đã nhận được ngoài chuỗi.

Chúng tạo ra một cây Merkle, trong đó tại mỗi chỉ mục X trong cây, có một giao dịch chuyển tài sản ID X nếu một giao dịch đó tồn tại, và nếu không thì lá đó bằng không. Họ công bố gốc Merkle của cây này để xâu chuỗi.

Họ cũng gửi nhánh Merkle của mỗi chỉ số X cho chủ sở hữu hiện tại của tài sản đó. Để rút tài sản, người dùng xuất bản nhánh Merkle của giao dịch gần đây nhất gửi tài sản đó cho họ.

Hợp đồng bắt đầu một giai đoạn thử thách, trong đó bất kỳ ai cũng có thể cố gắng sử dụng các chi nhánh khác của Merkle để làm mất hiệu lực rút tiền bằng cách chứng minh rằng (i) người gửi không sở hữu tài sản tại thời điểm họ gửi hoặc (ii) họ đã gửi tài sản đó cho người khác vào một thời điểm nào đó sau này.

Nếu không ai chứng minh được rằng việc thoát ra là gian lận trong (ví dụ.) 7 ngày, người dùng có thể rút tài sản.

Plasma cung cấp các thuộc tính mạnh hơn các kênh: bạn có thể gửi tài sản cho những người tham gia chưa bao giờ là một phần của hệ thống và yêu cầu về vốn thấp hơn nhiều.

Nhưng nó phải trả giá đắt: các kênh không yêu cầu bất kỳ dữ liệu nào để đi vào chuỗi trong quá trình "hoạt động bình thường", nhưng Plasma yêu cầu mỗi chuỗi phải xuất bản một hàm băm theo khoảng thời gian đều đặn.

Ngoài ra, quá trình truyền Plasma không diễn ra ngay lập tức: bạn phải đợi khoảng thời gian kết thúc và khối được xuất bản.

Ngoài ra, Plasma và các kênh có chung một điểm yếu chính: lý thuyết trò chơi đằng sau lý do tại sao chúng an toàn dựa trên ý tưởng rằng mỗi đối tượng được điều khiển bởi cả hai hệ thống đều có một số "chủ sở hữu" hợp lý.

Nếu chủ sở hữu đó không quan tâm đến nội dung của họ thì có thể dẫn đến kết quả "không hợp lệ" liên quan đến nội dung đó. Điều này là ổn đối với nhiều ứng dụng, nhưng nó là một yếu tố phá vỡ thỏa thuận đối với nhiều ứng dụng khác (ví dụ: Uniswap).

Ngay cả những hệ thống mà trạng thái của một đối tượng có thể được thay đổi mà không có sự đồng ý của chủ sở hữu (ví dụ: hệ thống dựa trên tài khoản, nơi bạn có thể tăng số dư của ai đó mà không cần sự đồng ý của họ) cũng không hoạt động tốt với Plasma.

Tất cả điều này có nghĩa là cần phải có một lượng lớn "lý do ứng dụng cụ thể" trong bất kỳ triển khai plasma hoặc kênh thực tế nào và không thể tạo hệ thống plasma hoặc kênh chỉ mô phỏng môi trường ethereum đầy đủ (hoặc "EVM") . Để giải quyết vấn đề này, chúng ta phải ... điểm danh.

Bản tổng hợp

Xem thêm: EthHub về tổng hợp lạc quan và tổng hợp ZK .

Plasma và các kênh là các lược đồ lớp 2 "đầy đủ", trong đó chúng cố gắng di chuyển cả dữ liệu tính toán ra khỏi chuỗi.

Tuy nhiên, các vấn đề lý thuyết trò chơi cơ bản xung quanh tính khả dụng của dữ liệu có nghĩa là không thể thực hiện điều này một cách an toàn cho tất cả các ứng dụng. Plasma và các kênh giải quyết vấn đề này bằng cách dựa vào khái niệm rõ ràng về chủ sở hữu, nhưng điều này ngăn cản chúng hoàn toàn chung chung.

Mặt khác, bản tổng hợp là một sơ đồ lớp 2 "kết hợp".

Bản tổng hợp di chuyển tính toán (và lưu trữ trạng thái) ra ngoài chuỗi, nhưng giữ một số dữ liệu cho mỗi giao dịch trên chuỗi .

Để nâng cao hiệu quả, họ sử dụng một loạt các thủ thuật nén ưa thích để thay thế dữ liệu bằng tính toán bất cứ khi nào có thể.

Kết quả là một hệ thống mà khả năng mở rộng vẫn còn bị giới hạn bởi băng thông dữ liệu của blockchain cơ bản, nhưng ở một tỷ lệ rất thuận lợi: trong khi chuyển mã thông báo ERC20 lớp cơ sở Ethereum có chi phí ~ 45000 gas, chuyển mã thông báo ERC20 trong một lần tổng hợp chiếm 16 byte không gian trên chuỗi và chi phí dưới 300 gas.

Thực tế là dữ liệu trên chuỗi là chìa khóa (lưu ý: đặt dữ liệu "trên IPFS" không hoạt động, vì IPFS không cung cấp sự đồng thuận về việc có hay không có bất kỳ phần dữ liệu nhất định nào; dữ liệu phải đi trên một chuỗi khối).

Đưa dữ liệu vào chuỗi và có sự đồng thuận về thực tế đó cho phép bất kỳ ai cũng có thể xử lý cục bộ tất cả các hoạt động trong bản tổng hợp nếu họ muốn, cho phép họ phát hiện gian lận, bắt đầu rút tiền hoặc tự mình bắt đầu sản xuất các lô giao dịch.

Việc thiếu các vấn đề về tính khả dụng của dữ liệu có nghĩa là nhà điều hành ngoại tuyến hoặc độc hại thậm chí có thể gây hại ít hơn (ví dụ: họ không thể gây ra sự chậm trễ 1 tuần), mở ra không gian thiết kế lớn hơn nhiều cho những người có quyền xuất bản các lô và làm cho việc cuộn lại dễ dàng hơn rất nhiều để suy luận về.

Và quan trọng nhất, việc thiếu các vấn đề về tính khả dụng của dữ liệu có nghĩa là không còn nhu cầu ánh xạ tài sản cho chủ sở hữu, dẫn đến lý do chính tại sao cộng đồng Ethereum rất hào hứng với việc cuộn lên hơn so với các hình thức mở rộng lớp 2 trước đây: hoàn toàn có mục đích chung và thậm chí người ta có thể chạy một EVM bên trong một bản tổng hợp, cho phép các ứng dụng Ethereum hiện có chuyển sang các bản tổng hợp mà hầu như không cần viết bất kỳ mã mới nào .

OK, Vậy một bản tổng hợp hoạt động chính xác như thế nào?

Có một hợp đồng thông minh trên chuỗi duy trì gốc trạng thái: gốc Merkle của trạng thái cuộn lên (có nghĩa là, số dư tài khoản, mã hợp đồng, v.v., nằm "bên trong" bản tổng hợp).

image

Bất kỳ ai cũng có thể xuất bản một , một tập hợp các giao dịch ở dạng nén cao cùng với gốc trạng thái trước đó và gốc trạng thái mới (gốc Merkle sau khi xử lý các giao dịch).

Hợp đồng kiểm tra xem gốc trạng thái trước đó trong lô có khớp với gốc trạng thái hiện tại của nó hay không; nếu có, nó sẽ chuyển trạng thái gốc sang trạng thái gốc mới.

image

Để hỗ trợ việc gửi và rút tiền, chúng tôi thêm khả năng có các giao dịch có đầu vào hoặc đầu ra "bên ngoài" trạng thái cuộn lên.

Nếu một lô có đầu vào từ bên ngoài, giao dịch gửi lô cũng cần phải chuyển các nội dung này sang hợp đồng tổng hợp. Nếu một lô có kết quả đầu ra bên ngoài, thì khi xử lý lô, hợp đồng thông minh sẽ bắt đầu các lần rút tiền đó.

Và đó là nó! Ngoại trừ một chi tiết chính: làm thế nào để biết rằng các gốc sau trạng thái trong các lô là chính xác?

Nếu ai đó có thể gửi một lô với bất kỳ gốc nào sau trạng thái mà không có hậu quả, họ chỉ có thể chuyển tất cả các đồng tiền bên trong bản tổng hợp cho chính họ.

Câu hỏi này là then chốt bởi vì có hai nhóm giải pháp rất khác nhau cho vấn đề và hai nhóm giải pháp này dẫn đến hai hương vị của việc tổng hợp.

Bản tổng hợp Lạc quan so với bản tổng hợp ZK

Hai loại cuộn lên là:

  1. Bản tổng hợp lạc quan , sử dụng bằng chứng gian lận : hợp đồng tổng hợp theo dõi toàn bộ lịch sử gốc trạng thái và hàm băm của mỗi lô.

    Nếu bất kỳ ai phát hiện ra rằng một lô có gốc sau trạng thái không chính xác, họ có thể xuất bản bằng chứng cho chuỗi, chứng minh rằng lô đã được tính toán không chính xác.

    Hợp đồng xác minh bằng chứng và hoàn nguyên lô đó và tất cả các lô sau đó.

  2. Bản tổng hợp ZK , sử dụng bằng chứng hợp lệ : mỗi lô bao gồm bằng chứng mật mã được gọi là ZK-SNARK (ví dụ: sử dụng giao thức PLONK ), chứng minh rằng gốc sau trạng thái là kết quả chính xác của việc thực hiện lô.

    Bất kể tính toán lớn đến mức nào, bằng chứng có thể được xác minh rất nhanh trên chuỗi.

Có những sự cân bằng phức tạp giữa hai hương vị của việc cuộn lên:

image

Nói chung, quan điểm của riêng tôi là trong ngắn hạn, các đợt tổng hợp lạc quan có khả năng giành chiến thắng cho việc tính toán EVM cho mục đích chung và các đợt tổng hợp ZK có khả năng giành chiến thắng cho các khoản thanh toán đơn giản, trao đổi và các trường hợp sử dụng ứng dụng cụ thể khác, nhưng trong Việc tổng hợp ZK trung và dài hạn sẽ có lợi trong mọi trường hợp sử dụng khi công nghệ ZK-SNARK được cải thiện.

Giải phẫu bằng chứng gian lận

Tính bảo mật của một bản tổng hợp lạc quan phụ thuộc vào ý tưởng rằng nếu ai đó xuất bản một lô không hợp lệ vào bản tổng hợp, thì bất kỳ ai khác theo dõi chuỗi và phát hiện gian lận có thể xuất bản bằng chứng gian lận, chứng minh cho hợp đồng rằng lô đó không hợp lệ và nên được hoàn nguyên.

image

Bằng chứng gian lận tuyên bố rằng một lô không hợp lệ sẽ chứa dữ liệu có màu xanh lục: bản thân lô đó (có thể được kiểm tra dựa trên băm được lưu trữ trên chuỗi) và các phần của cây Merkle chỉ cần chứng minh các tài khoản cụ thể đã được đọc và / hoặc được sửa đổi theo lô.

Các nút trong cây màu vàng có thể được tái tạo lại từ các nút màu xanh lá cây và do đó không cần phải cung cấp.

Dữ liệu này đủ để thực thi lô và tính toán gốc sau trạng thái (lưu ý rằng điều này giống hệt như cách các máy khách không trạng thái xác minh các khối riêng lẻ).

Nếu gốc sau trạng thái được tính toán và gốc sau trạng thái được cung cấp trong lô không giống nhau, thì lô đó là gian lận.

Đảm bảo rằng nếu một lô được xây dựng không chính xác và tất cả các lô trước đó được xây dựng chính xác , thì có thể tạo ra bằng chứng gian lận cho thấy lô đó được xây dựng không chính xác.

Lưu ý xác nhận quyền sở hữu về các lô trước đó: nếu có nhiều hơn một lô không hợp lệ được xuất bản lên bản tổng hợp, thì tốt nhất là cố gắng chứng minh một lô không hợp lệ sớm nhất. Tất nhiên, nó cũng được đảm bảo rằng nếu một lô được xây dựng chính xác, thì không bao giờ có thể tạo ra bằng chứng gian lận cho thấy rằng lô đó không hợp lệ.

Nén hoạt động như thế nào?

Một giao dịch Ethereum đơn giản (để gửi ETH) mất ~ 110 byte. Tuy nhiên, việc chuyển ETH trên một bản cuộn lên chỉ mất ~ 12 byte:

image

Một phần của điều này chỉ đơn giản là mã hóa vượt trội: RLP của Ethereum lãng phí 1 byte cho mỗi giá trị trên độ dài của mỗi giá trị. Nhưng cũng có một số thủ thuật nén rất thông minh đang diễn ra:

  • Nonce : mục đích của tham số này là ngăn các replay. Nếu số nonce hiện tại của một tài khoản là 5, thì giao dịch tiếp theo từ tài khoản đó phải có số nonce 5, nhưng khi giao dịch được xử lý thì số nonce trong tài khoản sẽ tăng lên 6 nên giao dịch không thể được xử lý lại.

    Trong quá trình tổng hợp, chúng ta có thể bỏ qua nonce hoàn toàn, bởi vì chúng ta chỉ khôi phục nonce từ trạng thái trước đó; nếu ai đó cố gắng phát lại một giao dịch với nonce trước đó, chữ ký sẽ không thể xác minh, vì chữ ký sẽ được kiểm tra dựa trên dữ liệu có chứa nonce mới hơn.

  • Gasprice : chúng tôi có thể cho phép người dùng thanh toán với một phạm vi gasprice cố định, ví dụ: một sự lựa chọn của 16 lũy thừa liên tiếp của hai.

    Ngoài ra, chúng tôi có thể chỉ có một mức phí cố định trong mỗi đợt hoặc thậm chí chuyển hoàn toàn thanh toán gas ra bên ngoài giao thức tổng hợp và yêu cầu người giao dịch trả tiền cho người tạo đợt để đưa vào thông qua một kênh.

  • Khí : tương tự, chúng ta có thể hạn chế tổng lượng khí ở sự lựa chọn lũy thừa liên tiếp của hai. Ngoài ra, chúng tôi có thể chỉ có một giới hạn khí đốt ở cấp độ lô.

  • Để : chúng ta có thể thay thế địa chỉ 20 byte bằng một chỉ mục (ví dụ: nếu một địa chỉ là địa chỉ thứ 4527 được thêm vào cây, chúng ta chỉ sử dụng chỉ mục 4527 để tham chiếu đến nó.

    Chúng tôi sẽ thêm một cây con vào trạng thái để lưu trữ ánh xạ các chỉ số tới các địa chỉ).

  • Giá trị : chúng ta có thể lưu trữ giá trị trong ký hiệu khoa học. Trong hầu hết các trường hợp, chuyển khoản chỉ cần 1-3 chữ số có nghĩa.

  • Chữ ký : chúng ta có thể sử dụng chữ ký tổng hợp BLS , cho phép nhiều chữ ký được tổng hợp thành một chữ ký duy nhất ~ 32-96 byte (tùy thuộc vào giao thức).

    Sau đó, chữ ký này có thể được kiểm tra dựa trên toàn bộ tập hợp các thư và người gửi trong một loạt tất cả cùng một lúc.

    ~ 0,5 trong bảng thể hiện thực tế là có giới hạn về số lượng chữ ký có thể được kết hợp trong một tổng thể có thể được xác minh trong một khối duy nhất và do đó, các lô lớn sẽ cần một chữ ký cho mỗi ~ 100 giao dịch.

Một thủ thuật nén quan trọng dành riêng cho ZK rollups là nếu một phần của giao dịch chỉ được sử dụng để xác minh và không liên quan đến tính toán cập nhật trạng thái, thì phần đó có thể được đặt ngoài chuỗi.

Điều này không thể được thực hiện trong một lần tổng hợp lạc quan vì dữ liệu đó vẫn cần được đưa vào chuỗi trong trường hợp sau này cần được kiểm tra trong bằng chứng gian lận, trong khi trong bản tổng hợp ZK, SNARK chứng minh tính đúng đắn của lô đã chứng minh rằng bất kỳ dữ liệu nào cần thiết để xác minh đã được cung cấp.

Một ví dụ quan trọng về điều này là cuộn lên bảo vệ quyền riêng tư: trong một lần tổng hợp lạc quan, ZK-SNARK ~ 500 byte được sử dụng cho quyền riêng tư trong mỗi giao dịch cần phải diễn ra theo chuỗi, trong khi trong một đợt tổng hợp ZK, ZK-SNARK bao gồm toàn bộ lô đã không còn nghi ngờ rằng ZK-SNARK "bên trong" là hợp lệ.

Các thủ thuật nén này là chìa khóa cho khả năng mở rộng của các lần cuộn; Nếu không có chúng, cuộn lên có lẽ sẽ chỉ cải thiện ~ 10 lần về khả năng mở rộng của chuỗi cơ sở (mặc dù có một số ứng dụng tính toán cụ thể mà ngay cả những lần cuộn đơn giản cũng mạnh mẽ), trong khi với các thủ thuật nén, hệ số tỷ lệ có thể tăng hơn 100 lần cho gần như Tất cả các ứng dụng.

Ai có thể gửi một lô?

Có một số trường phái suy nghĩ về những người có thể gửi một loạt trong một bản tổng hợp lạc quan hoặc ZK.

Nhìn chung, mọi người đều đồng ý rằng để có thể gửi một đợt, người dùng phải đặt một khoản tiền gửi lớn; nếu người dùng đó từng gửi một lô gian lận (ví dụ: với gốc trạng thái không hợp lệ), khoản tiền gửi đó sẽ bị đốt cháy một phần và một phần được trao làm phần thưởng cho hành vi gian lận. Nhưng ngoài ra, có rất nhiều khả năng:

  • Tình trạng hỗn loạn hoàn toàn : bất kỳ ai cũng có thể gửi một lô bất kỳ lúc nào. Đây là cách tiếp cận đơn giản nhất, nhưng nó có một số nhược điểm quan trọng.

    Đặc biệt, có rủi ro là nhiều người tham gia sẽ tạo ra và cố gắng gửi các lô song song và chỉ một trong những lô đó có thể được đưa vào thành công.

    Điều này dẫn đến một lượng lớn nỗ lực lãng phí trong việc tạo ra các bằng chứng và / hoặc lãng phí khí trong việc xuất bản các lô đến chuỗi.

  • Trình xử lý trình tự tập trung : có một tác nhân duy nhất, trình xử lý trình tự , người có thể gửi các lô (trừ trường hợp rút tiền: kỹ thuật thông thường là người dùng có thể gửi yêu cầu rút tiền trước tiên, và sau đó nếu trình tự trình tự không xử lý việc rút tiền đó trong lần tiếp theo lô, sau đó người dùng có thể tự gửi một lô hoạt động đơn lẻ).

    Đây là "hiệu quả" nhất, nhưng nó phụ thuộc vào một tác nhân trung tâm để sống.

  • Đấu giá theo trình tự : một cuộc đấu giá được tổ chức (ví dụ: mỗi ngày) để xác định ai có quyền trở thành người trình tự cho ngày tiếp theo.

    Kỹ thuật này có lợi thế là nó gây quỹ và có thể được phân phối bởi ví dụ. một DAO được kiểm soát bởi bản tổng hợp (xem: Đấu giá MEV )

  • Lựa chọn ngẫu nhiên từ bộ PoS : bất kỳ ai cũng có thể gửi ETH (hoặc có thể là mã thông báo giao thức riêng của bản cuộn lên) vào hợp đồng cuộn lên và trình tự của mỗi lô được chọn ngẫu nhiên từ một trong những người gửi tiền, với xác suất được chọn tỷ lệ với số tiền ký gửi.

    Hạn chế chính của kỹ thuật này là nó dẫn đến khóa vốn không cần thiết với số lượng lớn.

  • Bỏ phiếu DPoS : có một trình tự sắp xếp duy nhất được chọn trong một cuộc đấu giá nhưng nếu họ hoạt động kém, chủ sở hữu mã thông báo có thể bỏ phiếu loại bỏ họ và tổ chức một cuộc đấu giá mới để thay thế chúng.

Phân chia theo lô và cung cấp gốc trạng thái

Một số bản tổng hợp hiện đang được phát triển đang sử dụng mô hình "chia lô", trong đó hành động gửi một loạt giao dịch lớp 2 và hành động gửi gốc trạng thái được thực hiện riêng biệt.

Điều này có một số lợi thế chính:

  1. Bạn có thể cho phép nhiều trình tự song song xuất bản các lô để cải thiện khả năng chống kiểm duyệt, mà không phải lo lắng rằng một số lô sẽ không hợp lệ vì một số lô khác đã được đưa vào trước.

  2. Nếu một gốc trạng thái là gian lận, bạn không cần phải hoàn nguyên toàn bộ lô; bạn chỉ có thể hoàn nguyên gốc trạng thái và đợi ai đó cung cấp gốc trạng thái mới cho cùng một đợt.

    Điều này mang lại cho người gửi giao dịch sự đảm bảo tốt hơn rằng các giao dịch của họ sẽ không bị hoàn nguyên.

Vì vậy, nhìn chung, có một vườn thú kỹ thuật khá phức tạp đang cố gắng cân bằng giữa những đánh đổi phức tạp liên quan đến hiệu quả, tính đơn giản, khả năng chống kiểm duyệt và các mục tiêu khác.

Vẫn còn quá sớm để nói sự kết hợp nào của những ý tưởng này hoạt động tốt nhất; thời gian sẽ trả lời.

Quy mô mà Rollups cung cấp cho bạn là bao nhiêu?

Trên chuỗi Ethereum hiện tại, giới hạn gas là 12,5 triệu và mỗi byte dữ liệu trong một giao dịch có giá 16 gas.

Điều này có nghĩa là nếu một khối không chứa gì ngoài một lô duy nhất (chúng tôi sẽ nói rằng một bản tổng hợp ZK được sử dụng, chi 500k tiền xăng để xác minh bằng chứng), lô đó có thể có (12 triệu / 16) = 750.000 byte dữ liệu.

Như được hiển thị ở trên, một bản tổng hợp để chuyển ETH chỉ yêu cầu 12 byte cho mỗi thao tác của người dùng, có nghĩa là lô có thể chứa tối đa 62.500 giao dịch.

Ở thời gian khối trung bình là 13 giây , điều này có nghĩa là ~ 4807 TPS (so với 12,5 triệu / 21000/13 ~ = 45 TPS đối với ETH chuyển trực tiếp trên chính Ethereum).

Đây là biểu đồ cho một số trường hợp sử dụng ví dụ khác:

image

Khả năng mở rộng tối đa được tính bằng (chi phí khí L1) / (byte trong cuộn lên * 16) * 12 triệu / 12,5 triệu.

Bây giờ, cần lưu ý rằng những con số này quá lạc quan vì một vài lý do. Quan trọng nhất, một khối hầu như không bao giờ chỉ chứa một lô, ít nhất là vì có và sẽ có nhiều lần tổng hợp.

Thứ hai, tiền gửi và rút tiền sẽ tiếp tục tồn tại. Thứ ba, trong ngắn hạn mức sử dụng sẽ thấp và do đó chi phí cố định sẽ chiếm ưu thế. Nhưng ngay cả khi đã tính đến những yếu tố này, mức tăng khả năng mở rộng trên 100 lần vẫn là tiêu chuẩn.

Bây giờ nếu chúng ta muốn lên trên ~ 1000-4000 TPS (tùy thuộc vào trường hợp sử dụng cụ thể) thì sao? Đây là nơi mà phân tích dữ liệu eth2 xuất hiện.

Đề xuất sharding mở ra một không gian 16 MB cứ sau 12 giây có thể được lấp đầy bằng bất kỳ dữ liệu nào và hệ thống đảm bảo sự đồng thuận về tính khả dụng của dữ liệu đó. Không gian dữ liệu này có thể được sử dụng bằng cách cuộn lên.

~ 1398k byte mỗi giây này là một sự cải thiện gấp 23 lần so với ~ 60 kB / giây của chuỗi Ethereum hiện tại và về lâu dài, dung lượng dữ liệu dự kiến sẽ còn phát triển hơn nữa.

Do đó, các bản tổng hợp sử dụng dữ liệu phân đoạn eth2 có thể xử lý chung lên tới ~ 100k TPS và thậm chí nhiều hơn nữa trong tương lai.

Một số thách thức chưa được giải quyết đầy đủ trong bản tổng hợp là gì?

Mặc dù khái niệm cơ bản về cuộn lên hiện đã được hiểu rõ, nhưng chúng tôi khá chắc chắn rằng chúng về cơ bản là khả thi và an toàn, và nhiều lần tổng hợp đã được triển khai cho mạng chính, vẫn còn nhiều lĩnh vực thiết kế cuộn lên chưa được khám phá kỹ, và khá nhiều thách thức trong việc đưa đầy đủ các phần lớn của hệ sinh thái Ethereum vào các đợt cuộn để tận dụng khả năng mở rộng của chúng.

Một số thách thức chính bao gồm:

  • Tích hợp người dùng và hệ sinh thái - không có nhiều ứng dụng sử dụng cuộn lên, cuộn lên không quen thuộc với người dùng và một số ví đã bắt đầu tích hợp cuộn lên.

    Các thương gia và tổ chức từ thiện chưa chấp nhận chúng để thanh toán.

  • Giao dịch kết hợp chéo - di chuyển hiệu quả tài sản và dữ liệu (ví dụ: kết quả đầu ra kỳ diệu) từ bản tổng hợp này sang bản tổng hợp khác mà không phải chịu chi phí chuyển qua lớp cơ sở.

  • Khuyến khích kiểm toán - làm thế nào để tối đa hóa cơ hội rằng ít nhất một nút trung thực thực sự sẽ xác minh đầy đủ một bản tổng hợp lạc quan để họ có thể xuất bản bằng chứng gian lận nếu có sự cố?

    Đối với các đợt tổng hợp quy mô nhỏ (lên đến vài trăm TPS), đây không phải là vấn đề đáng kể và người ta có thể đơn giản dựa vào lòng vị tha, nhưng đối với các đợt tổng hợp quy mô lớn hơn thì cần có lý do rõ ràng hơn về điều này.

  • Khám phá không gian thiết kế giữa plasma và cuộn lên - có những kỹ thuật đưa một số dữ liệu liên quan đến cập nhật trạng thái vào chuỗi nhưng không phải tất cả , và có điều gì hữu ích từ đó không?

  • Tối đa hóa tính bảo mật của xác nhận trước - nhiều bản cuộn cung cấp khái niệm "xác nhận trước" để UX nhanh hơn, trong đó trình sắp xếp ngay lập tức cung cấp lời hứa rằng một giao dịch sẽ được bao gồm trong lô tiếp theo và khoản tiền gửi của trình sắp xếp sẽ bị phá hủy nếu chúng vi phạm từ.

    Nhưng tính an toàn kinh tế của kế hoạch này bị hạn chế, vì khả năng đưa ra nhiều lời hứa với rất nhiều tác nhân cùng một lúc. Có thể cải thiện cơ chế này không?

  • Cải thiện tốc độ phản hồi đối với các trình tự sắp xếp vắng mặt - nếu trình tự của một cuộn lên đột ngột chuyển sang ngoại tuyến, sẽ rất có giá trị để phục hồi từ tình huống đó một cách tối đa nhanh chóng và rẻ tiền, nhanh chóng và rẻ tiền hàng loạt sang một bản tổng hợp khác hoặc thay thế trình tự sắp xếp.

  • ZK-VM hiệu quả - tạo bằng chứng ZK-SNARK cho thấy mã EVM mục đích chung (hoặc một số máy ảo khác mà các hợp đồng thông minh hiện có có thể được biên dịch) đã được thực thi chính xác và có kết quả nhất định.

Kết luận

Rollups là một mô hình mở rộng lớp 2 mới mạnh mẽ và dự kiến sẽ là nền tảng của việc mở rộng Ethereum trong tương lai ngắn hạn và trung hạn (và có thể cả dài hạn).

Họ đã nhận thấy một lượng lớn sự hào hứng từ cộng đồng Ethereum vì không giống như những nỗ lực trước đó trong việc mở rộng quy mô lớp 2, họ có thể hỗ trợ mã EVM có mục đích chung, cho phép các ứng dụng hiện có dễ dàng di chuyển.

Họ thực hiện điều này bằng cách đưa ra một thỏa hiệp quan trọng: không cố gắng đi hoàn toàn ngoài chuỗi, mà thay vào đó, để lại một lượng nhỏ dữ liệu cho mỗi giao dịch trên chuỗi.

Có nhiều loại tổng hợp và nhiều lựa chọn trong không gian thiết kế: một người có thể có một bản tổng hợp lạc quan bằng cách sử dụng bằng chứng gian lận hoặc bản tổng hợp ZK sử dụng bằng chứng hợp lệ (còn gọi là ZK-SNARKs).

Sequencer (người dùng có thể xuất bản các lô giao dịch lên chuỗi) có thể là một tác nhân tập trung, hoặc miễn phí cho tất cả hoặc nhiều lựa chọn khác ở giữa.

Rollups vẫn là một công nghệ giai đoạn đầu và sự phát triển đang tiếp tục nhanh chóng, nhưng chúng hoạt động và một số (đặc biệt là Loopring , ZKSyncDeversiFi ) đã hoạt động trong nhiều tháng. Mong đợi nhiều công việc thú vị hơn sẽ ra khỏi không gian tổng hợp trong những năm tới.

NHỮNG BÀI VIẾT LIÊN QUAN

L O A D I N G
. . . comments & more!
Hackernoon hq - po box 2206, edwards, colorado 81632, usa