Mở rộng luôn là một trong những chủ đề mà Ethereum không thể tránh khỏi. Nếu Ethereum muốn trở thành một “máy tính thế giới” thực sự thì nó cần phải có khả năng mở rộng, bảo mật và phi tập trung cùng một lúc. được biết đến trong ngành là "Tam giác bất khả thi của Blockchain" là một vấn đề lớn chưa được giải quyết trong toàn ngành.
Tuy nhiên, vào cuối năm 2021, nhà nghiên cứu và phát triển Ethereum Dankrad Feist đã đề xuất Danksharding, một giải pháp sharding mới cho Ethereum, giải pháp này dường như đã mang lại một giải pháp mang tính cách mạng cho “tam giác bất khả thi của blockchain” và thậm chí có thể viết lại toàn bộ luật chơi của ngành. .
Báo cáo nghiên cứu này sẽ cố gắng giải thích rõ ràng bằng tiếng bản địa giải pháp bảo vệ mới của Ethereum Danksharding là gì cũng như các thông tin chi tiết và chi tiết của nó. Sở dĩ viết báo cáo nghiên cứu này là vì có rất ít bài viết tiếng Trung về Danksharding và hầu hết đều yêu cầu trình độ kiến thức cao. Do đó, Spinach sẽ cố gắng chia nhỏ các nguyên tắc phức tạp đằng sau Danksharding cho các bạn và sử dụng ngôn ngữ bản địa đơn giản để thực hiện. Người mới bắt đầu sử dụng Web3 cũng có thể hiểu giải pháp phân mảnh mới Danksharding của Ethereum và giải pháp tiên quyết EIP-4844 của nó.
Tác giả: rau bina rau bina
Số từ: Báo cáo nghiên cứu này vượt quá 10.000 từ và thời gian đọc ước tính là 21 phút
Mục lục
Tại sao Ethereum cần mở rộng?
Nền tảng mở rộng Ethereum
Tam giác bất khả thi của blockchain là gì?
Các giải pháp mở rộng quy mô hiện tại cho Ethereum là gì?
Giải pháp shending ban đầu của Ethereum Sharding1.0
Cơ chế đồng thuận POS của Ethereum hoạt động như thế nào?
Giải pháp shending ban đầu Sharding1.0 trông như thế nào?
Nhược điểm của giải pháp sharding ban đầu Giải pháp Sharding1.0 là gì?
Danksharding, giải pháp sharding mới của Ethereum là gì?
Nguyên mẫu EIP-4844: Proto-Danksharding—Loại giao dịch mới Blob
Danksharding—Giải pháp mở rộng hoàn chỉnh
Lấy mẫu dữ liệu sẵn có
Mã hóa xóa
Cam kết đa thức KZG (Cam kết KZG)
Sự tách biệt giữa người đề xuất/người xây dựng
Danh sách phản đối kiểm duyệt (crList)
Tách biệt người đề xuất-người xây dựng hai khe
Tóm tắt
người giới thiệu
Tại sao Ethereum cần mở rộng?
Sau khi người sáng lập Ethereum Vitalik Buterin xuất bản sách trắng “Hợp đồng thông minh thế hệ tiếp theo và Nền tảng ứng dụng phi tập trung” của Ethereum vào năm 2014, blockchain đã mở ra một kỷ nguyên mới. Sự ra đời của hợp đồng thông minh cho phép mọi người tạo ra các ứng dụng phi tập trung (DApps) trên Ethereum, đồng thời cũng mang đến hàng loạt đổi mới cho hệ sinh thái blockchain như NFT, DeFi, GameFi, v.v.
Nền tảng mở rộng Ethereum
Khi hệ sinh thái trên chuỗi Ethereum phát triển, ngày càng có nhiều người bắt đầu sử dụng Ethereum và các vấn đề về hiệu suất của Ethereum bắt đầu lộ rõ. Khi nhiều người tương tác trên Ethereum cùng một lúc, tình trạng "tắc nghẽn" xảy ra trong blockchain, giống như thời gian đèn giao thông trên một con đường là cố định và số lượng phương tiện trong một số nhất định sẽ không gây ùn tắc giao thông mà đột ngột vào giờ cao điểm. giờ Khi đèn giao thông chuyển sang màu xanh, nhiều ô tô chạy vào đường này Số lượng phương tiện ra khỏi đường khi đèn chuyển sang màu xanh ít hơn rất nhiều so với số lượng phương tiện mới vào đường chờ đèn giao thông. tắc nghẽn. Thời gian để tất cả các phương tiện đi qua con đường này sẽ bị kéo dài mãi mãi và điều này cũng đúng trong blockchain.
Nhưng trong blockchain, không chỉ thời gian bị kéo dài mà phí gas cũng cao (Phí gas có thể hiểu là phí cứng trả cho thợ mỏ, những người chịu trách nhiệm đóng gói và xử lý tất cả các giao dịch trong blockchain), bởi vì thợ mỏ sẽ đưa ra ưu tiên các giao dịch có giá thầu cao nhất, điều này sẽ dẫn đến việc mọi người tăng phí gas để đấu tranh xác nhận yêu cầu tương tác nhanh hơn, gây ra "Chiến tranh Gas". Một trong những sự kiện nổi tiếng hơn là dự án NFT vào năm 2017 - CryptoKitties. Sự phổ biến của CryptoKitties đã đẩy phí gas lên hàng trăm đô la cho mỗi lần tương tác. Một lần tương tác trên Ethereum tốn hàng chục hoặc thậm chí hàng trăm đô la phí gas.
Lý do chính khiến phí gas đắt đỏ như vậy là do hiệu suất của Ethereum không còn có thể đáp ứng nhu cầu tương tác của người dùng hiện tại. Về mặt tính toán hiệu suất, Ethereum khác với Bitcoin chỉ sử dụng một sổ cái đơn giản để xử lý thông tin chuyển khoản, do đó TPS là cố định và có thể xử lý 7 giao dịch mỗi giây, nhưng ở Ethereum thì khác.
Do sự tồn tại của hợp đồng thông minh trong Ethereum, nội dung của mỗi giao dịch là khác nhau, do đó, mỗi khối có thể xử lý bao nhiêu giao dịch (TPS) tùy thuộc vào khối lượng dữ liệu của các giao dịch có trong một khối và khối lượng dữ liệu của mỗi giao dịch. Kích thước được xác định dựa trên nhu cầu thời gian thực. Chúng ta có thể tìm hiểu về cơ chế hoạt động của Ethereum: (Thông tin sau rất hữu ích để hiểu Danksharding, hãy nhớ đọc nó nhé~)
Ethereum quy định giới hạn trên của lượng dữ liệu của một khối dựa trên phí Gas. Một khối có thể mang tới 30 triệu GAS dữ liệu.
Ethereum không muốn lượng dữ liệu trong mỗi khối quá lớn nên mỗi khối có Gas Target (Gas mục tiêu) là 15 triệu Gas.
Ethereum có một bộ tiêu chuẩn tiêu thụ dữ liệu Gas. Các loại dữ liệu khác nhau sẽ tiêu thụ Gas khác nhau. Tuy nhiên, theo ước tính của Spinach, mỗi khối có kích thước khoảng 5kb~160kb và kích thước dữ liệu trung bình là khoảng 60~70kb.
Khi mức tiêu thụ Gas của một khối vượt quá Mục tiêu Gas là 15 triệu Gas, phí cơ bản của khối tiếp theo sẽ đắt hơn 12,5%. Nếu thấp hơn phí cơ bản, phí cơ bản sẽ giảm. Cơ chế này là cơ chế điều chỉnh động tự động, có thể tiếp tục tăng chi phí để giảm bớt tắc nghẽn khi giao dịch đạt đỉnh, đồng thời giảm chi phí để thu hút nhiều giao dịch hơn khi giao dịch chậm chạp.
Khi đó, hiểu được cơ chế trên, chúng ta có thể biết TPS của Ethereum đang thả nổi. **Chúng ta có thể tính toán TPS gần đúng bằng cách xem số lượng giao dịch trong mỗi khối thông qua trình duyệt blockchain. Như có thể thấy trong hình bên dưới, trung bình một khối có khoảng 160 giao dịch chỉ dựa trên việc đạt được Gas Target. cao nhất có thể đạt tới hơn 300 giao dịch. Dựa trên thời gian tạo khối là 12 giây mỗi khối, TPS là khoảng 13 đến 30 giao dịch, nhưng theo TPS được biết đến hiện tại của Ethereum, nó có thể đạt tối đa 45 giao dịch mỗi giây.

Nguồn: Mainnet | Beacon Chain Explorer (Giai đoạn 0) cho Ethereum 2.0 – BeaconScan
Nếu chúng ta lấy hiệu suất của hệ thống giao dịch nổi tiếng thế giới VISA, có thể xử lý hàng chục nghìn giao dịch mỗi giây, làm ví dụ, hiệu suất của Ethereum, muốn trở thành "máy tính thế giới" và có thể xử lý tới 45 giao dịch mỗi giây. giao dịch mỗi giây, thực sự là quá yếu. Do đó, Ethereum rất cần mở rộng để giải quyết các vấn đề về hiệu suất, có liên quan đến tương lai của Ethereum. Tuy nhiên, việc mở rộng không phải là một nhiệm vụ dễ dàng vì có một “tam giác bất khả thi” trong ngành blockchain.
Tam giác bất khả thi của blockchain là gì?
“Tam giác bất khả thi của Blockchain” đề cập đến thực tế là một blockchain công khai không thể đáp ứng cùng lúc ba đặc điểm: phân cấp, bảo mật và khả năng mở rộng.
Phân cấp: đề cập đến mức độ phân cấp của các nút càng có nhiều nút thì chúng càng phân tán và phi tập trung.
Bảo mật: đề cập đến tính bảo mật của toàn bộ mạng blockchain. Chi phí tấn công càng cao thì càng an toàn.
Khả năng mở rộng: đề cập đến hiệu suất xử lý giao dịch của blockchain càng nhiều giao dịch có thể được xử lý mỗi giây thì khả năng mở rộng càng cao.
Nếu chúng ta nhìn vào tầm quan trọng của ba điểm này, chúng ta sẽ thấy rằng phân cấp và bảo mật có trọng số cao nhất. Phân cấp là nền tảng của Ethereum. Chính sự phân quyền mang lại cho Ethereum tính trung lập, khả năng chống kiểm duyệt, tính cởi mở, quyền sở hữu dữ liệu và bảo mật gần như không thể phá vỡ. . Tầm quan trọng của bảo mật đương nhiên không cần phải giải thích, nhưng tầm nhìn của Ethereum là đạt được khả năng mở rộng dưới tiền đề phân cấp và bảo mật. Khó khăn trong việc triển khai có thể được tưởng tượng, vì vậy đây còn được gọi là “Tam giác bất khả thi của Blockchain”.

