Hiện tại, Ethereum chỉ có thể xử lý khoảng 15 giao dịch mỗi giây; điều này có nghĩa là những người xác thực sẽ chọn một tập hợp các giao dịch từ nhóm giao dịch chưa được xác nhận và cách họ chọn các giao dịch này trên thực tế có liên quan đến lợi nhuận của họ. Vì vậy, bạn phải chiến đấu để giao dịch của mình được đưa vào vì chỉ có rất nhiều giao dịch có thể được xử lý tại một thời điểm.
Bạn biết đấy, những người xác thực được thưởng phí khi họ đưa giao dịch của bạn vào một khối. Bây giờ hãy suy nghĩ từ góc độ trình xác thực; có hai giao dịch hiện đang nằm trong nhóm giao dịch đang chờ người xác thực chọn. Một giao dịch sẵn sàng trả 10 đô la và giao dịch còn lại chỉ trả 1 đô la dưới dạng phí. Bạn sẽ chọn giao dịch nào?
Cái 10 đô la, phải không? Bởi vì nếu bạn đưa giao dịch này vào khối, bạn sẽ nhận được 10 đô la phí.
Hãy để tôi giải thích điều này một cách đơn giản. Khi tương tác với mạng Ethereum, bạn thường gọi một số hợp đồng thông minh nhất định. Hợp đồng thông minh là một tập hợp các hướng dẫn; nghĩ về chúng như một chương trình. Mỗi hướng dẫn sẽ yêu cầu một số sức mạnh tính toán.
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract HelloWorld { string public message; constructor() { message = "Hello World"; } function getMessage() public view returns (string memory) { return message; } function setMessage(string memory newMessage) public { message = newMessage; } }
Nếu bạn là một
Khi bạn triển khai hợp đồng này, điều đầu tiên được gọi là hàm tạo của nó, đặt biến message
thành “Xin chào thế giới” . Điều này thay đổi trạng thái của chuỗi khối . Bất kỳ thay đổi tiểu bang yêu cầu phí. Giả sử rằng việc lưu trữ một chuỗi trong một biến có giá 1 đô la.
Nếu bạn muốn đặt thông báo thành một nội dung khác, giả sử, “Chào mừng bạn đến với bài viết của Kishan” , bạn sẽ cần gọi phương thức setMessage()
trong hợp đồng, chuyển thông báo được yêu cầu của bạn và điều đó sẽ lại yêu cầu một số khoản phí vì bạn đang thay đổi trạng thái. Giả sử nó yêu cầu 1 đô la một lần nữa.
Nếu tôi muốn xem tin nhắn là gì thì sao? Bạn chỉ cần gọi getMessage();
điều này sẽ không yêu cầu bất kỳ khoản phí nào vì nó không thay đổi trạng thái. Đã giải thích điều đó, chúng ta hãy quay lại cuộc thảo luận của chúng ta.
Giả sử, vì một lý do nào đó, giao dịch của bạn hiện nằm trong nhóm giao dịch sẽ gọi hợp đồng thông minh HelloWorld
này và đặt thông báo thành tên của bạn.
Bây giờ, giả sử rằng người xác thực chọn giao dịch của bạn theo giả thuyết, anh ta sẽ thấy rằng bạn đã đặt phí thành 1 đô la và bản thân việc gọi hợp đồng thông minh sẽ mất 1 đô la. Vì vậy, bản thân anh ta không nhận lại được gì. Tất cả các khoản phí đã được sử dụng bằng cách tương tác với hợp đồng thông minh. Tại sao sau đó anh ta sẽ nhặt nó lên? Giao dịch này sẽ bị từ chối vì không có động cơ nào để người xác thực xử lý và đưa nó vào chuỗi. Vì vậy, bạn sẽ phải thử lại với mức phí cao hơn để có thể thu hút người xác thực chọn giao dịch của mình.
Phí gas có thể thực sự cạnh tranh khi có nhiều người dùng đang giao dịch trên Ethereum. Có, bạn có thể đặt phí theo cách thủ công nhưng hãy lưu ý rằng có thể mất nhiều thời gian để được xác nhận vì người xác thực sẽ chỉ chọn các giao dịch có lợi cho họ.
Nếu giao dịch của bạn nhạy cảm với thời gian, chẳng hạn như bạn muốn đóng giao dịch càng sớm càng tốt, điều đó có nguy cơ bị thanh lý. Trong trường hợp này, tốt hơn hết bạn nên đặt phí càng cao càng tốt hoặc sử dụng một trong các ví cung cấp cho bạn ước tính phí sẽ xác nhận giao dịch của bạn trong vòng vài giây. Vì tiết kiệm xăng có thể dẫn đến việc toàn bộ danh mục đầu tư của bạn bị xóa sạch.
Các khoản phí cao này đã cản trở rất nhiều người đam mê tiền điện tử giao dịch trên Ethereum và có rất nhiều lớp 1 khác đã được giới thiệu để giải quyết vấn đề này. Nhưng tất cả chúng đều thiếu sự phân cấp, đó là lý do tại sao mọi người sẽ chuyển sang web3.
Chúng tôi muốn sử dụng tính năng phân quyền và bảo mật do Ethereum cung cấp nhưng đồng thời cũng không muốn mất túi với những khoản phí khổng lồ này.
Một cách để giải quyết những vấn đề này là Rollups, một giải pháp mở rộng Lớp 2.
Tổng số là một cách tổng hợp các giao dịch và xử lý chúng ngoài chuỗi và xuất bản kết quả trở lại trên chuỗi.
Tất cả những điều này ngoài chuỗi và trên chuỗi có thể gây ra sự nghi ngờ trong việc hiểu, vì vậy hãy để tôi làm rõ hơn một chút. Hãy coi rollup là một quy trình có thể giảm đáng kể phí và tắc nghẽn của chuỗi khối Ethereum. Cách thức hoạt động của điều này là bằng cách cuộn (tổng hợp) lại với nhau một loạt giao dịch lớn và chuyển chúng vào một chuỗi ngoài chuỗi như chuỗi song song, VM, v.v. Các chuỗi song song này được vận hành bởi các mạng lớp 2 như Arbitrum, zkSync , Lạc quan, v.v.
Việc tổng hợp được thực hiện bởi một thực thể được gọi là nhà điều hành tổng số, công việc chính của họ là thu thập các giao dịch từ những người dùng khác nhau và thực hiện chúng trên môi trường ngoại tuyến. Một lần nữa, off-chain có thể có nhiều ý nghĩa tùy thuộc vào việc triển khai, chẳng hạn như máy ảo, sidechain hoặc giao thức lớp 2 khác.
Khi nó đã thực hiện các giao dịch, nó sẽ gửi dữ liệu tổng hợp (khối cuộn lên) tới chuỗi Ethereum dưới dạng calldata, cùng với bằng chứng rằng nó đã thực hiện chính xác. Đến đây thì chúng ta đã rõ calldata là gì ?
Hãy nghĩ về calldata như một loại dữ liệu đặc biệt có thể được lưu trữ trên Ethereum mà không bị thực thi hoặc ảnh hưởng đến trạng thái của nó.
Các nhà khai thác tổng số cần phải trả một khoản phí cho trình xác thực Ethereum để bao gồm dữ liệu cuộc gọi trong một khối. Một khi nó đã được bao gồm. Toán tử tổng số giám sát hợp đồng tổng số (được giải thích trong phần tiếp theo) để biết bất kỳ thách thức hoặc tranh chấp nào từ người dùng hoặc người xác thực khác. Nếu có bất kỳ tranh chấp, nó đáp ứng cho phù hợp.
Hợp đồng tổng số chịu trách nhiệm xác minh dữ liệu giao dịch và bằng chứng có trong calldata do nhà điều hành tổng số của chúng tôi gửi. Đó là một hợp đồng thông minh được triển khai trên Ethereum để quản lý trạng thái và logic của quá trình tổng hợp.
Hợp đồng tổng số nhận dữ liệu giao dịch và bằng chứng từ toán tử tổng số dưới dạng calldata, xác minh chúng, cập nhật trạng thái của các bản tổng số và phát ra một sự kiện cho bất kỳ thay đổi trạng thái nào.
Hãy kết hợp tất cả những gì chúng ta đã học và tóm tắt nó bằng một ví dụ:
Giả sử bạn muốn gửi 1 ETH cho người bạn Ram của mình bằng cách sử dụng tổng số.
Bạn chỉ định địa chỉ của Ram và số tiền sẽ được gửi trong ví của bạn và ký giao dịch.
Sau đó, bạn gửi giao dịch cho một nhà điều hành tổng số, người chịu trách nhiệm tổng hợp các giao dịch từ những người dùng khác nhau và thực hiện chúng trong môi trường thực thi ngoài chuỗi.
Sau đó, nhà điều hành tổng số sẽ gộp giao dịch của bạn với các giao dịch khác trong cái gọi là khối tổng số và gửi nó tới chuỗi Ethereum dưới dạng calldata . Sau đó, nó trả phí cho những người xác thực để đưa nó vào khối.
Bây giờ, tùy thuộc vào loại tổng số, người điều hành tổng số có thể cần gửi bằng chứng hoặc xác nhận bổ sung về tính hợp lệ của khối tổng số cùng với calldata.
Hoàn thành việc đó, khối tổng số sau đó được xử lý bởi hợp đồng tổng số , đây là một hợp đồng thông minh được triển khai trên chuỗi Ethereum quản lý trạng thái và logic của quá trình tổng số. Hợp đồng xác minh bằng chứng hoặc xác nhận, cập nhật trạng thái của người dùng tổng số và đưa ra một sự kiện cho bất kỳ thay đổi trạng thái nào.
Cuối cùng, Ram nhận được 1 ETH từ bạn trong tài khoản tổng số của anh ấy.
Optimistic rollups là lạc quan. Ý tôi là họ cho rằng mọi giao dịch trong lô đều hợp lệ. Nhưng có một nhược điểm. Họ đưa ra thời gian gia hạn khi người dùng hoặc người xác thực cho rằng giao dịch không hợp lệ có thể thách thức giao dịch đó bằng cách gửi bằng chứng gian lận. Sau đó, mạng chính Ethereum sẽ xác minh nó và nếu thử thách thành công, khối tổng số sẽ bị từ chối và nhà điều hành không trung thực sẽ bị phạt nặng.
Nếu không có tranh chấp sau khi thời gian gia hạn kết thúc, lô giao dịch sẽ được cố định vào Ethereum và các thay đổi trạng thái mà nó bao gồm sẽ được hoàn tất.
Mặc dù nó cung cấp khả năng mở rộng tăng lên và giảm phí gas, nhưng nó đi kèm với sự chậm trễ trong giao dịch cuối cùng vì người ta phải đợi thời gian gia hạn.
Có hai con ngựa chính trong cuộc đua:
Tôi đã viết một bài viết chi tiết giải thích về zk-rollup mà bạn có thể tham khảo. Dù sao đi nữa, tôi sẽ cung cấp cho bạn một cái nhìn tổng quan ngắn gọn về nó là gì và nó hoạt động như thế nào.
zk rollup, không giống như rollup lạc quan, giả sử mọi giao dịch đều không hợp lệ cho đến khi được chứng minh là hợp lệ. Nó sử dụng “bằng chứng không có kiến thức” để xác thực tính xác thực của giao dịch. Sau khi xử lý tất cả các giao dịch trong lô, nó sẽ gửi một giao dịch duy nhất trở lại Ethereum, cùng với bằng chứng cho thấy hợp đồng tổng số có thể dễ dàng xác minh.
Nó an toàn hơn so với một tổng số lạc quan. Vì không có thời gian gia hạn, các giao dịch có tính hữu hạn ngay lập tức vì tính hợp lệ đã được chứng minh thông qua bằng chứng mật mã. Tuy nhiên, việc tạo ra bằng chứng đòi hỏi sức mạnh tính toán và chuyên môn đáng kể để thực hiện nó. Điều này có thể làm tăng độ phức tạp so với các bản tổng hợp lạc quan.
Hai con ngựa lớn trong cuộc đua là:
Cảm ơn bạn đã dành thời gian để đọc bài viết này.
Người giới thiệu: