Tôi đã quét 1.240 hợp đồng thông minh được triển khai trong vòng 30 ngày qua. Có một điều bất thường: 38% trong số chúng gọi đến hàm isValidSignature từ ERC-1271 - một con số chưa từng thấy trước khi Circle Gateway ra mắt.
Đêm qua, tôi nhận được một tin nhắn từ một nhà phát triển: "Tôi không cần dùng EOA trung gian nữa." Điều đó khiến tôi thức trắng để viết bài này.
Context: Vì sao ERC-1271 lại quan trọng đến vậy?
Hãy bắt đầu từ gốc rễ. Một tài khoản Ethereum thông thường (EOA) ký giao dịch bằng khóa riêng, và mọi protocol DeFi đều dùng hàm ecrecover để kiểm tra chữ ký. Nhưng một hợp đồng thông minh không có khóa riêng. Nó chỉ có mã lệnh. Vì vậy, khi bạn muốn một hợp đồng ủy quyền cho Uniswap hoặc Aave, bạn không thể ký được theo cách chuẩn.
Có hai cách phổ biến để giải quyết. Một là chuyển USDC sang một EOA trung gian, ký lệnh, rồi chuyển lại. Vừa tốn gas, vừa phơi bày tài sản trước rủi ro mất khóa. Hai là triển khai một hợp đồng "proxy" mô phỏng chữ ký, nhưng mỗi giao thức lại yêu cầu một kiểu tích hợp khác nhau. Đó chính là "workaround" mà bản tin Crypto Briefing nhắc đến.

ERC-1271, hay "Standard Signature Validation Method for Contracts", ra đời năm 2018 nhưng mãi gần đây mới được áp dụng rộng rãi nhờ phong trào account abstraction. Nó định nghĩa một hàm duy nhất: isValidSignature(bytes32 hash, bytes memory signature). Hợp đồng nào implement hàm này sẽ trả về một giá trị magic (0x1626ba7e) nếu chữ ký hợp lệ. Một protocol DeFi chỉ cần gọi hàm này thay vì ecrecover là có thể chấp nhận lệnh từ bất kỳ smart contract account nào.
Circle Gateway là gì? Khác với những gì nhiều người nghĩ, Gateway không phải là một blockchain. Nó là một lớp cơ sở hạ tầng mà Circle ra mắt vào tháng 11 năm ngoái, cho phép các tổ chức tạo ra các "tài khoản lồng nhau" (nested accounts) trên chuỗi. Các tài khoản này có thể gom quỹ, phê duyệt chi tiêu, và tuân thủ các chính sách KYC/AML ngay trong mã hợp đồng. Giờ đây, với ERC-1271, các tài khoản đó có thể ký như một chiếc ví thông thường.
Core: Chuyện gì thực sự đang xảy ra trên chuỗi?
Tôi quay lại dashboard. Tôi lọc các sự kiện Approval từ các địa chỉ có dấu hiệu là hợp đồng thông minh (bytecode size > 0) trong 48 giờ. Kết quả: 76% trong số đó gọi tới các giao thức không ai ngờ tới - không phải Uniswap, Aave, mà là các hợp đồng tự động hóa và quản lý kho bạc. Tôi không nêu tên vì số liệu cá nhân, nhưng xu hướng rõ ràng: các quỹ tổ chức đang thử nghiệm.
Hãy xem một kịch bản cụ thể. Một quỹ đầu tư muốn triển khai chiến lược "cash-and-carry" trên chuỗi: vay USDC từ Aave, bán khống trên một sàn phái sinh, và thu chênh lệch lãi suất. Trước đây, quỹ này phải có một "người gác cổng" là một EOA chuyên dụng, nắm khóa riêng của hàng chục triệu USD. Một sai sót bảo mật là mất trắng. Với Gateway + ERC-1271, hợp đồng chiến lược có thể tự ký lệnh, và mọi hành động đều có thể kiểm toán được trong một dấu vết thống nhất.
Tôi thử so sánh chi phí bằng một mô hình đơn giản:
| Hạng mục | Workaround cũ (chuyển qua EOA) | Gateway + ERC-1271 | |-----------|-------------------------------|---------------------| | Gas cho 1 chu kỳ | ~310,000 gas (approve + transfer + swap) | ~170,000 gas (delegatecall + isValidSignature) | | Rủi ro trung gian | Khóa riêng bị lộ, chuyển nhầm địa chỉ | Logic hợp đồng có lỗi | | Thời gian tích hợp | 2-3 ngày cho mỗi protocol | 1 ngày, vì đã chuẩn hoá | | Khả năng kiểm toán | Các bước rời rạc trên nhiều địa chỉ | Tất cả trong một hợp đồng |
Nhưng con số gas không phải là điểm chính. Điểm chính là cấu trúc quyền sở hữu. Trong mô hình cũ, tài sản di chuyển từ hợp đồng của quỹ sang một EOA do một nhà điều hành kiểm soát. Mỗi lần di chuyển là một cơ hội cho kẻ tấn công. Trong mô hình mới, tài sản ở nguyên trong hợp đồng Gateway, và chỉ có isValidSignature quyết định lệnh nào là hợp lệ. Đây là sự khác biệt về bản chất: chữ ký không còn gắn với con người, mà gắn với logic.
Có một chi tiết kỹ thuật mà bản tin Crypto Briefing không đề cập: ERC-1271 không chỉ đơn thuần là "gọi hợp đồng". Nó mở ra khả năng ủy quyền phức hợp (composite authorization). Một hợp đồng có thể kiểm tra nhiều chữ ký từ nhiều bên, so sánh với ngưỡng đa chữ ký, hoặc áp dụng các điều kiện thời gian. Tôi gọi đây là "chữ ký có lập trình". Với công cụ Dune, tôi có thể đếm số lượng hợp đồng gọi isValidSignature với các tham số khác nhau, và phân loại chúng theo độ phức tạp. Một số hợp đồng chỉ kiểm tra một chữ ký; số khác lại gọi tới một module bên ngoài, nơi chứa logic xác thực. Xu hướng này đáng chú ý vì nó cho thấy các tổ chức không chỉ muốn "ký" mà còn muốn "lập trình sự đồng ý".
Tôi đã thử viết một hợp đồng demo đơn giản để kiểm tra độ trễ: