Trong bài viết trước, “Cấu trúc thành phần của Arbitrum do Cựu Đại sứ kỹ thuật của Arbitrum giải thích (Phần 1),” chúng tôi đã giới thiệu vai trò của các thành phần chính trong Arbitrum, bao gồm trình sắp xếp thứ tự, trình xác thực, hợp đồng hộp thư đến của trình sắp xếp thứ tự, khối cuộn lên và vai trò của bằng chứng gian lận không tương tác. Trong bài viết hôm nay, chúng tôi sẽ tập trung giải thích các thành phần liên quan đến việc truyền thông điệp xuyên chuỗi và mục nhập cho các giao dịch chống kiểm duyệt trong các thành phần cốt lõi của Arbitrum.
Nội dung chính: Trong các bài viết trước, chúng tôi đã đề cập rằng hợp đồng Hộp thư đến theo trình tự được thiết kế đặc biệt để nhận các lô dữ liệu giao dịch do trình sắp xếp trình tự xuất bản trên Lớp 1. Đồng thời, chúng tôi đã chỉ ra rằng Hộp thư đến theo trình tự còn được gọi là “hộp nhanh” và ngược lại, có “hộp chậm” hoặc Hộp thư đến bị trì hoãn (gọi tắt là Hộp thư đến). Dưới đây, chúng tôi sẽ giải thích chi tiết về các thành phần liên quan đến việc truyền tin nhắn xuyên chuỗi, bao gồm cả Hộp thư đến bị trì hoãn.
Các giao dịch xuyên chuỗi có thể được chia thành các giao dịch từ L1 đến L2 (gửi tiền) và giao dịch từ L2 đến L1 (rút tiền). Điều quan trọng cần lưu ý là các thuật ngữ “gửi tiền” và “rút tiền” ở đây có thể không nhất thiết liên quan đến việc chuyển tài sản xuyên chuỗi; họ có thể đề cập đến việc truyền tin nhắn mà không trực tiếp chuyển giao tài sản. Do đó, những thuật ngữ này chỉ thể hiện hai hướng của các hành động liên quan đến chuỗi chéo.
So với các giao dịch L2 thuần túy, các giao dịch xuyên chuỗi liên quan đến việc trao đổi thông tin giữa hai hệ thống khác nhau, L1 và L2, khiến quy trình trở nên phức tạp hơn.
Ngoài ra, khi chúng ta nói về các hành động xuyên chuỗi, nó thường đề cập đến việc giao thoa giữa hai mạng hoàn toàn không liên quan bằng cách sử dụng cầu nối chuỗi chéo trong mô hình liên kết. Tính bảo mật của các hoạt động chuỗi chéo như vậy phụ thuộc vào người vận hành cầu nối chuỗi chéo và trong lịch sử, các sự cố trộm cắp thường xảy ra ở các cầu nối chuỗi chéo dựa trên nhân chứng.
Mặt khác, các hành động chuỗi chéo giữa Rollup và mạng chính ETH về cơ bản khác với các quy trình chuỗi chéo nói trên. Điều này là do trạng thái của Layer2 được xác định bởi dữ liệu được ghi trên Layer1. Miễn là bạn sử dụng cầu nối chuỗi chéo Rollup chính thức, nó sẽ có cấu trúc an toàn trong hoạt động.
Điều này nêu bật bản chất của Rollup, từ góc nhìn của người dùng, xuất hiện dưới dạng một chuỗi độc lập, nhưng trên thực tế, cái gọi là “Layer2” chỉ là một cửa sổ hiển thị nhanh được Rollup mở cho người dùng và cấu trúc giống chuỗi thực sự của nó vẫn được ghi trên Layer1. Do đó, chúng ta có thể coi L2 là một nửa chuỗi hoặc “chuỗi được tạo trên Lớp1”.
Xin lưu ý rằng các giao dịch chuỗi chéo là không đồng bộ và không nguyên tử. Không giống như các giao dịch trên một chuỗi, việc hoàn thành giao dịch và xác nhận kết quả sau một giao dịch trên một chuỗi là không thể thực hiện được trong các giao dịch xuyên chuỗi. Cũng không có gì đảm bảo rằng điều gì đó cụ thể sẽ xảy ra ở phía bên kia vào một thời điểm nhất định. Do đó, các giao dịch xuyên chuỗi có thể không thành công do một số vấn đề phần mềm, nhưng với việc sử dụng các kỹ thuật phù hợp, chẳng hạn như phiếu có thể thử lại, các vấn đề khó như tiền bị kẹt sẽ không xảy ra.
Vé có thể thử lại là công cụ cơ bản được sử dụng trong cầu nối chính thức của Arbitrum trong quá trình gửi tiền, áp dụng cho cả tiền gửi ETH và ERC20. Vòng đời bao gồm ba bước:
Hơn nữa, liên quan đến quy trình rút tiền trên cầu chính thức của Arbitrum, mặc dù có sự tương đồng đối xứng nhất định trong quy trình so với tiền gửi nhưng không có khái niệm về vé có thể thử lại. Điều này có thể được hiểu từ góc độ của chính giao thức Rollup và một số điểm khác biệt có thể được nêu bật:
Chuỗi chéo các tài sản ERC-20 rất phức tạp. Chúng ta có thể suy nghĩ về một số câu hỏi:
Chúng tôi sẽ không trả lời tất cả những câu hỏi này vì chúng quá phức tạp để có thể khám phá. Những câu hỏi này chỉ được sử dụng để minh họa mức độ phức tạp của chuỗi chéo ERC20.
Hiện tại, nhiều giải pháp mở rộng quy mô sử dụng giải pháp danh sách trắng và danh sách thủ công để tránh các vấn đề phức tạp và điều kiện biên khác nhau.
Arbitrum sử dụng hệ thống Gateway để giải quyết hầu hết các vấn đề vướng mắc của chuỗi chéo ERC20. Nó có các tính năng sau:
Hãy lấy chuỗi chéo WETH tương đối đơn giản làm ví dụ để minh họa sự cần thiết của việc tùy chỉnh cổng.
WETH là ERC20 tương đương với ETH. Là loại tiền tệ chính, Ether không thể thực hiện các chức năng phức tạp trong nhiều dApp, do đó cần có ERC20 tương đương. Chuyển một số ETH vào hợp đồng WETH, chúng sẽ bị khóa trong hợp đồng và số lượng WETH tương tự sẽ được tạo ra.
Theo cách tương tự, WETH cũng có thể bị đốt và ETH có thể bị rút. Rõ ràng, tỷ lệ WETH lưu hành và ETH bị khóa luôn là 1:1.
Nếu bây giờ chúng ta chuyển trực tiếp chuỗi WETH sang L2, chúng ta sẽ thấy một số vấn đề lạ:
Rõ ràng điều này vi phạm nguyên tắc thiết kế của WETH. Do đó, khi WETH được liên kết chéo, cho dù là gửi hay rút tiền, trước tiên nó cần được mở vào ETH, sau đó chuyển sang phía bên kia và sau đó được gói vào WETH. Đây là vai trò của WETH Gateway.
Điều tương tự cũng xảy ra với các mã thông báo khác có logic phức tạp hơn, yêu cầu Cổng được thiết kế cẩn thận và phức tạp hơn để hoạt động chính xác trong môi trường chuỗi chéo. Cổng tùy chỉnh của Arbitrum kế thừa logic giao tiếp chuỗi chéo của Cổng thông thường và cho phép các nhà phát triển tùy chỉnh hành vi chuỗi chéo liên quan đến logic mã thông báo, có thể đáp ứng hầu hết các nhu cầu.
Bản sao của hộp thư đến nhanh, được gọi là Hộp thư đến tuần tự, là hộp thư đến chậm (có tên đầy đủ là Hộp thư đến bị trì hoãn). Tại sao phải phân biệt nhanh và chậm? Điều này là do hộp thư đến nhanh được dành riêng để nhận các lô giao dịch L2 do trình sắp xếp thứ tự xuất bản và mọi giao dịch không được trình sắp xếp thứ tự xử lý trước trong mạng L2 sẽ không xuất hiện trong hợp đồng hộp thư đến nhanh.
Chức năng đầu tiên của hộp thư đến chậm là xử lý quá trình gửi tiền từ L1 đến L2. Người dùng bắt đầu gửi tiền thông qua hộp thư đến chậm và khi trình sắp xếp thứ tự quan sát thấy điều này, nó sẽ phản ánh trên L2. Cuối cùng, bản ghi tiền gửi này được trình sắp xếp thứ tự đưa vào chuỗi giao dịch L2 và gửi đến hợp đồng hộp thư đến nhanh (Hộp thư đến trình tự sắp xếp).
Trong trường hợp này, việc người dùng gửi trực tiếp các giao dịch gửi tiền đến hộp thư đến nhanh (Hộp thư đến tuần tự) là không phù hợp vì các giao dịch được gửi đến hộp thư đến nhanh có thể làm gián đoạn thứ tự giao dịch thông thường trong Lớp 2, do đó ảnh hưởng đến hoạt động của trình sắp xếp thứ tự.
Chức năng thứ hai của hộp thư đến chậm là khả năng chống kiểm duyệt. Các giao dịch được gửi trực tiếp đến hợp đồng hộp thư đến chậm thường được trình sắp xếp tổng hợp vào hộp thư đến nhanh trong vòng 10 phút. Tuy nhiên, nếu trình sắp xếp thứ tự cố tình bỏ qua yêu cầu của bạn thì hộp thư đến chậm sẽ có tính năng đưa vào bắt buộc:
Nếu một giao dịch được gửi đến Hộp thư đến bị trì hoãn và sau 24 giờ, giao dịch đó vẫn chưa được trình sắp xếp thứ tự hợp nhất vào chuỗi giao dịch, thì người dùng có thể kích hoạt chức năng bao gồm lực lượng trên Lớp1 theo cách thủ công. Hành động này buộc các giao dịch bị trình sắp xếp thứ tự bỏ qua buộc phải được tổng hợp vào hộp thư đến nhanh (Hộp thư đến theo trình tự). Sau đó, chúng sẽ được tất cả các nút Arbitrum One phát hiện và được đưa vào chuỗi giao dịch Lớp2 một cách mạnh mẽ.
Chúng tôi vừa đề cập rằng dữ liệu trong hộp thư đến nhanh đại diện cho thực thể dữ liệu lịch sử của L2. Do đó, trong trường hợp kiểm duyệt độc hại, việc sử dụng hộp thư đến chậm cho phép các hướng dẫn giao dịch cuối cùng được đưa vào sổ cái L2, bao gồm các tình huống như buộc phải rút tiền để thoát khỏi Lớp2.
Từ đó, có thể thấy rằng đối với bất kỳ hướng và mức độ giao dịch nào, trình sắp xếp chuỗi cuối cùng không thể kiểm duyệt bạn vĩnh viễn.
Một số chức năng cốt lõi của hộp thư đến chậm (Inbox):
Tuy nhiên, điều quan trọng cần lưu ý là chức năng ép buộc thực sự nằm trong hợp đồng hộp thư đến nhanh. Để dễ hiểu, chúng tôi đã giải thích vấn đề này cùng với hộp thư đến chậm.
Outbox chỉ liên quan đến việc rút tiền và có thể hiểu là hệ thống ghi nhận và quản lý các hành vi rút tiền:
Dưới đây chúng tôi sẽ lấy ETH làm ví dụ để giải thích đầy đủ về quy trình gửi và rút tiền. Sự khác biệt duy nhất giữa ERC20 và ETH là ERC20 trước đây sử dụng Gateway. Chúng tôi sẽ không giải thích chi tiết.
Người dùng gọi hàm DepositETH() của hộp chậm.
Hàm này sẽ tiếp tục gọi 'bridge.enqueueDelayedMessage()', ghi lại tin nhắn trong hợp đồng cầu nối và gửi ETH đến hợp đồng cầu nối. Tất cả tiền gửi ETH được giữ trong hợp đồng bắc cầu, tương đương với địa chỉ gửi tiền.
Trình sắp xếp thứ tự giám sát các thông báo gửi tiền trong hộp chậm và phản ánh hoạt động gửi tiền vào cơ sở dữ liệu L2. Người dùng có thể xem tài sản họ đã gửi trên mạng L2.
Trình sắp xếp thứ tự bao gồm bản ghi tiền gửi vào lô giao dịch và gửi nó vào hợp đồng hộp nhanh trên L1.
Người dùng gọi hàm drawEth() của hợp đồng ArbSys trên L2 và số ET tương ứng sẽ được ghi trên L2.
Trình sắp xếp thứ tự sẽ gửi yêu cầu rút tiền đến hộp chuyển phát nhanh.
Nút Trình xác thực tạo Khối tổng hợp mới dựa trên chuỗi giao dịch trong hộp nhanh, khối này sẽ chứa các giao dịch rút tiền ở trên.
Sau khi Khối tổng hợp trải qua giai đoạn thử thách cũng đã được xác nhận, người dùng có thể gọi hàm Outbox.execute Transaction() trên L1 để chứng minh rằng các tham số được đưa ra bởi hợp đồng ArbSys đã đề cập ở trên.
Sau khi hợp đồng Outbox được xác nhận là chính xác, số ETH tương ứng trong bridge sẽ được mở khóa và gửi đến người dùng.
Khi sử dụng cầu chính thức Optimistic Rollup để rút tiền mặt, sẽ xảy ra vấn đề phải chờ thời gian thử thách. Chúng tôi có thể sử dụng cầu nối chuỗi chéo riêng tư của bên thứ ba để loại bỏ vấn đề này:
Hàm Force Inclusion() được sử dụng để chống lại sự kiểm duyệt của trình sắp xếp chuỗi. Bất kỳ giao dịch cục bộ L2, giao dịch L1 đến L2 và giao dịch L2 đến L1 đều có thể được thực hiện bằng chức năng này. Việc kiểm duyệt độc hại của trình sắp xếp chuỗi ảnh hưởng nghiêm trọng đến trải nghiệm giao dịch. Trong hầu hết các trường hợp, chúng ta sẽ chọn rút tiền và để lại L2. Do đó, phần sau đây sử dụng việc rút tiền bắt buộc làm ví dụ để giới thiệu cách sử dụng ForceInclusion.
Nhìn lại các bước rút ETH, chỉ có bước 1 và 2 liên quan đến kiểm duyệt trình tự sắp xếp nên chỉ cần thay đổi 2 bước này:
Người dùng cuối có thể rút tiền trong Outbox và các bước còn lại giống như rút tiền thông thường.
Ngoài ra, còn có hướng dẫn chi tiết về cách sử dụng Arb SDK trong arbitrum-tutorials để hướng dẫn người dùng cách thực hiện các giao dịch cục bộ L2 và giao dịch L2 đến L1 thông qua hàm ForceInclusion().
Trong bài viết trước, “Cấu trúc thành phần của Arbitrum do Cựu Đại sứ kỹ thuật của Arbitrum giải thích (Phần 1),” chúng tôi đã giới thiệu vai trò của các thành phần chính trong Arbitrum, bao gồm trình sắp xếp thứ tự, trình xác thực, hợp đồng hộp thư đến của trình sắp xếp thứ tự, khối cuộn lên và vai trò của bằng chứng gian lận không tương tác. Trong bài viết hôm nay, chúng tôi sẽ tập trung giải thích các thành phần liên quan đến việc truyền thông điệp xuyên chuỗi và mục nhập cho các giao dịch chống kiểm duyệt trong các thành phần cốt lõi của Arbitrum.
Nội dung chính: Trong các bài viết trước, chúng tôi đã đề cập rằng hợp đồng Hộp thư đến theo trình tự được thiết kế đặc biệt để nhận các lô dữ liệu giao dịch do trình sắp xếp trình tự xuất bản trên Lớp 1. Đồng thời, chúng tôi đã chỉ ra rằng Hộp thư đến theo trình tự còn được gọi là “hộp nhanh” và ngược lại, có “hộp chậm” hoặc Hộp thư đến bị trì hoãn (gọi tắt là Hộp thư đến). Dưới đây, chúng tôi sẽ giải thích chi tiết về các thành phần liên quan đến việc truyền tin nhắn xuyên chuỗi, bao gồm cả Hộp thư đến bị trì hoãn.
Các giao dịch xuyên chuỗi có thể được chia thành các giao dịch từ L1 đến L2 (gửi tiền) và giao dịch từ L2 đến L1 (rút tiền). Điều quan trọng cần lưu ý là các thuật ngữ “gửi tiền” và “rút tiền” ở đây có thể không nhất thiết liên quan đến việc chuyển tài sản xuyên chuỗi; họ có thể đề cập đến việc truyền tin nhắn mà không trực tiếp chuyển giao tài sản. Do đó, những thuật ngữ này chỉ thể hiện hai hướng của các hành động liên quan đến chuỗi chéo.
So với các giao dịch L2 thuần túy, các giao dịch xuyên chuỗi liên quan đến việc trao đổi thông tin giữa hai hệ thống khác nhau, L1 và L2, khiến quy trình trở nên phức tạp hơn.
Ngoài ra, khi chúng ta nói về các hành động xuyên chuỗi, nó thường đề cập đến việc giao thoa giữa hai mạng hoàn toàn không liên quan bằng cách sử dụng cầu nối chuỗi chéo trong mô hình liên kết. Tính bảo mật của các hoạt động chuỗi chéo như vậy phụ thuộc vào người vận hành cầu nối chuỗi chéo và trong lịch sử, các sự cố trộm cắp thường xảy ra ở các cầu nối chuỗi chéo dựa trên nhân chứng.
Mặt khác, các hành động chuỗi chéo giữa Rollup và mạng chính ETH về cơ bản khác với các quy trình chuỗi chéo nói trên. Điều này là do trạng thái của Layer2 được xác định bởi dữ liệu được ghi trên Layer1. Miễn là bạn sử dụng cầu nối chuỗi chéo Rollup chính thức, nó sẽ có cấu trúc an toàn trong hoạt động.
Điều này nêu bật bản chất của Rollup, từ góc nhìn của người dùng, xuất hiện dưới dạng một chuỗi độc lập, nhưng trên thực tế, cái gọi là “Layer2” chỉ là một cửa sổ hiển thị nhanh được Rollup mở cho người dùng và cấu trúc giống chuỗi thực sự của nó vẫn được ghi trên Layer1. Do đó, chúng ta có thể coi L2 là một nửa chuỗi hoặc “chuỗi được tạo trên Lớp1”.
Xin lưu ý rằng các giao dịch chuỗi chéo là không đồng bộ và không nguyên tử. Không giống như các giao dịch trên một chuỗi, việc hoàn thành giao dịch và xác nhận kết quả sau một giao dịch trên một chuỗi là không thể thực hiện được trong các giao dịch xuyên chuỗi. Cũng không có gì đảm bảo rằng điều gì đó cụ thể sẽ xảy ra ở phía bên kia vào một thời điểm nhất định. Do đó, các giao dịch xuyên chuỗi có thể không thành công do một số vấn đề phần mềm, nhưng với việc sử dụng các kỹ thuật phù hợp, chẳng hạn như phiếu có thể thử lại, các vấn đề khó như tiền bị kẹt sẽ không xảy ra.
Vé có thể thử lại là công cụ cơ bản được sử dụng trong cầu nối chính thức của Arbitrum trong quá trình gửi tiền, áp dụng cho cả tiền gửi ETH và ERC20. Vòng đời bao gồm ba bước:
Hơn nữa, liên quan đến quy trình rút tiền trên cầu chính thức của Arbitrum, mặc dù có sự tương đồng đối xứng nhất định trong quy trình so với tiền gửi nhưng không có khái niệm về vé có thể thử lại. Điều này có thể được hiểu từ góc độ của chính giao thức Rollup và một số điểm khác biệt có thể được nêu bật:
Chuỗi chéo các tài sản ERC-20 rất phức tạp. Chúng ta có thể suy nghĩ về một số câu hỏi:
Chúng tôi sẽ không trả lời tất cả những câu hỏi này vì chúng quá phức tạp để có thể khám phá. Những câu hỏi này chỉ được sử dụng để minh họa mức độ phức tạp của chuỗi chéo ERC20.
Hiện tại, nhiều giải pháp mở rộng quy mô sử dụng giải pháp danh sách trắng và danh sách thủ công để tránh các vấn đề phức tạp và điều kiện biên khác nhau.
Arbitrum sử dụng hệ thống Gateway để giải quyết hầu hết các vấn đề vướng mắc của chuỗi chéo ERC20. Nó có các tính năng sau:
Hãy lấy chuỗi chéo WETH tương đối đơn giản làm ví dụ để minh họa sự cần thiết của việc tùy chỉnh cổng.
WETH là ERC20 tương đương với ETH. Là loại tiền tệ chính, Ether không thể thực hiện các chức năng phức tạp trong nhiều dApp, do đó cần có ERC20 tương đương. Chuyển một số ETH vào hợp đồng WETH, chúng sẽ bị khóa trong hợp đồng và số lượng WETH tương tự sẽ được tạo ra.
Theo cách tương tự, WETH cũng có thể bị đốt và ETH có thể bị rút. Rõ ràng, tỷ lệ WETH lưu hành và ETH bị khóa luôn là 1:1.
Nếu bây giờ chúng ta chuyển trực tiếp chuỗi WETH sang L2, chúng ta sẽ thấy một số vấn đề lạ:
Rõ ràng điều này vi phạm nguyên tắc thiết kế của WETH. Do đó, khi WETH được liên kết chéo, cho dù là gửi hay rút tiền, trước tiên nó cần được mở vào ETH, sau đó chuyển sang phía bên kia và sau đó được gói vào WETH. Đây là vai trò của WETH Gateway.
Điều tương tự cũng xảy ra với các mã thông báo khác có logic phức tạp hơn, yêu cầu Cổng được thiết kế cẩn thận và phức tạp hơn để hoạt động chính xác trong môi trường chuỗi chéo. Cổng tùy chỉnh của Arbitrum kế thừa logic giao tiếp chuỗi chéo của Cổng thông thường và cho phép các nhà phát triển tùy chỉnh hành vi chuỗi chéo liên quan đến logic mã thông báo, có thể đáp ứng hầu hết các nhu cầu.
Bản sao của hộp thư đến nhanh, được gọi là Hộp thư đến tuần tự, là hộp thư đến chậm (có tên đầy đủ là Hộp thư đến bị trì hoãn). Tại sao phải phân biệt nhanh và chậm? Điều này là do hộp thư đến nhanh được dành riêng để nhận các lô giao dịch L2 do trình sắp xếp thứ tự xuất bản và mọi giao dịch không được trình sắp xếp thứ tự xử lý trước trong mạng L2 sẽ không xuất hiện trong hợp đồng hộp thư đến nhanh.
Chức năng đầu tiên của hộp thư đến chậm là xử lý quá trình gửi tiền từ L1 đến L2. Người dùng bắt đầu gửi tiền thông qua hộp thư đến chậm và khi trình sắp xếp thứ tự quan sát thấy điều này, nó sẽ phản ánh trên L2. Cuối cùng, bản ghi tiền gửi này được trình sắp xếp thứ tự đưa vào chuỗi giao dịch L2 và gửi đến hợp đồng hộp thư đến nhanh (Hộp thư đến trình tự sắp xếp).
Trong trường hợp này, việc người dùng gửi trực tiếp các giao dịch gửi tiền đến hộp thư đến nhanh (Hộp thư đến tuần tự) là không phù hợp vì các giao dịch được gửi đến hộp thư đến nhanh có thể làm gián đoạn thứ tự giao dịch thông thường trong Lớp 2, do đó ảnh hưởng đến hoạt động của trình sắp xếp thứ tự.
Chức năng thứ hai của hộp thư đến chậm là khả năng chống kiểm duyệt. Các giao dịch được gửi trực tiếp đến hợp đồng hộp thư đến chậm thường được trình sắp xếp tổng hợp vào hộp thư đến nhanh trong vòng 10 phút. Tuy nhiên, nếu trình sắp xếp thứ tự cố tình bỏ qua yêu cầu của bạn thì hộp thư đến chậm sẽ có tính năng đưa vào bắt buộc:
Nếu một giao dịch được gửi đến Hộp thư đến bị trì hoãn và sau 24 giờ, giao dịch đó vẫn chưa được trình sắp xếp thứ tự hợp nhất vào chuỗi giao dịch, thì người dùng có thể kích hoạt chức năng bao gồm lực lượng trên Lớp1 theo cách thủ công. Hành động này buộc các giao dịch bị trình sắp xếp thứ tự bỏ qua buộc phải được tổng hợp vào hộp thư đến nhanh (Hộp thư đến theo trình tự). Sau đó, chúng sẽ được tất cả các nút Arbitrum One phát hiện và được đưa vào chuỗi giao dịch Lớp2 một cách mạnh mẽ.
Chúng tôi vừa đề cập rằng dữ liệu trong hộp thư đến nhanh đại diện cho thực thể dữ liệu lịch sử của L2. Do đó, trong trường hợp kiểm duyệt độc hại, việc sử dụng hộp thư đến chậm cho phép các hướng dẫn giao dịch cuối cùng được đưa vào sổ cái L2, bao gồm các tình huống như buộc phải rút tiền để thoát khỏi Lớp2.
Từ đó, có thể thấy rằng đối với bất kỳ hướng và mức độ giao dịch nào, trình sắp xếp chuỗi cuối cùng không thể kiểm duyệt bạn vĩnh viễn.
Một số chức năng cốt lõi của hộp thư đến chậm (Inbox):
Tuy nhiên, điều quan trọng cần lưu ý là chức năng ép buộc thực sự nằm trong hợp đồng hộp thư đến nhanh. Để dễ hiểu, chúng tôi đã giải thích vấn đề này cùng với hộp thư đến chậm.
Outbox chỉ liên quan đến việc rút tiền và có thể hiểu là hệ thống ghi nhận và quản lý các hành vi rút tiền:
Dưới đây chúng tôi sẽ lấy ETH làm ví dụ để giải thích đầy đủ về quy trình gửi và rút tiền. Sự khác biệt duy nhất giữa ERC20 và ETH là ERC20 trước đây sử dụng Gateway. Chúng tôi sẽ không giải thích chi tiết.
Người dùng gọi hàm DepositETH() của hộp chậm.
Hàm này sẽ tiếp tục gọi 'bridge.enqueueDelayedMessage()', ghi lại tin nhắn trong hợp đồng cầu nối và gửi ETH đến hợp đồng cầu nối. Tất cả tiền gửi ETH được giữ trong hợp đồng bắc cầu, tương đương với địa chỉ gửi tiền.
Trình sắp xếp thứ tự giám sát các thông báo gửi tiền trong hộp chậm và phản ánh hoạt động gửi tiền vào cơ sở dữ liệu L2. Người dùng có thể xem tài sản họ đã gửi trên mạng L2.
Trình sắp xếp thứ tự bao gồm bản ghi tiền gửi vào lô giao dịch và gửi nó vào hợp đồng hộp nhanh trên L1.
Người dùng gọi hàm drawEth() của hợp đồng ArbSys trên L2 và số ET tương ứng sẽ được ghi trên L2.
Trình sắp xếp thứ tự sẽ gửi yêu cầu rút tiền đến hộp chuyển phát nhanh.
Nút Trình xác thực tạo Khối tổng hợp mới dựa trên chuỗi giao dịch trong hộp nhanh, khối này sẽ chứa các giao dịch rút tiền ở trên.
Sau khi Khối tổng hợp trải qua giai đoạn thử thách cũng đã được xác nhận, người dùng có thể gọi hàm Outbox.execute Transaction() trên L1 để chứng minh rằng các tham số được đưa ra bởi hợp đồng ArbSys đã đề cập ở trên.
Sau khi hợp đồng Outbox được xác nhận là chính xác, số ETH tương ứng trong bridge sẽ được mở khóa và gửi đến người dùng.
Khi sử dụng cầu chính thức Optimistic Rollup để rút tiền mặt, sẽ xảy ra vấn đề phải chờ thời gian thử thách. Chúng tôi có thể sử dụng cầu nối chuỗi chéo riêng tư của bên thứ ba để loại bỏ vấn đề này:
Hàm Force Inclusion() được sử dụng để chống lại sự kiểm duyệt của trình sắp xếp chuỗi. Bất kỳ giao dịch cục bộ L2, giao dịch L1 đến L2 và giao dịch L2 đến L1 đều có thể được thực hiện bằng chức năng này. Việc kiểm duyệt độc hại của trình sắp xếp chuỗi ảnh hưởng nghiêm trọng đến trải nghiệm giao dịch. Trong hầu hết các trường hợp, chúng ta sẽ chọn rút tiền và để lại L2. Do đó, phần sau đây sử dụng việc rút tiền bắt buộc làm ví dụ để giới thiệu cách sử dụng ForceInclusion.
Nhìn lại các bước rút ETH, chỉ có bước 1 và 2 liên quan đến kiểm duyệt trình tự sắp xếp nên chỉ cần thay đổi 2 bước này:
Người dùng cuối có thể rút tiền trong Outbox và các bước còn lại giống như rút tiền thông thường.
Ngoài ra, còn có hướng dẫn chi tiết về cách sử dụng Arb SDK trong arbitrum-tutorials để hướng dẫn người dùng cách thực hiện các giao dịch cục bộ L2 và giao dịch L2 đến L1 thông qua hàm ForceInclusion().