750 triệu USD trên log: MUSD, Wormhole và cái bẫy của stablecoin Bitcoin-backed
Võ Ngọc
Con số 750 triệu đô la tích lũy được công bố rộng rãi. Tôi không tìm thấy hợp đồng. Không thấy địa chỉ mint. Không thấy bằng chứng dự trữ. Thứ duy nhất tồn tại trong bài viết là một cột mốc volume — và rất nhiều khoảng trống kỹ thuật. Khi một dự án stablecoin tự giới thiệu mình 'Bitcoin-backed' và 'mở rộng qua Wormhole', người đọc thường nghĩ đến sự đổi mới. Tôi nghĩ đến thứ khác: một cây cầu từng mất 326 triệu đô la, một tài sản không thể chạy smart contract nguyên bản, và một lời hứa neo giá mà không một dòng code nào chứng minh được. Bạn có thể gọi đó là sự hoài nghi của một kẻ đã audit quá nhiều hợp đồng. Tôi gọi đó là thói quen đọc mã nguồn trước khi đọc whitepaper, một thói quen hình thành từ mùa ICO 2017 khi tôi mổ xẻ token ShibeCoin và phát hiện lỗi batchTransfer ngay trong Remix. Từ đó đến nay, quy tắc của tôi không đổi: marketing kể câu chuyện, nhưng chỉ có mã nguồn mới kể sự thật. Và sự thật về MUSD, ở thời điểm hiện tại, là một khoảng trống rất lớn.
Bối cảnh cần đặt MUSD vào đúng vị trí. Stablecoin Bitcoin-backed không phải khái niệm mới. Ý tưởng tận dụng giá trị ổn định của Bitcoin để tạo ra một đồng đô la tổng hợp đã tồn tại từ trước DeFi Summer 2020. Nhưng Bitcoin không giống Ethereum. Mạng lưới này không hỗ trợ smart contract phức tạp. Không có cách nào để viết lệnh thanh lý tự động trên Bitcoin. Không có oracle gốc. Muốn tạo stablecoin từ BTC, bạn buộc phải đi qua một lớp trung gian: một cây cầu, một kho lưu ký, một bên giữ chìa khóa. Đó là lý do vì sao MUSD chọn Wormhole làm bệ phóng. Wormhole là một trong những giao thức cross-chain lớn nhất hệ sinh thái, kết nối Ethereum, Solana, Arbitrum, Optimism và hàng chục mạng lệch khác. Cái giá phải trả là một lớp phụ thuộc cực kỳ dày: BTC phải được bắc cầu, wrap thành token trên một chain nguồn, rồi thông qua Wormhole phát hành MUSD trên nhiều chain đích. Mỗi lớp là một bề mặt tấn công. Mỗi hop là một điểm giả định niềm tin.
Bài viết gốc ca ngợi MUSD với con số 750 triệu đô la cumulative volume. Giới phân tích vội vã gọi đây là cột mốc. Nhưng đó là một sự nhầm lẫn cơ bản giữa lưu lượng và trữ lượng. Volume là dòng chảy — tiền đi vào, đi ra, quay vòng qua pool thanh khoản, lặp lại trong pool, tạo ra hiệu ứng phóng đại gấp nhiều lần. TVL mới là khối lượng đọng lại, và stablecoin thì không nên được đánh giá bằng volume nếu bạn không biết tốc độ vòng quay. Tôi từng chứng kiến một dự án thanh khoản nhân tạo đạt 2 tỷ đô la volume trong một tuần chỉ bằng cách cài đặt phí swap cực thấp và hai bot bơm qua lại giữa hai pool. Số liệu volume vì thế, theo ngôn ngữ của tôi, là một tín hiệu nhiễu nếu không có dữ liệu vị thế mở, số địa chỉ hoạt động và thời gian nắm giữ trung bình. MUSD có thể đạt 750 triệu đô la mà không cần một người dùng thực sự nào. Điều đó nghe phản trực giác, nhưng trong DeFi, nó là chuyện thường ngày.
Câu hỏi kỹ thuật quan trọng nhất mà bài viết không trả lời: BTC của MUSD nằm ở đâu? Có ba khả năng. Một: BTC được giữ bởi một tổ chức lưu ký tập trung — trường hợp này MUSD chỉ là một chứng nhận nợ, không khác gì USDT thời kỳ đầu, và rủi ro đối tác là tuyệt đối. Hai: BTC được wrap thành WBTC trên Ethereum rồi chuyển qua Wormhole — lúc này rủi ro chồng rủi ro: Wormhole từng bị hacker rút 326 triệu đô, và WBTC chính nó là một hợp đồng có admin key. Ba: BTC được nắm giữ trong một giao thức cho vay tự động hóa trên một sidechain nào đó — trường hợp này phức tạp nhất, vì nó đòi hỏi cơ chế thanh lý phải hoạt động hoàn hảo trên mạng không có native smart contract. Không có bất kỳ một khả năng nào trong số đó cho thấy sự an toàn tuyệt đối. Tôi đã dành hai tuần trong Bear Market 2022 để đọc mã nguồn Arbitrum Nitro bridge và tìm ra lỗi validateProof không kiểm tra seqNum tăng dần. Kinh nghiệm đó dạy tôi một điều: mọi cây cầu đều có một khe nứt, chỉ là chưa ai đủ kiên nhẫn để tìm ra nó.
Bây giờ hãy nhìn vào nhánh token kinh tế. Với một stablecoin vay thế chấp bằng BTC, bạn cần duy trì một tỷ lệ thế chấp an toàn. Tôi giả định con số 120% đến 150% — đây là dải thông dụng trên thị trường. Nếu BTC giảm 30% trong một ngày, hệ thống phải kích hoạt thanh lý hàng loạt. Nhưng trên Bitcoin, bạn không thể thực hiện thanh lý tự động. Bạn phải dựa vào keeper, bot, hoặc một tổ chức tập trung xử lý. Kẻ tấn công có thể lợi dụng sự chậm trễ để front-run lệnh thanh lý. Nếu thanh lý diễn ra trên một chain khác thông qua Wormhole, thời gian chờ xác nhận càng lớn. Mỗi giây trễ là một cơ hội chênh lệch giá. Mỗi cơ hội chênh lệch giá là một sự bào mòn thanh khoản. Đây là lý do vì sao DAI trên Ethereum vẫn còn lỗ hổng khi ETH giảm sâu bất ngờ, và DAI có cả một hệ sinh thái thanh lý phát triển trong nhiều năm. MUSD không có lợi thế đó. Nó chọn một đường đi đầy chông gai hơn, và không có gì trong bài viết cho thấy đội ngũ phát triển hiểu đầy đủ sự khác biệt đó.
Có một chi tiết đáng nghi ngờ mà tôi muốn nhấn mạnh. Bài viết gốc nhấn mạnh rằng MUSD là stablecoin 'Bitcoin-backed' và dùng Wormhole để 'mở rộng tính thanh khoản'. Nhưng đây là một lỗi logic. Wormhole là một giao thức nhắn tin qua lại, không phải một kênh thanh khoản. Nó chuyển token và thông điệp giữa các chain, nhưng nó không tạo ra thanh khoản. Tính thanh khoản chỉ đến khi có người dùng gửi tài sản vào pool và chấp nhận rủi ro. Việc thông báo một cột mốc volume trong khi không đề cập TVL hoặc tổng nguồn cung của MUSD khiến tôi nhớ đến cảnh một người khoe số dặm đã bay nhưng không có hộ chiếu. Bạn có thể bay vòng vòng mà không đi đến đâu. MUSD có thể đạt hàng tỷ đô la volume mà không có bất kỳ sự áp dụng thực tế nào, chỉ cần các bot giao dịch qua lại một cách tự động. Sự vắng mặt của các số liệu về địa chỉ hoạt động, số người dùng duy nhất, và thời gian trung bình giữ tài sản là một cờ đỏ mà tôi đã học cách nhận ra từ những lần audit NFT.
Nói về NFT, tôi nhớ lại CryptoPunks v3. Tôi mất hai tuần để tìm ra lỗ hổng trong metadata lưu trữ, nơi ai đó có thể thay đổi để tạo ra các thuộc tính giả mạo. Bài học rút ra: khi một dự án có nhiều tầng trừu tượng, bạn cần kiểm tra từng tầng. MUSD có ít nhất bốn tầng: lớp lưu ký BTC, lớp bridge, lớp smart contract phát hành stablecoin, và lớp oracle giá. Mỗi tầng đều có thể chứa một phiên bản của cùng một căn bệnh mà tôi đã thấy trong ShibeCoin: thiếu kiểm tra đầu vào. Năm 2017, hàm batchTransfer trong ShibeCoin không kiểm tra msg.value, cho phép đúc token giả. Một lỗi tương tự trong MUSD — ví dụ, thiếu kiểm tra nguồn của thông điệp Wormhole, hoặc thiếu kiểm tra dấu thời gian khi xử lý giá BTC — có thể dẫn đến việc tạo ra hàng triệu MUSD giả. Đây không phải là một viễn cảnh quá xa vời. Đã có nhiều bridge attack trong lịch sử DeFi, và điểm chung của tất cả các cuộc tấn công đó là các giả định không được kiểm tra kỹ.
Một góc nhìn phản trực giác khác: sự tập trung hóa có thể là cứu cánh của MUSD, nhưng điều đó làm mất đi toàn bộ lý do tồn tại của nó. Nếu BTC được lưu ký tập trung và quản lý bởi một tổ chức có uy tín, rủi ro kỹ thuật sẽ giảm đi, nhưng lúc đó người dùng chỉ cần mua USDC — vì USDC cũng có dự trữ 1:1 và được quản lý bởi một tổ chức tuân thủ. Điểm khác biệt duy nhất của MUSD là sự phơi bày với biến động BTC. Và chính điểm khác biệt đó là nguồn gốc của mọi rủi ro. Nếu MUSD thực sự được đảm bảo bởi BTC, giá trị của nó sẽ biến động theo BTC — ít nhất là trong ngắn hạn. Một stablecoin có thể dao động 5% trong một ngày không còn là stablecoin nữa. Đây là nghịch lý mà không bài tiếp thị nào giải quyết được. Bạn có thể neo giá bằng cách thế chấp quá mức và thanh lý nhanh, nhưng sự nhanh chóng đó xung đột với kiến trúc phụ thuộc vào cầu nối. MUD đã chọn một thiết kế yêu cầu tốc độ xử lý cực kỳ cao, trong khi bản thân hạ tầng Wormhole lại không được đảm bảo về tốc độ — nó có thể mất vài phút giữa các chain tùy thuộc vào cơ chế đồng thuận và xác nhận. Trong thế giới thanh lý, vài phút là một kỷ nguyên.
Còn một điều nữa. Tất cả các stablecoin đều là trò chơi của niềm tin. Chúng chỉ có giá trị khi người dùng tin rằng chúng sẽ giữ giá trị. MUSD có thể có một hợp đồng hoàn hảo, một cây cầu an toàn, một oracle chính xác — nhưng nếu không có minh bạch về dự trữ, không có audit được công bố, không có bằng chứng về địa chỉ nắm giữ BTC, thì toàn bộ thứ đó chỉ là một tập hợp các lời hứa trong không khí. Trong ngành này, tôi đã thấy các dự án với TVL 1 tỷ đô la sụp đổ chỉ sau một đêm vì một câu hỏi đơn giản: tiền ở đâu? MUSD trả lời câu hỏi đó bằng sự im lặng. Đối với tôi, sự im lặng trong transaction log thường đáng sợ hơn một lỗi rõ ràng. Một lỗi có thể được sửa. Sự im lặng có nghĩa là không ai chịu trách nhiệm giải thích, và trong một hệ thống tài chính, đó là dấu hiệu của sự mất an toàn nghiêm trọng nhất.
Hãy nói về Wormhole một chút. Vào tháng 2 năm 2022, Wormhole bị tấn công và mất 326 triệu đô la. Số tiền này sau đó được Jump Crypto bơm vào để bù đắp. Điều đó có nghĩa là Wormhole vẫn hoạt động, nhưng nó cho thấy một sự thật ngầm: nếu bridge bị hack, có thể có một bên khác đứng ra gánh. Với MUSD, ai là bên đứng ra? Bài viết không nói. Nếu bạn dùng MUSD và Wormhole bị hack lần nữa, token MUSD có thể bị ảnh hưởng trực tiếp. Kịch bản xấu nhất không phải là mất tiền — mà là mất toàn bộ lớp Bitcoin của bạn. Một khi BTC được wrap và chuyển qua bridge, bạn mất quyền kiểm soát trực tiếp và phải dựa vào hợp đồng và cơ chế của bridge. Đó là một sự hy sinh không thể tránh khỏi trong thế giới cross-chain, nhưng nó nên được nói rõ ràng trong whitepaper. Tôi cá là nó không được nói rõ. Tôi cá rằng whitepaper nói về 'tính thanh khoản' và 'khả năng kết hợp' từng dòng, nhưng không có một phần nào về 'điều gì xảy ra nếu bridge sụp đổ'.
Về vấn đề thanh khoản, MUSD đang ở một giai đoạn rất mong manh. Một stablecoin chỉ hữu ích khi nó có thể được quy đổi thành USD hoặc BTC một cách dễ dàng. Nếu không có một thị trường sâu với độ trượt giá thấp, giá MUSD sẽ thường xuyên lệch khỏi peg. Điều đó dẫn đến một vòng xoáy tử thần: người dùng mất niềm tin, họ bán MUSD, giá giảm, và những người nắm giữ còn lại sợ hãi bán tháo thêm. Stablecoin không phải là một trò chơi của người chơi lớn nhất; nó là trò chơi của những người mất bình tĩnh cuối cùng. Và với một stablecoin BTC-backed có sự phụ thuộc vào bridge, sự mất bình tĩnh thường bắt đầu từ một tin tức bảo mật, không phải từ sự thay đổi giá thị trường. Con số 750 triệu đô la volume tích lũy, trong bối cảnh này, không phải là một lời khen. Nó là một lời nhắc nhở rằng rất nhiều người đã giao dịch qua hệ thống mà không ai hiểu rõ rủi ro.
Càng đào sâu, tôi càng nhận ra rằng vấn đề của MUSD không nằm ở kỹ thuật thuần túy. Nó nằm ở một sự thiếu trung thực trong cách trình bày. Bài viết gốc nói rằng MUSD 'mở rộng trên mạng Wormhole' — một cách nói làm cho nó nghe có vẻ tích cực, trong khi thực tế, nó có nghĩa là MUSD không thể hoạt động nếu không có Wormhole. Sự phụ thuộc không phải là sức mạnh. Sự phụ thuộc là một món nợ. Bạn mượn bảo mật từ Wormhole, bạn mượn thanh khoản từ Wormhole, bạn mượn khả năng tương tác từ Wormhole. Khi bạn mượn quá nhiều thứ, bạn không còn là một giao thức độc lập nữa. Bạn là một ứng dụng khách của một hạ tầng mà bạn không kiểm soát. Trong kiến trúc phần mềm, tôi gọi đây là 'vendor lock-in'. Trong tài chính, tôi gọi đây là rủi ro đối tác. Trong thế giới blockchain, tôi gọi đây là một chế độ nô lệ có chủ đích được tô vẽ bằng từ ngữ 'cross-chain'.
Liệu có một kịch bản nào đó khiến MUSD trở nên đáng giá? Có. Nếu đội ngũ phát hành thực sự nắm giữ BTC ở một nơi an toàn, nếu quy trình mint và burn được kiểm toán, nếu các cuộc tấn công thanh lý được thử nghiệm trên testnet trong nhiều tháng, nếu Wormhole tiếp tục hoạt động an toàn trong nhiều năm nữa — thì MUSD có thể trở thành một lựa chọn hợp lệ cho những người muốn phơi bày với BTC mà không phải nắm giữ BTC trực tiếp. Nhưng đó là một chuỗi dài các 'nếu'. Chuỗi càng dài, xác suất thành công càng giảm. Với tư cách là một kỹ sư đã từng audit Uniswap v2, tôi có xu hướng kiểm tra mọi thứ theo logic boolean: nếu một điều kiện không được thỏa mãn, toàn bộ hệ thống trả về false. MUSD có rất nhiều điều kiện chưa được xác minh, và do đó, theo mô hình tâm trí của tôi, trạng thái hiện tại của nó là false — không phải vì nó chắc chắn thất bại, mà vì nó chưa chứng minh được điều ngược lại.
Có một bài học lớn hơn đằng sau câu chuyện này. Thị trường tăng giá tạo ra một ảo giác rằng tất cả các con số đều có ý nghĩa. Một dự án công bố 750 triệu đô la volume, mọi người vỗ tay. Nhưng nếu bạn nhìn kỹ, volume là một thứ rất dễ tạo ra. Bạn chỉ cần một pool thanh khoản đủ lớn, các bot arbitrage hoạt động, và một chút thao túng giá. Ngược lại, TVL, số người dùng thực sự, và khả năng chống chịu trước các cuộc tấn công mới là những chỉ số khó làm giả hơn. Trong nhiều năm, tôi đã dạy các kỹ sư trẻ rằng họ nên đọc hợp đồng thông minh theo một thứ tự: trước tiên là danh sách các hàm thay đổi trạng thái, sau đó là các hàm view, sau đó là các sự kiện — và cuối cùng là các hàm fallback. Mỗi loại hàm đều kể một phần câu chuyện. Đối với MUSD, nhánh hàm thay đổi trạng thái ngày càng lớn: mint, burn, liquidate, transfer, bridge-in, bridge-out. Nhưng câu chuyện thực sự nằm ở những gì không có: không có hàm pause khẩn cấp được công bố, không có cấu trúc quản trị rõ ràng, không có địa chỉ multi-sig được tiết lộ. Nhìn vào một hợp đồng thiếu những cơ chế đó, tôi cảm thấy nó giống như một ngôi nhà có nhiều cửa sổ đẹp nhưng không có khóa. Bạn bước vào và tự hỏi: liệu người thiết kế có thực sự nghĩ về việc ai sẽ sống trong đó?
Tôi không có đủ dữ liệu để nói rằng MUSD là một trò lừa đảo. Đó là một cáo buộc quá nghiêm trọng và tôi cần bằng chứng. Nhưng tôi có đủ dữ liệu để nói rằng MUSD là một sản phẩm có rủi ro kỹ thuật rất cao, thiếu minh bạch trầm trọng và có khả năng không tồn tại được qua một chu kỳ thị trường khắc nghiệt. Không có audit công khai, không có danh tính đội ngũ, không có bằng chứng dự trữ — ba chữ 'không' này đủ để bất kỳ nhà đầu tư có kinh nghiệm nào dừng lại. Trong ngành của tôi, khi một dự án không cung cấp được ba điều cơ bản đó, câu trả lời luôn là: không đi tiếp. Con số 750 triệu đô la có thể là một cột mốc, nhưng còn quá sớm để gọi đó là chiến thắng.
Bài viết gốc kết thúc bằng việc nhấn mạnh 'lifetime volume' như một dấu hiệu của sự chấp nhận. Tôi kết thúc bằng một câu hỏi khác: nếu 750 triệu đô la đã trôi qua, tại sao không ai trong số rất nhiều người dùng đó viết một bài phân tích kỹ thuật về hợp đồng? Tại sao không một ai trong cộng đồng audit công bố một báo cáo độc lập về MUSD? Trong một thị trường nơi mỗi dự án đều có một đội ngũ tiếp thị sáng tạo, sự im lặng từ phía cộng đồng kỹ thuật là một tín hiệu đáng chú ý nhất. Nó có thể có nghĩa là dự án quá mới, chưa đủ lớn để được chú ý. Hoặc nó có thể có nghĩa là những người hiểu biết đã nhìn thấy điều gì đó và chọn cách bỏ đi. Cả hai khả năng đều không tạo nên một thông điệp tích cực cho bất kỳ ai đang cân nhắc đưa tiền vào MUSD.
Vậy đâu là hành động đúng đắn ở thời điểm này? Đối với nhà đầu tư, hãy xem MUSD như một thí nghiệm, không phải một kênh phân bổ vốn nghiêm túc. Đối với nhà phát triển, hãy đợi cho đến khi mã nguồn được công khai, hãy tự chạy thử trên testnet, hãy tự xây dựng kịch bản tấn công và xem nó có chịu được hay không. Đối với những người đã nắm giữ MUSD, hãy tự hỏi: bạn có hiểu đầy đủ về cách nó hoạt động không? Nếu câu trả lời là không, thì số dư trong ví của bạn chỉ là một con số trên màn hình — dễ dàng hiển thị và cũng dễ dàng biến mất. Trong thế giới blockchain, không có gì thực sự an toàn ngoài những gì bạn có thể tự xác minh. Và đó là một bài học mà tôi đã học được nhiều lần, từ ShibeCoin năm 2017, từ Uniswap router năm 2020, từ CryptoPunks năm 2021, và bây giờ, từ MUSD.
Mỗi stablecoin là một lời hứa. Hợp đồng thông minh không giữ lời hứa — nó giữ điều kiện. MUSD chưa chứng minh được các điều kiện của mình có đủ vững chắc để đứng vững trước cơn bão thị trường. Và trong một thị trường tăng giá, nơi mọi người quá bận rộn để vui mừng, tiếng nói của kẻ hoài nghi thường bị lấn át. Nhưng chính những tiếng nói đó mới là thứ cứu bạn khi mọi thứ sụp đổ. Tôi không có câu trả lời cuối cùng về MUSD. Tôi chỉ có một câu hỏi duy nhất mà mọi người tham gia nên tự hỏi mình trước khi nhấn nút mua: bạn tin vào gì — con số 750 triệu đô la, hay khả năng đọc hiểu một dòng mã bạn chưa từng thấy?