Khả năng mở rộng luôn là một câu hỏi lớn đối với mọi người trong thế giới của blockchain. Điều gì sẽ xảy ra khi công nghệ này ngày càng trở nên phổ biến hơn, với các mạng lưới nhanh chóng lấp đầy với hàng triệu người dùng?
Liệu rằng blockchain, một công nghệ bắt đầu như một dự án giữa những người đam mê có thể mở rộng thành công lên cấp độ toàn cầu không? Đó là một câu hỏi lớn mà chưa ai có thể khẳng định chắc chắn. Câu trả lời chính xác có thể sẽ đến trong tương lai gần hoặc xa.
Khả năng mở rộng của blockchain là gì?
Trong khi công nghệ blockchain đang chứng minh tiện ích vượt trội của nó trong các ngành từ tài chính đến nghệ thuật, cấu trúc cơ bản của mạng phi tập trung đi kèm với những thách thức mới khi so sánh với mạng tập trung.
Ngay từ những năm 1980, các nhà khoa học máy tính đã phát triển cái được gọi là định lý CAP để nêu rõ có lẽ là thách thức lớn nhất trong số những thách thức này. Theo định lý CAP, các kho lưu trữ dữ liệu phi tập trung (blockchain cũng là một dạng này) – chỉ có thể cung cấp hai trong ba đảm bảo đồng thời: tính nhất quán (Consistency), tính khả dụng (Availability) và dung sai phân vùng (Partition tolerance).
Trong bối cảnh của các mạng phân tán hiện đại, định lý này đã phát triển thành Tam giác blockchain (Blockchain Trilemma) mà kết luận rằng các blockchain công khai phải hy sinh bảo mật, phân quyền hoặc khả năng mở rộng.
Không giống như mối quan hệ máy khách/máy chủ thống trị cơ sở hạ tầng mạng trung tâm, các mạng blockchain công cộng sử dụng cơ chế đồng thuận phi tập trung. Các blockchain công khai quản lý một mạng lưới các nút được phân phối rộng rãi để đạt được sự đồng thuận về dữ liệu trên một cơ sở hạ tầng có khả năng chống lại sự tấn công từ bên ngoài trong khi vẫn duy trì tính minh bạch và quyền truy cập mở, công bằng.
Ví dụ: trong khi Bitcoin là phi tập trung và an toàn, nó chỉ có thể xử lý khoảng 7 giao dịch mỗi giây (TPS). Các blockchain doanh nghiệp như Hyperledger’s Fabric an toàn và có TPS cao, nhưng lại tổ chức với mô hình tập trung hóa, với một số lượng hạn chế các node đạt được sự đồng thuận. Các blockchain nhanh và phi tập trung thì lại kém an toàn hơn, rất dễ bị tấn công mà không thể thực hiện được trong thời gian dài.
Đạt được một mạng có tính năng bảo mật mà có thể mô tả là giọt nước không lọt qua một mạng phi tập trung rộng rãi trong khi có thể quản lý thông lượng giao dịch trên quy mô internet là chén thánh của công nghệ blockchain. Một cộng đồng toàn cầu gồm các doanh nghiệp, công ty khởi nghiệp và nhà công nghệ đang phát triển rầm rộ các giải pháp Layer 1 và Layer 2 để giải quyết vấn đề nan giải của Blockchain này.
Layer 1 đề cập đến layer cơ sở, hoặc layer chính, của một mạng blockchain. Layer 2 đề cập đến các sản phẩm và tối ưu hóa công nghệ khác nhau có thể được xây dựng trên các mạng blockchain hiện tại, thường là để tăng khả năng mở rộng của chúng. Việc đạt được sự cân bằng phù hợp giữa hai layer có thể hoạt động như một chất xúc tác bùng nổ cho việc áp dụng công nghệ blockchain và sự phát triển của các mạng phi tập trung.
Trước khi chúng ta có thể bắt đầu giải mã các giải pháp tiềm năng, điều quan trọng là phải hiểu từng thành phần của Tam giác blockchain.
- Scalability: Khả năng mở rộng chỉ có nghĩa là blockchain có thể xử lý rất nhiều giao dịch, được đo bằng giao dịch mỗi giây (TPS).
- Decentralization: Phi tập trung có nghĩa là blockchain được điều hành bởi nhiều nút “không tin cậy” trên toàn thế giới – không được điều hành bởi một nhóm nhỏ các nút “đáng tin cậy” tập trung.
- Security: Bảo mật có nghĩa là blockchain có khả năng chống lại sự tấn công ngay cả khi một phần trăm nhất định của các nút trong mạng là độc hại. Lý tưởng nhất là nó có thể xử lý tới 50% các nút độc hại.
Tam giác blockchain (theo Vitalik)
Decentralized & Secure
Ở dưới cùng của tam giác là các blockchain truyền thống như Bitcoin và Ethereum 1.0.
Đặc tính của các blockchain loại này:
- Phi tập trung: Có. Bởi vì bất kỳ ai trên thế giới đều có thể chọn trở thành một nút của mạng. Có hàng nghìn thợ đào trên khắp thế giới tham gia vào việc bảo mật Bitcoin và Ethereum. Nó hoạt động hoàn toàn không dựa trên sự tin cậy.
- Bảo mật: Có. Bởi vì mọi nút trong mạng đều giữ một bản sao của blockchain và xác minh mọi giao dịch. Hơn nữa, Proof-of-Work được thiết kế để xử lý tới 50% các nút là độc hại.
- Có thể mở rộng: Không. Nhờ tính bảo mật của nó, mọi nút trong mạng đều giữ một bản sao của blockchain và xác minh mọi giao dịch. Mặc dù an toàn, nhưng điều này không hiệu quả, làm cho độ trễ và thông lượng rất thấp. Đối với Bitcoin, đó là khoảng 7 giao dịch mỗi giây và đối với Ethereum, đó là khoảng 15 giao dịch mỗi giây.
Ở phía bên phải của tam giác là các chuỗi TPS cao điển hình, chẳng hạn như Binance Smart Chain. Họ sử dụng một thuật toán đồng thuận được gọi là “Proof-of-staked-Authority”, trong đó 21 node được “bầu chọn” để tạo ra các khối mới. Cứ sau 24 giờ, một tập hợp mới gồm 21 node được chọn để tạo ra các khối mới cho khoảng thời gian 24 giờ đó.Đặc tính của các blockchain loại này:
- Bảo mật: Có. Mỗi node “được bầu chọn” đều được ủy quyền, vì vậy các blockchain có quyền kiểm soát các đối thủ trong hệ thống.
- Khả năng mở rộng: Có. Vì một số lượng nhỏ các nút được bầu chọn đang tạo ra các khối mới bất cứ lúc nào, các blockchain này có thể nhận được thông lượng và độ trễ giao dịch cao hơn nhiều. Điều đó có nghĩa là có chi phí giao tiếp thấp hơn so với việc mọi node phải xác thực mọi giao dịch.
- Phi tập trung: Không. Vì chỉ có 21 trình xác thực được bầu chọn, nên sẽ không đạt được phi tập trung so với các blockchain truyền thống. Hơn nữa, mỗi node “được bầu chọn” đều được ủy quyền, vì vậy các blockchain này đưa sự tin tưởng vào hệ thống, làm cho nó ít phi tập trung hơn.
Scalable & Decentralized
Ở phía bên trái của tam giác là các hệ sinh thái đa chuỗi, chẳng hạn như Cosmos, Polkadot và Avalanche. Các hệ thống này có nhiều mạng blockchain độc lập, tất cả đều giao tiếp như một phần của mạng blockchain lớn hơn.
Một số đặc tính của các blockchain loại này:
- Khả năng mở rộng: Có. Vì các blockchain không còn bắt buộc phải lưu trữ tất cả trạng thái trên một blockchain duy nhất, nên họ có thể chia trạng thái thành nhiều blockchain độc lập, đạt được khả năng mở rộng cao hơn so với một blockchain truyền thống.
- Phi tập trung: Phụ thuộc. Mỗi blockchain trong hệ sinh thái có một tập hợp các node xác nhận blockchain. Một số chuỗi trong hệ sinh thái sẽ có nhiều trình xác thực (chẳng hạn như chuỗi stablecoin cần được phi tập trung), trong khi những chuỗi khác có thể có rất ít hoặc thậm chí chỉ một (chẳng hạn như chuỗi doanh nghiệp, không cần phi tập trung). Vì vậy, mức độ phi tập trung phụ thuộc vào chuỗi nào trong hệ sinh thái mà họ đang đề cập đến.
- Bảo mật: Không hẳn. Nếu có một chuỗi nào đó trong hệ sinh thái bị tấn công, thì nó có thể gây ảnh hưởng đến phần còn lại của hệ thống. Ví dụ: nếu chuỗi B bị tấn công và Chuỗi A, C và D dựa vào nó, thì những chuỗi khác đó cũng sẽ bị ảnh hưởng.
Phần tiếp theo, chúng ta sẽ tìm hiểu về các giải pháp Layer 1 và Layer 2 để giải quyết vấn đề của khả năng mở rộng.
Giải quyết tam giác blockchain với các giải pháp Layer 1
Trong hệ sinh thái phi tập trung, Layer 1 đề cập đến các giao thức blockchain như Bitcoin, Litecoin và Ethereum. Có một số phương pháp hiện đang được phát triển hoặc thực hành nhằm cải thiện khả năng mở rộng của mạng lưới blockchain một cách trực tiếp.
Cải tiến giao thức đồng thuận
Proof of Work là giao thức đồng thuận hiện đang được sử dụng trên các mạng blockchain phổ biến như Bitcoin. Mặc dù PoW là an toàn nhưng nó có thể chậm. Ví dụ, Bitcoin chỉ đạt được 7 TPS. Đó là lý do tại sao nhiều mạng blockchain – có lẽ đáng chú ý nhất là nâng cấp của Ethereum lên Ethereum 2.0 – ủng hộ cơ chế đồng thuận Proof-of-Stake (PoS).
Thay vì yêu cầu các thợ đào giải quyết các thuật toán mật mã bằng cách sử dụng sức mạnh tính toán đáng kể, giao thức đồng thuận PoS xác định trạng thái trình xác thực dựa trên cổ phần trong mạng. Điều này dự kiến sẽ làm tăng đáng kể và cơ bản năng lực của mạng Ethereum, đồng thời tăng tính phân cấp và đảm bảo an ninh.
Sharding
Sharding được điều chỉnh từ cơ sở dữ liệu phân tán và đã trở thành một trong những giải pháp mở rộng Layer 1 phổ biến nhất, mặc dù bản chất có phần thử nghiệm của nó trong lĩnh vực blockchain. Sharding chia nhỏ các giao dịch thành các tập dữ liệu nhỏ hơn được gọi là “phân đoạn”. Các phân đoạn này đồng thời được xử lý song song bởi mạng, cho phép thực hiện tuần tự trên nhiều giao dịch đồng thời.
Hơn nữa, thay vì để mỗi nút mạng giữ một bản sao của mọi khối từ khối khởi đầu của nó cho đến nay, thông tin này có thể được phân chia và giữ bởi các nút khác nhau, với mỗi nút còn lại nhất quán với chính nó. Các phân đoạn cung cấp bằng chứng cho chuỗi chính và tương tác với nhau để chia sẻ địa chỉ, số dư và trạng thái chung bằng cách sử dụng các giao thức liên lạc chéo phân đoạn.
Ethereum 2.0 là một giao thức blockchain cao cấp đang khám phá việc sử dụng các phân đoạn, cùng với Zilliqa, Tezos và Qtum.
Giải quyết Blockchain Trilemma với các giải pháp Layer 2
Trong blockchain, Layer 2 đề cập đến một mạng hoặc công nghệ hoạt động trên đỉnh một giao thức blockchain cơ bản để cải thiện khả năng mở rộng và hiệu quả của nó. Ví dụ: Bitcoin là giao thức Layer 1 và Lightning Network là giải pháp Layer 2 được xây dựng để cải thiện tốc độ giao dịch trên mạng Bitcoin.
Các giao thức Layer 2 đã có sự phát triển vượt bậc trong những năm gần đây và có thể là cách hiệu quả nhất để vượt qua những thách thức về khả năng mở rộng đối với mạng PoW nói riêng.
Nested Blockchains
Một nested blockchain hay còn gọi là chuỗi lồng nhau là một cơ sở hạ tầng mạng phi tập trung sử dụng một chuỗi chính để thiết lập các thông số cho mạng rộng hơn, trong khi các quá trình thực thi được thực hiện trên một web được kết nối với nhau của các chuỗi thứ cấp.
Nhiều chuỗi con được xây dựng trên chuỗi chính này, với các cấp này sử dụng kết nối cha-con. Chuỗi cha sẽ ủy quyền công việc cho các chuỗi con, quá trình này xử lý và trả lại cho chuỗi cha sau khi hoàn thành. Blockchain cơ sở bên dưới không tham gia vào các chức năng mạng trừ khi cần giải quyết tranh chấp.
Dự án OMG Plasma là một ví dụ về cơ sở hạ tầng “nested blockchain” layer-2 được sử dụng trên Ethereum layer-1 để tạo điều kiện cho các giao dịch nhanh hơn và rẻ hơn. Việc phân phối công việc theo mô hình này làm giảm gánh nặng xử lý trên chuỗi chính để cải thiện khả năng mở rộng theo cấp số nhân.
State channel
State channel hay còn gọi là kênh trạng thái tạo điều kiện giao tiếp hai chiều giữa chuỗi và các kênh giao dịch ngoài chuỗi bằng cách sử dụng các cơ chế khác nhau để cải thiện năng lực và tốc độ giao dịch tổng thể. Kênh trạng thái không yêu cầu sự tham gia của các thợ đào ngay lập tức để xác thực giao dịch. Thay vào đó, nó là một mạng liền kề được phong tỏa bằng cách sử dụng cơ chế đa chữ ký hoặc smart contract.
Khi một giao dịch hoặc một lô giao dịch hoàn tất trên kênh trạng thái, “trạng thái” cuối cùng của “kênh” và tất cả các chuyển đổi vốn có của nó sẽ được ghi lại vào blockchain cơ bản. Liquid Network, Celer, Bitcoin Lightning và Raiden Network của Ethereum là những ví dụ về các kênh trạng thái. Trong sự đánh đổi của Blockchain Trilemma, các kênh trạng thái hy sinh một số mức độ phân quyền để đạt được khả năng mở rộng lớn hơn.
Sidechains
Một sidechain là một chuỗi kề được sử dụng cho các giao dịch hàng loạt lớn. Các chuỗi kề sử dụng cơ chế đồng thuận độc lập với cơ chế của chuỗi ban đầu, có thể được tối ưu hóa về tốc độ và khả năng mở rộng. Các token thường được sử dụng như một phần của cơ chế truyền dữ liệu giữa các bên và chính. Vai trò chính của chuỗi chính là duy trì bảo mật tổng thể và giải quyết tranh chấp.
Các chuỗi phân biệt với các kênh trạng thái theo một số cách được mô tả như sau: Đầu tiên, các giao dịch kênh kề không phải là riêng tư giữa những người tham gia – chúng được ghi lại công khai vào sổ cái. Hơn nữa, khi chuỗi kề bị vi phạm về mặt bảo mật cũng không ảnh hưởng đến chuỗi chính hoặc các chuỗi phụ khác. Việc thiết lập một chuỗi kề đòi hỏi rất nhiều công sức vì cơ sở hạ tầng sẽ phải xây dựng từ đầu.
Mặc dù các giải pháp trên ra đời rất sớm, nhưng mỗi một trong số chúng đều có ưu và nhược điểm riêng. Chính trong hoàn cảnh này, chúng ta đã có các giải pháp Rollup tốt hơn để hoàn thiện các giải pháp đã có.
Rollups là gì?
Cũng giống như các kênh trạng thái, chuỗi kề và chuỗi lồng nhau, Rollup là một giải pháp Layer 2. Trên thực tế, Rollup rất giống với chuỗi lồng nhau ở chỗ chúng đang phân phối các giao dịch ngoài chuỗi và đăng bản cập nhật cho chuỗi khối chính.
Tuy nhiên, điểm khác biệt chính là với Rollup, chúng đăng dữ liệu giao dịch của từng lô giao dịch trên chuỗi. Với chuỗi lồng nhau, các chuỗi chỉ đăng kết quả Merkle (tham khảo Merkle Tree) để truy xuất thông tin giao dịch.
Nói cách khác, với Rollup, chúng thực hiện xử lý giao dịch ngoài chuỗi chính, nhưng sau đó sẽ đăng dữ liệu giao dịch lên chuỗi chính. Lượng dữ liệu chúng đăng trên chuỗi chính là số lượng tối thiểu cần thiết để xác thực các giao dịch trong Rollup. Bằng cách đưa dữ liệu vào chuỗi chính, bất kỳ ai cũng có thể phát hiện gian lận, bắt đầu rút tiền hoặc tự mình bắt đầu thực hiện các lô giao dịch.
Do đó, Rollup mang lại cho chúng ta sự đảm bảo về mặt bảo mật cao hơn nhiều so với chuỗi lồng nhau hoặc chuỗi kề. Sự khác biệt chính khác giữa Rollup và chuỗi kề là chúng ta không phải lo lắng về các vấn đề về tính khả dụng của dữ liệu vì tất cả dữ liệu sẽ được đăng lên chuỗi chính để truy xuất.
Với Rollup, chúng ta đang chạy rất tốt các máy ảo EVM bên trong các layer Rollup. Điều đó có nghĩa là bất kỳ giao dịch nào có thể có trên Ethereum đều có thể được thực hiện trong Rollup. Nhưng cũng có nhiều câu hỏi phải trả lời: Nếu chúng ta liên tục đăng dữ liệu giao dịch trên chuỗi, thì quy mô Layer 1 này như thế nào? Có phải khả năng mở rộng vẫn bị giới hạn ở băng thông dữ liệu của chuỗi chính không?
Câu trả lời đúng ở đây là chúng ta có được khả năng mở rộng gấp 5 lần đến 100 lần với Rollup, nhưng không phải là khả năng mở rộng vô hạn. Rollup sử dụng một biện pháp quen thuộc là nén để giảm thiểu dữ liệu giao dịch mà chúng đăng trên chuỗi chính, do đó, bộ nhớ trên chuỗi chính sẽ ít hơn nhiều so với đăng toàn bộ dữ liệu giao dịch mà không làm gì.
Kích thước của một giao dịch trên Rollup (nguồn Vitalik)
Chuỗi chính đẩy tất cả các công việc tính toán nặng nhọc qua layer Rollup để thực hiện. Việc chạy được các EVM trong layer Rollup khiến cho việc thực hiện tính toán không khác gì với chuỗi chính, nhưng với chi phí gas rẻ hơn nhiều lần so với trên Ethereum.
Hoat động của Rollup
Có một “rollup contract” trên chuỗi chính duy trì trạng thái hiện tại của layer rollup. Điều này bao gồm số dư tài khoản của người dùng giao dịch trên đó và mã nguồn smart contract của các contract đang tồn tại trên layer. Tóm lại, Rollup theo dõi trạng thái gốc (state root) của các giao dịch trong layer rollup.
Trạng thái gốc bao gồm một bản đồ key/value trong đó key là địa chỉ và value là tài khoản. Mỗi tài khoản có tối đa 4 thuộc tính: số dư, số dư, mã (chỉ dành cho smart contract) và bộ nhớ (chỉ dành cho smart contract).
Khi các giao dịch xảy ra trên layer rollup, một sự thay đổi trạng thái sẽ xảy ra. Tất nhiên, điều đó có nghĩa là trạng thái gốc cũng cần được cập nhật. Nhưng thay vì cập nhật trạng thái gốc cho mọi giao dịch, các giao dịch sẽ chạy theo lô (batch) và được gửi đến hợp đồng tổng hợp trên chuỗi chính. Một lô sẽ bao gồm một dạng nén của lô giao dịch và một gốc trạng thái được cập nhật đại diện cho dữ liệu sau khi lô giao dịch đã được xử lý.
Rollup contract trên chuỗi chính kiểm tra xem trạng thái gốc trước đó trong lô có khớp với trạng thái gốc hiện tại của nó hay không – nếu có, nó sẽ chuyển trạng thái gốc sang trạng thái gốc mới.
Dữ liệu giao dịch đã nén dưới dạng thông số “calldata” cho Rollup contract. Đây là lý do tại sao nó gọn gàng. Trong Solidity, calldata là hình thức lưu trữ rẻ nhất để sử dụng.
Trên thực tế, các đối số được truyền dưới dạng tham số calldata hoàn toàn không được lưu trữ ở trạng thái của Ethereum, có nghĩa là giải pháp này tránh được rất nhiều phí gas. Trong khi đó, các node Ethereum vẫn có thể lưu trữ dữ liệu giao dịch khi khối được tạo (trong nhật ký lịch sử).
Nhưng nếu chỉ đăng dữ liệu giao dịch lên chuỗi chính và không thực hiện các giao dịch trên chuỗi, làm thế nào để tất cả biết rằng dữ liệu giao dịch và trạng thái gốc được đăng trên chuỗi chính là không có sự gian lận? Điều này sẽ được giải thích ở phần tiếp theo với hai công nghệ chính là optimistic rollups và ZK rollups.
Optimistic Rollups
Optimistic Rollups hoạt động chính xác như tên gọi của nó. Khi một loạt giao dịch mới được “rolled up” vào chuỗi chính, trạng thái gốc và mã băm của mỗi lô sẽ được đăng, nhưng chúng ta sẽ không thực sự xác thực rằng các giao dịch đã được thực hiện chính xác, ít nhất là không phải tại thời điểm đăng.
Optimistic rollups không thực hiện tính toán các giao dịch, vì vậy cần có một cơ chế để đảm bảo các giao dịch là hợp pháp, không gian lận. Vậy nên ta cần có bằng chứng gian lận (fraud proof). Nếu ai đó nhận thấy giao dịch gian lận, Rollups sẽ thực hiện kiểm tra chống gian lận và thực hiện tính toán giao dịch, sử dụng dữ liệu trạng thái có sẵn.
Bằng chứng gian lận bao gồm:
- Bằng chứng về “trạng thái trước” hoặc mọi thứ trông như thế nào trước khi áp dụng giao dịch
- Bằng chứng về “trạng thái sau”, hoặc, trạng thái lẽ ra phải xử lý như thế nào sau khi áp dụng giao dịch
- Bằng chứng về các giao dịch đã được áp dụng trong quá trình chuyển đổi trạng thái
Quy trình làm việc rất đơn giản: Bằng chứng gian lận này được đăng lên Rollup contract trên chuỗi chính. Sau đó, Rollup contract xác minh bằng chứng và áp dụng logic giao dịch cho trạng thái trước. Sau đó, nó so sánh kết quả với trạng thái sau.
Nếu có sự không khớp, thì điều này chứng tỏ rằng bất kỳ ai đăng lô đã không áp dụng đúng các giao dịch, hay có thể nói là đã có gian lận xảy ra. Sau đó, smart contract sẽ hoàn nguyên lô giao dịch đó và tất cả các lô sau đó.
Với cơ chế này, Optimistic Rollups yêu cầu người đăng lô lên chuỗi chính phải đặt cọc. Khi người đăng lô bị phát hiện có gian lận thì phần đặt cọc của họ sẽ bị “slash” đi, và người chứng minh gian lận sẽ nhận được phí đã bỏ ra khi cung cấp chứng minh gian lận.
ZK Rollups
Nếu chiến lược của Optimistic Rollups là tất cả các lô được đăng lên chuỗi chính đều được tin tưởng là đúng đắn cho đến khi một ai đó chứng minh rằng nó sai, thì chiến lược của ZK Rollups lại là không tin tưởng bất kỳ dữ liệu lô được đăng lên chuỗi chính, tất cả đều yêu cầu xác minh.
Với ZK Rollups, mỗi lô bao gồm một bằng chứng mật mã được gọi là ZK-SNARK để chứng minh gốc trạng thái là kết quả chính xác của việc thực hiện lô giao dịch. Bằng chứng ZK-SNARK là một hàm băm đại diện cho sự thay đổi của trạng thái blockchain sau khi thực hiện các giao dịch trong Layer ZK-Rollup.
Bằng chứng hợp lệ này được đăng lên Rollup contract, vì vậy bất kỳ ai cũng có thể sử dụng nó để xác minh các giao dịch trong một lô cụ thể trên Layer Rollup.
Điều kỳ diệu ở đây nằm ở cách thức hoạt động của ZK-SNARK. Họ cho phép chúng ta tạo bằng chứng về một phần dữ liệu cơ bản mà không tiết lộ dữ liệu. Sau đó, bất kỳ ai cũng có thể xác minh rằng dữ liệu tồn tại, ngay cả khi họ không có quyền truy cập vào chính dữ liệu đó. Cơ sở toán học của ZK-SNARKS rất phức tạp và nằm ngoài phạm vi giải thích của bài viết này.
So sánh giữa Optimistic Rollups và ZK Rollups
Để so sánh giữa Optimistic Rollups và ZK Rollups, chúng ta cần phải cân nhắc đến nhiều phương diện. Hãy cùng tìm hiểu các phương diện ở phần tiếp theo.
Chi phí
Chi phí khi sử dụng Optimistic Rollups và ZK Rollups có thể chia làm 3 phần:
- Chi phí gas để đăng một lô mới trên chuỗi chính: Optimistic Rollups sẽ yêu cầu chi phí thấp hơn. Giải pháp này chỉ đăng một trạng thái gốc mới và dữ liệu, đây là một giao dịch đơn giản. Chi phí yêu cầu của ZK Rollups cao hơn. Khi chúng ta đăng một lô mới trên chuỗi chính, chúng ta phải xác minh bằng chứng hợp lệ của ZK-SNARK. Điều này là đắt hơn về mặt tính toán.
- Chi phí gas cho mỗi giao dịch được đăng trên chuỗi: Phần này thì Optimistic Rollups sẽ cao hơn. Giải pháp này yêu cầu phải đăng đầy đủ dữ liệu trên chuỗi để sau này xác minh bằng chứng gian lận. Chi phí của ZK Rollups sẽ thấp hơn. Giải pháp này có thể loại bỏ hầu hết dữ liệu giao dịch vì bằng chứng hợp lệ là đủ để bất kỳ ai cũng có thể xác minh tính đúng đắn của lô.
- Chi phí tính toán ngoài chuỗi: Optimistic Rollups sẽ yêu cầu chi phí ít hơn. Như đã nói thì giải pháp này chỉ đăng trạng thái gốc mới và không thực hiện hay xác thực các giao dịch. Nhưng dự án này sẽ vẫn cần một số người theo dõi việc tạo ra các lô mới và thực hiện các giao dịch mới để đảm bảo tính chính xác của các lô.
- Chi phí của ZK Rollups là cao hơn nhiều trong trường hợp này. ZK-SNARK yêu cầu phải tính toán rất nhiều, dẫn tới chi phí cũng cao hơn (cao hơn từ 20 đến 1000 lần, mặc dù nó tiếp tục rẻ hơn nhờ các cái tiến trong tương lai).
Lưu ý phụ: Mặc dù chi phí tính toán ngoài chuỗi cho các lô của ZK Rollups là cao hơn, nhưng cũng cần lưu ý rằng phí gas ngoài chuỗi thấp hơn rất nhiều.
Tốc độ
Tốc độ của Optimistic Rollups là chậm hơn nhiều so với ZK Rollups. Thông thường, người dùng phải đợi khoảng một tuần để rút tài sản của họ. Khoảng thời gian này đủ để một ai đó xuất bản bằng chứng gian lận trong trường hợp người dùng cố gắng rút các token mà họ không thực sự sở hữu trên Layer Rollup.
Trái ngược lại thì ZK Rollups có tốc độ rất nhanh. Người dùng thường chỉ phải đợi ít hơn 10 phút để rút tài sản của họ. Giải pháp này chỉ cần đợi cho đến đợt tiếp theo để xử lý rút tiền vì tất cả trạng thái của giao dịch đã được xác minh.
Lưu ý phụ:
- Có cách để vượt qua khoảng thời gian chờ đợi một tuần của Optimistic Rollups bằng cách sử dụng tính năng “rút tiền nhanh”. Điều này được thực hiện bằng cách sử dụng các nhà cung cấp thanh khoản. Khi người dùng muốn rút tài sản nhanh chóng, nhà cung cấp thanh khoản sẽ ứng trước tài sản ở chuỗi chính (có tính phí) và chờ đến khi tiền được giải phóng từ Layer Rollup.
- Nhà cung cấp thanh khoản thậm chí có thể chọn chạy một node với nhiệm vụ xác thực giao dịch của người dùng trên Layer Rollup trước khi cấp tiền cho họ trên chuỗi chính, giảm rủi ro hơn nữa.
Tuy nhiên, kế hoạch “rút tiền nhanh” này sẽ không thể thực hiện được đối với các NFT vì đặc tính duy nhất của NFT.
Sự phức tạp
Optimistic Rollups là đơn giản hơn. Khái niệm về bằng chứng gian lận đã tồn tại từ lâu, vì vậy giải pháp tương đối đơn giản. ZK Rollups sử dụng ZK-SNARK rất mới và phức tạp về mặt toán học.
Tính tổng quát
Các kỹ sư của Optimistic Rollups đã xây dựng một máy ảo tương thích với EVM được gọi là OVM (Optimistic Virtual Machine), cho phép Optimistic Rollups có khả năng xử lý bất kỳ giao dịch nào có thể được xử lý trên Ethereum.
ZK Rollups khó tổng quát hóa hơn rất nhiều. Việc chứng minh thực thi EVM có mục đích chung bằng ZK-SNARKs khó hơn nhiều so với việc chứng minh các phép tính đơn giản, như chuyển giá trị. Điều này cũng thể hiện rằng đang có rất nhiều sự đổi mới để giải quyết vấn đề.
Trên thực tế, StarkNet alpha đã giới thiệu một ngôn ngữ lập trình mới có tên là Cairo, là một trình xác minh ZK hoàn chỉnh của Turing trên Ethereum cho phép họ xác minh các smart contract thông thường cho tính toán. Tham khảo tại đây.
Khả năng mở rộng
Optimistic Rollups có khả năng mở rộng giới hạn hơn. Khi chúng ta đăng dữ liệu trên chuỗi chính, nó thường bao gồm một số trạng thái (chẳng hạn như chi tiết giao dịch) và bằng chứng (chẳng hạn như chữ ký điện tử chứng minh sự đồng ý của các bên giao dịch).
Với Optimistic Rollups, chúng ta phải đăng bằng chứng cho mọi giao dịch, để mọi người có thể chứng minh gian lận sau này. Các bằng chứng chiếm rất nhiều không gian lưu trữ, bất cứ nơi nào từ 3-10 lần so với dữ liệu giao dịch.
ZK Rollups có khả năng mở rộng cao hơn. Chúng ta không cần bao gồm bằng chứng cho mọi giao dịch vì tất cả các chữ ký điện tử đã được xác minh khi ZK-SNARK được tính toán. Thay vào đó, chúng ta chỉ cần một bằng chứng cho mỗi lô. Điều này làm giảm đáng kể dữ liệu được lưu trữ trên chuỗi.
Tính an toàn
Optimistic Rollups kém an toàn hơn vì dựa trên kinh tế học tiền điện tử (cryptoeconomics) để đảm bảo tính bảo mật của chuỗi. Nói cách khác, giải pháp này phải khuyến khích mọi người giám sát các lô được đăng trên chuỗi chính và phát hiện gian lận.
Ngược lại thì ZK Rollups an toàn hơn. ZK Rollups dựa vào toán học và không yêu cầu các biện pháp khuyến khích. Giải pháp này dựa vào mật mã hơn là kinh tế tiền điện tử.
Dựa vào các phương diện ở trên, chúng ta có thể thấy rằng vẫn rất khó để nói rằng Optimistic Rollups hay ZK Rollups tốt hơn. Các giải pháp đều đang đổi mới liên tục, như là minh chứng cho công việc tuyệt vời mà các kỹ sư đằng sau các chương trình này đã thực hiện.
Chúng ta có các nhóm như Optimism và Arbitrum đang làm việc chăm chỉ trên Optimistic Rollups, đã có sẵn cho các nhà phát triển Ethereum. Và chúng ta có các công ty như StarkWare và Zksync đang đưa ZK Rollups thành một giải pháp tổng quát tới Ethereum.
Cả hai giải pháp đều đang trong giai đoạn sơ khai. Vì độ phức tạp ít hơn nên Optimistic Rollups đang vượt lên về việc được chấp thuận. Nhưng các nhà khoa học lại đánh giá cao về ZK Rollups trong tương lai. Xét cho cùng, chúng dựa vào toán học thay vì kinh tế học tiền điện tử và chúng có khả năng mở rộng cao hơn so với các Optimistic Rollups.
Nhưng chúng ta cũng phải biết rằng không phải lúc nào công nghệ tốt nhất cũng chiến thắng. Chúng ta không thể bỏ qua rằng một khi công nghệ trở nên vững chắc, thì khó có thể thay thế nó. Optimistic Rollups chắc chắn có lợi thế dẫn đầu, vì vậy chỉ có thời gian mới biết được cái nào sẽ “thắng” về lâu dài.
Những vấn đề tồn tại trong Rollups
Các giải pháp Rollups sinh ra để giải quyết bài toán mở rộng của Etherum, nhưng bản thân chúng cũng có những vấn đề cần phải giải quyết, trước khi thực sự trở thành một giải pháp của tương lai. Đây là một vài thách thức của các giải pháp Rollups.
Khả năng mở rộng có mức trần
Các giải pháp Rollups di chuyển tính toán ra khỏi chuỗi chính nhưng lưu trữ dữ liệu trên chuỗi này. Điều này vô cùng hữu ích để giải quyết vấn đề về tính khả dụng của dữ liệu. Nhưng vì chúng ta đang lưu trữ dữ liệu giao dịch trên chuỗi (mặc dù ở dạng rất nén), chúng ta vẫn bị giới hạn bởi dung lượng lưu trữ của Ethereum.
Chúng ta có thể xem xét TPS lý thuyết mà các giải pháp Rollups có thể đạt được bằng các phép tính giả định:
- Giới hạn gas của Ethereum: 12,5 triệu gas
- Chi phí cho mỗi byte dữ liệu được lưu trữ trên chuỗi: 16 gas
- Số byte tối đa trên mỗi khối: ~ 781.000 byte (12,5 triệu gas / 16 gas mỗi byte)
- Số byte dữ liệu cần thiết để thực hiện chuyển ETH bằng cách sử dụng Rollups: 12 byte (xem ở phần tổng quan về Rollups)
- Giao dịch trên mỗi khối: ~ 65.000 (~ 781.000 byte mỗi khối / 12 byte mỗi lần chuyển ETH)
- Thời gian khối trung bình trên Ethereum: 13 giây
- Giao dịch mỗi giây: ~ 5000 TPS (~ 65.000 giao dịch mỗi khối / 13 giây mỗi khối)
Tất nhiên, phép toán này giả định tất cả các giao dịch trong một khối là chuyển ETH và không có gì khác trong một khối ngoài các lô giao dịch của Rollups. Trên thực tế thì điều này rất khó xảy ra, nhất là nếu chúng ta sử dụng ZK Rollups thì chi phí để xác minh ZK-SNARK là con số rất lớn.
Tuy nhiên, điều này cung cấp cho chúng ta một điểm con số bắt đầu cho TPS của Rollups. 5000 là con số không lớn, nhưng đã tốt hơn rất nhiều so với Etherum.
Phân mảnh thanh khoản
Các công nghệ Rollups đang được tạo ra dưới dạng các dự án độc lập, không phải bởi chính giao thức Ethereum. Vì vậy, sẽ có một số dự án khác nhau tồn tại song song. Đó là lý do mà sự phân mảnh thanh khoản xuất hiện.
Khi tính thanh khoản di chuyển từ chuỗi chính sang Layer Rollup, sự phân mảnh xuất hiện khi thanh khoản nằm ở các dự án khác nhau. Điều này khá giống với blockchain thời gian 2019 trở về trước, khi chúng ta chưa có các cầu nối để giảm bớt sự phân mảnh thanh khoản. Việc này có thể giải quyết trong tương lai bằng cách tạo các cầu nối để có thể kết nối giữa các dự án Rollups dễ dàng hơn.
Giảm khả năng kết hợp
Một trong những lợi ích chính của việc xây dựng trên Ethereum là khả năng kết hợp. Mỗi giao thức mới được xây dựng trên Ethereum giống như một miếng Lego mà các giao thức khác có thể dễ dàng xây dựng trên đó. Chẳng hạn, đó là điều khiến DeFi trở nên mạnh mẽ.
Khi các ứng dụng và tính thanh khoản chuyển sang Layer Rollup, chúng ta sẽ mất một phần khả năng kết hợp này. Rốt cuộc, việc chuyển các thông điệp và giao dịch giữa Layer Rollup và chuỗi chính gần như không dễ dàng như làm như vậy như các lớp cơ sở. Nhưng nó có thể chỉ là vấn đề thời gian trước khi điều này được giải quyết.
Tập trung hóa
Như đã trình bày, các giải pháp Rollups cần đăng các lô mới lên chuỗi chính. Vậy ai là người chịu trách nhiệm về vấn đề này?
Hầu hết các giải pháp Rollups đều dựa vào một “trình sắp xếp” để thực hiện công việc: Trình sắp xếp (sequencer) là một node phân chia các giao dịch và đăng kết quả lên Rollup contract trên chuỗi. Trong trường hợp của Arbitrum, Optimism và StarkNet, trình sắp xếp là một node duy nhất mà dự án tự chạy.
Điều này đặt ra câu hỏi điều gì sẽ xảy ra nếu trình sắp xếp ngừng hoạt động do nhiều nguyên nhân? Lý do các dự án lựa chọn phương án này là việc sử dụng một trình sắp xếp sẽ đơn giản hơn rất nhiều. Các dự án cần chứng minh được họ có thể giải quyết bài toán, và cần một bản thử có thể hoạt động được. Hầu hết các dự án đều có kể hoạch để phi tập trung hóa các trình sắp xếp trong tương lai.
So sánh giữa Rollups và các giải pháp mở rộng khác
Chúng ta sẽ cùng so sánh Rollups với các giải pháp mở rộng khác bằng cách sử dụng 3 tiêu chí của tam giác blockchain: phi tập trung, an toàn, mở rộng. Ngoài ra, chúng ta sẽ bổ sung thêm 1 tiêu chí khác là tính phổ quát hóa. Nếu một giải pháp Layer 2 không cho phép làm các điều có thể làm được trên các blockchain Layer 1 thì sẽ khó được chấp nhận hơn.
Từ bảng trên, chúng ta có thể thấy rằng Rollups cung cấp cho chúng ta khả năng mở rộng vừa phải mà không phải hy sinh tính phân quyền, bảo mật và khả năng phổ quát hóa. Tuy nhiên, đánh đổi là khả năng mở rộng của Rollups là giới hạn. Bởi vì chúng vẫn đang lưu trữ dữ liệu trên chuỗi chính, khiến cho chúng bị giới hạn về khả năng mở rộng so với các giải pháp mở rộng Layer 2 lưu trữ dữ liệu ngoài chuỗi.
Về cơ bản, trong ngắn hạn, Rollups đang dựa vào trình sắp xếp tập trung, điều này làm giảm tính bảo mật. Nhưng đây là một vấn đề ngắn hạn và có vẻ như Rollups sẽ phi tập trung, khiến chúng trở thành một công nghệ vượt trội so với Plasma, Side-chain và các State Channel.
Kết luận
Bài viết đã cung cấp cho mọi người hiểu biết cơ bản về Rollups. Ngoài việc sử dụng Rollups, còn một hướng mở rộng khác của Etherum nữa là “sharding” mà sẽ xuất hiện trong Etherum 2.0. Mình sẽ viết về giải pháp mở rộng này trong tương lai không xa. Hy vọng được mọi người đón đọc!
Bài viết được FXCE Ventures biên tập với mục đích cung cấp thông tin và phi lợi nhuận. Chúng tôi không khuyến nghị đầu tư và không chịu trách nhiệm cho các quyết định đầu tư liên quan đến nội dung bài dịch.
—————————————————
👉 Theo dõi FXCE Ventures
Group Chat | Research Hub | FXCE Spotlight | Tổng hợp airdrop | FXCE Pool Coin