Đôi khi, sớm thôi, chúng ta cần nhận ra rằng chúng ta đang vận hành một thế giới tài chính kế thừa và chúng ta cần xây dựng một cơ sở hạ tầng kỹ thuật số đáng tin cậy hơn. Trên thực tế, không chỉ tài chính là chúng ta cần chuyển đổi, mà còn là bất kỳ lĩnh vực nào cần mức độ tin cậy, bảo mật và phân phối cao. Đối với điều này, chúng ta có thể có các phương pháp blockchain Layer-1 như Ethereum, nhưng nó đã cho thấy một vấn đề về khả năng mở rộng, trong đó sổ cái chính và cơ sở hạ tầng tính toán không thể xử lý nhiều hơn 15–30 giao dịch mỗi giây.
Nhưng, các phương pháp mới hiện đang được áp dụng để giảm tải cho Ethereum — đồng thời vẫn duy trì độ tin cậy và phân phối. Chúng bao gồm các triển khai Layer 1 để chia sẻ và chuyển đổi sang Proof-of-Stake (PoS). Tuy nhiên, những tiến bộ thú vị nhất đang diễn ra trong các phương pháp Layer 2 và được xây dựng trên mạng Ethereum cốt lõi (Mainnet).
State channels ban đầu được triển khai với mạng Bitcoin Lightning và kể từ đó đã được mở rộng trên Ethereum. Với điều này, về cơ bản chúng ta có hai bản ghi trên sổ cái Mainnet, và nơi các bên liên quan phải cam kết một số tiền có thể hoặc không thể được chi tiêu. Ví dụ: giả sử Bob muốn tạo một kênh phụ để trả tiền cho khách hàng của mình và sẽ cam kết 10 Eth. Sau đó, anh ta sẽ tạo một hợp đồng kênh. Ether đã cam kết sau đó sẽ bị khóa trong thời gian của kênh và không thể được chi tiêu. Bob sau đó có thể đưa 2 $Eth cho Alice và 3 $Eth cho Carol. Sau khi hoàn thành việc này, anh ta sẽ cam kết giao dịch đã hoàn thành trở lại, và Bob sẽ nhận lại 5 $Eth, Alice sẽ nhận được 2 $Eth và Carol sẽ nhận được 3 Eth. Cuối cùng, Bob chỉ đăng dữ liệu tóm tắt và sẽ chỉ trả phí gas cho hai cam kết đối với sổ cái. Việc triển khai state channels được cung cấp bởi Polygon, và những người này triển khai khả năng tương thích EVM đầy đủ và phí giao dịch thấp. Một ví dụ từ here là:
pragma solidity ^0.7.0;
contract PaymentChannel {
address public sender;
address public receiver;
uint256 public expiration;
uint256 public amount;
constructor(
address _receiver,
uint256 _amount,
uint256 _expiration
) payable {
sender = msg.sender;
receiver = _receiver;
amount = _amount;
expiration = block.timestamp + _expiration;
}
function close(uint256 _payment) public {
require(
msg.sender == receiver,
"Only the receiver can close the channel"
);
require(
_payment <= amount,
"Payment amount exceeds amount in the channel"
);
selfdestruct(receiver);
}
function extendExpiration(uint256 _expiration) public {
require(
msg.sender == sender,
"Only the sender can extend the expiration"
);
require(
_expiration > expiration,
"Expiration must be set to a longer time than the current expiration"
);
expiration = _expiration;
}
}
Một trong những cơ chế tốt nhất để mở rộng quy mô Ethereum là di chuyển các giao dịch off-chain thông qua roll-ups và side chains.
Chúng xử lý các giao dịch off-chain và giả định rằng các giao dịch là hợp lệ (về cơ bản, một phương pháp “tin tưởng và xác minh”). Chúng chỉ sử dụng tài nguyên tính toán trên Mainnet khi có tranh chấp trong các giao dịch. Do đó, sẽ có một sự chậm trễ "thời gian thử thách" là bắt buộc trước khi các giao dịch thực sự được xác nhận trên Mainnet.
Với Arbitrum, những người quan sát gian lận phân tích các giao dịch và nếu một giao dịch gian lận được xác định, người quan sát sẽ đăng một bằng chứng gian lận lên Mainnet. Trên thực tế, Arbitrum có thể xác định các dòng mã liên quan đến phân tích gian lận, sau đó đăng lên Mainnet. Mainnet sau đó có thể phân xử về bằng chứng gian lận và quyết định có nên thực thi mã cần thiết hay không. Đối với Arbitrum, có thời gian rút tiền là bảy ngày [here].
Optimism cũng sử dụng các phương pháp off-chain với optimistic roll-ups và giả định rằng các giao dịch là hợp lệ. Nó sử dụng người theo dõi (hoặc người xác minh) để xác định xem có giao dịch gian lận hay không và có thể gửi bằng chứng gian lận và giao dịch đó có thể bị xóa. Người theo dõi sẽ được thưởng vì đã tìm thấy một giao dịch gian lận. Nhìn chung, có một sự chậm trễ khoảng bảy ngày cho thử thách và giao dịch sẽ bị đảo ngược nếu phát hiện ra rằng bằng chứng gian lận là chính xác [here]:
Chúng di chuyển các tính toán và lưu trữ trạng thái sang off-chain và liên quan đến một phương pháp không cần tin cậy. Sau khi được đăng trở lại Mainnet, sẽ có các bản cập nhật tối thiểu cần thiết cho việc thay đổi trạng thái và các bằng chứng liên quan đến điều này. Vì chúng ta có các bằng chứng ở dạng nén, chúng ta có thể xác thực nhanh chóng các giao dịch được cập nhật, cùng với việc hỗ trợ quyền riêng tư của các giao dịch. Với điều này, thay vì optimistic roll-ups mất nhiều ngày để cam kết, với zk-Rollups (dựa trên zkSnarks), chúng ta chỉ cần khoảng một giờ để xác minh các bằng chứng. Điều này đảm bảo không có chi tiêu gấp đôi và tất cả các giao dịch đều thanh khoản. Một ví dụ là ZKsync [here]:
Với zk-Rollups, có các bằng chứng mật mã về tính hợp lệ của các giao dịch và sau đó chúng liên kết đến Mainnet. Do đó, sẽ cực kỳ khó thực hiện một giao dịch gian lận. Với optimistic roll-ups, có một sự thiếu hụt bằng chứng mật mã, vì vậy trước khi có một cam kết trở lại Mainnet, và do đó có một sự chậm trễ để các giao dịch gian lận có thể được phát hiện.
Đây là một side chain độc lập và là một blockchain riêng biệt được kết nối với Mainnet. Không giống như các phương pháp roll-up, các giao dịch được cập nhật sau đó có thể được lặp lại trở lại Mainnet khi cần thiết. Nhìn chung, chúng có blockchain riêng và các cơ chế đồng thuận riêng — chẳng hạn như Proof of Authority (PoA). Polygon là một ví dụ về cơ sở hạ tầng side-chain. Điểm yếu tổng thể của side channels là chúng có khả năng có một mô hình bảo mật khác với mạng Ethereum chính [here]:
Đối với tôi, Zero Knowledge Proofs trong một chuỗi offline là giải pháp tốt nhất, vì nó nhanh chóng xác minh các giao dịch lên chuỗi chính và giữ quyền riêng tư của những người giao dịch. Chúng ta cũng có thể sử dụng tiết lộ có chọn lọc trong ZKPs, và điều này có thể hữu ích trong việc tiết lộ thông tin quan trọng, chẳng hạn như liệu một người có quyền truy cập vào một tài nguyên hay không.
Với optimistic rolls-ups, chúng ta giả định các giao dịch là hợp lệ trừ khi được chứng minh là ngược lại, và nơi chúng ta cần một khoảng thời gian thử thách để các giao dịch bị thách thức trước khi được hoàn tất. Với zk-Rollups, các giao dịch của chúng ta sẽ hợp lệ vì có một bằng chứng liên quan đến điều này và nơi chúng ta có một cam kết nhanh chóng với Mainnet. Thật không may, zk-Rollups cần một sự hiểu biết mạnh mẽ về mật mã và blockchain, và điều này có thể làm chậm sự phát triển.
Rõ ràng, Ethereum không phải là chương trình duy nhất trong thị trấn và Polygon [here], Solana [here], Cardano [here] và Polkadot [here] đang cung cấp các giải pháp thay thế có quy mô tốt hơn Ethereum. Nhưng, chúng tôi yêu thích blockchain đã mang đến cho chúng ta các hợp đồng thông minh và EVM (Ethereum Virtual Machine) và nhiều người hy vọng rằng nó có thể khắc phục các vấn đề về khả năng mở rộng và giữ nguyên mức độ phân phối và bảo mật.