Etherscan vừa hợp tác với GitMyABI, biến các hợp đồng thông minh đã được xác minh thành các gói npm có thể cài đặt. Nghe có vẻ tiện lợi? Hãy để tôi nói cho bạn biết, trong thị trường này, sự 'tiện lợi' thường là cái bẫy nguy hiểm nhất.
Hãy nhìn vào bối cảnh. Etherscan, kẻ thống trị tuyệt đối trong mảng block explorer, nay muốn trở thành trung tâm phát tán ABI. Họ bắt tay với GitMyABI, một công cụ nhỏ, để đóng gói ABI của các hợp đồng đã verified thành các gói npm. Mục tiêu? Giúp lập trình viên không phải copy-paste ABI từ Etherscan nữa, mà chỉ cần gõ npm install @gitmyabi/uniswap-v3 là xong.
Nghe có vẻ như một bước tiến vĩ đại cho developer experience. Nhưng tôi nhìn thấy một vấn đề khác. Đây là một câu chuyện về sự tập trung hóa quyền lực, về rủi ro chuỗi cung ứng phần mềm, và về cái bẫy 'tin tưởng mù quáng' mà cộng đồng crypto đã mắc phải quá nhiều lần.
Hãy để tôi kể cho bạn nghe về lần đầu tiên tôi đụng độ ICO scam. Năm 2017, tôi là nghiên cứu sinh toán ứng dụng, bỏ ra 0.5 ETH (khoảng $150 lúc đó) cho dự án 'QuantumVault'. Một cái tên nghe rất 'blockchain', rất 'lượng tử'. Tôi tưởng mình đã thông minh, đã check mã nguồn. Nhưng sau 3 tháng, tôi phát hiện smart contract có lỗ hổng cố tình - token không thể rút. Tôi mất $150, nhưng bài học còn đắt hơn thế: đừng bao giờ tin vào bất kỳ thứ gì chỉ vì nó 'có vẻ' hợp lý.
Bây giờ, quay lại với Etherscan và GitMyABI. Vấn đề không nằm ở công nghệ. Nó nằm ở niềm tin. Việc biến ABI thành npm package có nghĩa là bạn đang tin tưởng tuyệt đối vào quy trình xác minh của Etherscan và tính toàn vẹn của GitMyABI. Một sai sót nhỏ, một lỗ hổng trong CI/CD pipeline của GitMyABI, và toàn bộ hệ sinh thái có thể bị tấn công chuỗi cung ứng.
Hãy tưởng tượng: một hacker chiếm được tài khoản npm của GitMyABI, thay thế gói @gitmyabi/aave-v3 bằng một phiên bản giả mạo, trỏ đến một hợp đồng độc hại. Lập trình viên, vì quá tin tưởng vào thương hiệu Etherscan, cài đặt nó mà không kiểm tra. Hàng triệu USD có thể bốc hơi chỉ sau một đêm. Đây không phải là khoa học viễn tưởng. Đây là kịch bản đã từng xảy ra trong thế giới Web2, và giờ nó đang đến với Web3.
Tôi đã từng audit 0x protocol v2. Năm 2018, khi tôi submit 7 issue, trong đó có 2 lỗi bảo mật nghiêm trọng, nhóm phát triển toàn nam đã từ chối tin tưởng tôi. Họ bảo 'con gái biết gì về audit?'. Tôi đã phải viết proof-of-concept từng bước một, buộc họ phải công khai xác nhận. Bài học: sự thật không phải lúc nào cũng được chấp nhận, đặc biệt khi nó đến từ một người không nằm trong 'vòng trong'.
Điểm mấu chốt ở đây là gì? Etherscan đang cố gắng trở thành 'người gác cổng' duy nhất cho dữ liệu hợp đồng thông minh. Họ đang biến mình từ một người xem tin tức thành một nhà phân phối phần mềm. Điều này đi ngược lại với tinh thần phi tập trung của crypto. Nếu mọi lập trình viên đều phải phụ thuộc vào Etherscan để có được ABI chính xác, thì Etherscan trở thành một điểm thất bại duy nhất (single point of failure).
Tôi không nói rằng Etherscan có ác ý. Tôi nói rằng cấu trúc quyền lực đang thay đổi. Một công ty tập trung ở Mỹ, có thể bị chính phủ Mỹ kiểm soát, đang nắm giữ chìa khóa để tương tác với hầu hết các hợp đồng DeFi. Đây là một rủi ro địa chính trị mà ít người nói đến.
Hãy nhìn vào mặt trái của vấn đề. Những người ủng hộ sẽ nói rằng điều này giúp lập trình viên mới dễ dàng tiếp cận hơn, giảm lỗi do copy-paste. Họ đúng. Nhưng cái giá phải trả là gì? Sự phụ thuộc vào một bên trung gian. Và trong crypto, bên trung gian luôn là kẻ thù.
Tôi từng tham gia DeFi Summer 2020, farming trên Harvest Finance. Tôi đầu tư 2 ETH, tự viết script kiểm tra logic contract. Tôi phát hiện một bug trong thuật toán compounding, report ngay lập tức. Team chậm sửa. Khi thị trường crash tháng 11, dự án mất $34M vì hack liên quan. Bài học: không bao giờ tin vào audit bên ngoài. Và bây giờ, Etherscan-GitMyABI đang tạo ra một lớp 'audit' mới, nhưng nó cũng chỉ là một lớp bên ngoài mà thôi.
Vậy giải pháp là gì? Câu hỏi này khiến tôi khó chịu. Bởi vì không có giải pháp hoàn hảo. Bạn có thể tự verify ABI, tự build từ source. Nhưng điều đó tốn thời gian. Bạn có thể tin tưởng Etherscan, nhưng bạn đang đánh đổi sự an toàn lấy sự tiện lợi.
Tôi đề xuất một cách tiếp cận khác: hãy luôn giữ thái độ hoài nghi. Đừng bao giờ cài đặt một gói npm mà không kiểm tra hash của nó. Hãy so sánh ABI từ gói npm với ABI trên Etherscan. Hãy kiểm tra xem địa chỉ hợp đồng trong gói có khớp với địa chỉ chính thức không. Đây là những bước cơ bản mà bất kỳ lập trình viên có trách nhiệm nào cũng phải làm.
Trong bear market 2022, tôi dành 4 tháng nghiên cứu Celestia. Tôi viết một bài deep dive dài 15 trang, chỉ ra những điểm yếu trong thiết kế consensus. Tôi bị chỉ trích vì 'quá lạnh', không đề cập đến ứng dụng thực tế. Nhưng tôi không quan tâm. Nhiệm vụ của tôi là phơi bày sự thật, không phải làm hài lòng đám đông.
Và bây giờ, nhiệm vụ của tôi là cảnh báo bạn: Etherscan-GitMyABI là một con dao hai lưỡi. Nó có thể giúp bạn tiết kiệm 5 phút, nhưng nó có thể khiến bạn mất tất cả. Hãy sử dụng nó một cách thông minh. Đừng trở thành nạn nhân tiếp theo của sự tin tưởng mù quáng.
Hỏi audit chưa? Không hỏi thì đừng kêu. Nhưng audit cũng chỉ là một phần. Hãy tự mình kiểm tra. Hãy tự mình chịu trách nhiệm. Đó là cách duy nhất để tồn tại trong thế giới crypto này.