Nhìn lại các tác phẩm của V God Rollups, hãy giải thích chi tiết tại sao Ethereum cần một kế hoạch mở rộng hai lớp?
Tác giả gốc:Vitalik
Tác giả gốc:TinTinLand
Rollup đang là xu hướng thịnh hành trong cộng đồng Ethereum và dự kiến sẽ trở thành giải pháp mở rộng quan trọng cho Ethereum trong tương lai. Nhưng chính xác công nghệ này là gì, và những gì mong đợi từ nó? Nó sẽ được sử dụng như thế nào? Bài viết này cố gắng trả lời một số câu hỏi chính liên quan đến Rollup trên cơ sở phân tích một số kế hoạch mở rộng quan trọng của Ethereum.
tiêu đề cấp đầu tiên
Bối cảnh: L1 và L2 là gì?
Thứ hai, cách sử dụng chuỗi khối có thể được thay đổi. Thay vì có tất cả các hoạt động của họ trực tiếp trên chuỗi khối, người dùng thực hiện hầu hết các hoạt động của họ ngoài chuỗi, trong 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ứ xảy ra ngoài chuỗi đều tuân theo các quy tắc. Có nhiều cách khác nhau để thực hiện các bằng chứng này, nhưng tất cả chúng đều có chung đặc điểm là việc xác minh các bằng chứng trên chuỗi rẻ hơn nhiều so với thực hiện tính toán thô ngoài chuỗi.
tiêu đề cấp đầu tiên
Có ba loại lược đồ lớp L2 chính: kênh trạng thái, Plasma và Rollups. Chúng thuộc về các mô hình khác nhau và có những ưu điểm và nhược điểm khác nhau.Phương thức hoạt động của ba sơ đồ khác nhau này sẽ được mô tả bên dưới.
tiêu đề phụ
Các kênh trạng thái hoạt động như thế nào
Giả sử một trường hợp cụ thể trong đó Alice cung cấp cho Bob kết nối Internet và Bob trả cho nó ở mức 0,001 đô la cho mỗi megabyte. Thay vì thanh toán mỗi lần, các giao dịch của họ sử dụng sơ đồ L2 sau.
Đầu tiên, Bob đặt $1 (ETH hoặc stablecoin tương đương) vào hợp đồng thông minh. Để thực hiện khoản thanh toán đầu tiên cho Alice, Bob ký vào một "vé" (một tin nhắn ngoại tuyến) có nội dung "$0,001" và gửi cho Alice. Để thực hiện khoản thanh toán thứ hai, Bob ký vào một tấm vé khác ghi "$0,002" và gửi cho Alice. Và cứ thế, thực hiện bao nhiêu khoản thanh toán mà bạn cần. Khi Alice và Bob hoàn tất giao dịch, Alice có thể gửi tờ tiền có giá trị cao nhất lên chuỗi và bọc nó bằng 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 cả Alice và Bob, trả 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 mục đích xấu hoặc lỗi kỹ thuật), Bob có thể bắt đầu khoảng thời gian thoát (ví dụ 7 ngày); nếu Alice không cung cấp vé trong khoảng thời gian này, thì Bob sẽ được hoàn lại toàn bộ số tiền của mình.
Sức mạnh của công nghệ này nằm ở chỗ nó có thể điều chỉnh mối quan hệ hợp đồng thông minh xử lý thanh toán hai chiều. Ví dụ: Alice và Bob ký kết hợp đồng trong một kênh và nếu Alice và Bob có một kênh mở, thì Bob và Charlie cũng vậy, Alice có thể có tương tác không đáng tin cậy với Charlie.
Xem thêm: https://www.jeffcoleman.ca/state-channels và statechannels.org
tiêu đề phụ
Cách thức hoạt động của plasma
Để ký gửi một tài sản, người dùng gửi nó đến một hợp đồng thông minh chi phối chuỗi Plasma. Chuỗi Plasma gán cho nội dung một ID duy nhất mới (ví dụ: 537). Mỗi chuỗi Plasma đều có một người điều hành (đây có thể là một tác nhân tập trung, hoặc một multisig hoặc thứ 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ỳ khoảng thời gian nào ở giữa), nhà điều hành tạo ra một "lô" chứa 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 trong cây có một giao dịch chuyển ID nội dung nếu giao dịch đó tồn tại, nếu không thì lá bằng không.
Họ cũng gửi Merkle fork của từng chỉ mục cho chủ sở hữu hiện tại của tài sản đó. Để rút một nội dung, người dùng xuất bản một ngã ba Merkle của giao dịch gần đây nhất và nội dung đó sẽ được gửi cho họ. Hợp đồng bắt đầu giai đoạn thử thách, trong đó bất kỳ ai cũng có thể cố gắng sử dụng các nhánh Merkle khác để chứng minh rằng lệnh thoát không hợp lệ, bằng cách (i) người gửi không sở hữu tài sản khi họ gửi, (ii) sau đó họ nhấp vào để gửi tài sản cho người khác. Nếu không có ai chứng minh rằng việc rút tiền là gian lận trong vòng 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 trạng thái: tài sản có thể được gửi cho những người tham gia chưa bao giờ tham gia vào hệ thống và yêu cầu về vốn thấp. Sự đánh đổi là thế này: trong các kênh "hoạt động bình thường" không yêu cầu bất kỳ dữ liệu nào phải có trên chuỗi, nhưng Plasma yêu cầu mỗi chuỗi xuất bản định kỳ một hàm băm. Ngoài ra, chuyển khối nội dung Plasma không diễn ra ngay lập tức và phải đợi cho đến khi khoảng thời gian hết hạn và khối được công khai trên chuỗi.
Xem thêm: http://plasma.io/plasma-deprecated.pdf
tiêu đề phụ
Cách Rollup hoạt động
Giới thiệu về Tổng số
Plasma và các kênh là các giải pháp L2 "đầy đủ" ở chỗ chúng cố gắng di chuyển cả dữ liệu và tính toán ra khỏi chuỗi. Tuy nhiên, các vấn đề cơ bản về lý thuyết trò chơi 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 chủ sở hữu, nhưng điều này ảnh hưởng đến phạm vi ứng dụng của chúng. Tuy nhiên, Rollups là một giải pháp L2 "lai". Rollup di chuyển hoạt động tính toán (và lưu trữ trạng thái) ngoài chuỗi, nhưng vẫn giữ các phần dữ liệu của từng tác vụ trên chuỗi. Để nâng cao hiệu quả, họ sử dụng rất nhiều thủ thuật nén phức tạp, thay thế dữ liệu bằng tính toán bất cứ khi nào có thể. Kết quả là khả năng mở rộng trong hệ thống vẫn bị giới hạn bởi băng thông dữ liệu của chuỗi khối cơ bản, nhưng ở mức độ thấp hơn: chi phí chuyển mã thông báo ERC20 trong lớp cơ sở của Ethereum là khoảng 45000 gas, trong khi chuyển mã thông báo ERC20 trong Rollup chiếm 16 byte không gian trên chuỗi, chi phí ít hơn 300 gas.
Cần lưu ý rằng việc đưa dữ liệu "lên IPFS" sẽ không hoạt động vì IPFS không có sự đồng thuận về việc liệu bất kỳ phần dữ liệu cụ thể nào có thể sử dụng được hay không và dữ liệu phải có trên chuỗi khối. Với sự đồng thuận của việc đưa dữ liệu vào chuỗi, Rollups cho phép mọi người xử lý cục bộ bất kỳ hoạt động nào họ muốn, cho phép họ phát hiện gian lận, bắt đầu rút tiền hoặc bắt đầu tự tạo các lô giao dịch. Việc thiếu các mối lo ngại về tính khả dụng của dữ liệu có nghĩa là các nhà khai thác độc hại hoặc ngoại tuyến có thể gây hại ít hơn (ví dụ: họ không thể gây ra sự chậm trễ trong 1 tuần) và Rollup dễ lý luận hơn, mở ra nhiều chỗ hơn cho những người có quyền phát hành lô . Trên hết, việc thiếu các vấn đề về tính sẵn có của dữ liệu có nghĩa là không cần ánh xạ tài sản tới chủ sở hữu nữa, điều này đã khiến cộng đồng Ethereum rất quan tâm đến các giải pháp mở rộng quy mô Rollups.
Xem thêm: https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/optimistic_rollups/
Cách tổng hợp hoạt động

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 Rollups (có nghĩa là số dư tài khoản, mã hợp đồng, v.v., Rollups "bên trong").