Nguồn hình ảnh: Tầm nhìn Ethereum ethereum.org
Các giải pháp mở rộng quy mô hiện tại cho Ethereum là gì?
Chúng tôi biết rằng trong "Tam giác bất khả thi của Blockchain", điều kiện tiên quyết để Ethereum đạt được sự mở rộng phải là đảm bảo tính phân cấp và bảo mật. Để đảm bảo tính phân cấp và bảo mật, nó không được vượt quá giới hạn trong việc đạt được khả năng mở rộng. Bởi vì các nút có vai trò không thể thiếu trong việc duy trì toàn bộ mạng Ethereum. Các nút có nhu cầu cao sẽ ngăn cản nhiều người trở thành các nút và ngày càng trở nên tập trung hơn. Tất nhiên, ngưỡng cho các nút càng thấp thì càng tốt. nhiều người tham gia hơn khiến Ethereum trở nên phi tập trung và an toàn hơn.
Vì vậy, hiện tại có hai giải pháp mở rộng cho Ethereum: Layer2 và Sharding là một giải pháp ngoài chuỗi để mở rộng chuỗi khối cơ bản (Layer1). Nguyên tắc là đưa các yêu cầu lên chuỗi khối trong quá trình thực thi Ngoài chuỗi. Có một số giải pháp Layer2. Báo cáo nghiên cứu này chỉ tập trung vào một giải pháp Layer2, đó là Rollup: Nguyên tắc của Rollup là gói hàng trăm giao dịch ngoài chuỗi như bánh kếp vào một giao dịch và gửi nó đến Ethereum để đạt được sự mở rộng. , mọi người có thể chia sẻ chi phí tải lên Ethereum với giá rất rẻ, đồng thời có thể thừa hưởng tính bảo mật của Ethereum.
Rollup hiện được chia thành hai loại: Optimism Rollup (Rollup lạc quan) và ZK Rollup (ZK Rollup bằng chứng không có kiến thức). Sự khác biệt giữa hai Rollup này chỉ đơn giản là giả định rằng tất cả các giao dịch đều trung thực và đáng tin cậy. và được gửi tới Ethereum, sẽ có một khoảng thời gian sau khi gửi (thời gian thử thách - hiện tại là một tuần). Bất kỳ ai cũng có thể đặt câu hỏi và bắt đầu thử thách để xác minh tính xác thực của giao dịch, nhưng nếu người dùng muốn chuyển ETH trên OP. Rollup Nếu bạn chuyển sang Ethereum, bạn cần đợi kết thúc giai đoạn thử thách trước khi có thể nhận được xác nhận cuối cùng.
ZK Rollup chứng minh rằng tất cả các giao dịch đều hợp lệ bằng cách tạo ra bằng chứng không có kiến thức và tải lên các thay đổi trạng thái cuối cùng sau khi tất cả các giao dịch được thực thi lên Ethereum. ZK Rollup hứa hẹn hơn ZK Rollup không cần tải lên tất cả các chi tiết giao dịch đã nén như Optimism Rollup. Nó chỉ cần tải lên bằng chứng không có kiến thức và dữ liệu thay đổi trạng thái cuối cùng, điều đó có nghĩa là nó có thể mở rộng. nén nhiều dữ liệu hơn OP Rollup và không cần phải đợi thời gian thử thách kéo dài một tuần như OP Rollup. Tuy nhiên, nhược điểm lớn nhất của ZK Rollup là cực kỳ khó phát triển nên trước mắt, Optimism Rollup. sẽ chiếm một lượng lớn thị trường L2.
Ngoài Layer2, còn có một giải pháp mở rộng khác là Sharding, nhân vật chính của bài viết này. Chúng tôi biết rằng Layer2 đưa các giao dịch trên Ethereum vào chuỗi để xử lý. Nhưng cho dù Layer2 xử lý dữ liệu như thế nào thì hiệu suất của Ethereum vẫn không thay đổi, do đó hiệu ứng mở rộng mà Layer2 có thể đạt được thực sự không đáng kể.
Sharding nhằm đạt được sự mở rộng ở cấp độ Lớp 1 của Ethereum, nhưng chúng tôi biết rằng điều kiện tiên quyết để mở rộng trên Ethereum là đảm bảo tính phân cấp và bảo mật của Ethereum, vì vậy chúng tôi không thể tăng quá nhiều gánh nặng cho các nút.
Kế hoạch triển khai cụ thể của sharding luôn là chủ đề được thảo luận liên tục trong cộng đồng Ethereum. Kế hoạch mới nhất là Danksharding, chủ đề của bài viết này cũng đề cập rằng Danksharding là kế hoạch sharding mới nhất. Ngoài ra, hãy để tôi giới thiệu ngắn gọn về giải pháp sharding cũ trông như thế nào và tại sao nó không được áp dụng.
Giải pháp shending ban đầu của Ethereum Sharding1.0
Trước khi nói về giải pháp sharding 1.0, trước tiên chúng ta cần giới thiệu cách vận hành cơ chế đồng thuận POS hiện tại của Ethereum, vì đây là kiến thức cần thiết trước để hiểu về giải pháp sharding 1.0 và Danksharding. Chúng ta sẽ nói về giải pháp sharding 1.0 A. tóm tắt ngắn gọn (chỉ cần biết đại khái phải làm gì).
Cơ chế đồng thuận POS của Ethereum hoạt động như thế nào? [7]
Cơ chế đồng thuận là một hệ thống cho phép tất cả các nút duy trì mạng trong chuỗi khối đạt được sự đồng thuận và tầm quan trọng của nó là hiển nhiên. Ethereum đã hoàn thành "The Merge" trong giai đoạn nâng cấp Ethereum 2.0 vào ngày 15 tháng 9 năm 2022, tức là mạng chính Ethereum của bằng chứng khối lượng công việc POW và chuỗi đèn hiệu của cơ chế chứng minh vốn chủ sở hữu POS đã được hợp nhất và cơ chế chứng minh vốn chủ sở hữu POS đã chính thức được hợp nhất. đã thay thế cơ chế chứng minh khối lượng công việc POW và trở thành cơ chế đồng thuận của Ethereum.
Chúng tôi biết rằng trong cơ chế chứng minh khối lượng công việc POW, các thợ mỏ cạnh tranh để giành quyền sản xuất các khối thông qua việc xếp chồng sức mạnh tính toán. Trong cơ chế chứng minh vốn chủ sở hữu POS, các thợ mỏ cạnh tranh để giành quyền sản xuất các khối bằng cách cam kết 32 ETH để trở thành nút xác minh. Quyền chặn Ethereum (phương thức đặt cược sẽ không được giới thiệu ở đây).
Ngoài những thay đổi về cơ chế đồng thuận, thời gian tạo khối của Ethereum cũng thay đổi từ thời gian khối nổi trước đó sang thời gian cố định, được chia làm 2 đơn vị: slot (Slot) và Period (Epoch): Slot là 12 giây và Epoch. là 6,4 phút. Một Kỷ nguyên chứa 32 Khe. Nói một cách đơn giản, một khối được tạo ra trong 12 giây và 32 khối được tạo ra trong 6,4 phút dưới dạng một chu kỳ (Kỷ nguyên).
Khi một người khai thác cam kết 32 ETH để trở thành nút xác minh, chuỗi đèn hiệu sẽ sử dụng thuật toán ngẫu nhiên để chọn nút xác minh làm nút sản xuất khối để đóng gói khối. Mỗi khối sẽ chọn ngẫu nhiên một nút sản xuất khối. Đồng thời, trong mỗi chu kỳ Epoch, chuỗi beacon sẽ chỉ định ngẫu nhiên và đồng đều tất cả các nút xác minh cho mỗi khối cho một nhóm “Ủy ban” bao gồm ít nhất 128 nút xác minh.
Điều đó có nghĩa là, mỗi khối sẽ được chỉ định 1/32 số nút xác minh của tất cả các nút. Các “Ủy ban” bao gồm các nút xác minh này cần xác minh và bỏ phiếu trên các khối được đóng gói bởi khối sản xuất các nút của mỗi khối. Khi nút sản xuất khối đóng gói khối, hơn 2/3 số nút xác minh bỏ phiếu để sản xuất khối thành công.

