Trong bài viết này, cùng Thecoindesk tìm hiểu cách tài sản trên mỗi parachain được chuyển như thế nào nhé.
Việc XCM chính thức ra mắt cho phép các chương trình có thể được thực thi, fork, phân nhánh (branch), thiết lập thời gian và chuyển từ chuỗi này sang chuỗi khác. Điều đó cũng có nghĩa là tài sản đã có thể được chuyển giữa các parachain, cải thiện hơn nữa khả năng tương tác trong Polkadot.
Là chuỗi song song đầu tiên trên Polkadot, Statemint được sử dụng để tạo và quản lý tài sản. Hiện tại, 14 tài sản đã được tạo trên Statemint.
Khi XCM cho phép chuyển tài sản, ngày càng nhiều tài sản sẽ được tạo ra trong hệ sinh thái Polkadot. Vậy những tài sản này được chuyển từ chuỗi này sang chuỗi khác như thế nào?
Một trong những thuộc tính chính mà Polkadot và Kusama mang lại cho hệ sinh thái là khả năng tương tác blockchain phi tập trung.
Khả năng tương tác này cho phép tài sản được chuyển từ xa (remote). Tức là chuyển tài sản (chẳng hạn như coin, token hoặc NFT) giữa các parachain và sử dụng chúng giống như bất kỳ tài sản gốc khác trên chuỗi đó.
Khả năng tương tác đạt được thông qua các mô-đun XCM và SPREE, đảm bảo rằng tài sản không bị mất hoặc bị trùng lặp trên nhiều chuỗi.
Quá trình chuyển tài sản
Mô hình trên tồn tại 2 vai trò là chuỗi nguồn (Source) và chuỗi đích (Destination).
Dưới đây là chi tiết cách chuyển tài sản giữa chuỗi nguồn và chuỗi đích.
Bắt đầu Teleport
Chuỗi nguồn thu thập các tài sản được chuyển từ tài khoản gửi và đưa chúng ra khỏi circulating supply, đồng thời theo dõi tổng lượng tài sản được rút.
Receive Teleported Assets (nhận tài sản được teleport)
Sau đó, chuỗi nguồn tạo ra một lệnh XCM được gọi là ReceiveTeleportedAssets, lấy một lượng tài sản được rút khỏi lưu thông và tài khoản để làm tham số cho lệnh.
Sau đó, nó sẽ gửi lệnh này đến chuỗi đích, nơi lệnh được xử lý và tài sản mới được đưa trở lại circulating supply tương ứng.
Gửi tài sản (Deposit Asset)
Sau đó, chuỗi đích gửi tài sản vào tài khoản nhận.
Giải pháp đơn giản là burn tài sản và đưa chúng ra khỏi lưu thông.
Nhược điểm của mô hình này là nó đòi hỏi mức độ tin cậy lẫn nhau cao giữa chuỗi nguồn và chuỗi đích.
Chuỗi đích phải tin tưởng rằng chuỗi nguồn đã loại bỏ tài sản được gửi từ circulating supply một cách hợp lý, và chuỗi nguồn cũng phải tin tưởng chuỗi đích để có thể đưa tài sản ra khỏi lưu thông vào lưu thông trở lại. Kết quả của việc chuyển tài sản này sẽ dẫn đến circulating supply giống nhau.
Việc không hỗ trợ một trong hai điều kiện này sẽ dẫn đến thay đổi tổng số phát hành tài sản (trong trường hợp mã thông báo đồng nhất) hoặc mất hoàn toàn/nhân đôi NFT.
Chuyển mã thông báo từ xa bằng UI của ứng dụng JS
- Phí giao dịch sẽ được tính trên chuỗi nguồn. Phí này không được tự động trừ vào số tiền người dùng định gửi. Số dư tài khoản của người dùng phải lớn hơn số tiền chuyển và phí giao dịch. Nếu không, giao dịch chuyển tài sản sẽ không thành công. Phí gửi sẽ được trừ vào số dư tài khoản của người dùng.
Sau khi chuyển, nếu số dư tài khoản của bạn thấp hơn số tiền gửi hiện có là 1.000 DOT, thì số dư đó sẽ bị burn. Hoặc là chuyển tất cả số dư của bạn hoặc là để lại đủ số dư để tài khoản không bị thu hồi.
- Chuỗi đích cũng sẽ tính phí giao dịch. Phí này sẽ tự động được trừ vào số tiền người dùng gửi. Sau khi trừ khoản phí này, số dư tài khoản còn lại trên chuỗi đích phải lớn hơn số tiền gửi. Nếu không, giao dịch chuyển khoản sẽ không thành công và phí gửi và số tiền chuyển sẽ bị trừ vào số dư tài khoản của người dùng.
Teleport có thể được thực hiện bên ngoài thông qua API PolkadotJS hoặc qua xcmPallet.limitedTeleportAssets().
Dưới đây là ví dụ cho việc sử dụng giao diện PolkadotJS để chuyển DOT từ Polkadot sang Statemint.
1. Mở ứng dụng PolkadotJS và kết nối với chuỗi bằng token mà người dùng muốn chuyển.
2. Chọn Accounts > Teleport. Thao tác này sẽ mở ra giao diện "teleport assets"
3. Điền nội dung giao dịch:
- "Send from account" – chọn tài khoản có token trong chuỗi nguồn.
- "Destination chain" – chọn parachain để gửi nội dung đến.
- "Send to address" – chọn tài khoản bạn muốn kiểm soát đơn vị tiền tệ trên chuỗi đích.
- "Amount" – Số lượng token cần chuyển. Không bao gồm phí chuyển.
4. Sau khi xem lại thông tin giao dịch và phí, hãy nhấp vào nút "Teleport". Hãy nhớ rằng chuỗi đích sẽ tính phí tiếp nhận cho số tiền được chuyển. (Hiện tại là 0,0032 DOT tại Statemint.)
5. Nhấp vào "Sign and Submit".
6. Nhập mật khẩu của bạn và nhấp vào "Sign the transaction".
Giao dịch sẽ được ký và broadcast, đồng thời token sẽ sớm được chuyển qua chuỗi đích.
Troubleshooting (Xử lý sự cố)
Nếu bạn không thấy "Accounts > Teleport" trong ứng dụng PolkadotJS, thì chuỗi nguồn bạn chọn chưa hỗ trợ Teleport.
XCM là một định dạng message . Nó cần được sử dụng với một protocol truyền message, chẳng hạn như protocol HRMP. Parachains có thể mở các kênh HRMP bằng các parachain khác để truyền message xuyên chuỗi.
Sự kết hợp giữa XCM và HRMP cho phép các parachain của Polkadot đạt được khả năng tổng hợp chuỗi chéo, thu lợi ích chung giữa các parachain và trao quyền cho hệ sinh thái Polkadot.