Bất kỳ ai cũng có thể xuất bản một lô, một tập hợp các giao dịch được nén ở mức độ 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ý 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 đúng, nó sẽ chuyển trạng thái gốc sang gốc trạng thái mới.
Làm thế nào để bạn biết rằng gốc hậu trạng thái trong lô là chính xác? Nếu ai đó có thể gửi một đợt với bất kỳ gốc sau trạng thái nào mà không gặp hậu quả gì, thì họ có thể chuyển tất cả tiền trong Rollups cho chính họ. Vấn đề này rất quan trọng vì đã phát sinh hai dòng giải pháp riêng biệt, dẫn đến hai Tổng số khác nhau.
tiêu đề cấp đầu tiên
Tổng hợp lạc quan và Tổng hợp ZK
Hai loại Tổng số là:
Bản tổng hợp lạc quan, sử dụng bằng chứng gian lận: Hợp đồng Bản tổng hợp theo dõi toàn bộ lịch sử gốc trạng thái và giá trị băm của nó cho mỗi đợt. Nếu ai đó tìm thấy một lô có gốc sau trạng thái không chính xác, họ có thể đăng bằng chứng để liên kết rằng lô đó đã được tính toán không chính xác. Hợp đồng sẽ xác minh bằng chứng và khôi phục đợt đó và tất cả các đợt tiếp theo.
ZKRollups (Zero-Knowledge Rollups), sử dụng bằng chứng về tính hợp lệ: mỗi lô chứa bằng chứng mã hóa đượ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ằng chứng có thể được xác minh rất nhanh trên chuỗi, bất kể cường độ tính toán như thế nào.