Giải pháp shending ban đầu Sharding1.0 trông như thế nào? [7]
Trong ý tưởng thiết kế của giải pháp phân đoạn ban đầu Sharding1.0, Ethereum được thiết kế từ một chuỗi chính đến tối đa 64 chuỗi phân đoạn và việc mở rộng đã đạt được bằng cách thêm nhiều chuỗi mới. Trong giải pháp này, mỗi chuỗi phân đoạn chịu trách nhiệm xử lý dữ liệu Ethereum và chuyển nó đến chuỗi báo hiệu. Chuỗi báo hiệu chịu trách nhiệm điều phối toàn bộ các nút và ủy ban sản xuất khối của mỗi chuỗi phân đoạn được kiểm soát bởi báo hiệu. chuỗi được chỉ định ngẫu nhiên.

Chuỗi báo hiệu và chuỗi phân đoạn được liên kết thông qua các liên kết chéo. Khối của chuỗi báo hiệu sẽ cung cấp giá trị băm cho khối phân đoạn của cùng một khối và sau đó khối phân đoạn sẽ mang giá trị băm này nếu giá trị được trao cho khối tiếp theo. khối báo hiệu, có thể đạt được các liên kết chéo. Nếu giá trị bị bỏ qua, nó sẽ được trao cho khối báo hiệu tiếp theo.

Nhược điểm của giải pháp sharding ban đầu Giải pháp Sharding1.0 là gì?
Nói một cách đơn giản, giải pháp sharding 1.0 là cắt Ethereum thành nhiều chuỗi phân đoạn để xử lý dữ liệu cùng nhau và sau đó chuyển dữ liệu đến chuỗi beacon để đạt được mục đích mở rộng. Tuy nhiên, giải pháp này có nhiều nhược điểm:
**Khó khăn trong phát triển:** Về mặt kỹ thuật, rất khó để chia Ethereum thành 64 chuỗi phân đoạn mà vẫn đảm bảo hoạt động bình thường và hệ thống càng phức tạp thì càng có nhiều khả năng xảy ra một số lỗ hổng khó lường. rắc rối nếu có vấn đề phát sinh và cần được sửa chữa.
**Vấn đề đồng bộ hóa dữ liệu:** Mỗi chu kỳ Epoch của beacon chain sẽ làm gián đoạn lại các "ủy ban" chịu trách nhiệm xác minh, do đó, mỗi lần phân phối lại các nút xác minh là một lần đồng bộ hóa dữ liệu của một mạng quy mô lớn, bởi vì nếu đó là Khi một nút được gán một chuỗi phân đoạn mới, nó cần đồng bộ hóa dữ liệu của chuỗi phân đoạn này. Do băng thông hiệu suất của các nút khác nhau nên khó đảm bảo rằng quá trình đồng bộ hóa được hoàn thành trong thời gian đã chỉ định. Tuy nhiên, nếu các nút được phép đồng bộ hóa trực tiếp dữ liệu của tất cả các chuỗi phân đoạn, nó sẽ làm tăng đáng kể gánh nặng cho các nút, điều này sẽ khiến Ethereum ngày càng tập trung hơn. [2]
**Vấn đề tăng trưởng khối lượng dữ liệu:** Mặc dù tốc độ xử lý của Ethereum đã được cải thiện rất nhiều, nhưng việc xử lý dữ liệu đồng thời bởi nhiều chuỗi phân đoạn cũng dẫn đến lượng dữ liệu được lưu trữ tăng lên đáng kể. nhanh hơn trước nhiều lần, yêu cầu về hiệu suất lưu trữ cho các nút sẽ tiếp tục tăng, dẫn đến sự tập trung cao hơn.
**Không thể giải quyết vấn đề MEV:** Giá trị có thể trích xuất tối đa (MEV) là số tiền có thể được trích từ quá trình sản xuất khối vượt quá phần thưởng khối tiêu chuẩn và Chi phí nhiên liệu tối đa. Sau khi một giao dịch được bắt đầu trong Ethereum, giao dịch sẽ được đặt trong mempool (một nhóm chứa các giao dịch sẽ được thực hiện) chờ người khai thác đóng gói. Sau đó, người khai thác có thể xem tất cả các giao dịch trong mempool và quyền của người khai thác. rất hạn chế, các thợ mỏ nắm vững việc bao gồm, loại trừ và sắp xếp thứ tự các giao dịch. Nếu ai đó kiếm lợi nhuận bằng cách hối lộ thợ mỏ để điều chỉnh thứ tự giao dịch trong nhóm giao dịch bằng cách trả nhiều phí gas hơn thì đây là giá trị MEV có thể trích xuất tối đa. [6]
Ví dụ:
Có một phương pháp MEV được gọi là "tấn công sandwich" hoặc "tấn công clip". Phương pháp trích xuất MEV này là để giám sát các giao dịch DEX quy mô lớn trên chuỗi. Ví dụ: ai đó muốn mua altcoin trị giá 1 triệu đô la Mỹ trên Uniswap. và phương thức này Một giao dịch sẽ tăng giá altcoin lên rất nhiều. Khi giao dịch được đưa vào mempool, robot giám sát có thể phát hiện giao dịch. Lúc này, robot sẽ hối lộ người khai thác đã đóng gói khối để chuyển một giao dịch. Hoạt động mua altcoin này diễn ra trước mặt người này và sau đó thực hiện hoạt động bán sau hoạt động mua của người này. Nó giống như một chiếc bánh sandwich kẹp người thực hiện các giao dịch DEX quy mô lớn. đã tung ra. Người “tấn công” lấy được altcoin nhờ lợi nhuận từ giao dịch số lượng lớn của người này và người thực hiện giao dịch số lượng lớn đã gây ra thua lỗ. [6]
Sự tồn tại của MEV luôn mang lại một số tác động tiêu cực cho Ethereum, chẳng hạn như tổn thất và trải nghiệm người dùng tồi tệ hơn do “tấn công bánh sandwich”, tắc nghẽn mạng do cạnh tranh giữa những người dẫn đầu, phí gas cao và thậm chí là vấn đề tập trung vào nút. với nhiều giá trị MEV hơn có thể tiếp tục chiếm nhiều cổ phần hơn trong mạng thông qua doanh thu, bởi vì doanh thu nhiều hơn = nhiều ETH hơn = nhiều tiền lãi đặt cọc hơn, cộng với chi phí cao do MEV mang lại (tắc nghẽn mạng và GAS cao do chạy trước) sẽ gây ra tình trạng liên tục mất người dùng Ethereum. Ngay cả khi giá trị MEV vượt quá đáng kể phần thưởng khối, nó sẽ gây ra sự mất ổn định đồng thuận và bảo mật của toàn bộ Ethereum, điều mà giải pháp sharding 1.0 không thể giải quyết được sẽ mang đến một loạt vấn đề.
Khi nhà nghiên cứu và nhà phát triển Ethereum Dankrad Feist đề xuất Danksharding, một giải pháp sharding mới cho Ethereum vào cuối năm 2021, Danksharding đã được cộng đồng Ethereum nhất trí coi là giải pháp tốt nhất để đạt được sự mở rộng sharding và thậm chí có thể mang lại một kỷ nguyên mới cho Ethereum. cuộc cách mạng.
Danksharding sử dụng một tập hợp các ý tưởng sharding mới để giải quyết vấn đề mở rộng của Ethereum, tức là một giải pháp sharding xoay quanh Rollup của Lớp 2. Giải pháp sharding mới này có thể đảm bảo tính phân quyền mà không làm tăng đáng kể gánh nặng cho nút. Nó giải quyết vấn đề về khả năng mở rộng trong khi vẫn đảm bảo. bảo mật, đồng thời giải quyết các tác động tiêu cực do MEV gây ra.
Chúng ta có thể thấy trong hình bên dưới rằng mục tiêu của "The Surge" và "The Scourge" trong giai đoạn nâng cấp Ethereum tiếp theo là: đạt được hơn 100.000 TPS trong Rollup và tránh rủi ro tập trung do MEV và các giao thức khác mang lại.

