Bắt đầu miễn phí
Tiếng Việt

Mạng EVM

Các chuỗi EVM hoạt động thế nào với tư cách đường ray thanh toán

Phần lớn mạng lưới trên trang này là chuỗi EVM: Ethereum và những mạng đã sao chép bộ máy của nó. Chúng dùng chung một định dạng địa chỉ, một mô hình phí và một chuẩn token — đó là lý do một chiếc ví với tới được tất cả, và cũng là lý do sai lầm tốn kém nhất trong thanh toán tiền mã hóa xảy ra giữa chúng chứ không phải hướng về chúng.

Một địa chỉ, mọi chuỗi — và cái bẫy nằm trong đó

Một địa chỉ EVM được suy ra từ một khóa và không gì khác: lấy khóa công khai, băm nó, giữ lại hai mươi byte cuối, rồi thêm 0x ở đầu. Không có mạng lưới nào tham gia vào phép tính ấy cả. Vì vậy cùng một địa chỉ tồn tại trên Ethereum, trên Base, trên Polygon, trên BNB Chain — trên mọi chuỗi EVM đang có và mọi chuỗi sẽ có. Nó không cần được tạo, được nạp tiền hay được đăng ký trước. Nó đơn giản là đã tồn tại.

Đó vừa là một tiện lợi thật vừa là một mối nguy thật. Vì địa chỉ hợp lệ ở khắp nơi, gửi tới đúng địa chỉ trên sai chuỗi sẽ không bị trả lại, không cảnh báo bạn và không thất bại. Nó thành công — ở một nơi khác.

Đến đây phần lớn hướng dẫn sẽ nói tiền mất vĩnh viễn, và với trường hợp này điều đó đơn giản là không đúng. Ai giữ khóa thì kiểm soát địa chỉ đó trên mọi chuỗi EVM, nên tiền gửi sang sai mạng EVM vẫn nằm trong tầm với của người sở hữu địa chỉ — nó đang nằm trên một chuỗi khác, chứ không bị hủy. Cái mất là đơn hàng, không phải tiền: hóa đơn đang theo dõi một mạng còn khoản thanh toán lại đến ở mạng khác, nên không có gì được ghi nhận và hai bên phải tự xử lý bằng tay.

  • Những trường hợp thật sự không lấy lại được thì khác, và đáng phân biệt rõ. Gửi một tài sản EVM sang chuỗi không phải EVM — một địa chỉ Bitcoin, Tron hay Solana — là không thể đảo ngược, vì khóa kiểm soát địa chỉ EVM chẳng kiểm soát gì ở đó. Gửi token tới một hợp đồng không có cách nào chuyển nó ra cũng vậy.
  • Giao thức có bảo vệ bạn khỏi một mối nguy liền kề. Mỗi chuỗi EVM có mã chuỗi riêng, và mã đó được trộn vào chữ ký, nên một giao dịch ký cho mạng này không thể bị phát lại trên mạng khác bởi người sao chép nó. Chữ ký của bạn gắn với từng chuỗi trong khi địa chỉ của bạn thì không — và chính sự lệch pha ấy khiến sai lầm này dễ mắc đến vậy.

Gas: nó trả cho cái gì, và ai trả

Mọi chuỗi EVM tính tiền cho phần tính toán chứ không cho giá trị. Gas đo khối lượng công việc mà một thao tác cần, và phí là khối lượng ấy nhân với đơn giá — nên chuyển một khoản lớn tốn đúng bằng chuyển một khoản nhỏ, và một lần chuyển đơn thuần đồng tiền gốc của chuỗi là việc rẻ nhất bạn có thể làm. Một lần chuyển tiêu chuẩn được cố định ở 21.000 đơn vị gas trên mọi chuỗi trong họ này.

Thứ thay đổi là đơn giá, và nó chạy theo nhu cầu. Giao thức đặt ra một mức phí nền mà ai cũng trả, và người gửi có thể thêm tiền bo lên trên để được đưa vào sớm hơn. Đó là lý do cùng một lần chuyển có thể tốn vài phần nhỏ của xu trên một chuỗi vắng và tốn tiền thật trên một chuỗi bận — khối lượng công việc không đổi, giá của không gian khối mới đổi.

Chuyển một token tốn hơn hẳn chuyển đồng tiền gốc, vì chuyển token là một lần gọi hợp đồng chứ không phải một lần gửi đơn thuần. Cả hai cùng tăng khi chuỗi tắc nghẽn. Khách hàng trả phí đó ngoài số tiền của bạn; bạn nhận đúng những gì đã ghi trên hóa đơn.

Token là hợp đồng, không phải tiền tệ

Đồng tiền riêng của chuỗi được xây thẳng vào giao thức. Mọi thứ còn lại — USDC, USDT và số khác — là một hợp đồng tự giữ sổ sách về việc ai sở hữu cái gì. Trên thực tế điều đó nghĩa là một token chỉ tồn tại trên chuỗi mà hợp đồng của nó được triển khai, và cùng một cái tên trên hai chuỗi là hai hợp đồng khác nhau không bao giờ nói chuyện với nhau.

Nó cũng nghĩa là bạn không thể đoán một token đếm ra sao. Chuẩn này để trường thập phân ở dạng tùy chọn và nói thẳng rằng bên gọi không được cho rằng trường ấy có mặt, nên số chữ số thập phân là thuộc tính của từng hợp đồng chứ không phải của tài sản. USDT là ví dụ sống: sáu chữ số trên Ethereum và mười tám trên BNB Chain. Bất kỳ đoạn mã nào cố định một con số rồi gặp con số kia đều sai lệch một nghìn tỷ lần.

Thói quen an toàn là đọc số thập phân từ hợp đồng, trên chính chuỗi bạn đang ở, mỗi lần một, và không bao giờ mang một con số từ nơi khác sang.

Chọn giữa chúng

Chúng khác nhau ở chi phí một lần chuyển, thời gian tất toán và những tài sản mà chúng mang theo — không khác nhau ở cách vận hành. Đây là những mạng EVM mà sản phẩm này tất toán trên đó, hiển thị từ danh mục đang vận hành chứ không viết tay ở đây.

Ethereum Mainnet
ETH · USDC · USDT
Base
ETH · USDC
Polygon PoS
POL · USDC
BNB Chain
BNB · USDT
Lisk
ETH

Nguyên tắc thực dụng là đến chỗ đồng tiền đang nằm sẵn. Một khách hàng đang giữ USDC trên một chuỗi sẽ trả từ chuỗi đó, và bảo họ bắc cầu trước là bảo họ trả phí, chờ đợi, và có thể là bỏ cuộc. Nếu bạn nhận được trên nhiều chuỗi thì câu hỏi ấy biến mất.

Một số trong đó là mạng lớp 2: chúng tự chạy giao dịch rồi đăng dữ liệu ngược về Ethereum, nơi sổ sách rốt cuộc được tất toán. Với một khoản thanh toán, khác biệt ấy hiện ra dưới dạng phí thấp hơn chứ không phải thứ gì bạn phải xử lý: tiền vẫn đến địa chỉ của bạn trên mạng đó, hệt như ở bất cứ đâu.

Những điều cần tính trước

Sai mạng là thứ cần được thiết kế để phòng, vì không có gì trong giao thức ngăn nó lại. Trang thanh toán nêu tên mạng và hiển thị địa chỉ chính xác đúng vì lý do này, và cũng nên nhắc lại tên mạng cho khách hàng đang trả tiền từ một sàn giao dịch.

  • Người gửi token cũng cần đồng tiền riêng của chuỗi, vì phí được trả bằng nó. Một chiếc ví chỉ có USDC và không có đồng tiền gốc thì không gửi được cho tới khi được nạp — nguyên nhân thường gặp khiến khách hàng báo rằng giao dịch không đi được.
  • Phí và thời gian xác nhận chạy theo nhu cầu về không gian khối, không theo bất cứ thứ gì chúng tôi kiểm soát. Một ngày vắng và một ngày bận là hai sản phẩm khác nhau dưới góc nhìn của khách hàng, và khoảng cách lớn nhất nằm ở những chuỗi đông đúc nhất.
  • Một khi đã xác nhận, khoản thanh toán không thể bị ai đảo ngược, kể cả chúng tôi. Đó là lớp bảo vệ trước các khoản bồi hoàn, và cũng là lý do một lần gửi nhầm phải được hai bên tự giải quyết với nhau chứ không phải bởi mạng lưới.

Câu hỏi

Vì sao địa chỉ của tôi giống nhau trên Ethereum, Base và Polygon?