Nhìn chung, trong thời gian ngắn, Bản tổng hợp lạc quan có khả năng giành chiến thắng trong các tính toán EVM nói chung, trong khi Bản tổng hợp ZK có khả năng giành chiến thắng trong các khoản thanh toán, trao đổi đơn giản và các trường hợp sử dụng dành riêng cho ứng dụng khác.
tiêu đề phụ
Cấu tạo của một bằng chứng gian lận

Tính bảo mật của Bản tổng hợp lạc quan phụ thuộc vào giả định rằng nếu ai đó đăng lô không hợp lệ vào Bản tổng hợp, thì bất kỳ ai khác phát hiện gian lận đều có thể đăng bằng chứng gian lận, chứng minh cho hợp đồng rằng lô không hợp lệ và cần được khôi phục.
Chắc chắn, 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 rằng lô đó được xây dựng không chính xác. Lưu ý tuyên bố về các lô trước đó: nếu nhiều lô không hợp lệ được đưa vào Rollup, tốt nhất bạn nên cố gắng chứng minh rằng lô cũ nhất không hợp lệ. Tất nhiên, nếu lô được xây dựng chính xác, sẽ không bao giờ có thể tạo ra bằng chứng gian lận rằng lô không hợp lệ.
tiêu đề phụ
Nguyên tắc nén dữ liệu

Một giao dịch Ethereum đơn giản (gửi ETH) mất khoảng 110 byte. Tuy nhiên, chuyển ETH trong Rollup chỉ mất khoảng 12 byte:
Một phần của điều này chỉ là mã hóa cấp cao: RLP của Ethereum lãng phí 1 byte trên độ dài của mỗi giá trị. Nhưng nó cũng chứa một số kỹ thuật nén:
Nonce: Mục đích của tham số này là để ngăn chặn các cuộc tấn công lặp lại. Nếu Nonce hiện tại của một tài khoản là 5, giao dịch tiếp theo cho tài khoản đó phải có Nonce 5 và sau khi giao dịch được xử lý, nonce trong tài khoản sẽ tăng lên 6, vì vậy giao dịch không thể được xử lý lại. Trong Rollups, chúng ta có thể bỏ qua nonce hoàn toàn vì chúng ta chỉ đang khôi phục nonce từ trạng thái trước đó; nếu ai đó cố gắng phát lại giao dịch với nonce trước đó, chữ ký sẽ không thể kiểm chứng được vì chữ ký sẽ đối lập với dữ liệu chứa nonce cao hơn Kiểm tra.
Gasprice: Chúng tôi cho phép người dùng thanh toán trong một phạm vi Gasprice cố định, chẳng hạn như 2 mũ 16. Hoặc có thể có một khoản phí cố định cho mỗi đợt hoặc thậm chí chuyển hoàn toàn khoản thanh toán gas ra khỏi giao thức Rollups và yêu cầu những người tham gia giao dịch trả phí cho người tạo đợt thông qua các kênh của tiểu bang.
Gas: Chúng ta cũng có thể giới hạn tổng lượng gas ở mức bội số của 2. Hoặc đặt giới hạn khí ở cấp độ lô.
Đến: Chúng ta có thể thay thế địa chỉ 20 byte bằng chỉ mục. 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 để chỉ địa chỉ đó và một cây con sẽ được thêm vào trạng thái để lưu trữ chỉ mục cho địa chỉ.
Giá trị: Chúng ta có thể lưu trữ các giá trị trong ký hiệu khoa học. Trong hầu hết các trường hợp, chỉ cần 1-3 chữ số có nghĩa để chuyển.
Chữ ký: Chúng ta có thể sử dụng chữ ký tổng hợp BLS, cho phép tổng hợp một số lượng lớn chữ ký thành một chữ ký duy nhất khoảng 32-96 byte (tùy thuộc vào giao thức). Chữ ký này sau đó có thể được kiểm tra đối với toàn bộ tập hợp thư và người gửi trong một đợt. "Khoảng 0,5" trong bảng chỉ ra rằng có giới hạn về số lượng chữ ký có thể được kết hợp trong một tập hợp có thể được xác minh trong một khối duy nhất, do đó, các lô lớn yêu cầu khoảng một chữ ký cho mỗi 100 giao dịch.
Những thủ thuật nén này là chìa khóa cho khả năng mở rộng của Rollup. Nếu không có chúng, Rollup có thể chỉ có khả năng mở rộng khoảng 10 lần so với chuỗi cơ sở (mặc dù có một số ứng dụng chuyên sâu về điện toán mà ngay cả Rollup đơn giản cũng mạnh mẽ) và với tính năng nén dữ liệu, khả năng mở rộng của hầu hết tất cả các ứng dụng Cả hai đều có thể đạt được hơn 100 lần cải tiến.
tiêu đề phụ
Ai có thể gửi lô?
Có nhiều tranh luận về việc ai có thể gửi các đợt trong Lạc quan hoặc ZKRollups. Nói chung, mọi người đều đồng ý rằng để có thể gửi một đợt, người dùng phải trả một khoản tiền gửi lớn; nếu người dùng đó từng gửi một đợt gian lận (ví dụ: với trạng thái gốc không hợp lệ), khoản tiền gửi này sẽ bị hủy một phần và được trả lại một phần như một phần thưởng Gian lận Prover. 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 đợt bất kỳ lúc nào. Đây là phương pháp dễ nhất, nhưng nó có một số nhược điểm quan trọng. Sau khi có nhiều người tham gia, hãy tạo và cố gắng gửi các lô song song, nhưng cuối cùng chỉ có một lô có thể được đóng gói thành công. Điều này dẫn đến rất nhiều nỗ lực lãng phí trong việc tạo ra các bằng chứng, cũng như lãng phí khí xuất bản các lô vào chuỗi.
Xử lý tập trung: tồn tại một trình sắp xếp thứ tự để gửi các đợt (ngoại trừ 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, sau đó nếu trình sắp xếp thứ tự không xử lý việc rút tiền trong đợt tiếp theo, thì người dùng có thể tự gửi yêu cầu đó lô hoạt động đơn lẻ). Đây là cách "hiệu quả" nhất, nhưng nó dựa vào một tác nhân cốt lõi để vận hành.
Đấu giá người phân loại: 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 phân loại vào ngày hôm sau. Ưu điểm của công nghệ này là nó có thể gây quỹ để phân phối thêm thông qua DAO do Rollups kiểm soát. (Xem: Đấu giá MEV)
Bỏ phiếu DPoS: Bộ nối tiếp được chọn trong một cuộc đấu giá, nhưng nếu chúng hoạt động kém, chủ sở hữu mã thông báo có thể bỏ phiếu để loại bỏ chúng và tổ chức một cuộc đấu giá mới.
tiêu đề phụ
Chia lô và cung cấp gốc trạng thái
Các tổng số hiện đang được phát triển sử dụng phương pháp "chia lô", tức là gửi một loạt thao tác L2 và gửi gốc trạng thái được thực hiện riêng. Điều này có một số lợi thế chính:
Nhiều nhà phân loại có thể được phép xuất bản các lô song song để tăng khả năng chống kiểm duyệt mà không phải lo lắng rằng một số lô sẽ bị vô hiệu vì một số lô khác đã được đưa vào trước.
Nói chung, đó là một kỹ thuật khá phức tạp nhằm cố gắng đạt được sự cân bằng phức tạp giữa tính 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. Còn quá sớm để nói sự kết hợp nào của những ý tưởng này sẽ hoạt động tốt nhất. Thời gian sẽ chứng minh tất cả.
tiêu đề cấp đầu tiên
Rollup có thể mang lại bao nhiêu quy mô?
Dưới đây là sơ đồ cho một số trường hợp sử dụng ví dụ khác:

Mô tả hình ảnh
Mức tăng khả năng mở rộng tối đa được tính bằng (chi phí gas L1) / (byte trong Rollup * 16) * 12 triệu / 12,5 triệu.
Bây giờ, nếu chúng ta muốn vượt quá ~1000-4000 TPS thì sao? Đây là lúc mà tính năng bảo vệ dữ liệu Eth2 xuất hiện. Đề xuất sharding cung cấp 16 MB dung lượng cứ sau 12 giây, có thể chứa bất kỳ dữ liệu nào và đảm bảo tính khả dụng của dữ liệu đó. Nếu không gian dữ liệu này được Rollups sử dụng, dung lượng khoảng 1398kb mỗi giây cao gấp 23 lần so với dung lượng của chuỗi Ethereum hiện có. Về lâu dài, dung lượng dữ liệu dự kiến sẽ tăng hơn nữa. Do đó, Rollup sử dụng dữ liệu phân đoạn Eth2 có thể cùng xử lý tới khoảng 100.000 giao dịch và thậm chí nhiều hơn trong tương lai.
tiêu đề cấp đầu tiên
Rollup có những thách thức nào chưa được giải quyết hoàn toàn?
Mặc dù các khái niệm cơ bản về Rollup hiện đã được hiểu rõ, chúng khả thi và an toàn, đồng thời đã có nhiều Rollup được triển khai cho mạng chính, nhưng vẫn còn nhiều lĩnh vực thiết kế Rollups chưa được khám phá đầy đủ, khiến phần lớn hệ sinh thái Ethereum có nhiều thách thức trong việc đưa nội dung đầy đủ vào Rollup. Một số câu hỏi chính bao gồm:
Mục nhập của người dùng và hệ sinh thái - Không có nhiều dự án sử dụng Rollups, người dùng chưa quen với nó và ít ví tích hợp Rollups. Người bán và tổ chức từ thiện chưa hỗ trợ phương thức thanh toán này.
Giao dịch tổng số chéo - Di chuyển nội dung và dữ liệu một cách hiệu quả từ một Tổng số này sang một Tổng số khác mà không phát sinh phí L1.
Ưu đãi kiểm tra - Làm cách nào để tối đa hóa cơ hội có ít nhất một nút trung thực xác thực đầy đủ Bản tổng hợp lạc quan, để chúng phát bằng chứng gian lận khi có vấn đề phát sinh? Đối với Rollup quy mô nhỏ (lên đến hàng trăm giao dịch mỗi giây), vấn đề này không phải là vấn đề lớn, bởi vì nó chỉ là vấn đề nỗ lực của người khai thác, nhưng đối với Rollup quy mô lớn, cần có thêm lý do để thuyết phục người khai thác thực hiện xác minh.
Khám phá không gian thiết kế giữa Plasma và Rollups - có kỹ thuật nào để đưa một số, nhưng không phải tất cả, dữ liệu liên quan đến cập nhật trạng thái vào chuỗi, điều đó sẽ dẫn đến điều gì đó hữu ích không?
An toàn trước khi xác nhận tối đa - Nhiều Rollup cung cấp khái niệm "xác nhận trước" để có trải nghiệm người dùng nhanh hơn, trong đó người đặt hàng ngay lập tức đưa ra lời hứa rằng giao dịch sẽ được đưa vào đợt tiếp theo và nếu người đặt hàng vi phạm lời hứa, người gửi tiền tiền gửi sẽ bị phá hủy. Nhưng tính an toàn kinh tế của cơ chế này là hạn chế, vì có thể đưa ra nhiều cam kết với nhiều bên tham gia cùng một lúc. Cơ chế này có thể được cải thiện?
ZK-VM hiệu quả - Tạo ZK-SNARK chứng minh rằng mã EVM chung (hoặc một số VM khác mà hợp đồng thông minh hiện có có thể biên dịch) đã thực thi chính xác với kết quả nhất định.
tiêu đề cấp đầu tiên
Tóm lại là
Từ góc độ thiết kế kỹ thuật, có nhiều loại Tổng số, chẳng hạn như Tổng số lạc quan sử dụng bằng chứng gian lận và Tổng số ZK (ZK-SNARK) sử dụng bằng chứng hợp lệ. Tổng số vẫn là một công nghệ ban đầu, đang phát triển nhanh chóng và hy vọng sẽ thấy nhiều dự án thú vị hơn trong không gian Tổng số trong những năm tới.