Ảnh/Nguồn: Vitalik.eth Dịch: ethereum.cn
Vậy Danksharding giải quyết vấn đề mở rộng của Ethereum như thế nào? Hãy bắt đầu với giải pháp tiền chuyên nghiệp EIP-4844 của Danksharding: Proto-Danksharding.
Nguyên mẫu EIP-4844: Proto-Danksharding—Loại giao dịch mới Blob
EIP-4844 giới thiệu một loại giao dịch mới cho Ethereum—Blob Transcation loại giao dịch mới này có thể cung cấp cơ sở dữ liệu bổ sung cho Ethereum:
Một đốm màu có kích thước khoảng 128KB
Một giao dịch có thể mang tối đa hai đốm màu - 256KB
Mỗi khối có 8 Target Blobs - 1MB và có thể mang tối đa 16 Blobs - 2MB (khái niệm về Target được đề cập trong bối cảnh mở rộng)
Dữ liệu Blob được lưu trữ tạm thời và sẽ bị xóa sau một khoảng thời gian (khuyến nghị cộng đồng hiện tại là 30 ngày)

Hiện tại, kích thước trung bình của mỗi khối trong Ethereum chỉ khoảng 85KB. Dung lượng lưu trữ bổ sung mà Blob mang lại cho Ethereum là rất lớn. Bạn phải biết rằng tổng kích thước dữ liệu của tất cả các sổ cái Ethereum chỉ khoảng 1TB kể từ khi Ethereum ra đời. Blobs có thể mang lại 2,5TB ~ 5TB dữ liệu bổ sung cho Ethereum mỗi năm, gấp nhiều lần lượng dữ liệu trong toàn bộ sổ cái Ethereum.
Giao dịch Blob do EIP-4844 giới thiệu có thể nói là được thiết kế riêng cho dữ liệu Rollup được tải lên Ethereum dưới dạng Blob. Không gian dữ liệu bổ sung có thể cho phép Rollup đạt được TPS cao hơn và chi phí thấp hơn, đồng thời. theo thời gian, không gian khối ban đầu do Rollup chiếm giữ sẽ được phát hành cho nhiều người dùng hơn.
Vì dữ liệu Blob được lưu trữ tạm thời nên lượng dữ liệu tăng đột ngột sẽ không gây gánh nặng ngày càng tăng lên hiệu suất lưu trữ của nút. Nếu chỉ lưu trữ tạm thời dữ liệu Blob trong một tháng, khối lượng dữ liệu được đồng bộ hóa sẽ cần một nút khối. để tải xuống thêm 1MB~2MB dữ liệu, điều này dường như không phải là gánh nặng đối với yêu cầu băng thông của nút. Từ góc độ dung lượng lưu trữ dữ liệu, các nút chỉ cần tải xuống và lưu một lượng dữ liệu cố định khoảng 200 ~ 400GB (khối lượng dữ liệu của một tháng), điều này chỉ làm tăng chi phí trong khi vẫn đảm bảo tính phân cấp và bảo mật. gánh nặng, việc tăng TPS và giảm chi phí được tính toán hàng chục, thậm chí hàng trăm lần. Đây đơn giản là một giải pháp tuyệt vời để giải quyết vấn đề về khả năng mở rộng của Ethereum.
Điều gì sẽ xảy ra nếu dữ liệu bị xóa và người dùng muốn truy cập dữ liệu trước đó?
Trước hết, mục đích của giao thức đồng thuận Ethereum không phải là đảm bảo lưu trữ vĩnh viễn tất cả dữ liệu lịch sử. Thay vào đó, mục đích là cung cấp một bảng thông báo thời gian thực có độ an toàn cao với không gian lưu trữ dài hạn cho các giao thức phi tập trung khác. Sự tồn tại của bảng thông báo là để đảm bảo rằng dữ liệu được xuất bản trên bảng thông báo tồn tại đủ lâu. Bất kỳ người dùng hoặc giao thức nào muốn dữ liệu này đều có đủ thời gian để thu thập dữ liệu và lưu nó, vì vậy trách nhiệm của dữ liệu Blob là. được bàn giao cho các vai trò khác như các bên dự án Lớp 2, các giao thức lưu trữ phi tập trung, v.v. [3]
Danksharding—Giải pháp mở rộng hoàn chỉnh
EIP-4844 đã đạt được bước đầu tiên trong quá trình mở rộng Ethereum xung quanh Rollup, nhưng đối với Ethereum, hiệu ứng mở rộng mà EIP-4844 đạt được là chưa đủ. Giải pháp Danksharding hoàn chỉnh tiếp tục mở rộng lượng dữ liệu mà Blob có thể mang từ 1~2MB mỗi khối lên 16MB~32MB và đề xuất cơ chế mới Phân tách nhà sản xuất-đóng gói khối (PBS) để giải quyết các vấn đề do MEV gây ra.
Sau đó, chúng ta cần biết sẽ có những khó khăn gì khi tiếp tục mở rộng công suất dựa trên EIP-4844:
**Gánh nặng nút quá lớn:** Chúng tôi biết rằng Blob trong EIP-4844 chỉ có kích thước 1~2 MB, điều này hoàn toàn có thể chấp nhận được để tăng gánh nặng cho nút, nhưng nếu khối lượng dữ liệu của Blob được mở rộng 16 gấp 16 ~ 32 MB, bất kể đó là đồng bộ hóa dữ liệu hay lưu trữ dữ liệu, gánh nặng đối với các nút sẽ quá lớn và mức độ phân quyền của Ethereum sẽ giảm xuống.
**Vấn đề về tính khả dụng của dữ liệu:** Nếu nút không tải xuống tất cả dữ liệu Blob, nó sẽ gặp phải các vấn đề về tính khả dụng của dữ liệu vì dữ liệu không được mở trên chuỗi và có thể truy cập được bất kỳ lúc nào. Ví dụ: nút Ethereum có nghi ngờ về một. một số giao dịch nhất định trong Thử thách tổng hợp lạc quan, nhưng Tổng hợp lạc quan không chuyển giao dữ liệu này. Nếu bạn không thể lấy được dữ liệu gốc, bạn không thể chứng minh rằng giao dịch này có vấn đề. Do đó, để giải quyết vấn đề về tính khả dụng của dữ liệu, bạn phải đảm bảo rằng. dữ liệu được mở và có thể truy cập bất cứ lúc nào.
Vậy Danksharding giải quyết những vấn đề này như thế nào?
Lấy mẫu dữ liệu sẵn có
Danksharding đã đề xuất một giải pháp—Lấy mẫu tính khả dụng của dữ liệu—để giảm bớt gánh nặng cho nút trong khi vẫn đảm bảo tính khả dụng của dữ liệu.
Ý tưởng của Data Availability Sampling (DAS) là cắt dữ liệu trong Blob thành các đoạn dữ liệu và để các nút thay đổi từ việc tải xuống dữ liệu Blob sang kiểm tra ngẫu nhiên các đoạn dữ liệu Blob, sao cho các đoạn dữ liệu Blob nằm rải rác trong mỗi nút của Ethereum, nhưng dữ liệu Blob hoàn chỉnh được lưu trữ trong toàn bộ sổ cái Ethereum, với điều kiện là các nút đó phải đủ lớn và phi tập trung.
Ví dụ: Ví dụ: dữ liệu Blob được cắt thành 10 đoạn và có 100 nút trong toàn bộ mạng. Mỗi nút sẽ kiểm tra và tải xuống ngẫu nhiên một đoạn dữ liệu và gửi số đoạn được kiểm tra ngẫu nhiên đến khối. nằm trong một khối Nếu tất cả các mảnh được đánh số có thể được tập hợp lại với nhau, Ethereum sẽ mặc định rằng dữ liệu của Blob này có sẵn và dữ liệu gốc có thể được khôi phục bằng cách ghép các mảnh lại với nhau. Tuy nhiên, cũng sẽ có xác suất rất thấp là 100 nút sẽ không vẽ được một đoạn có số lượng nhất định. Trong trường hợp này, dữ liệu sẽ bị thiếu, điều này làm giảm tính bảo mật ở một mức độ nhất định, nhưng có thể chấp nhận được về mặt xác suất.

