Tổng quan
Layer 2 đang là từ khóa vô cùng hot trong thời gian gần đây, thu hút mọi sự chú ý từ cộng đồng lẫn dòng tiền. Bên cạnh các Layer 2 cũ như Arbitrum, Optimism, Loopring… còn có các Layer 2 mới nổi bao gồm Zksync Era, Starknet, Polygon ZkEVM, …
Với Layer 2, Ethereum có thể giải quyết nhiều bài toán khó trước đây như tốc độ, chi phí giao dịch, khả năng mở rộng…, giúp mạng lưới này hoàn thiện hơn và có thể cạnh tranh sòng phẳng với các Layer 1 khác.
Vậy tại sao chúng có thể làm được như vậy? Và ẩn sâu trong đó là những đánh đổi gì? Hay đâu sẽ là điểm rơi công nghệ tiếp theo? Trong bài viết này, hãy cùng GFI tìm hiểu về bản chất của các giải pháp mở rộng, và qua đó, có thể dự phóng bước phát triển tiếp theo của các Layer 2 nhé!
Key takeaways:
- Layer 2 ra đời với sứ mệnh giải quyết vấn đề mở rộng của Ethereum, tuy nhiên bản chất nó là sự đánh đổi của tính phi tập trung và độ sâu thanh khoản vốn là niềm tự hào của mạng lưới.
- 4 giải pháp Layer 2 phổ biến là Zk-Rollup, Optimistic-Rollup, Validium và Plasma.
- Cải thiện tính có sẵn của data (data availability) và giảm phí gas cho mỗi byte dung lượng là chìa khóa cho khả năng mở rộng của Layer 2.
- Layer 2 có thể mở rộng đến 100 lần với Rollup và 2000 lần khi Proto – Danksharding hoàn tất.
Sự ra đời của Layer 2
Năm 2014 Ethereum chính thức được ra đời với sứ mệnh đem lại một nền tài chính phi tập trung đến với mạng lưới blockchain. Ban đầu, vì số lượng giao dịch ít nên mạng lưới vẫn rất ổn định, tuy nhiên từ 2020 trở đi, nó bắt đầu trở nên quá tải.
Càng về sau, các lệnh đua gas dần trở nên phổ biến hơn, cộng thêm việc giá ETH tăng phi mã, đã khiến cho chi phí để thực hiện 1 giao dịch đơn giản trở thành rào cản cho nhiều người dùng mới. Điển hình như trong giai đoạn giữa năm 2020 – giữa năm 2021, gas price trung bình là 100 gwei, và nếu giá ETH là $3000, thì chi phí cho 1 lệnh swap trên Uniswap có thể lên đến $40. Thậm chí có những lúc cao điểm lên đến 600 –700 gwei là một chuyện hết sức “bình thường”.
Ngoài ra tốc độ giao dịch trên Ethereum cũng rất chậm, trung bình là từ 3-5 phút nếu bạn không chấp nhận “đua gas”, nó hoàn toàn không đáp ứng đủ nhu cầu cho một nền tài chính, nơi mà dòng tiền được luân chuyển liên tục. Từ đó các Layer 1 khác như BNB chain, Solana, Polygon… nổi lên như những giải pháp thay thế, tuy nhiên chúng lại không thể có được giá trị cốt lõi mà Ethereum đã xây dựng suốt năm qua: dòng tiền dồi dào, sự an toàn và tính phi tập trung.
Kể từ khi ra mắt, Ethereum chưa bao giờ bị sập mạng, cũng như duy trì lượng validator và TVL cực lớn (luôn chiếm hơn 50% TVL hệ sinh thái tiền mã hóa). Không chỉ vậy, mỗi khi có một biến cố lớn xảy ra (vd FTX phá sản), Ethereum chính là sự là lựa chọn hàng đầu của người dùng để đặt niềm tin trong việc lưu trữ tài sản
Để giải quyết vấn đề cũng như duy trì vị thế của chính mình, Ethereum đã đi đến chu kì phát triển tiếp theo – mở rộng cùng các giải pháp Layer 2.
Layer 2 là gì?
Theo định hướng của nhà sáng lập Vitalik, trong tương lai, Layer 1 Ethereum sẽ trở thành lớp bảo mật vững chắc và đáng tin cậy (consensus layer), trong khi Layer 2 sẽ là lớp thực thi cho mọi giao dịch (execution layer). Hiểu đơn giản là tất cả Dapp sau này sẽ “chuyển nhà” lên Layer 2.
Vậy Layer 2 là gì?
Để dễ hiểu thì chúng ta sẽ cần nắm những ý sau:
- Ethereum sử dụng máy ảo EVM để thực thi smart contract, nghĩa là nếu muốn tương thích liền mạch với Ethereum (chuyển token qua lại giữa chúng và Ethereum, các Dapp của Ethereum mở một phiên bản mới ở blockchain khác,…), một mạng lưới cần phải tích hợp EVM trong hệ thống của mình. Điều này tương tự như việc hệ điều hành của Iphone là IOS, các ứng dụng trên Iphone phải tương thích với IOS.
- Các blockchain mới sử dụng EVM có thể được coi là một giải pháp mở rộng của Ethereum (vì chúng nhanh hơn, rẻ hơn, và tương thích với Ethereum).
- Tuy nhiên giải pháp mở rộng cũng có 2 loại:
-
- (1) Sidechain: nếu chúng đơn thuần chỉ tích hợp EVM, nhưng vẫn sử dụng cơ chế đồng thuận riêng (không sử dụng validator của Ethereum) và có token để trả phí gas (native token) của riêng mình (vd Polygon, BNB…)
- (2) Layer 2: nếu chúng có tích hợp EVM, sử dụng cơ chế đồng thuận của Ethereum và dùng ETH để trả phí gas (vd Optimism, Arbitrum). Với đặc điểm này, Layer 2 có thể kế thừa tính bảo mật tuyệt vời từ Ethereum.
Mấu chốt ở đây chính là các giao dịch trên Layer 2 sau khi được tính toán, sẽ được gửi về Layer 1 Ethereum để xác minh. Nếu Ethereum đồng thuận thì giao dịch đó mới chính thức được thông qua. Nói một cách khác, nếu sau 1 thời gian nhất định, validator trên Ethereum từ chối, thì mọi hành động trên Layer 2 là vô nghĩa.
Vd: Nếu một hacker tấn công Layer 2, Ethereum có thể hồi phục lại trạng thái cũ của Layer 2 trước cuộc tấn công. Và cách duy nhất để thành công là hacker phải tấn công luôn cả Ethereum (1 điều dường như bất khả thi).
Các giải pháp layer 2
Hiện nay có 6 giải pháp Layer 2, tuy nhiên giới hạn trong bài viết này mình sẽ chỉ bao quát trong 4 giải pháp phổ biến nhất là: Optimistic rollup, zero-knowledge (Zk) rollup, validium và plasma. Mặc dù mỗi giải pháp có nhiều sự khác biệt về chuyên sâu, nhưng chúng sẽ có các đặc điểm chính sau đây:
Plasma | Optimistic Rollup | Validium | Zk – Rollup | |
Giao dịch | Batch transaction | Batch transaction | Batch transaction | Batch transaction |
Data Availability | Off-chain | On-chain | Off-chain | On-chain |
Proof | Fraud Proof | Fraud Proof | Validity Proof | Validity Proof |
Security | Thấp | Cao | Thấp | Ethereum-Level |
Cost | Rất thấp | Thấp | Thấp | Thấp |
Smart contract | Hạn chế | Có | Hạn chế | Có |
Thời gian rút tiền | 1 tuần | 1 tuần | Ngay khi xác minh dữ liệu | Ngay khi xác minh dữ liệu |
- Batch transaction: Các giao dịch trên Layer 2 sẽ được tính toán và “đóng gói” trước khi gửi về Layer 1 Ethereum (thông thường là 24h/ 1 lần). Bằng cách này, validator trên Ethereum sẽ được giảm thiểu một lượng lớn công suất trong việc tính toán, thay vào đó họ chỉ cần xác minh là “gói hàng” đó có hợp lệ hay không. Có 2 loại “bằng chứng” được sử dụng trong quá trình xác minh: Fraud proof và Validity proof.
- Fraud Proof: Giải thích đơn giản thì tức là khi giao dịch được gửi về Ethereum, họ sẽ nói rằng “nếu không ai chứng minh X sai trong vòng 1 tuần, thì X sẽ đúng”. Cách này không đòi hỏi cao về chi phí tính toán (trên Layer 2) và xác minh (trên Layer 1). Tuy nhiên nó sẽ chiếm khá nhiều dung lượng trên Ethereum (vì nó lưu trữ toàn bộ thông tin về giao dịch) và nếu người dùng muốn rút tiền ra khỏi Layer 2, sẽ cần đợi ít nhất 1 tuần.
- Validity proof: Các giao dịch được bọc trong một bằng chứng zero-knowledge và gửi về Ethereum. Bằng chứng zk nói rằng “X chắc chắn đúng nhưng không cần xem xét toàn bộ X”. Cách này đòi hỏi cao về chi phí tính toán và xác minh. Tuy nhiên nó sẽ chiếm ít dung lượng trên Ethereum (vì nó chỉ lưu trữ 1 phần thông tin về giao dịch) và người dùng có thể rút tiền ngay lập tức khi bằng chứng zk được chấp thuận.
- Data on-chain: Thông tin các giao dịch được “đóng gói”, gửi về, và lưu trữ trên Ethereum.
- Data off-chain: Thông tin các giao dịch được “đóng gói” và lưu trữ bên ngoài Ethereum (validator không thể xác thực giao dịch đó đúng hay sai. Thay vào đó họ chỉ định kỳ gửi “bản cập nhật trạng thái” về Ethereum để xác minh. Hiện tại có 2 cách để lưu trữ off chain:
-
- Sử dụng 1 bên thứ ba đáng tin cậy và được quản lý bởi ủy ban thông tin (DAC). DAC có nhiệm vụ bảo vệ và gửi “bản cập nhật trạng thái” lên Ethereum. Layer 2 đang sử dụng cơ chế này là: Arbitrum Nova, Sorare, Immutable X, …
- Sử dụng 1 mạng lưới lưu trữ phi tập trung (tạm gọi là MEMO). Các validator có thể buộc sequencer (người tính toán và sắp xếp giao dịch trên Layer 2) gửi thông tin trực tiếp lên on-chain Ethereum nếu thấy sequencer không lưu trữ chúng trong MEMO. Layer 2 đang sử dụng cơ chế này là Metis.
- Chi phí: Chi phí trên Layer 2 bao gồm phí tính toán off-chain + phí xác thực trên Ethereum + phí lưu trữ data trên Ethereum. Tương quan chi phí đối với các loại “bằng chứng” được trình bày như sau:
Fraud proof | Validity proof | |
Phí tính toán off-chain | Thấp hơn (tuy nhiên cần nhiều node hơn để lặp lại việc tính toán nhằm đảm bảo sự chính xác của kết quả) | Cao hơn (phí tính toán bằng chứng ZK có thể cao hơn hàng nghìn lần so so với tính toán thông thường) |
Phí xác thực trên Ethereum | ~40.000 gas/ batch transaction | ~500.000 gas/ batch transaction (xác thực bằng chứng Zk đòi hỏi năng lượng tính toán cao) |
Phí lưu trữ data trên Ethereum | Cao hơn (so phải lưu trữ toàn bộ giao dịch) | Thấp hơn (do chỉ cần lưu trữ 1 phần giao dịch) |
Chính vì Plasma không chỉ sử dụng Fraud proof, mà còn lưu trữ data off-chain nên chi phí giao dịch trên nền tảng này cũng rất thấp
- Plasma và Validium không tương thích với tính toán tổng quát (general computing) nên không thích hợp làm một generalized Layer 2 (Layer 2 cho phép developer tự do xây dựng Dapp, smart contract trên mạng lưới). Thay vào đó nó chỉ phù hợp để làm một specific Layer 2 với các tính năng chuyên biệt được xây dựng sẵn
Vd: Immutable X là một Layer 2 nền tảng chuyên dành cho GameFi, với các bộ công cụ để đối tác có thể xây dựng và quảng bá sản phẩm trên nó (giống như Steam). Ngoài ra Immutable X còn có một NFT marketplace chung cho tất cả trò chơi để người dùng có thể trao đổi các sản phẩm in-game.
—–> Xem thêm: So sánh Zk-Rollup và Optimistic-Rollup
Làm sao Layer 2 có thể giải quyết bài toán mở rộng và chi phí
Khả năng mở rộng và chi phí giao dịch luôn là 2 yếu tố song hành với nhau. Để nói về bài toán mở rộng và chi phí, chúng ta cần hiểu về dung lượng lưu trữ trên Ethereum và gas. Cơ chế hoạt động có thể hình dung như sau:
- Giới hạn gas tối đa (gas limit): 30 triệu gas/ block
- Dung lượng lưu trữ tối đa (capacity limit): khoảng 2mb/ block
Trong mỗi giao dịch được thực hiện sẽ có 2 thành phần này, tùy vào độ phức tạp mà dung lượng và gas cũng sẽ khác nhau (thông thường chúng sẽ tỉ lệ thuận với nhau). Để mạng lưới cũng như máy tính của các validator có thể hoạt động trơn tru, giới hạn trong một block sẽ phụ thuộc vào thông số nào đạt cực đại trước (vì 1 block không thể tiêu tốn quá nhiều dung lượng bộ nhớ, nhưng cũng không thể tiêu tốn quá nhiều gas để giải các tính toán phức tạp).
Đối với Ethereum, tối ưu nhất là 50% gas limit/ block. Trong một block, nếu lượng giao dịch tiêu tốn hơn 50% gas tối đa (khoảng 15 triệu gas) thì phí gas sẽ tăng cao hơn, làm người dùng không muốn mất 1 khoản tiền lớn để thực hiện giao dịch. Ngược lại, dưới 50% gas tối đa, phí gas sẽ giảm.
Vậy để giải quyết bài toán mở rộng chúng ta sẽ cần:
- Giảm gas trong giao dịch
- Giảm dung lượng trong giao dịch
Như đã biết, Layer 2 vốn đã xử lý giao dịch trước khi lưu trữ nên phí gas chủ yếu sẽ đến từ phí xác thực giao dịch và phí lưu trữ on-chain.
Trên Rollup, do sử dụng batch transaction, 1 giao dịch cơ bản chỉ tiêu tốn 12-byte (thấp hơn 90% so với giao dịch trực tiếp trên Ethereum) dung lượng. Và khi lưu trữ trên Ethereum, mỗi byte dữ liệu trong giao dịch tốn khoảng 16 gas.
Điều này có nghĩa là giả sử một block chỉ chứa một batch transaction duy nhất (vd validity proof), và Ethereum hoạt động tối ưu, lượng data có thể lưu trữ là: (15.000.000 – 500.000)/ 16 = 906.250 byte.
Mỗi hoạt động người dùng trên rollup yêu cầu 12-byte dung lượng, tức là số lượng giao dịch trong batch transaction đó là: 906.250/12 = 75.520 giao dịch
Với thời gian trung bình của một khối là 13 giây, điều này tương đương với khoảng ~5809 TPS (so với 45 TPS trên Ethereum). Nhìn vào bảng dưới đây ta có thể thấy Ethereum sẽ được mở rộng rất nhiều (hàng trăm lần) nếu toàn bộ giao dịch của Ethereum được thực hiện trên Layer 2.
Tuy nhiên ở thời điểm hiện tại, các con số này là quá lạc quan vì một vài lý do:
- Một block gần như không bao giờ chỉ chứa một batch transaction duy nhất, vì đã và sẽ có thêm nhiều Rollup (sẽ mất thêm gas để xác thực).
- Công nghệ tính toán off-chain (đặc biệt là Zk Rollup – validity proof) chưa đủ nhanh.
- Việc nạp rút và giao dịch trực tiếp trên Ethereum sẽ tiếp tục tồn tại.
- Với việc mới phát triển và nhu cầu sử dụng trên các Layer 2 chưa cao, thông lượng trên Ethereum vẫn sẽ chiếm tỉ trọng lớn và không có không gian cho các giao dịch Layer 2. Dẫu vậy với tốc độ tăng trưởng và chuyển dịch nhanh chóng, con số 10x-20x là hoàn toàn khả thi trong vài tháng tới
Trong tương lai các giao dịch Ethereum vẫn sẽ được tinh gọn để giảm thiểu bộ nhớ của mạng lưới đồng thời giảm phí giao dịch. Tuy vậy, để đạt được “ước mơ” 100 nghìn TPS (mở rộng 2000x), chúng ta sẽ đến với giải pháp tiếp theo – Sharding.
Sharding – giải pháp mở rộng trung và dài hạn
Vào khoảng cuối năm nay, Ethereum sẽ thực hiện một bản cập nhật vô cùng quan trọng được gọi proto-danksharding (EIP – 4844), đem lại một bộ mặt mới về khả năng lưu trữ dữ liệu cũng như mở rộng của blockchain này.
Sharding về cơ bản là một giải pháp chia Ethereum thành nhiều thành phần nhỏ hơn (được gọi là blob), mỗi thành phần sẽ có nhiệm vụ xác thực 1 bộ phận giao dịch, sau đó chúng được tổng kết về lại một khối chung ở Ethereum. Những thành tố có trong sharding bao gồm:
- Blob: là trung tâm xử lý và lưu trữ dữ liệu. Về bản chất nó giống như một storage lưu trữ on-chain-trên-on-chain của Ethereum (mỗi blob chứa tối đa 1mb data). Nhưng như vậy có phải dữ liệu sẽ bị trùng lặp và mạng lưới sẽ bị nặng nề hơn? Câu trả lời là không. Bởi dữ liệu trên blob sẽ chỉ được lưu trữ trong vòng 2 tuần (sau đó sẽ bị xóa), và không phải tất cả thông tin trên blob là được gửi về Beacon chain.
- DAC (Ethereum): tương tự như DAC trên Layer 2, tuy nhiên điểm khác biệt là DAC trên Ethereum được chọn lựa ngẫu nhiên từ chính validator của mạng lưới (1 DAC gồm nhiều validator). Mỗi DAC sẽ quản lý 1 blob để xác thực cũng như chuyển tiếp thông tin về Ethereum.
- DAS: là một cơ chế tổng hợp thông tin từ các blob. Thông thường để thông tin trên các blob đồng bộ được với nhau (cũng như khiến toàn bộ hệ thống hoạt động liền mạch 1 cách thống nhất), Beacon chain sẽ thu thập thông tin từ tất cả các blob. Tuy nhiên, với DAS, Ethereum sẽ chỉ cần thu thập một lượng “mẫu” (sampling) nhất định là đã có thể hoàn thành nhiệm vụ này.
- Phí gas lưu trữ cho mỗi byte giao dịch trên Layer 2 được giảm từ 16 gas xuống 3 gas (tức là con số 5800 TPS đã phân tích ở trên có thể ngay lập tức trở thành 30.000 TPS)
Nhìn chung với sự ra đời của blob, Ethereum sẽ hoàn thành trở thành một modular blockchain với 3 lớp hoạt động riêng biệt là: Consensus Layer (lớp đồng thuận), Data availability (lớp lưu trữ), Execution Layer (lớp thực thi). Mình sẽ tổng hợp cách thức hoạt động cũng như vì sao nó có thể nâng cao tính mở rộng của mạng lưới bằng hình sau:
Thông qua Layer 2 và Sharding, mạng chính Ethereum sẽ được giảm tải đi rất nhiều, qua đó gia tăng khả năng mở rộng:
- Bằng các biện pháp cải thiện data availability như state update, proof và DAS…dung lượng lưu trữ on-chain chỉ là một con số cực kì nhỏ so với việc lưu trữ trực tiếp trên mạng lưới. Từ đó phí gas/ mỗi giao dịch cũng được cải thiện đáng kể.
- Việc tính toán off-chain cũng làm giảm lượng công việc trên các node và giảm phí gas tính toán.
- Lượng chi phí tăng thêm do từ tính toán và lưu trữ off-chain là không đáng kể nếu so với việc thực hiện chúng on-chain. Ở thời điểm hiện tại (chưa có sharding), phí gas trên Layer 2 đã giảm tới 10-20 lần so với Ethereum.
- Với Sharding, phí gas trong mỗi byte giao dịch chỉ còn 3 gas, và lượng data lưu trữ còn nhỏ hơn với DAS. Từ đó hướng tới 100k TPS. Tuy nhiên, người dùng chỉ thực sự cảm nhận được sự khác biệt về phí giao dịch khi số lượng giao dịch trên Layer 2 đủ lớn. Chúng ta có thể hình dung như sau: Ethereum có một gói phần thưởng cố định dành cho các người vận hành mạng lưới, nếu xử lý được càng nhiều giao dịch một lúc, thì chi phí cho mỗi giao dịch sẽ ít hơn.
EIP-4844 would effectively reduce rollup fees by up to 100x- even before danksharding.
Let's explore how it works under the hood 🧵 👇 pic.twitter.com/y7jzKffdcZ
— pseudo (on farcaster) 📜🇺🇦 (@pseudotheos) March 17, 2022
—–> Xem thêm: Layer 2 có còn cần thiết khi hoàn thành Sharding
Cái giá của sự mở rộng
Với các cải tiến về khả năng mở rộng cũng như tốc độ giao dịch, hiện tại Ethereum đã có thể cạnh tranh sòng phẳng với các Layer 1 khác. TVL trên các hệ sinh thái Layer 2 cũng tăng rất nhanh và đạt hơn 9 tỷ đô chỉ trong vòng 2 năm (vượt cả những tên tuổi như BNB, Tron, Polygon…).
Tuy nhiên, với ngày càng nhiều Layer 2 được xây dựng trên Ethereum và dòng tiền từ Ethereum cũng chuyển dịch lên đây, thanh khoản của hệ sinh thái dần bị phân mảnh. Ví dụ như pool của Curve trên Ethereum là 10 tỷ đô, nhưng sau khi Layer 2 phát triển, pool của Curve bị phân thành: Etherem (6 tỷ đô), Arbitrum (2 tỷ đô), Optimism (1 tỷ đô)…
Việc phân mảnh khiến độ sâu thanh khoản giảm, từ đó có thể dẫn đến các hệ quả như:
- Tăng khả năng trượt giá.
- Dòng tiền lớn (cá voi, cá mập) gặp khó khăn trong việc thực hiện giao dịch.
- Làm giảm khả năng cạnh tranh của chính Layer 2 Ethereum đối với các Layer 1 khác khi đạt đến một mức độ tăng trưởng nhất định.
Ngoài ra, ở giai đoạn hiện tại, Layer 2 vẫn đang khá tập trung (đánh đổi tính phi tập trung của Ethereum) nhằm gia tăng khả năng mở rộng thông qua tính toán, lưu trữ off-chain. Tuy nhiên, việc phụ thuộc vào Sequencer Layer 2 (của chính đội ngũ dự án) và các bên lưu trữ thứ 3 có thể làm tăng rủi ro xảy ra các sai sót (vô tình hoặc cố ý) làm thiệt hại tài sản của người dùng. Bởi lẽ Ethereum chỉ có thể xác thực tính đúng đắn của “bằng chứng” được gửi về (tính bảo mật) nhưng không thể xác thực dữ liệu đầu vào (tính phi tập trung).
Để giải quyết bài toán này và phá vỡ “tam đề bất khả thi của blockchain”, Layer 2 sẽ cần nhiều sự cải tiến hơn trong tương lai, mà chúng ta sẽ bàn tiếp ở phần sau Ethereum Layer 2: bài toán phi tập trung và quyền riêng tư.
Tổng kết
Như vậy qua bài viết này, mình đã giải thích cách mà Layer 2 và sharding có thể mở rộng Ethereum. Với việc phân chia thành 3 lớp chuyên biệt (execution layer, data availibility và consensus), Ethereum được chuyên môn hóa và tối ưu hơn trước rất nhiều, qua đó cũng nâng cao khả năng cạnh tranh của “nhà vua” đối với các Layer 1 mới nổi khác.
Chậm mà chắc, đó là cách mà Ethereum đã và luôn thực hiện. Roadmap của Ethereum vẫn còn rất nhiều và việc xử lý các vấn đề khác, (cũng như các vấn đề mới nổi – do đánh đổi lấy chi phí và khả năng mở rộng) sẽ dần được mạng lưới này thực hiện. Nếu thành công (100k TPS mà vẫn duy trì được tính phi tập trung, độ sâu thanh khoản), có lẽ việc 1 blockchain khác có thể “lên ngôi” trong vài năm tới là 1 điều bất khả thi.
Nếu bạn thích bài viết này hay còn những suy nghĩ nào khác, hãy comment xuống dưới cho chúng mình biết nhé!