Lưu ý: Đây là nội dung chuyên sâu về công nghệ nên khó tránh khỏi nhiều thuật ngữ gây khó khăn cho các bạn Non – Tech, đặc biệt là người mới tham gia thi trường. Nếu bạn có bất kỳ thắc mắc nào hãy tham gia cộng đồng 5 Phút Crypto để cùng thảo luận làm rõ nhé!
1. Giới thiệu nâng cấp Dencun
1.1. Dencun là gì?
Dencun sẽ là bản hard fork lớn tiếp theo của Ethereum sau hard fork Shapella (04/2023). Đợt nâng cấp này thuộc The Surge, tập trung giải quyết khả năng mở rộng và phí giao dịch cao, nằm trong lộ trình phát triển của Ethereum mà nhà sáng lập Vitalik đã trình bày trước đó.
Dencun bao gồm tất cả 9 đề xuất nâng cấp (EIP) mà nổi bật hơn hết là chức năng Proto-DankSharding (hay EIP-4844), mang đến nhiều lợi ích về giảm phí giao dịch trên Layer 2 và khả năng mở rộng (Scalability) tổng thể trên blockchain Ethereum, cho phép mạng xử lý 30.000-100.000 giao dịch mỗi giây . Mặt khác, Proto-DankSharding cũng là tiền đề cho Ethereum tiến tới áp dụng DankSharding hoàn toàn trong tương lai. Cụm từ “Proto” mang ý nghĩa đầu tiên, trước cái gì đó (ở đây là trước DankSharding).
Tên gọi Dencun xuất phát từ:
- Deneb: những bản cải tiến cho Consensus Layer (lớp đồng thuận), lấy theo tên của ngôi sao sáng nhất trong chòm sao Cygnus (Thiên nga).
- Cancun: những bản cải tiến cho Execution Layer (lớp thực thi), lấy theo tên thành phố diễn ra Devcon 3 (năm 2017).
Hard fork Dencun đã được ấn định thời gian kích hoạt trên mạng chính Ethereum ở epoch số 269568, ngày 13 tháng 3 năm 2024 lúc 13:55 UTC (20:55 giờ Việt Nam).
1.2. Các công nghệ đổi mới
Bản nâng cấp Dencun thực hiện các thay đổi ở cả Execution Layer (lớp thực thi) và Consensus Layer (lớp đồng thuận) trên Ethereum. Danh sách đầy đủ các thay đổi giao thức được tổng hợp trong EIP-7569, bao gồm:
Nâng cấp | Ethereum Improvement Proposal (EIP) | Layer |
Deneb/Cancun | EIP-4844: Shard Blob Transactions (Proto-DankSharding) | Execution/Consensus |
Deneb/Cancun | EIP-4788: Beacon block root in the EVM | Execution/Consensus |
Cancun | EIP-1153: Transient storage opcodes | Execution |
Cancun | EIP-5656: MCOPY – Memory copying instruction | Execution |
Cancun | EIP-6780: SELFDESTRUCT only in same transaction | Execution |
Cancun | EIP-7516: BLOBBASEFEE opcode | Execution |
Deneb | EIP-7044: Perpetually Valid Signed Voluntary Exits | Consensus |
Deneb | EIP-7045: Increase Max Attestation Inclusion Slot | Consensus |
Deneb | EIP-7514: Add Max Epoch Churn Limit | Consensus |
Trong các EIP này, có 2 đề xuất EIP-4788 và EIP-4844 sẽ thực hiện cải tiến ở cả 2 lớp Execution/Consensus, mà quan trọng hơn hết là EIP-4844 (hay Proto-DankSharding). Vì hàm lượng kiến thức rất dày, 5Money sẽ tập trung vào cải tiến Proto-DankSharding và giải thích một cách ngắn gọn về các đổi mới của các đề xuất còn lại.
2. Proto-DankSharding – chức năng cốt lõi của nâng cấp Dencun
2.1. Proto-DankSharding là gì?
Proto-Danksharding (EIP-4844), là một phương pháp cho phép các rollup thêm dữ liệu vào các khối một cách rẻ hơn. Tên gọi này xuất phát từ hai nhà nghiên cứu đề xuất ý tưởng: Protolambda và Dankrad Feist. Hiện tại, các rollup bị hạn chế về khả năng giảm phí cho người dùng do việc họ gửi các giao dịch trong Calldata.
Nếu cảm thấy các khái niệm trên khó hiểu, bạn có thể xem hệ thống blockchain Ethereum như một công ty vận chuyển hàng hoá bằng xe tải, hiện chỉ đảm nhận một tuyến hàng duy nhất là từ TP.HCM đến Hà Nội, hoàn thành một chuyến hàng sau đó mới tới một chuyến hàng khác. Tương đương với việc Ethereum phải thực hiện các giao dịch tuần tự. Ở đây, xe vận chuyển tương đương một khối (block), hàng hoá trên xe tương đường với giao dịch trên chuỗi.
Về dài hạn, công ty mong muốn mở rộng kinh doanh để thực hiện nhiều chuyến hàng hơn, yêu cầu nhiều xe cùng lăn bánh cùng lúc. Tương ứng với việc Ethereum lên kế hoạch thực hiện Sharding, tạo ra nhiều luồng xử lý giao dịch song song.
Đường cao tốc được hoàn thành để đáp ứng nhu cầu vận chuyển. Tuy nhiên, việc tăng số chuyến xe cần các quy tắc vận hành mới, ví dụ như chọn loại xe nào để tối ưu khối lượng hàng hoá? xe nào đi quốc lộ, xe nào đi cao tốc? cước phí bao nhiêu?. Tương ứng trên Ethereum chính là Proto-Danksharding, tạo ra các nguyên tắc, các hàm hỗ trợ cho gói giao dịch kiểu mới.
“calldata” là một phần của giao dịch, chứa các dữ liệu đầu vào được gửi đến hợp đồng thông minh khi thực hiện một giao dịch. Dữ liệu này bao gồm thông tin cần thiết để thực hiện hàm hay chức năng cụ thể trong hợp đồng thông minh, ví dụ như các tham số của hàm.
calldata tốn kém vì được xử lý bởi tất cả các nút trên Ethereum và tồn tại trên chuỗi vĩnh viễn, mặc dù các rollup chỉ cần dữ liệu trong một thời gian ngắn.
Hiện tại, phần lớn các rollups sử dụng dữ liệu từ Data Availability Layer (lớp dữ liệu khả dụng) và khi gửi lên mạng chính sẽ đi qua Execution Layer (hay các EVM) để kiểm tra.
Proto-Danksharding giới thiệu khái niệm “blob-carrying transactions” hay “data blobs”, “blobs” , loại giao dịch mới này không đi qua EVM (Ethereum Virtual Machine), giúp các rollups có thể gửi dữ liệu một cách rẻ hơn nhiều và giúp người dùng tiết kiệm chi phí.
2.2. Blob là gì?
Blob (Binary large object) có thể được hiểu là các “gói giao dịch” đi kèm với các khối, cung cấp một không gian riêng cho dữ liệu từ các giao dịch rollups, một blob tương đương khoảng 128kB . Các dữ liệu này sẽ được lưu trữ tạm thời trên Consensus Layer (lớp đồng thuận) và được tự động xóa sau một khoảng thời gian cố định (được thiết lập là 4096 epochs tại thời điểm hiện tại, tương đương khoảng 18 ngày).
2.3. Vì sao Blob giúp rollups rẻ hơn?
Một blob-carrying transaction chứa 2 trường dữ liệu mà một giao dịch thông thường trên Ethereum không có:
- max_fee_per_blob_gas : số tiền mà người gửi giao dịch sẵn sàng trả để blob-carrying transaction được bao gồm trong một khối.
- blob_versioned_hashes : danh sách các tham chiếu của các blob bao gồm trong giao dịch.
Về mặt kỹ thuật, blob-carrying transaction không có các dữ liệu blob, mà chỉ có các tham chiếu (reference) của các blob. Những tham chiếu này là hash của một cam kết KZG (KZG commitment) với một blob. Bạn đọc có thể hình dung hàm hash như một dấu vân tay độc nhất gắn với mỗi blob và được sử dụng để nối các blob này vào blob-carrying transaction.
KZG commitment (Kate-Zaverucha-Goldberg commitment – bảo chứng KZG) là hệ thống giúp mã hóa một blob trở thành một “bảo chứng” nhỏ gọn, xác minh tính trung thực của các blob được gửi từ rollup.
Vì chỉ có tham chiếu này đến mỗi blob tồn tại trong một khối nhất định, các giao dịch Layer 2 chứa trong mỗi blob sẽ không cần thực thi bởi các EVM. Đây là lý do giúp dữ liệu blob (128KB mỗi blob) có thể được gửi lên Ethereum bởi một rollup rẻ hơn so với calldata Ethereum thông thường (ở cùng kích thước dữ liệu). Dữ liệu thực tế tạo nên mỗi blob được lưu trữ trên lớp đồng thuận của Ethereum (các nút beacon).
Tiếp tục với hình tượng công ty vận chuyển ở trên. Lúc này, các gói hàng chất lên xe (tương ứng với các giao dịch) có sự thay đổi để tối ưu không gian, bên cạnh các khách hàng gửi các kiện hàng cá nhân (tương ứng với các giao dịch truyền thống trên Ethereum) được tính theo cước phí cũ. Công ty cung cấp dịch vụ ưu đãi (tương ứng các rollups) cho các gói hàng gọn nhẹ (tương ứng gói giao dịch blob)
2.4. Cách một blob được xác minh
Các rollup gửi các giao dịch mà chúng thực thi trong các blob, cùng một KZG commitment dưới dạng tương tự một hàm đa thức. Hàm này có thể được kiểm tra tại nhiều điểm khác nhau. Nếu dữ liệu gốc bị thay đổi (rollup không trung thực), hàm sẽ không cho ra cùng kết quả, do đó giá trị kiểm tra tại mỗi điểm cũng không giống nhau. Trong chuỗi, cam kết và chứng minh rất phức tạp vì chúng được mã hoá bởi các hàm mật mã. Hãy xem ví dụ để nắm rõ cách hàm đa thức “bảo chứng” được chứng minh.
Ví dụ, chúng ta có hàm f(x) = 2x – 1 thì chúng ta có thể kiểm tra hàm này cho x=1, x=2, x=3 cho ra các kết quả 1, 3, 5. Nếu một rollup không trung thực thay đổi dữ liệu (thay đổi các tham số 2,1) thì kết quả đầu ra không còn trùng khớp nữa.
2.5. Blob market
Proto-danksharding giới thiệu thị trường phí đa chiều (EIP-1559), nơi có hai nguồn tài nguyên là gas và blob, với giá gas thả nổi riêng và giới hạn riêng. Mặc dù số lượng blobs có thể được gắn vào một block là biến số (khoảng từ 0-6), nhưng mức mục tiêu là 3 blobs cho mỗi khối. Việc đặt mức mục tiêu này được thực hiện thông qua một cơ chế khuyến khích giá cả tương tự EIP-1559, giá của một blob sẽ trở nên đắt hơn khi có nhiều hơn 3 blobs được gắn vào một khối. Ngược lại, giá blob trở nên rẻ hơn khi có ít hơn 3 blobs.
Cụ thể, chi phí cho các giao dịch blob từ một khối này sang khối khác có thể tăng hoặc giảm lên đến 12,5%. Mức độ biến động giá này khoảng +/- 12,5% mỗi khối, được tính toán bởi tổng lượng gas sử dụng bởi tất cả các blobs được gắn kèm, tăng lên với sự gia tăng số blobs. Tất cả blobs sẽ có kích thước 128KB bất kể chúng được lấp đầy hoàn toàn hay không.
Khi thị trường blob biến động qua mô hình giá động được mô tả ở trên, các hợp đồng lớp 2 sẽ cần thông tin giá gần thời gian thực của thị trường blob để đảm bảo việc kiểm toán chính xác. Cùng với EIP-4844, EIP-7516 cũng sẽ được triển khai để tạo ra opcode BLOBBASEFEE, mà các rollup và lớp 2 sẽ sử dụng để truy vấn phí cơ bản blob hiện tại từ tiêu đề khối. Đây là một truy vấn không tốn kém, chỉ cần 2 gas.
Mang cách tính phí này vào hình tượng hoá, công ty vận chuyển ở trên mong muốn chở 3kg/xe loại hàng này. Vì vậy, công ty đưa ra cách tính phí theo hình thức, nhỏ hơn hoặc bằng 3kg sẽ được tính theo mức phí cơ bản, từ kilogram thứ 4 sẽ tính thêm 12,5% phí cơ bản vào tổng cước phí, tối đa 6kg cho một xe. Tương ứng với cách tính phí blob, từ dưới 3 blobs sẽ được phí cơ bản, từ blob thứ 4 sẽ tăng phí. Chúng ta có thể xem giấy tờ đảm bảo (không chất cấm, hàng cấm) cho các gói hàng gọn nhẹ này tương ứng với các cam kết KZG.
2.6. Tiến tới DankSharding
Sau khi EIP-4844 được triển khai, mỗi node sẽ cần phải lưu trữ mọi blob. Để tiến tới Danksharding, điều quan trọng là các nút chỉ cần tải xuống một phần của những blobs này (hay data availability sampling-lấy mẫu dữ liệu khả dụng). Nhờ đó, số lượng blobs được gắn vào mỗi khối có thể tăng mà không làm tăng gánh nặng của các node, đây mới là Sharding thật sự.
Cũng như Proto-danksharding đặt mức mục tiêu 3, nhưng cho phép tối đa 6 blobs, Danksharding hướng đến mục tiêu 8, và tối đa là 16 blobs. Tuy nhiên, khi tăng số lượng blobs có thể được gắn vào một khối, kích thước của mỗi blobs cũng tăng theo. Erasure coding sẽ giải quyết vấn đề này, khi mỗi node chỉ cần xác thực một phần của blob.
Dencun là tiền đề hướng tới DankSharding- Nguồn: Ethereum
Bên cạnh Data Availability Sampling (DAS) và Erasure coding, Ethereum vẫn cần một số công nghệ phức tạp khác như PeerDAS, SubnetDAS để tiến tới DankSharding. Một hành trình chưa định rõ ngày hoàn thành.
3. Các EIP khác
Các cải tiến ở Execution Layer:
- EIP-1153: bổ sung 2 opcode TLOAD và TSTORE, giới thiệu khái niệm “lưu trữ tạm thời” đến các EVM. Các opcode mới này hoạt động tương tự các opcode lưu trữ hiện có nhưng chúng sẽ loại bỏ các giá trị liên quan ở cuối giao dịch. Từ đó, cung cấp một giải pháp tiết kiệm phí gas cho các tương tác trong EVM (với opcode lưu trữ hiện tại mỗi lượt truy vấn sẽ tốn phí). Việc xoá dữ liệu tạm thời này giống như dữ liệu trong RAM máy tính được xoá đi khi không cần dùng đến.
- EIP-5656: thêm một Instruction mới MCOPY vào EVM. Mục đích của MCOPY là cải thiện hiệu suất sao chép bộ nhớ và hỗ trợ một phương tiện hiệu quả hơn trong việc xây dựng cấu trúc dữ liệu. Một lệnh copy 256 bytes dữ liệu chỉ tốn 27 gas với MCOPY, so với ít nhất 97 gas ở hiện tại. EIP này là một cải thiện về hiệu suất đối với EVM và không có bất kỳ sự đánh đổi hay không tương thích nào vì hiện tại không có tham chiếu chức năng đến MCOPY.
- EIP-6780: vô hiệu hoá chức năng opcode SELFDESTRUCT đi kèm tối thiểu sự gián đoạn với các hợp đồng thông minh (smart contract) đang dùng nó. Bên cạnh đó, điều chỉnh này thích hợp với cách lưu trữ tài khoản trên Verkle tree đang được chuẩn bị.
- EIP-7516: bổ sung opcode BLOBBASEFEE, trả về giá trị phí cơ sở blob của block mà nó đang thực thi theo Proto-DankSharding, chức năng trả về phí cơ sở này tương tự EIP-3198.
Các cải tiến ở Consensus Layer:
- EIP-7044: cải thiện trải nghiệm staking của người dùng qua thay đổi thông số trên Consensus layer (lớp đồng thuận). Đề xuất này cho phép lượt đăng ký rút staking tồn tài vĩnh viễn thay vì chỉ trong 2 hard fork gần nhất ở hiện tại.
- EIP-7045: đề xuất tăng số lượng attestation inclusion slot (các slot chứng nhận tính đúng đắn của một khối) tối đa từ 32 lên 64 slot, giúp cải thiện tính bảo mật của cơ chế đồng thuận và cho phép giảm thời gian xác thực khối.
- EIP-7514: thiết lập giới hạn epoch churn (ở đây là 8) để hạn chế lượng validator đi vào mạng lưới trên mỗi epoch. Số lượng validator tăng liên tục từ update Shanghai đã gây áp lực lớn các node. Nâng cấp này là một giải pháp ngắn hạn trước khi hoàn thiện những giải pháp vẹn toàn hơn (EIP-7251).
Riêng EIP-4788 (cùng EIP-4844 ở trên) được triển khai ở cả Execution và Consensus layer, cho phép lưu trữ Beacon block root trong Execution layer (lớp thực thi). Nhờ cải tiến, các hợp đồng thông minh hay các giao thức không còn phải tin vào một oracle mà vẫn lấy được thông tin trạng thái của lớp đồng thuận Ethereum.
4. Các nâng cấp hậu Dencun
Sau Dencun, hard fork tiếp theo của Ethereum sẽ là Pralectra, là sự kết hợp của hai bản nâng cấp
- Electra, bản nâng cấp cho lớp đồng thuận (Consensus Layer): với đề xuất chính là EIP-7251, nhằm việc thay đổi số dư cần để trở thành một validator trên Ethereum từ cố định 32 ETH sang linh hoạt 32-2048 ETH. Việc tăng giới hạn trên giúp giảm số lượng validator vận hành cho các cá nhân hoặc tổ chức gửi lượng ETH lớn. Đề xuất nếu được triển khai sẽ giúp giảm tải áp lực băng thông trên mạng lưới Ethereum và đặt tiền đề cho các nâng cấp khác sau đó như ePBS (enshrine Proposer-Builder Seperation) và SSG (Single-Slot Finality).
- Prague, bản nâng cấp cho lớp thực thi (Execution Layer): với đề xuất chính là EIP-6800, nhằm triển khai Verkle tree, một dạng cấu trúc dữ liệu tương tự Merkle tree nhưng có khả năng tạo ra các witness (chứng thực) gọn nhẹ hơn, dễ dàng xác thực hơn với các client. EIP-6780 của nâng cấp Dencun là nền tảng cho việc triển khai Verkle tree.
Nâng cấp Pralectra chưa được ấn định thời gian cụ thể, tuy nhiên, đội ngũ developers và cộng đồng kỳ vọng có thể thực hiện trong năm 2024. 5Money sẽ cập nhật thông tin về đợt nâng cấp tiếp theo này.
Mời bạn đọc tiếp về : Top 2 cơ hội đầu tư sau Dencun không nên bỏ qua
Miễn trừ trách nhiệm: 5Money khuyến cáo người đọc phải trang bị kiến thức sâu sắc về thị trường Crypto trước khi tham gia đầu tư. Thông tin trong bài viết không được xem là lời khuyên tài chính, 5Money không chịu trách nhiệm với bất kỳ quyết định đầu tư nào của các bạn.
Tham gia Cộng đồng 5 Phút Crypto để thảo luận về kiến thức và kinh nghiệm đầu tư nhé!