Danksharding sử dụng hai công nghệ để triển khai lấy mẫu tính khả dụng của dữ liệu (DAS): mã hóa xóa (Erasure Coding) và cam kết đa thức KZG (Cam kết KZG)
Mã hóa xóa
Erasure Coding là một công nghệ mã hóa có khả năng chịu lỗi. Sử dụng mã hóa xóa để cắt dữ liệu có thể cho phép tất cả các nút Ethereum khôi phục dữ liệu gốc khi chúng chỉ có hơn 50% các đoạn dữ liệu, do đó làm giảm đáng kể dữ liệu. xác suất thiếu phức tạp hơn. Đây là một công thức toán học để đưa ra một ví dụ giải thích đại khái nguyên tắc: [2]
Đầu tiên hãy xây dựng hàm f(x) = ax + b và lấy 4 giá trị x bất kỳ
Giả sử m = f(0) = b, n = f(1) = a + b, ta có được a = n – b, b = m
Giả sử p = f(2), q = f(3), ta có p = 2a + b = 2n – m, q = 3a + b = 3n – 2m
Sau đó bốn mảnh m, n, p, q nằm rải rác giữa các nút trong toàn mạng
Theo công thức toán học, ta chỉ cần tìm 2 mảnh trong số đó là có thể biết được 2 mảnh còn lại là gì
Nếu bạn tìm thấy n và m, bạn có thể tính trực tiếp q=3n-2m và p=2n-m
Nếu bạn tìm thấy q và p, bạn có thể đặt (2p=4n-2m)-(q=3n-2m) để có được 2p-q=n và sau đó bạn có thể tính trực tiếp m
Nói một cách đơn giản, mã hóa xóa sử dụng các nguyên tắc toán học để cắt dữ liệu Blob thành nhiều đoạn dữ liệu. Các nút Ethereum không cần thu thập tất cả các đoạn dữ liệu. Họ chỉ cần thu thập hơn 50% các đoạn dữ liệu để khôi phục dữ liệu gốc của Blob. Bằng cách này, nó làm giảm đáng kể xác suất thu thập mảnh vỡ không đủ và xác suất của nó có thể bị bỏ qua.

Cam kết đa thức KZG (Cam kết KZG)
Cam kết đa thức KZG (KZG Commitment) là một công nghệ mã hóa được sử dụng để giải quyết vấn đề toàn vẹn dữ liệu của mã hóa xóa. Do nút chỉ kiểm tra ngẫu nhiên các đoạn dữ liệu bị cắt bởi mã xóa nên nút không biết liệu các đoạn dữ liệu có thực sự đến từ dữ liệu gốc của Blob hay không, do đó, vai trò chịu trách nhiệm mã hóa cần tạo ra cam kết đa thức KZG để chứng minh điều này tẩy xóa. Các đoạn dữ liệu của mã thực sự là một phần của dữ liệu gốc. Chức năng của KZG hơi giống với cây Merkle nhưng hình dạng thì khác.

Danksharding triển khai lấy mẫu tính khả dụng của dữ liệu (DAS) thông qua mã hóa xóa và cam kết đa thức KZG, giúp giảm đáng kể gánh nặng cho các nút khi lượng dữ liệu bổ sung do Blobs mang theo được mở rộng lên 16 MB ~ 32 MB. Hiện tại, cộng đồng Ethereum cũng đã đề xuất một phương pháp có tên là. Sơ đồ 2D KZG tiếp tục cắt giảm các đoạn dữ liệu để giảm băng thông và yêu cầu tính toán, nhưng thuật toán cuối cùng được sử dụng vẫn đang được thảo luận sôi nổi trong cộng đồng, bao gồm cả thiết kế DAS, cũng liên tục được tối ưu hóa và cải tiến.
Đối với Ethereum, Lấy mẫu sẵn có dữ liệu (DAS) giải quyết vấn đề mở rộng kích thước dữ liệu Blob từ 16 MB lên 32 MB đồng thời giảm gánh nặng cho các nút, nhưng dường như có một vấn đề: ai sẽ mã hóa dữ liệu gốc?
Nếu bạn muốn mã hóa dữ liệu gốc Blob, tiền đề là nút mã hóa phải có dữ liệu gốc hoàn chỉnh. Để đạt được điều này, sẽ có yêu cầu cao hơn đối với nút. Chà, Spinach đã đề cập trước đó rằng Danksharding đã đề xuất một cơ chế mới **Tách nhà sản xuất-đóng gói khối (PBS)** để giải quyết các vấn đề do MEV gây ra. Trên thực tế, giải pháp này không chỉ giải quyết được vấn đề MEV mà còn giải quyết được vấn đề Mã hóa. vấn đề.
Sự tách biệt giữa người đề xuất/người xây dựng
Trước hết, chúng tôi biết rằng Lấy mẫu sẵn có dữ liệu (DAS) giúp giảm gánh nặng cho các nút để xác minh Blobs và đạt được xác minh phi tập trung và cấu hình thấp. Tuy nhiên, để tạo khối này, bạn cần phải có dữ liệu Blob hoàn chỉnh và mã hóa nó, điều này sẽ cải thiện. Có nhiều yêu cầu đối với các nút đầy đủ của Ethereum. Phân tách Người đề xuất-Bundler (PBS) đề xuất chia các nút thành hai vai trò: Người xây dựng và Người đề xuất có thể trở thành Người xây dựng và các nút có hiệu suất thấp sẽ trở thành người đề xuất.
Hiện tại, có hai loại nút trong Ethereum: nút đầy đủ và nút nhẹ. Các nút đầy đủ cần đồng bộ hóa tất cả dữ liệu trên Ethereum như danh sách giao dịch và nội dung khối. Các nút đầy đủ đóng hai vai trò là đóng gói khối và xác minh khối. Vì nút đầy đủ có thể xem tất cả thông tin trong khối nên nút đầy đủ có thể sắp xếp lại hoặc thêm hoặc xóa các giao dịch trong khối để thu được giá trị MEV. Các nút nhẹ không cần đồng bộ hóa tất cả dữ liệu, chúng chỉ cần đồng bộ hóa tiêu đề khối để xác minh khối. [1]
Sau khi triển khai phân tách người đề xuất-người đóng gói (PBS):
Các nút có cấu hình hiệu suất cao có thể trở thành Người xây dựng. Người xây dựng chỉ cần chịu trách nhiệm tải xuống dữ liệu Blob, mã hóa và tạo các khối, sau đó phát chúng đến các nút khác để kiểm tra tại chỗ. Vì yêu cầu về băng thông và dữ liệu được đồng bộ hóa là rất lớn. cao, nó sẽ tương đối tập trung.
Các nút có cấu hình hiệu suất thấp hơn có thể trở thành người đề xuất. Người đề xuất chỉ cần xác minh tính hợp lệ của dữ liệu và tạo và phát các tiêu đề khối. Tuy nhiên, đối với người đề xuất, yêu cầu về khối lượng dữ liệu đồng bộ hóa và băng thông sẽ thấp hơn nên sẽ được phân cấp.

PBS thực hiện phân chia công việc giữa các nút bằng cách tách biệt vai trò đóng gói và xác minh. Các nút có cấu hình hiệu suất cao chịu trách nhiệm tải xuống tất cả dữ liệu để mã hóa và phân phối, còn các nút có cấu hình hiệu suất thấp chịu trách nhiệm kiểm tra và xác minh tại chỗ. vấn đề MEV đã được giải quyết?
Danh sách phản đối kiểm duyệt (crList)
Vì PBS tách biệt công việc đóng gói và xác minh, nên người đóng gói (Builder) thực sự có khả năng xem xét các giao dịch tốt hơn. Người đóng gói có thể cố tình bỏ qua một số giao dịch nhất định và sắp xếp và chèn các giao dịch mà anh ta muốn chèn vào theo ý muốn. - Danh sách kháng (crList) giải quyết những vấn đề này.
Cơ chế danh sách chống kiểm duyệt (crList): [1]
Trước khi Builder đóng gói giao dịch khối, Người đề xuất trước tiên sẽ xuất bản danh sách chống kiểm duyệt (crList). crList này chứa tất cả các giao dịch trong mempool.
Người đóng gói (Builder) chỉ được chọn đóng gói và sắp xếp các giao dịch trong crList, nghĩa là người đóng gói không thể chèn giao dịch riêng của mình để lấy MEV, cũng như không thể cố tình từ chối một giao dịch (trừ khi Gas limit đã đầy)
Sau khi đóng gói, Người xây dựng sẽ phát phiên bản cuối cùng của danh sách giao dịch Hash cho Người đề xuất. Người đề xuất chọn một trong các danh sách giao dịch để tạo Tiêu đề khối và phát nó.
Khi nút đồng bộ hóa dữ liệu, nó sẽ lấy tiêu đề khối từ người đề xuất (Proposer), sau đó lấy phần thân khối từ trình đóng gói (Builder) để đảm bảo rằng phần thân khối là phiên bản được chọn cuối cùng.
Tác động tiêu cực của MEV như "tấn công sandwich" được giải quyết thông qua danh sách chống kiểm duyệt (crList). Các nút không còn có thể có được MEV tương tự bằng cách chèn các giao dịch riêng tư.

