Ở đầu, Ethereum có hai chiến lược mở rộng trong lộ trình của mình. Một (ví dụ xem bài báo sớm nàytừ năm 2015) là "sharding": thay vì xác minh và lưu trữ tất cả các giao dịch trong chuỗi, mỗi nút chỉ cần xác minh và lưu trữ một phần nhỏ của các giao dịch. Đây là cách mà bất kỳ mạng ngang hàng nào khác (ví dụ: BitTorrent) cũng hoạt động, vì vậy chắc chắn chúng ta có thể làm cho các chuỗi khối hoạt động theo cùng một cách. Một trong những cách khác là các giao thức tầng 2: các mạng sẽ đặt trên cơ sở của Ethereum một cách cho phép chúng hoàn toàn hưởng lợi từ tính bảo mật của nó, trong khi giữ phần lớn dữ liệu và tính toán ra khỏi chuỗi chính. "Các giao thức tầng 2" có nghĩa làkênh trạng tháinăm 2015, Plasmanăm 2017, và sau đó rollupsvào năm 2019. Rollups mạnh mẽ hơn so với các kênh trạng thái hoặc Plasma, nhưng họ đòi hỏi một lượng lớn băng thông dữ liệu on-chain. May mắn thay, vào năm 2019, nghiên cứu phân mảnh đã giải quyếtvấn đề xác minh “khả năng truy cập dữ liệu” ở quy mô lớnKết quả là, hai con đường đã hội tụ, và chúng tôi đã nhận được lộ trình tập trung vào rollupmà vẫn là chiến lược mở rộng của Ethereum ngày nay.
The Surge, 2023 roadmap edition.
Lộ trình tập trung vào rollup đề xuất một phân chia công việc đơn giản: Ethereum L1 tập trung vào việc trở thành một lớp cơ sở mạnh mẽ và phi tập trung, trong khi L2s đảm nhận nhiệm vụ giúp hệ sinh thái mở rộng. Đây là một mẫu hình tái diễn khắp mọi nơi trong xã hội: hệ thống tòa án (L1) không phải là để trở nhanh chóng và hiệu quả cực cao, nó tồn tại để bảo vệ hợp đồng và quyền sở hữu, và là trách nhiệm của doanh nhân (L2) xây dựng trên cơ sở đóvững chắc căn cứ lớpvà đưa loài người đến (ẩn dụ và hiển nhiên) sao Hỏa.
Năm nay, lộ trình tập trung vào rollup đã đạt được những thành công quan trọng: băng thông dữ liệu Ethereum L1 đã tăng lên rất nhiều với EIP-4844 blobs, và hiện tại có nhiều EVM rollups ở giai đoạn 1. Một rấtcài đặt phân mảnh đa dạng và đa nguyên tố, nơi mỗi L2 hoạt động như một "phân đoạn" với các quy tắc và logic nội bộ riêng, giờ đây đã trở thành hiện thực. Nhưng như chúng ta đã thấy, đi theo con đường này có một số thách thức độc đáo của riêng nó. Và vì vậy, bây giờ nhiệm vụ của chúng tôi là hoàn thành lộ trình tập trung vào rollup và giải quyết những vấn đề này, trong khi vẫn duy trì sự mạnh mẽ và phi tập trung làm cho Ethereum L1 trở nên đặc biệt.
Vấn đề ba khía cạnh về khả năng mở rộng là một ý tưởng được giới thiệu vào năm 2017, người ta lập luận rằng có một sự căng thẳng giữa ba tính chất của một blockchain: phân quyền (cụ thể hơn: chi phí thấp để chạy một node), khả năng mở rộng (cụ thể hơn: số giao dịch được xử lý cao), và bảo mật (cụ thể hơn: một kẻ tấn công cần phải phá hoại một phần lớn các node trong toàn bộ mạng để thậm chí một giao dịch đơn lẻ cũng thất bại).
Đáng chú ý, ba điểm hạn chế không phải là một định lý, và bài viết giới thiệu ba điểm hạn chế không đi kèm với một chứng minh toán học. Nó chỉ đưa ra một lập luận toán học gợi ý: nếu một nút thân thiện với sự phân quyền (ví dụ: laptop tiêu dùng) có thể xác minh N giao dịch mỗi giây, và bạn có một chuỗi xử lý k*N giao dịch mỗi giây, thì hoặc (i) mỗi giao dịch chỉ được nhìn thấy bởi 1/k số nút, điều này ngụ ý một kẻ tấn công chỉ cần phá hoại một số nút để tiến hành một giao dịch xấu, hoặc (ii) các nút của bạn sẽ mạnh mẽ và chuỗi của bạn không phân quyền. Mục đích của bài viết không phải để chứng minh việc phá vỡ ba điểm hạn chế là không thể; thay vào đó, mục đích của nó là để cho thấy việc phá vỡ ba điểm hạn chế là khó - nó đòi hỏi cách nghĩ ngoài hộp mà lập luận ngụ ý.
Trong nhiều năm qua, đã phổ biến khi một số chuỗi hoạt động cao cấp tuyên bố giải quyết tam giác mâu thuẫn mà không cần thực hiện bất kỳ điều gì thông minh ở cấp độ kiến trúc cơ bản, thường bằng cách sử dụng các chiêu thức kỹ thuật phần mềm để tối ưu hóa nút. Điều này luôn gây hiểu lầm và việc chạy một nút trên các chuỗi như vậy luôn kết thúc khó khăn hơn nhiều so với trên Ethereum.Bài viết nàyđi vào một số điều tinh tế vì sao điều này lại xảy ra (và vì vậy, tại sao kỹ sư phần mềm L1 client không thể mở rộng Ethereum một cách độc lập).
Tuy nhiên, sự kết hợp giữa việc lấy mẫu sẵn có dữ liệu và SNARKs đã giải quyết vấn đề tam đạng: nó cho phép một bên thứ ba xác minh rằng một lượng dữ liệu nào đó có sẵn, và một số bước tính toán đã được thực hiện đúng, trong khi chỉ tải về một phần nhỏ của dữ liệu đó và thực hiện một lượng tính toán nhỏ hơn nhiều. SNARKs không đòi hỏi tin tưởng. Việc lấy mẫu sẵn có dữ liệu có tính tinh tế.Mô hình tin cậy một số N, nhưng nó bảo tồn tính chất cơ bản mà các chuỗi không thể mở rộng có, đó là ngay cả một cuộc tấn công 51% cũng không thể buộc các khối xấu được chấp nhận bởi mạng lưới.
Một cách khác để giải quyết vấn đề tam đa là kiến trúc Plasma, sử dụng các kỹ thuật thông minh để đẩy trách nhiệm theo dõi sự có sẵn của dữ liệu cho người dùng một cách tương thích với động lực. Trong thời kỳ từ năm 2017-2019, khi tất cả những gì chúng ta có để mở rộng tính toán là chứng minh gian lận, Plasma bị hạn chế rất nhiều trong việc mà nó có thể an toàn thực hiện, nhưng việc phổ cập SNARKs đã làm cho kiến trúc Plasma có khả năng hơn rất nhiềucho một loạt các trường hợp sử dụng rộng hơn so với trước đây.
Vào ngày 13 tháng 3 năm 2024, khi Nâng cấp Dencun Đi vào hoạt động, blockchain Ethereum có ba ~ 125 kB "blobs" trên mỗi khe cắm 12 giây, hoặc ~ 375 kB trên mỗi khe băng thông khả dụng dữ liệu. Giả sử dữ liệu giao dịch được công bố trực tiếp trên chuỗi, chuyển khoản ERC20 là ~ 180 byte và do đó, TPS tối đa của bản tổng hợp trên Ethereum là:
375000 / 12 / 180 = 173.6 TPS
Nếu chúng ta thêm dữ liệu cuộc gọi của Ethereum (tối đa lý thuyết: 30 triệu gas mỗi khe / 16 gas mỗi byte = 1.875.000 byte mỗi khe), điều này sẽ trở thành 607 TPS. Với PeerDAS, kế hoạch là tăng mục tiêu số lượng blob lên 8-16, điều này sẽ cho chúng ta 463-926 TPS trong dữ liệu cuộc gọi.
Đây là một bước tăng đáng kể so với Ethereum L1, nhưng chưa đủ. Chúng tôi muốn mở rộng khả năng mở rộng nhiều hơn nữa. Mục tiêu trung hạn của chúng tôi là 16 MB mỗi khe cắm, nếu kết hợp với cải tiến trong nén dữ liệu rollup sẽ mang lại cho chúng tôi khoảng ~58,000 TPS.
PeerDAS là một triển khai tương đối đơn giản của "lấy mẫu 1D". Mỗi blob trong Ethereum là một đa thức độ-4096 trên trường nguyên tố 253 bit. Chúng tôi phát sóng "cổ phần" của đa thức, trong đó mỗi phần bao gồm 16 đánh giá tại 16 tọa độ liền kề được lấy từ tổng số 8192 tọa độ. Bất kỳ 4096 trong số 8192 đánh giá (với các thông số được đề xuất hiện tại: bất kỳ 64 trong số 128 mẫu có thể) có thể phục hồi blob.
PeerDAS hoạt động bằng cách khiến mỗi khách hàng lắng nghe trên một số mạng con nhỏ, trong đó mạng con thứ i phát sóng mẫu thứ i của bất kỳ đống dữ liệu nào, và đồng thời yêu cầu đống dữ liệu trên các mạng con khác mà nó cần bằng cách yêu cầu các đồng nghiệp của mình trong mạng p2p toàn cầu (những người sẽ lắng nghe trên các mạng con khác nhau). Một phiên bản cẩn thận hơn, SubnetDAS, chỉ sử dụng cơ chế mạng con, mà không cần tới lớp bổ sung để hỏi các đồng nghiệp. Một đề xuất hiện tại là để các nút tham gia chứng minh cổ phần sử dụng SubnetDAS, và để các nút khác (tức là “khách hàng”) sử dụng PeerDAS.
Về lý thuyết, chúng ta có thể mở rộng việc lấy mẫu 1D khá xa: nếu chúng ta tăng số lượng blob tối đa lên 256 (vì vậy, mục tiêu là 128), thì chúng ta sẽ đạt được mục tiêu 16 MB của chúng ta trong khi việc lấy mẫu sẵn có dữ liệu chỉ tốn cho mỗi nút 16 mẫu128 blobs512 byte mỗi mẫu mỗi khối = 1 MB dữ liệu băng thông mỗi khe cắm. Điều này chỉ đúng trong phạm vi dung nạp của chúng tôi: có thể thực hiện được, nhưng điều đó có nghĩa là các máy khách bị hạn chế băng thông không thể lấy mẫu. Chúng ta có thể tối ưu hóa điều này một chút bằng cách giảm số lượng khối và tăng kích thước khối, nhưng điều này sẽ làm cho việc tái tạo đắt đỏ hơn.
Và cuối cùng, chúng tôi muốn đi xa hơn, và thực hiệnLấy mẫu 2D, hoạt động bằng cách lấy mẫu ngẫu nhiên không chỉ trong các blob, mà còn giữa các blob. Các tính chất tuyến tính của cam kết KZG được sử dụng để “mở rộng” tập hợp các blob trong một khối với một danh sách các “blob ảo” mới mà mã hóa dư thừa cùng thông tin.
Lấy mẫu 2D. Nguồn: a16z crypto
Điều quan trọng, tính toán sự mở rộng của cam kết không đòi hỏi phải có các blob, vì vậy hệ thống này cơ bản là thân thiện với việc xây dựng khối phân tán. Node thực sự xây dựng khối chỉ cần có cam kết blob KZG, và có thể dựa vào DAS để xác minh sự có sẵn của các blob. 1D DAS cũng thân thiện với việc xây dựng khối phân tán theo bản chất.
Bước tiếp theo ngay lập tức là hoàn thành việc triển khai và triển khai PeerDAS. Từ đó, điều quan trọng là tiếp tục tăng số lượng blob trên PeerDAS một cách tiến bộ trong khi cẩn thận quan sát mạng và cải thiện phần mềm để đảm bảo an toàn. Đồng thời, chúng tôi muốn có nhiều công việc học thuật hơn về việc hình thành PeerDAS và các phiên bản khác của DAS và tương tác của nó với các vấn đề như an toàn luật lựa chọn fork.
Hơn nữa trong tương lai, chúng ta cần nhiều công việc hơn để tìm ra phiên bản lý tưởng của DAS 2D và chứng minh các đặc tính an toàn của nó. Chúng tôi cũng muốn cuối cùng chuyển từ KZG sang một giải pháp thay thế không cần thiết lập lượng tử, đáng tin cậy. Hiện tại, chúng tôi không biết có ứng viên nào thân thiện với việc xây dựng khối phân tán. Ngay cả kỹ thuật "brute force" đắt tiền của việc sử dụng STARK đệ quy để tạo ra bằng chứng về tính hợp lệ để tái tạo các hàng và cột cũng không đủ, bởi vì trong khi về mặt kỹ thuật, STARK có kích thước băm O (log (n) * log (log (n)) (với STIR) trong thực tế, một STARK gần bằng cỡ một khối toàn bộ.
Những con đường thực tế mà tôi thấy cho dài hạn là:
Chúng ta có thể xem những điều này theo một phổ thong mại:
Lưu ý rằng sự lựa chọn này vẫn tồn tại ngay cả khi chúng ta quyết định mở rộng thực thi trên L1 trực tiếp. Điều này xảy ra vì nếu L1 phải xử lý nhiều giao dịch mỗi giây, các khối L1 sẽ trở nên rất lớn, và các máy khách sẽ muốn một cách hiệu quả để xác minh rằng chúng là chính xác, vì vậy chúng ta sẽ phải sử dụng cùng công nghệ mà làm cho rollups mạnh mẽ (ZK-EVM và DAS) tại L1.
Nhu cầu về 2D DAS được giảm bớt một phần, hoặc ít nhất là trì hoãn, nếu việc nén dữ liệu (xem dưới đây) được thực hiện, và nó càng được giảm bớt hơn nếu Plasma được sử dụng rộng rãi. DAS cũng đặt ra một thách thức đối với các giao thức và cơ chế xây dựng khối phân tán: trong khi DAS lí thuyết thân thiện với việc tái tạo phân tán, điều này cần phải được kết hợp trong thực tế vớidanh sách bao gồmcác đề xuất và cơ chế lựa chọn fork xung quanh chúng.
Mỗi giao dịch trong một rollup chiếm một lượng dữ liệu đáng kể trên chuỗi: một việc chuyển ERC20 mất khoảng 180 byte. Ngay cả khi có mẫu dữ liệu khả dụng lý tưởng, điều này đặt ra một giới hạn về tính mở rộng của các giao thức tầng 2. Với 16 MB mỗi khe, chúng ta có:
16000000 / 12 / 180 = 7407 TPS
Điều gì nếu ngoài việc giải quyết tử số, chúng ta cũng có thể giải quyết mẫu số, và làm cho mỗi giao dịch trong một cuộn giảm số byte trên chuỗi?
Phần giải thích tốt nhất theo ý kiến của tôi là sơ đồ nàytừ hai năm trước:
Những lợi ích đơn giản nhất chỉ là nén byte không: thay thế mỗi chuỗi byte không đến bằng hai byte đại diện cho số lượng byte không đó. Để tiến xa hơn, chúng tôi tận dụng các thuộc tính cụ thể của giao dịch:
Việc chính còn lại để thực sự thực hiện các kế hoạch trên. Các sự đánh đổi chính là:
Việc áp dụng ERC-4337, và cuối cùng là việc đưa một phần của nó vào trong các L2 EVMs, có thể nhanh chóng triển khai các kỹ thuật tổng hợp. Việc đưa một phần của ERC-4337 vào L1 có thể làm nhanh chóng việc triển khai nó trên L2s.
Ngay cả với các blog 16 MB và nén dữ liệu, 58.000 TPS không nhất thiết đủ để hoàn toàn chiếm lĩnh thanh toán người tiêu dùng, mạng xã hội phi tập trung hoặc các lĩnh vực có băng thông cao khác, và điều này trở nên đặc biệt đúng nếu chúng ta bắt đầu xem xét vấn đề bảo mật, điều này có thể làm giảm tính mở rộng đi từ 3-8 lần. Đối với các ứng dụng có khối lượng cao, giá trị thấp, một lựa chọn hiện nay là mộtvalidium, giữ dữ liệu ngoài chuỗi khối và có mô hình bảo mật đặc biệt thú vị, trong đó người điều hành không thể lấy cắp tiền của người dùng, nhưng họ có thể biến mất và tạm thời hoặc vĩnh viễn đóng băng tất cả tiền của người dùng. Nhưng chúng ta có thể làm tốt hơn được.
Plasma là một giải pháp mở rộng quy mô liên quan đến một nhà điều hành xuất bản các khối offchain và đặt gốc Merkle của các khối đó vào chuỗi (trái ngược với rollup, nơi toàn bộ khối được đặt trên chuỗi). Đối với mỗi khối, nhà điều hành gửi cho mỗi người dùng một nhánh Merkle chứng minh điều gì đã xảy ra hoặc không xảy ra đối với tài sản của người dùng đó. Người dùng có thể rút tài sản của mình bằng cách cung cấp chi nhánh Merkle. Điều quan trọng, chi nhánh này không phải bắt nguồn từ trạng thái mới nhất - vì lý do này, ngay cả khi tính khả dụng của dữ liệu không thành công, người dùng vẫn có thể khôi phục tài sản của mình bằng cách rút trạng thái mới nhất mà họ có sẵn. Nếu người dùng gửi một nhánh không hợp lệ (ví dụ: thoát khỏi một tài sản mà họ đã gửi cho người khác hoặc chính nhà điều hành tạo ra một tài sản từ không khí), một cơ chế thách thức onchain có thể phân xử tài sản đó thuộc về ai.
Một biểu đồ của chuỗi Plasma Cash. Các giao dịch chi tiêu đồng xu i được đặt vào vị trí thứ i trong cây. Trong ví dụ này, giả sử tất cả các cây trước đó đều hợp lệ, chúng ta biết rằng Eve hiện đang sở hữu đồng xu 1, David sở hữu đồng xu 4 và George sở hữu đồng xu 6.
Các phiên bản sớm của Plasma chỉ có thể xử lý trường hợp thanh toán và không thể tổng quát hóa hiệu quả hơn. Nếu chúng ta yêu cầu mỗi gốc được xác minh bằng một SNARK, Plasma trở nên mạnh mẽ hơn nhiều. Mỗi trò chơi thách thức có thể được đơn giản hóa đáng kể, vì chúng ta loại bỏ hầu hết các con đường có thể để toán tử gian lận. Các con đường mới cũng mở ra để cho phép các kỹ thuật Plasma được mở rộng đến một lớp tài sản tổng quát hơn nhiều. Cuối cùng, trong trường hợp toán tử không gian lận, người dùng có thể rút tiền của họ ngay lập tức, mà không cần phải chờ đợi một chu kỳ thách thức một tuần.
Một cách (không phải cách duy nhất) để tạo một chuỗi plasma EVM: sử dụng một ZK-SNARK để xây dựng một cây UTXO song song phản ánh những thay đổi cân bằng được thực hiện bởi EVM, và xác định một ánh xạ duy nhất của những gì là “đồng xu giống nhau” tại các điểm khác nhau trong lịch sử. Một cấu trúc Plasma sau đó có thể được xây dựng trên cơ sở đó.
Một hiểu biết then chốt là hệ thống Plasma không cần phải hoàn hảo. Ngay cả khi bạn chỉ có thể bảo vệ một phần nhỏ tài sản (ví dụ, ngay cả chỉ là những đồng tiền chưa di chuyển trong tuần qua), bạn đã cải thiện đáng kể so với tình trạng hiện tại của EVM siêu mở rộ, đó là một validium hợp lệ.
Một lớp cấu trúc khác là plasma lai / rollups, chẳng hạn như Intmax. Những công trình này đặt một lượng dữ liệu rất nhỏ cho mỗi người dùng trên chuỗi (ví dụ: 5 byte), và bằng cách làm như vậy, bạn sẽ có các thuộc tính nằm đâu đó giữa plasma và rollups: trong trường hợp Intmax, bạn sẽ có một mức độ mở rộng và bảo mật rất cao, tuy nhiên, trong thế giới 16 MB, khả năng chứa lý thuyết được giới hạn vào khoảng 16.000.000 / 12 / 5 = 266.667 TPS.
Nhiệm vụ chính còn lại là đưa các hệ thống Plasma vào sản xuất. Như đã đề cập ở trên, “plasma vs validium” không phải là một hệ số nhị phân: bất kỳ validium nào cũng có thể cải thiện tính an toàn của nó ít nhất một chút bằng cách thêm các tính năng Plasma vào cơ chế thoát. Phần nghiên cứu là về việc có được các tính chất tối ưu (về yêu cầu tin cậy, chi phí gas trường hợp xấu nhất L1, và sự dễ bị tấn công DoS) cho một EVM, cũng như các cấu trúc ứng dụng cụ thể khác. Ngoài ra, sự phức tạp về mặt khái niệm lớn hơn của Plasma so với rollups cần được giải quyết trực tiếp, cả thông qua nghiên cứu và thông qua việc xây dựng các frameworks tổng quát tốt hơn.
Sự đánh đổi chính trong việc sử dụng các thiết kế Plasma là chúng phụ thuộc nhiều hơn vào các nhà điều hành và khó khăn hơn trong việc tạo ra “dựa vào“, mặc dù thiết kế plasma/rollup hỗn hợp thường có thể tránh được điểm yếu này.
Càng hiệu quả các giải pháp Plasma có thể, áp lực càng giảm đối với L1 phải có chức năng khả dữ liệu hiệu suất cao. Việc chuyển hoạt động sang L2 cũng giảm áp lực MEV trên L1.
Hôm nay, hầu hết các rollup vẫn chưa thực sự tin cậy; có một hội đồng an ninh có khả năng ghi đè hành vi của (lạc quan hoặc hợp lệ)hệ thống chứng minh. Trong một số trường hợp, hệ thống bằng chứng thậm chí không hoạt động, hoặc nếu có, nó chỉ có chức năng "tư vấn". Xa nhất phía trước là (i) một vài bản tổng hợp dành riêng cho ứng dụng, chẳng hạn như Nhiên liệu, không đáng tin cậy và (ii) tính đến thời điểm viết bài này, Optimism và Arbitrum, hai bản tổng hợp EVM đầy đủ đã đạt được cột mốc không tin cậy một phần được gọi là "giai đoạn 1". Lý do tại sao rollups đã không đi xa hơn là lo ngại về lỗi trong mã. Chúng tôi cần rollups không tin cậy, và vì vậy chúng tôi cần phải giải quyết vấn đề này trực tiếp.
Đầu tiên, hãy tóm tắt hệ thống “stage”, được giới thiệu lần đầu vào bài đăng này. Có những yêu cầu chi tiết hơn, nhưng tóm tắt là:
Mục tiêu là đạt được giai đoạn 2. Thách thức chính trong việc đạt được giai đoạn 2 là có đủ niềm tin rằng hệ thống chứng minh thực sự đáng tin cậy đủ. Có hai cách chính để làm điều này:
Sơ đồ được tạo kiểu của một hệ thống chứng minh đa người chứng minh, kết hợp một hệ thống chứng minh lạc quan, một hệ thống chứng minh tính hợp lệ và một hội đồng an ninh.
Đối với xác minh hình thức, rất nhiều. Chúng ta cần tạo ra một phiên bản đã được xác minh hình thức của một người chứng minh SNARK toàn bộ của một EVM. Đây là một dự án cực kỳ phức tạp, mặc dù đó là một trong những dự ánchúng tôi đã bắt đầu rồi. Có một mẹo giúp đơn giản hóa nhiệm vụ đáng kể: chúng ta có thể tạo một người chứng minh SNARK được xác minh hình thức của một VM tối thiểu, ví dụ.RISC-VhoặcCairo, và sau đó viết một phần mềm thực thi của EVM trong máy ảo tối giản đó (và chứng minh một cách hình thức sự tương đương của nó với một số đặc tả EVM khác).
Đối với multi-provers, còn hai phần chính còn lại. Thứ nhất, chúng ta cần đủ niềm tin vào ít nhất hai hệ thống chứng minh khác nhau, cả hai đều an toàn một cách hợp lý và nếu chúng hỏng, chúng sẽ hỏng vì lý do khác nhau và không liên quan (và vì vậy chúng sẽ không hỏng cùng một lúc). Thứ hai, chúng ta cần có một mức độ đảm bảo rất cao về logic cơ bản hợp nhất các hệ thống chứng minh. Đây là một phần mã nguồn nhỏ hơn nhiều. Có cách để làm cho nó cực kỳ nhỏ - chỉ cần lưu trữ tiền trong mộtHợp đồng đa chữ ký an toàncác bên ký kết là hợp đồng đại diện cho các hệ thống chứng minh cá nhân riêng lẻ - nhưng điều này đánh đổi với chi phí gas trên chuỗi cao. Một số sự cân bằng giữa hiệu suất và an toàn sẽ cần được tìm thấy.
Chuyển hoạt động sang L2 giảm áp lực MEV trên L1.
Một thách thức lớn hiện nay với hệ sinh thái L2 là việc người dùng gặp khó khăn khi di chuyển. Hơn nữa, cách đơn giản nhất thường tái giới thiệu các giả định về niềm tin: cầu nối tập trung, các máy khách RPC, và cetera. Nếu chúng ta nghiêm túc với ý tưởng rằng L2 là một phần của Ethereum, chúng ta cần làm cho việc sử dụng hệ sinh thái L2 cảm thấy như việc sử dụng một hệ sinh thái Ethereum thống nhất.
Một ví dụ về bệnh lý xấu (và thậm chí nguy hiểm: Cá nhân tôi đã mất 100 đô la cho một lỗi lựa chọn chuỗi ở đây) cross-L2 UX - mặc dù đây không phải là lỗi của Polymarket, khả năng tương tác chéo L2 phải là trách nhiệm của ví và cộng đồng tiêu chuẩn Ethereum (ERC). Trong một hệ sinh thái Ethereum hoạt động tốt, việc gửi tiền từ L1 đến L2 hoặc từ L2 này sang L2 khác, sẽ giống như gửi tiền trong cùng một L1.
Có nhiều danh mục cải tiến tương tác chéo-L2. Nói chung, cách để đề xuất chúng là nhận thấy rằng trong lý thuyết, Một Ethereum tập trung vào Rollup cũng giống như sự phân chia thực thi L1, và sau đó hỏi xem thế giới Ethereum L2 hiện tại thiếu sót ở điểm nào trong thực tế. Dưới đây là một số điểm:
Làm thế nào một máy khách nhẹ có thể cập nhật ý kiến của mình về chuỗi tiêu đề Ethereum. Khi bạn có chuỗi tiêu đề, bạn có thể sử dụng chứng minh Merkle để xác thực bất kỳ đối tượng trạng thái nào. Và khi bạn có các đối tượng trạng thái L1 đúng, bạn có thể sử dụng chứng minh Merkle (và có thể chữ ký, nếu bạn muốn kiểm tra trước xác nhận) để xác thực bất kỳ đối tượng trạng thái nào trên L2. Helios đã thực hiện phần trước đó. Mở rộng sang phần sau là một thách thức về tiêu chuẩn hóa.
Một biểu đồ được tạo hình về cách hoạt động của ví keystore.
Nhiều ví dụ trên đối mặt với những khúc mắc tiêu chuẩn hóa và tầng tiêu chuẩn hóa. Nếu tiêu chuẩn hóa quá sớm, bạn có nguy cơ cố định một giải pháp kém chất lượng. Nếu tiêu chuẩn hóa quá muộn, bạn có nguy cơ tạo ra sự phân mảnh không cần thiết. Trong một số trường hợp, có cả một giải pháp ngắn hạn có tính chất yếu hơn nhưng dễ triển khai, và một giải pháp dài hạn cuối cùng là “đúng đắn” nhưng sẽ mất khá nhiều năm để đạt được.
Một cách mà phần này độc đáo là những vấn đề này không chỉ là vấn đề kỹ thuật: chúng cũng là vấn đề xã hội (có lẽ thậm chí chủ yếu là vấn đề xã hội!). Chúng đòi hỏi L2s và ví và L1 phối hợp. Khả năng của chúng tôi để giải quyết vấn đề này một cách thành công là một bài kiểm tra cho khả năng của chúng tôi để đoàn kết như một cộng đồng.
Hầu hết những đề xuất này là các cấu trúc ở tầng cao hơn, do đó không ảnh hưởng nhiều đến các xem xét của L1. Một ngoại lệ là việc xếp hàng chung, có tác động nặng nề đối với MEV.
Nếu L2 trở nên rất có khả năng mở rộng và thành công nhưng L1 vẫn chỉ có khả năng xử lý một lượng giao dịch rất thấp, có nhiều rủi ro đối với Ethereum có thể phát sinh:
Vì những lý do này, việc tiếp tục mở rộng L1 là rất quan trọng, và đảm bảo rằng nó có thể tiếp tục chứa đựng một số lượng người dùng ngày càng tăng.
Cách dễ nhất để mở rộng là đơn giản tăng giới hạn gas. Tuy nhiên, điều này có nguy cơ tập trung L1, và do đó làm yếu đi tính chất quan trọng khác làm cho Ethereum L1 mạnh mẽ: tính xác thực của nó như một lớp cơ sở mạnh mẽ. Có một cuộc tranh luận đang diễn ra về mức độ tăng giới hạn gas đơn giản là bền vững, và điều này cũng thay đổi dựa trên những công nghệ khác được triển khai để làm cho các khối lớn hơn dễ dàng xác minh hơn (ví dụ: hết hạn lịch sử, không trạng thái, chứng minh tính hợp lệ của L1 EVM). Một điều quan trọng khác cần cải thiện là hiệu suất của phần mềm máy khách Ethereum, mà hiện nay được tối ưu hóa hơn nhiều so với năm năm trước. Chiến lược tăng giới hạn gas L1 hiệu quả sẽ liên quan đến việc tăng tốc các công nghệ xác minh này.
Chiến lược mở rộng khác bao gồm việc xác định các tính năng cụ thể và loại tính toán có thể được làm rẻ hơn mà không gây hại đến tính phân cấp của mạng hoặc các thuộc tính bảo mật của nó. Ví dụ về điều này bao gồm:
Những cải tiến này sẽ được thảo luận cụ thể hơn trong một bài viết trong tương lai về Splurge.
Cuối cùng, chiến lược thứ ba là native rollups (hoặc “enshrined rollups”): về cơ bản, tạo ra nhiều bản sao của EVM chạy song song, dẫn đến một mô hình tương đương với những gì rollups có thể cung cấp, nhưng tích hợp nhiều hơn vào giao thức.
Có ba chiến lược cho việc mở rộng L1, có thể thực hiện độc lập hoặc song song:
Đáng giá để hiểu rằng đây là những kỹ thuật khác nhau có những sự đánh đổi khác nhau. Ví dụ, native rollups có nhiều điểm yếu tương tự như tính kết hợp như các rollups thông thường: bạn không thể gửi một giao dịch duy nhất mà đồng bộ thực hiện các hoạt động trên nhiều rollups, giống như bạn có thể với hợp đồng trên cùng L1 (hoặc L2). Việc tăng giới hạn gas sẽ làm mất đi những lợi ích khác có thể đạt được bằng cách làm cho L1 dễ xác minh hơn, chẳng hạn như tăng phần trăm người dùng chạy các nút xác minh và tăng solo stakers. Làm cho các hoạt động cụ thể trong EVM rẻ hơn, tùy thuộc vào cách thực hiện, có thể tăng độ phức tạp tổng EVM.
Một câu hỏi lớn mà bất kỳ lộ trình co giãn L1 nào cần phải trả lời là: tầm nhìn cuối cùng cho những gì thuộc về L1 và những gì thuộc về L2 là gì? Rõ ràng, việc đưa mọi thứ lên L1 là điều vô lý: các trường hợp sử dụng tiềm năng lên đến hàng nghìn giao dịch mỗi giây, và điều đó sẽ khiến L1 hoàn toàn không thể xác minh (trừ khi chúng ta đi theo con đường native rollup). Nhưng chúng ta cần một số nguyên tắc hướng dẫn, để chúng ta có thể đảm bảo rằng chúng ta không tạo ra tình huống mà chúng ta tăng giới hạn gas lên 10 lần, gây thiệt hại nặng nề cho tính phân quyền của Ethereum L1, và phát hiện rằng chúng ta chỉ đạt được một thế giới mà thay vì 99% hoạt động được chuyển sang L2, 90% hoạt động được chuyển sang L2, và do đó kết quả khác không nhiều, ngoại trừ việc mất mát không thể đảo ngược của một phần lớn những gì làm cho Ethereum L1 trở nên đặc biệt.
Một quan điểm đề xuất về "phân công lao động" giữa L1 và L2, nguồn.
Đưa thêm người dùng vào L1 không chỉ áp dụng việc cải thiện quy mô, mà còn là các khía cạnh khác của L1. Điều này có nghĩa là MEV sẽ ở lại trên L1 nhiều hơn (thay vì trở thành một vấn đề chỉ dành cho L2), và do đó sẽ cần xử lý một cách rõ ràng hơn. Điều này tăng đáng kể giá trị của việc có thời gian slot nhanh trên L1. Và nó cũng phụ thuộc nhiều vào việc xác minh L1 ("the Verge") diễn ra tốt.
Ở đầu, Ethereum có hai chiến lược mở rộng trong lộ trình của mình. Một (ví dụ xem bài báo sớm nàytừ năm 2015) là "sharding": thay vì xác minh và lưu trữ tất cả các giao dịch trong chuỗi, mỗi nút chỉ cần xác minh và lưu trữ một phần nhỏ của các giao dịch. Đây là cách mà bất kỳ mạng ngang hàng nào khác (ví dụ: BitTorrent) cũng hoạt động, vì vậy chắc chắn chúng ta có thể làm cho các chuỗi khối hoạt động theo cùng một cách. Một trong những cách khác là các giao thức tầng 2: các mạng sẽ đặt trên cơ sở của Ethereum một cách cho phép chúng hoàn toàn hưởng lợi từ tính bảo mật của nó, trong khi giữ phần lớn dữ liệu và tính toán ra khỏi chuỗi chính. "Các giao thức tầng 2" có nghĩa làkênh trạng tháinăm 2015, Plasmanăm 2017, và sau đó rollupsvào năm 2019. Rollups mạnh mẽ hơn so với các kênh trạng thái hoặc Plasma, nhưng họ đòi hỏi một lượng lớn băng thông dữ liệu on-chain. May mắn thay, vào năm 2019, nghiên cứu phân mảnh đã giải quyếtvấn đề xác minh “khả năng truy cập dữ liệu” ở quy mô lớnKết quả là, hai con đường đã hội tụ, và chúng tôi đã nhận được lộ trình tập trung vào rollupmà vẫn là chiến lược mở rộng của Ethereum ngày nay.
The Surge, 2023 roadmap edition.
Lộ trình tập trung vào rollup đề xuất một phân chia công việc đơn giản: Ethereum L1 tập trung vào việc trở thành một lớp cơ sở mạnh mẽ và phi tập trung, trong khi L2s đảm nhận nhiệm vụ giúp hệ sinh thái mở rộng. Đây là một mẫu hình tái diễn khắp mọi nơi trong xã hội: hệ thống tòa án (L1) không phải là để trở nhanh chóng và hiệu quả cực cao, nó tồn tại để bảo vệ hợp đồng và quyền sở hữu, và là trách nhiệm của doanh nhân (L2) xây dựng trên cơ sở đóvững chắc căn cứ lớpvà đưa loài người đến (ẩn dụ và hiển nhiên) sao Hỏa.
Năm nay, lộ trình tập trung vào rollup đã đạt được những thành công quan trọng: băng thông dữ liệu Ethereum L1 đã tăng lên rất nhiều với EIP-4844 blobs, và hiện tại có nhiều EVM rollups ở giai đoạn 1. Một rấtcài đặt phân mảnh đa dạng và đa nguyên tố, nơi mỗi L2 hoạt động như một "phân đoạn" với các quy tắc và logic nội bộ riêng, giờ đây đã trở thành hiện thực. Nhưng như chúng ta đã thấy, đi theo con đường này có một số thách thức độc đáo của riêng nó. Và vì vậy, bây giờ nhiệm vụ của chúng tôi là hoàn thành lộ trình tập trung vào rollup và giải quyết những vấn đề này, trong khi vẫn duy trì sự mạnh mẽ và phi tập trung làm cho Ethereum L1 trở nên đặc biệt.
Vấn đề ba khía cạnh về khả năng mở rộng là một ý tưởng được giới thiệu vào năm 2017, người ta lập luận rằng có một sự căng thẳng giữa ba tính chất của một blockchain: phân quyền (cụ thể hơn: chi phí thấp để chạy một node), khả năng mở rộng (cụ thể hơn: số giao dịch được xử lý cao), và bảo mật (cụ thể hơn: một kẻ tấn công cần phải phá hoại một phần lớn các node trong toàn bộ mạng để thậm chí một giao dịch đơn lẻ cũng thất bại).
Đáng chú ý, ba điểm hạn chế không phải là một định lý, và bài viết giới thiệu ba điểm hạn chế không đi kèm với một chứng minh toán học. Nó chỉ đưa ra một lập luận toán học gợi ý: nếu một nút thân thiện với sự phân quyền (ví dụ: laptop tiêu dùng) có thể xác minh N giao dịch mỗi giây, và bạn có một chuỗi xử lý k*N giao dịch mỗi giây, thì hoặc (i) mỗi giao dịch chỉ được nhìn thấy bởi 1/k số nút, điều này ngụ ý một kẻ tấn công chỉ cần phá hoại một số nút để tiến hành một giao dịch xấu, hoặc (ii) các nút của bạn sẽ mạnh mẽ và chuỗi của bạn không phân quyền. Mục đích của bài viết không phải để chứng minh việc phá vỡ ba điểm hạn chế là không thể; thay vào đó, mục đích của nó là để cho thấy việc phá vỡ ba điểm hạn chế là khó - nó đòi hỏi cách nghĩ ngoài hộp mà lập luận ngụ ý.
Trong nhiều năm qua, đã phổ biến khi một số chuỗi hoạt động cao cấp tuyên bố giải quyết tam giác mâu thuẫn mà không cần thực hiện bất kỳ điều gì thông minh ở cấp độ kiến trúc cơ bản, thường bằng cách sử dụng các chiêu thức kỹ thuật phần mềm để tối ưu hóa nút. Điều này luôn gây hiểu lầm và việc chạy một nút trên các chuỗi như vậy luôn kết thúc khó khăn hơn nhiều so với trên Ethereum.Bài viết nàyđi vào một số điều tinh tế vì sao điều này lại xảy ra (và vì vậy, tại sao kỹ sư phần mềm L1 client không thể mở rộng Ethereum một cách độc lập).
Tuy nhiên, sự kết hợp giữa việc lấy mẫu sẵn có dữ liệu và SNARKs đã giải quyết vấn đề tam đạng: nó cho phép một bên thứ ba xác minh rằng một lượng dữ liệu nào đó có sẵn, và một số bước tính toán đã được thực hiện đúng, trong khi chỉ tải về một phần nhỏ của dữ liệu đó và thực hiện một lượng tính toán nhỏ hơn nhiều. SNARKs không đòi hỏi tin tưởng. Việc lấy mẫu sẵn có dữ liệu có tính tinh tế.Mô hình tin cậy một số N, nhưng nó bảo tồn tính chất cơ bản mà các chuỗi không thể mở rộng có, đó là ngay cả một cuộc tấn công 51% cũng không thể buộc các khối xấu được chấp nhận bởi mạng lưới.
Một cách khác để giải quyết vấn đề tam đa là kiến trúc Plasma, sử dụng các kỹ thuật thông minh để đẩy trách nhiệm theo dõi sự có sẵn của dữ liệu cho người dùng một cách tương thích với động lực. Trong thời kỳ từ năm 2017-2019, khi tất cả những gì chúng ta có để mở rộng tính toán là chứng minh gian lận, Plasma bị hạn chế rất nhiều trong việc mà nó có thể an toàn thực hiện, nhưng việc phổ cập SNARKs đã làm cho kiến trúc Plasma có khả năng hơn rất nhiềucho một loạt các trường hợp sử dụng rộng hơn so với trước đây.
Vào ngày 13 tháng 3 năm 2024, khi Nâng cấp Dencun Đi vào hoạt động, blockchain Ethereum có ba ~ 125 kB "blobs" trên mỗi khe cắm 12 giây, hoặc ~ 375 kB trên mỗi khe băng thông khả dụng dữ liệu. Giả sử dữ liệu giao dịch được công bố trực tiếp trên chuỗi, chuyển khoản ERC20 là ~ 180 byte và do đó, TPS tối đa của bản tổng hợp trên Ethereum là:
375000 / 12 / 180 = 173.6 TPS
Nếu chúng ta thêm dữ liệu cuộc gọi của Ethereum (tối đa lý thuyết: 30 triệu gas mỗi khe / 16 gas mỗi byte = 1.875.000 byte mỗi khe), điều này sẽ trở thành 607 TPS. Với PeerDAS, kế hoạch là tăng mục tiêu số lượng blob lên 8-16, điều này sẽ cho chúng ta 463-926 TPS trong dữ liệu cuộc gọi.
Đây là một bước tăng đáng kể so với Ethereum L1, nhưng chưa đủ. Chúng tôi muốn mở rộng khả năng mở rộng nhiều hơn nữa. Mục tiêu trung hạn của chúng tôi là 16 MB mỗi khe cắm, nếu kết hợp với cải tiến trong nén dữ liệu rollup sẽ mang lại cho chúng tôi khoảng ~58,000 TPS.
PeerDAS là một triển khai tương đối đơn giản của "lấy mẫu 1D". Mỗi blob trong Ethereum là một đa thức độ-4096 trên trường nguyên tố 253 bit. Chúng tôi phát sóng "cổ phần" của đa thức, trong đó mỗi phần bao gồm 16 đánh giá tại 16 tọa độ liền kề được lấy từ tổng số 8192 tọa độ. Bất kỳ 4096 trong số 8192 đánh giá (với các thông số được đề xuất hiện tại: bất kỳ 64 trong số 128 mẫu có thể) có thể phục hồi blob.
PeerDAS hoạt động bằng cách khiến mỗi khách hàng lắng nghe trên một số mạng con nhỏ, trong đó mạng con thứ i phát sóng mẫu thứ i của bất kỳ đống dữ liệu nào, và đồng thời yêu cầu đống dữ liệu trên các mạng con khác mà nó cần bằng cách yêu cầu các đồng nghiệp của mình trong mạng p2p toàn cầu (những người sẽ lắng nghe trên các mạng con khác nhau). Một phiên bản cẩn thận hơn, SubnetDAS, chỉ sử dụng cơ chế mạng con, mà không cần tới lớp bổ sung để hỏi các đồng nghiệp. Một đề xuất hiện tại là để các nút tham gia chứng minh cổ phần sử dụng SubnetDAS, và để các nút khác (tức là “khách hàng”) sử dụng PeerDAS.
Về lý thuyết, chúng ta có thể mở rộng việc lấy mẫu 1D khá xa: nếu chúng ta tăng số lượng blob tối đa lên 256 (vì vậy, mục tiêu là 128), thì chúng ta sẽ đạt được mục tiêu 16 MB của chúng ta trong khi việc lấy mẫu sẵn có dữ liệu chỉ tốn cho mỗi nút 16 mẫu128 blobs512 byte mỗi mẫu mỗi khối = 1 MB dữ liệu băng thông mỗi khe cắm. Điều này chỉ đúng trong phạm vi dung nạp của chúng tôi: có thể thực hiện được, nhưng điều đó có nghĩa là các máy khách bị hạn chế băng thông không thể lấy mẫu. Chúng ta có thể tối ưu hóa điều này một chút bằng cách giảm số lượng khối và tăng kích thước khối, nhưng điều này sẽ làm cho việc tái tạo đắt đỏ hơn.
Và cuối cùng, chúng tôi muốn đi xa hơn, và thực hiệnLấy mẫu 2D, hoạt động bằng cách lấy mẫu ngẫu nhiên không chỉ trong các blob, mà còn giữa các blob. Các tính chất tuyến tính của cam kết KZG được sử dụng để “mở rộng” tập hợp các blob trong một khối với một danh sách các “blob ảo” mới mà mã hóa dư thừa cùng thông tin.
Lấy mẫu 2D. Nguồn: a16z crypto
Điều quan trọng, tính toán sự mở rộng của cam kết không đòi hỏi phải có các blob, vì vậy hệ thống này cơ bản là thân thiện với việc xây dựng khối phân tán. Node thực sự xây dựng khối chỉ cần có cam kết blob KZG, và có thể dựa vào DAS để xác minh sự có sẵn của các blob. 1D DAS cũng thân thiện với việc xây dựng khối phân tán theo bản chất.
Bước tiếp theo ngay lập tức là hoàn thành việc triển khai và triển khai PeerDAS. Từ đó, điều quan trọng là tiếp tục tăng số lượng blob trên PeerDAS một cách tiến bộ trong khi cẩn thận quan sát mạng và cải thiện phần mềm để đảm bảo an toàn. Đồng thời, chúng tôi muốn có nhiều công việc học thuật hơn về việc hình thành PeerDAS và các phiên bản khác của DAS và tương tác của nó với các vấn đề như an toàn luật lựa chọn fork.
Hơn nữa trong tương lai, chúng ta cần nhiều công việc hơn để tìm ra phiên bản lý tưởng của DAS 2D và chứng minh các đặc tính an toàn của nó. Chúng tôi cũng muốn cuối cùng chuyển từ KZG sang một giải pháp thay thế không cần thiết lập lượng tử, đáng tin cậy. Hiện tại, chúng tôi không biết có ứng viên nào thân thiện với việc xây dựng khối phân tán. Ngay cả kỹ thuật "brute force" đắt tiền của việc sử dụng STARK đệ quy để tạo ra bằng chứng về tính hợp lệ để tái tạo các hàng và cột cũng không đủ, bởi vì trong khi về mặt kỹ thuật, STARK có kích thước băm O (log (n) * log (log (n)) (với STIR) trong thực tế, một STARK gần bằng cỡ một khối toàn bộ.
Những con đường thực tế mà tôi thấy cho dài hạn là:
Chúng ta có thể xem những điều này theo một phổ thong mại:
Lưu ý rằng sự lựa chọn này vẫn tồn tại ngay cả khi chúng ta quyết định mở rộng thực thi trên L1 trực tiếp. Điều này xảy ra vì nếu L1 phải xử lý nhiều giao dịch mỗi giây, các khối L1 sẽ trở nên rất lớn, và các máy khách sẽ muốn một cách hiệu quả để xác minh rằng chúng là chính xác, vì vậy chúng ta sẽ phải sử dụng cùng công nghệ mà làm cho rollups mạnh mẽ (ZK-EVM và DAS) tại L1.
Nhu cầu về 2D DAS được giảm bớt một phần, hoặc ít nhất là trì hoãn, nếu việc nén dữ liệu (xem dưới đây) được thực hiện, và nó càng được giảm bớt hơn nếu Plasma được sử dụng rộng rãi. DAS cũng đặt ra một thách thức đối với các giao thức và cơ chế xây dựng khối phân tán: trong khi DAS lí thuyết thân thiện với việc tái tạo phân tán, điều này cần phải được kết hợp trong thực tế vớidanh sách bao gồmcác đề xuất và cơ chế lựa chọn fork xung quanh chúng.
Mỗi giao dịch trong một rollup chiếm một lượng dữ liệu đáng kể trên chuỗi: một việc chuyển ERC20 mất khoảng 180 byte. Ngay cả khi có mẫu dữ liệu khả dụng lý tưởng, điều này đặt ra một giới hạn về tính mở rộng của các giao thức tầng 2. Với 16 MB mỗi khe, chúng ta có:
16000000 / 12 / 180 = 7407 TPS
Điều gì nếu ngoài việc giải quyết tử số, chúng ta cũng có thể giải quyết mẫu số, và làm cho mỗi giao dịch trong một cuộn giảm số byte trên chuỗi?
Phần giải thích tốt nhất theo ý kiến của tôi là sơ đồ nàytừ hai năm trước:
Những lợi ích đơn giản nhất chỉ là nén byte không: thay thế mỗi chuỗi byte không đến bằng hai byte đại diện cho số lượng byte không đó. Để tiến xa hơn, chúng tôi tận dụng các thuộc tính cụ thể của giao dịch:
Việc chính còn lại để thực sự thực hiện các kế hoạch trên. Các sự đánh đổi chính là:
Việc áp dụng ERC-4337, và cuối cùng là việc đưa một phần của nó vào trong các L2 EVMs, có thể nhanh chóng triển khai các kỹ thuật tổng hợp. Việc đưa một phần của ERC-4337 vào L1 có thể làm nhanh chóng việc triển khai nó trên L2s.
Ngay cả với các blog 16 MB và nén dữ liệu, 58.000 TPS không nhất thiết đủ để hoàn toàn chiếm lĩnh thanh toán người tiêu dùng, mạng xã hội phi tập trung hoặc các lĩnh vực có băng thông cao khác, và điều này trở nên đặc biệt đúng nếu chúng ta bắt đầu xem xét vấn đề bảo mật, điều này có thể làm giảm tính mở rộng đi từ 3-8 lần. Đối với các ứng dụng có khối lượng cao, giá trị thấp, một lựa chọn hiện nay là mộtvalidium, giữ dữ liệu ngoài chuỗi khối và có mô hình bảo mật đặc biệt thú vị, trong đó người điều hành không thể lấy cắp tiền của người dùng, nhưng họ có thể biến mất và tạm thời hoặc vĩnh viễn đóng băng tất cả tiền của người dùng. Nhưng chúng ta có thể làm tốt hơn được.
Plasma là một giải pháp mở rộng quy mô liên quan đến một nhà điều hành xuất bản các khối offchain và đặt gốc Merkle của các khối đó vào chuỗi (trái ngược với rollup, nơi toàn bộ khối được đặt trên chuỗi). Đối với mỗi khối, nhà điều hành gửi cho mỗi người dùng một nhánh Merkle chứng minh điều gì đã xảy ra hoặc không xảy ra đối với tài sản của người dùng đó. Người dùng có thể rút tài sản của mình bằng cách cung cấp chi nhánh Merkle. Điều quan trọng, chi nhánh này không phải bắt nguồn từ trạng thái mới nhất - vì lý do này, ngay cả khi tính khả dụng của dữ liệu không thành công, người dùng vẫn có thể khôi phục tài sản của mình bằng cách rút trạng thái mới nhất mà họ có sẵn. Nếu người dùng gửi một nhánh không hợp lệ (ví dụ: thoát khỏi một tài sản mà họ đã gửi cho người khác hoặc chính nhà điều hành tạo ra một tài sản từ không khí), một cơ chế thách thức onchain có thể phân xử tài sản đó thuộc về ai.
Một biểu đồ của chuỗi Plasma Cash. Các giao dịch chi tiêu đồng xu i được đặt vào vị trí thứ i trong cây. Trong ví dụ này, giả sử tất cả các cây trước đó đều hợp lệ, chúng ta biết rằng Eve hiện đang sở hữu đồng xu 1, David sở hữu đồng xu 4 và George sở hữu đồng xu 6.
Các phiên bản sớm của Plasma chỉ có thể xử lý trường hợp thanh toán và không thể tổng quát hóa hiệu quả hơn. Nếu chúng ta yêu cầu mỗi gốc được xác minh bằng một SNARK, Plasma trở nên mạnh mẽ hơn nhiều. Mỗi trò chơi thách thức có thể được đơn giản hóa đáng kể, vì chúng ta loại bỏ hầu hết các con đường có thể để toán tử gian lận. Các con đường mới cũng mở ra để cho phép các kỹ thuật Plasma được mở rộng đến một lớp tài sản tổng quát hơn nhiều. Cuối cùng, trong trường hợp toán tử không gian lận, người dùng có thể rút tiền của họ ngay lập tức, mà không cần phải chờ đợi một chu kỳ thách thức một tuần.
Một cách (không phải cách duy nhất) để tạo một chuỗi plasma EVM: sử dụng một ZK-SNARK để xây dựng một cây UTXO song song phản ánh những thay đổi cân bằng được thực hiện bởi EVM, và xác định một ánh xạ duy nhất của những gì là “đồng xu giống nhau” tại các điểm khác nhau trong lịch sử. Một cấu trúc Plasma sau đó có thể được xây dựng trên cơ sở đó.
Một hiểu biết then chốt là hệ thống Plasma không cần phải hoàn hảo. Ngay cả khi bạn chỉ có thể bảo vệ một phần nhỏ tài sản (ví dụ, ngay cả chỉ là những đồng tiền chưa di chuyển trong tuần qua), bạn đã cải thiện đáng kể so với tình trạng hiện tại của EVM siêu mở rộ, đó là một validium hợp lệ.
Một lớp cấu trúc khác là plasma lai / rollups, chẳng hạn như Intmax. Những công trình này đặt một lượng dữ liệu rất nhỏ cho mỗi người dùng trên chuỗi (ví dụ: 5 byte), và bằng cách làm như vậy, bạn sẽ có các thuộc tính nằm đâu đó giữa plasma và rollups: trong trường hợp Intmax, bạn sẽ có một mức độ mở rộng và bảo mật rất cao, tuy nhiên, trong thế giới 16 MB, khả năng chứa lý thuyết được giới hạn vào khoảng 16.000.000 / 12 / 5 = 266.667 TPS.
Nhiệm vụ chính còn lại là đưa các hệ thống Plasma vào sản xuất. Như đã đề cập ở trên, “plasma vs validium” không phải là một hệ số nhị phân: bất kỳ validium nào cũng có thể cải thiện tính an toàn của nó ít nhất một chút bằng cách thêm các tính năng Plasma vào cơ chế thoát. Phần nghiên cứu là về việc có được các tính chất tối ưu (về yêu cầu tin cậy, chi phí gas trường hợp xấu nhất L1, và sự dễ bị tấn công DoS) cho một EVM, cũng như các cấu trúc ứng dụng cụ thể khác. Ngoài ra, sự phức tạp về mặt khái niệm lớn hơn của Plasma so với rollups cần được giải quyết trực tiếp, cả thông qua nghiên cứu và thông qua việc xây dựng các frameworks tổng quát tốt hơn.
Sự đánh đổi chính trong việc sử dụng các thiết kế Plasma là chúng phụ thuộc nhiều hơn vào các nhà điều hành và khó khăn hơn trong việc tạo ra “dựa vào“, mặc dù thiết kế plasma/rollup hỗn hợp thường có thể tránh được điểm yếu này.
Càng hiệu quả các giải pháp Plasma có thể, áp lực càng giảm đối với L1 phải có chức năng khả dữ liệu hiệu suất cao. Việc chuyển hoạt động sang L2 cũng giảm áp lực MEV trên L1.
Hôm nay, hầu hết các rollup vẫn chưa thực sự tin cậy; có một hội đồng an ninh có khả năng ghi đè hành vi của (lạc quan hoặc hợp lệ)hệ thống chứng minh. Trong một số trường hợp, hệ thống bằng chứng thậm chí không hoạt động, hoặc nếu có, nó chỉ có chức năng "tư vấn". Xa nhất phía trước là (i) một vài bản tổng hợp dành riêng cho ứng dụng, chẳng hạn như Nhiên liệu, không đáng tin cậy và (ii) tính đến thời điểm viết bài này, Optimism và Arbitrum, hai bản tổng hợp EVM đầy đủ đã đạt được cột mốc không tin cậy một phần được gọi là "giai đoạn 1". Lý do tại sao rollups đã không đi xa hơn là lo ngại về lỗi trong mã. Chúng tôi cần rollups không tin cậy, và vì vậy chúng tôi cần phải giải quyết vấn đề này trực tiếp.
Đầu tiên, hãy tóm tắt hệ thống “stage”, được giới thiệu lần đầu vào bài đăng này. Có những yêu cầu chi tiết hơn, nhưng tóm tắt là:
Mục tiêu là đạt được giai đoạn 2. Thách thức chính trong việc đạt được giai đoạn 2 là có đủ niềm tin rằng hệ thống chứng minh thực sự đáng tin cậy đủ. Có hai cách chính để làm điều này:
Sơ đồ được tạo kiểu của một hệ thống chứng minh đa người chứng minh, kết hợp một hệ thống chứng minh lạc quan, một hệ thống chứng minh tính hợp lệ và một hội đồng an ninh.
Đối với xác minh hình thức, rất nhiều. Chúng ta cần tạo ra một phiên bản đã được xác minh hình thức của một người chứng minh SNARK toàn bộ của một EVM. Đây là một dự án cực kỳ phức tạp, mặc dù đó là một trong những dự ánchúng tôi đã bắt đầu rồi. Có một mẹo giúp đơn giản hóa nhiệm vụ đáng kể: chúng ta có thể tạo một người chứng minh SNARK được xác minh hình thức của một VM tối thiểu, ví dụ.RISC-VhoặcCairo, và sau đó viết một phần mềm thực thi của EVM trong máy ảo tối giản đó (và chứng minh một cách hình thức sự tương đương của nó với một số đặc tả EVM khác).
Đối với multi-provers, còn hai phần chính còn lại. Thứ nhất, chúng ta cần đủ niềm tin vào ít nhất hai hệ thống chứng minh khác nhau, cả hai đều an toàn một cách hợp lý và nếu chúng hỏng, chúng sẽ hỏng vì lý do khác nhau và không liên quan (và vì vậy chúng sẽ không hỏng cùng một lúc). Thứ hai, chúng ta cần có một mức độ đảm bảo rất cao về logic cơ bản hợp nhất các hệ thống chứng minh. Đây là một phần mã nguồn nhỏ hơn nhiều. Có cách để làm cho nó cực kỳ nhỏ - chỉ cần lưu trữ tiền trong mộtHợp đồng đa chữ ký an toàncác bên ký kết là hợp đồng đại diện cho các hệ thống chứng minh cá nhân riêng lẻ - nhưng điều này đánh đổi với chi phí gas trên chuỗi cao. Một số sự cân bằng giữa hiệu suất và an toàn sẽ cần được tìm thấy.
Chuyển hoạt động sang L2 giảm áp lực MEV trên L1.
Một thách thức lớn hiện nay với hệ sinh thái L2 là việc người dùng gặp khó khăn khi di chuyển. Hơn nữa, cách đơn giản nhất thường tái giới thiệu các giả định về niềm tin: cầu nối tập trung, các máy khách RPC, và cetera. Nếu chúng ta nghiêm túc với ý tưởng rằng L2 là một phần của Ethereum, chúng ta cần làm cho việc sử dụng hệ sinh thái L2 cảm thấy như việc sử dụng một hệ sinh thái Ethereum thống nhất.
Một ví dụ về bệnh lý xấu (và thậm chí nguy hiểm: Cá nhân tôi đã mất 100 đô la cho một lỗi lựa chọn chuỗi ở đây) cross-L2 UX - mặc dù đây không phải là lỗi của Polymarket, khả năng tương tác chéo L2 phải là trách nhiệm của ví và cộng đồng tiêu chuẩn Ethereum (ERC). Trong một hệ sinh thái Ethereum hoạt động tốt, việc gửi tiền từ L1 đến L2 hoặc từ L2 này sang L2 khác, sẽ giống như gửi tiền trong cùng một L1.
Có nhiều danh mục cải tiến tương tác chéo-L2. Nói chung, cách để đề xuất chúng là nhận thấy rằng trong lý thuyết, Một Ethereum tập trung vào Rollup cũng giống như sự phân chia thực thi L1, và sau đó hỏi xem thế giới Ethereum L2 hiện tại thiếu sót ở điểm nào trong thực tế. Dưới đây là một số điểm:
Làm thế nào một máy khách nhẹ có thể cập nhật ý kiến của mình về chuỗi tiêu đề Ethereum. Khi bạn có chuỗi tiêu đề, bạn có thể sử dụng chứng minh Merkle để xác thực bất kỳ đối tượng trạng thái nào. Và khi bạn có các đối tượng trạng thái L1 đúng, bạn có thể sử dụng chứng minh Merkle (và có thể chữ ký, nếu bạn muốn kiểm tra trước xác nhận) để xác thực bất kỳ đối tượng trạng thái nào trên L2. Helios đã thực hiện phần trước đó. Mở rộng sang phần sau là một thách thức về tiêu chuẩn hóa.
Một biểu đồ được tạo hình về cách hoạt động của ví keystore.
Nhiều ví dụ trên đối mặt với những khúc mắc tiêu chuẩn hóa và tầng tiêu chuẩn hóa. Nếu tiêu chuẩn hóa quá sớm, bạn có nguy cơ cố định một giải pháp kém chất lượng. Nếu tiêu chuẩn hóa quá muộn, bạn có nguy cơ tạo ra sự phân mảnh không cần thiết. Trong một số trường hợp, có cả một giải pháp ngắn hạn có tính chất yếu hơn nhưng dễ triển khai, và một giải pháp dài hạn cuối cùng là “đúng đắn” nhưng sẽ mất khá nhiều năm để đạt được.
Một cách mà phần này độc đáo là những vấn đề này không chỉ là vấn đề kỹ thuật: chúng cũng là vấn đề xã hội (có lẽ thậm chí chủ yếu là vấn đề xã hội!). Chúng đòi hỏi L2s và ví và L1 phối hợp. Khả năng của chúng tôi để giải quyết vấn đề này một cách thành công là một bài kiểm tra cho khả năng của chúng tôi để đoàn kết như một cộng đồng.
Hầu hết những đề xuất này là các cấu trúc ở tầng cao hơn, do đó không ảnh hưởng nhiều đến các xem xét của L1. Một ngoại lệ là việc xếp hàng chung, có tác động nặng nề đối với MEV.
Nếu L2 trở nên rất có khả năng mở rộng và thành công nhưng L1 vẫn chỉ có khả năng xử lý một lượng giao dịch rất thấp, có nhiều rủi ro đối với Ethereum có thể phát sinh:
Vì những lý do này, việc tiếp tục mở rộng L1 là rất quan trọng, và đảm bảo rằng nó có thể tiếp tục chứa đựng một số lượng người dùng ngày càng tăng.
Cách dễ nhất để mở rộng là đơn giản tăng giới hạn gas. Tuy nhiên, điều này có nguy cơ tập trung L1, và do đó làm yếu đi tính chất quan trọng khác làm cho Ethereum L1 mạnh mẽ: tính xác thực của nó như một lớp cơ sở mạnh mẽ. Có một cuộc tranh luận đang diễn ra về mức độ tăng giới hạn gas đơn giản là bền vững, và điều này cũng thay đổi dựa trên những công nghệ khác được triển khai để làm cho các khối lớn hơn dễ dàng xác minh hơn (ví dụ: hết hạn lịch sử, không trạng thái, chứng minh tính hợp lệ của L1 EVM). Một điều quan trọng khác cần cải thiện là hiệu suất của phần mềm máy khách Ethereum, mà hiện nay được tối ưu hóa hơn nhiều so với năm năm trước. Chiến lược tăng giới hạn gas L1 hiệu quả sẽ liên quan đến việc tăng tốc các công nghệ xác minh này.
Chiến lược mở rộng khác bao gồm việc xác định các tính năng cụ thể và loại tính toán có thể được làm rẻ hơn mà không gây hại đến tính phân cấp của mạng hoặc các thuộc tính bảo mật của nó. Ví dụ về điều này bao gồm:
Những cải tiến này sẽ được thảo luận cụ thể hơn trong một bài viết trong tương lai về Splurge.
Cuối cùng, chiến lược thứ ba là native rollups (hoặc “enshrined rollups”): về cơ bản, tạo ra nhiều bản sao của EVM chạy song song, dẫn đến một mô hình tương đương với những gì rollups có thể cung cấp, nhưng tích hợp nhiều hơn vào giao thức.
Có ba chiến lược cho việc mở rộng L1, có thể thực hiện độc lập hoặc song song:
Đáng giá để hiểu rằng đây là những kỹ thuật khác nhau có những sự đánh đổi khác nhau. Ví dụ, native rollups có nhiều điểm yếu tương tự như tính kết hợp như các rollups thông thường: bạn không thể gửi một giao dịch duy nhất mà đồng bộ thực hiện các hoạt động trên nhiều rollups, giống như bạn có thể với hợp đồng trên cùng L1 (hoặc L2). Việc tăng giới hạn gas sẽ làm mất đi những lợi ích khác có thể đạt được bằng cách làm cho L1 dễ xác minh hơn, chẳng hạn như tăng phần trăm người dùng chạy các nút xác minh và tăng solo stakers. Làm cho các hoạt động cụ thể trong EVM rẻ hơn, tùy thuộc vào cách thực hiện, có thể tăng độ phức tạp tổng EVM.
Một câu hỏi lớn mà bất kỳ lộ trình co giãn L1 nào cần phải trả lời là: tầm nhìn cuối cùng cho những gì thuộc về L1 và những gì thuộc về L2 là gì? Rõ ràng, việc đưa mọi thứ lên L1 là điều vô lý: các trường hợp sử dụng tiềm năng lên đến hàng nghìn giao dịch mỗi giây, và điều đó sẽ khiến L1 hoàn toàn không thể xác minh (trừ khi chúng ta đi theo con đường native rollup). Nhưng chúng ta cần một số nguyên tắc hướng dẫn, để chúng ta có thể đảm bảo rằng chúng ta không tạo ra tình huống mà chúng ta tăng giới hạn gas lên 10 lần, gây thiệt hại nặng nề cho tính phân quyền của Ethereum L1, và phát hiện rằng chúng ta chỉ đạt được một thế giới mà thay vì 99% hoạt động được chuyển sang L2, 90% hoạt động được chuyển sang L2, và do đó kết quả khác không nhiều, ngoại trừ việc mất mát không thể đảo ngược của một phần lớn những gì làm cho Ethereum L1 trở nên đặc biệt.
Một quan điểm đề xuất về "phân công lao động" giữa L1 và L2, nguồn.
Đưa thêm người dùng vào L1 không chỉ áp dụng việc cải thiện quy mô, mà còn là các khía cạnh khác của L1. Điều này có nghĩa là MEV sẽ ở lại trên L1 nhiều hơn (thay vì trở thành một vấn đề chỉ dành cho L2), và do đó sẽ cần xử lý một cách rõ ràng hơn. Điều này tăng đáng kể giá trị của việc có thời gian slot nhanh trên L1. Và nó cũng phụ thuộc nhiều vào việc xác minh L1 ("the Verge") diễn ra tốt.