Vì địa chỉ EVM được tính chỉ từ khóa của bạn — hai mươi byte cuối của bản băm khóa công khai — và không mạng nào tham gia vào phép tính đó. Do vậy địa chỉ tồn tại trên mọi chuỗi EVM cùng một lúc, mà chẳng cần được tạo trên chuỗi nào. Một khóa, một địa chỉ, mọi chuỗi trong họ.

Điều gì xảy ra nếu một khoản thanh toán được gửi trên sai mạng EVM?

Nó vẫn tới — đúng địa chỉ đó, trên chuỗi kia. Vì địa chỉ cũng hợp lệ ở đó, chẳng có gì bị trả lại và chẳng ai được cảnh báo. Tiền không bị hủy và người giữ khóa vẫn với tới được, nhưng hóa đơn lại đang theo dõi một mạng khác, nên nó không được ghi nhận và hai bên phải trực tiếp thu xếp với nhau.

Tiền gửi sang sai chuỗi có mất vĩnh viễn không?

Giữa các chuỗi EVM thì không, bất kể phần lớn hướng dẫn nói gì: khóa kiểm soát địa chỉ ấy kiểm soát nó ở khắp cả họ, nên tiền vẫn với tới được. Nhưng nó THỰC SỰ không lấy lại được nếu một tài sản EVM bị gửi tới địa chỉ Bitcoin, Tron hay Solana, nơi khóa của bạn chẳng có nghĩa gì — hoặc nếu token rơi vào một hợp đồng không có cách nào giải phóng nó.

Vì sao gửi token tốn hơn gửi đồng tiền riêng của chuỗi?

Vì chuyển token thì chạy một hợp đồng, còn chuyển thường thì không. Gas tính tiền cho phần tính toán, nên phần việc thêm sẽ tốn thêm. Một lần chuyển tiền gốc tiêu chuẩn cố định ở 21.000 gas; một lần chuyển token gấp vài lần con số đó, và cả hai đều đắt hơn khi chuỗi đang bận.

Có phải mọi token đều dùng 18 chữ số thập phân?

Không, và cho rằng như vậy là một nguồn lỗi tốn kém có thật. Chuẩn token để số thập phân ở dạng tùy chọn và nói rõ rằng bên gọi không được cho rằng trường ấy có mặt, nên nó thuộc về từng hợp đồng. USDT dùng sáu chữ số trên Ethereum và mười tám trên BNB Chain. Hãy đọc giá trị từ hợp đồng trên chính chuỗi bạn đang ở.

Nếu địa chỉ của tôi dùng được ở mọi nơi, có ai phát lại giao dịch của tôi trên chuỗi khác được không?

Không. Mỗi chuỗi EVM có mã chuỗi riêng và mã đó nằm trong thứ bạn ký, nên một chữ ký hợp lệ trên mạng này là vô hiệu trên các mạng khác. Địa chỉ của bạn dùng chung giữa các chuỗi nhưng chữ ký thì không — đó là lớp bảo vệ bạn đang có, và cũng là lý do sai mạng dễ xảy ra đến thế.

Nhận tiền trên một lớp 2 có khác nhận tiền trên Ethereum không?

Không khác ở phần việc bạn phải làm. Một lớp 2 tự chạy giao dịch rồi đăng dữ liệu về Ethereum, nơi mọi thứ rốt cuộc tất toán, và tác dụng thực tế với một khoản thanh toán là phí thấp hơn. Tiền vẫn đến địa chỉ của bạn trên mạng đó, và bạn vẫn theo dõi mạng đó.

Nguồn

Mọi số liệu trên trang này đều lấy từ một trong các tài liệu dưới đây. Mỗi tài liệu được đọc vào ngày ghi kèm, không trích theo trí nhớ.

  1. Ethereum accounts

    ethereum.orgĐã kiểm tra

  2. EIP-155: Simple replay attack protection

    Ethereum Improvement ProposalsĐã kiểm tra

  3. Gas and fees

    ethereum.orgĐã kiểm tra

  4. ERC-20: Token Standard

    Ethereum Improvement ProposalsĐã kiểm tra

  5. Scaling

    ethereum.orgĐã kiểm tra

Hãy thử trước bằng tiền thử nghiệm

Tạo một hóa đơn trên mạng thử nghiệm, thanh toán bằng tiền từ vòi, rồi quan sát việc phát hiện và việc xác nhận đến như hai sự kiện riêng biệt — đúng cặp sự kiện bạn sẽ gặp trong môi trường thật.

Bắt đầu miễn phí

Mạng lưới · Mạng lưới · Bảng giá · Trả lời thẳng thắn.