Kế hoạch triển khai cụ thể của Ethereum cho PBS vẫn đang được thảo luận. Kế hoạch triển khai sơ bộ hiện tại có thể là PBS hai khe.
Tách biệt người đề xuất-người xây dựng hai khe
PBS hai khe sử dụng mô hình đặt giá thầu để xác định các khối:[2]
Sau khi nhận được crList, người xây dựng tạo tiêu đề khối của danh sách giao dịch và giá thầu
Người đề xuất chọn tiêu đề khối và người xây dựng thành công trong giá thầu cuối cùng và người đề xuất nhận được phí trúng thầu vô điều kiện (bất kể khối hợp lệ có được tạo hay không)
Ban xác minh (Ủy ban) xác nhận tiêu đề khối chiến thắng
Builder tiết lộ thân khối chiến thắng
Ban xác minh (Ủy ban) xác nhận Body khối trúng thầu và tiến hành bỏ phiếu xác minh (nếu vượt qua thì block sẽ được sản xuất. Nếu người đóng gói cố tình không đưa Body khối thì coi như khối đó không tồn tại)
Mặc dù Nhà xây dựng vẫn có thể nhận được MEV bằng cách điều chỉnh trình tự giao dịch, nhưng cơ chế đấu thầu của PBS hai khe khiến các Nhà xây dựng này phải "liên kết". Khi mọi người phải đấu thầu để cạnh tranh các khối, lợi nhuận thu được từ các nhà đóng gói tập trung thông qua MEV sẽ liên tục bị siết chặt và lợi nhuận cuối cùng sẽ được phân phối cho những người đề xuất phi tập trung (Người đề xuất). Điều này giải quyết được vấn đề. Nó giải quyết được vấn đề của các nhà đóng gói tập trung. ngày càng trở nên tập trung hơn bằng cách mua lại MEV.
Tuy nhiên, PBS hai khe có một lỗi thiết kế: chúng ta thấy tên của thiết kế này có "Hai khe", nghĩa là có hai khe, có nghĩa là trong sơ đồ này, thời gian tạo khối hiệu quả là Đã hết kéo dài đến 24 giây (một vị trí = 12 giây) và cộng đồng Ethereum đã tích cực thảo luận về cách giải quyết vấn đề này.

Tóm tắt
Danksharding cung cấp một giải pháp biến đổi cho Ethereum để giải quyết “tam giác bất khả thi trên blockchain” nhằm đạt được khả năng mở rộng trong khi vẫn đảm bảo tính phân cấp và bảo mật của Ethereum:
Thông qua giải pháp ngoại vi EIP-4844: Proto-Danksharding, một loại giao dịch mới Blob được giới thiệu. Khối lượng dữ liệu bổ sung 1MB~2MB do Blob mang theo có thể giúp Ethereum đạt được TPS cao hơn và giảm chi phí khi tổng hợp.
Lấy mẫu tính sẵn có của dữ liệu (DAS) được triển khai thông qua mã hóa xóa và cam kết đa thức KZG, do đó các nút chỉ cần kiểm tra ngẫu nhiên một số đoạn dữ liệu để xác minh tính khả dụng của dữ liệu và giảm gánh nặng cho các nút.
Bằng cách triển khai Lấy mẫu tính khả dụng của dữ liệu (DAS), khối lượng dữ liệu bổ sung của Blob được mở rộng lên 16MB~32MB, đưa hiệu ứng mở rộng lên mức cao hơn.
Thông qua Phân tách người đề xuất-nhà đóng gói (PBS), công việc xác minh và đóng gói các khối được tách thành hai vai trò nút, thực hiện phân cấp các nút đóng gói và phân cấp các nút xác minh.
Tác động tiêu cực của MEV được giảm thiểu đáng kể thông qua danh sách chống kiểm duyệt (crList) và PBS hai khe cắm. Nhà đóng gói không thể chèn các giao dịch riêng tư hoặc kiểm duyệt một giao dịch nhất định.
Nếu không có gì khác, giải pháp front-end EIP-4844 của Danksharding sẽ được triển khai chính thức trong bản nâng cấp Cancun sau bản nâng cấp Ethereum Shanghai. Lợi ích trực tiếp nhất sau khi triển khai giải pháp EIP-4844 là Rollup và Rollup trong hệ sinh thái Lớp 2. TPS cao hơn và chi phí thấp hơn rất phù hợp cho các ứng dụng tần số cao trên chuỗi. Chúng ta cũng có thể tưởng tượng rằng một số "ứng dụng sát thủ" có thể ra đời. Việc tạo khối tập trung + xác minh phi tập trung + khả năng chống kiểm duyệt mà Danksharding đạt được sẽ mang đến một vòng tường thuật chuỗi công khai mới cho Ethereum. Ngoài Lớp 2, chuỗi khối mô-đun và Ethereum sau Danksharding sẽ va chạm để tạo ra loại phản ứng hóa học nào?
Spinach tin rằng việc triển khai Danksharding sẽ viết lại toàn bộ luật chơi và Ethereum sẽ đưa ngành công nghiệp blockchain bước vào một kỷ nguyên mới!
người giới thiệu
[1] Tính sẵn có của dữ liệu, mở rộng lưu trữ của blockchain
[2] Tìm hiểu kế hoạch nâng cấp mới của Ethereum trong một bài viết Danksharding
[3] Câu hỏi thường gặp về Proto-Danksharding – HackMD
[4] Chính xác thì "Danksharding" trong khoa học phổ thông của V là gì?
[5] Được đề xuất bởi V God丨Để hiểu sâu hơn về lộ trình sharding của Ethereum, báo cáo này là đủ
[6] Bài viết của Buidler DAO: Làm thế nào để giải cứu NFT khỏi tay hacker sau khi ví của họ bị đánh cắp?
[7] Lịch sử lặp lại? Giải thích chi tiết về Ethereum 2.0 và hard fork