DeFi浪潮下的“狠角色”DEX,够安全吗?

成都链安Xuất bản vào 2022-03-08Cập nhật gần nhất vào 2022-03-18

Tóm tắt

Rug Pull是指项目方卷走投资者资金跑路的行为,目前已成为DeFi生态系统的最大骗局类型。

如今,随着人们对 DeFi 的兴趣日益浓厚,DEX(即去中心化交易所)风靡一时。它们解决了常见的 CEX (即中心化交易所)问题,那我们也会问,DEX够安全吗?
在上一篇说明了代币本身的安全问题后(纯干货分享(一) | DEFI安全问题之基础篇),现在来聊聊DEX在兑换代币时可能产生的安全问题。目前DEX主要面临的安全问题大致可分成两类:
(1)DEX项目本身存在的安全问题。
(2)作为第三方协议,与其他DEFI项目交互时产生的安全问题。
本文将对第一类安全问题进行介绍。

合约

Part.1
-Decentralized Exchange
重入漏洞
重入漏洞在上一篇我们也提到过,它属于需要防范的经典漏洞。与普通代币的重入相比,Uniswap的重入漏洞的主要表现形式为:攻击者在一笔兑换交易中利用Uniswap未及时更新价格前发起二次兑换,由于此时Uniswap未更新价格,使得二次兑换可兑出的代币数量比正常兑换的多。此外,在Uniswap的重入攻击中,攻击者利用单笔交易可能只能获得微小的收益,因此攻击者往往倾向于使用闪电贷或者循环套利扩大战果。
以imBTC攻击事件为例,该事件是由于Uniswap V1在调用ERC777系列代币时,未充分考虑合约回调的情况。
具体表现为:攻击者使用imBTC代币兑换ETH时(如图1),合约先通过self.getInputPrice函数计算正确的ETH数额并将ETH发送到目标地址,然后调用self.token.transferFrom函数时,会调用imBTC合约的_callTokensToSend函数(如图2),而_callTokensToSend函数会调用用户指定存储imBTC代币的合约。因此,如果攻击者部署存储合约,并改写其中TokensToSend函数,那么当兑换代币时,pair(两种代币组成的交易对)合约调用攻击者部署的存储合约,就可以回调pair进行二次兑换,而二次兑换时pair合约账本还未更新,使得计算的ETH数额比正常兑换要多,以此来获利。

合约

图1 Uniswap的tokenToEthInput函数

合约

图2 imBTC的transferFrom函数

合约

图3 imBTC的__callTokensToSend函数
详细攻击流程如下:

合约

图4 ETH-imBTC事件流程图
那么,为什么在第二次调用tokenToEthSwapInput函数兑换代币时,发送的ETH会比正常兑换要多呢?我们可以用公式来还原可兑换代币数量的代码逻辑:
首先,正常兑换下,getInputPrice函数计算可兑换的ETH数量为:

合约

且正常第二次可兑换的ETH数量为:

合约

但重入后第二次可兑换的ETH数量为:

合约

由此可知,在重入后第二次兑换中只有ETH的储备量减少,而imBTC储备量未增加。这样在分母不增加的情况下,导致了等量的imBTC可以兑换更多的ETH。
针对此类安全问题,成都链安建议:
当合约涉及到资产转移时,使用“检查-生效-交互”模式来处理逻辑,对关键的业务操作可以使用OpenZeppelin官方的ReentrancyGuard进行修饰。

合约

Part.2
-Decentralized Exchange
swap函数未对K值进行校验
Uniswap的核心是常量乘积模型K=x*y,其中的K值是该pair合约持有代币数量的乘积,且要求之后的每一笔交易完成后K值必须增加(考虑手续费)。因此如果不进行K值校验,将很容易成为攻击点。

合约

图5 Uniswap的价格波动
以Impossible Finance事件为例,该项目是Uniswap的仿盘,实现了两种兑换代币的函数:cheapSwap和swap。其中cheapSwap函数少了k值校验(如图6),但是项目方知道缺少K值校验的后果,专门为cheapSwap函数增加了onlyIFRouter做修饰,来限制cheapSwap函数只能被指定的Router合约调用。

合约

图6 合约未检查k值的cheapSwap函数
正常情况下,当用户使用Router合约兑换代币时,首先会使用getAmountsOut函数来计算正确的代币数量amounts;然后调用safeTransferFrom将用户的兑换消耗代币转入目标pair合约;最后,通过内部调用_swap函数来执行cheapSwap函数将兑换代币转至目标地址。

合约

图7 Router01合约的swapExactTokensForTokens函数
但是,由于cheapSwap函数缺少了K值检验,如果攻击者部署恶意代币合约,在Router合约调用safeTransferFrom函数时,回调正常的pair合约进行同种兑换,由于,回调后的兑换使用的amounts仍是未更新之前的数据,已不符合改变账本状态之后的校验,那么攻击会导致以错误的价格兑换出目标代币,以此获利。

合约

图8 合约进行k值校验的Swap函数
该事件的具体攻击步骤如下:
1. 在准备阶段攻击者部署了AAA代币合约,并使用闪电贷借来1000WBNB,兑换65140个项目方的IF代币。
2. 使用其中一半的IF代币(32570个)与攻击者自己部署的AAA代币构建IF-AAA交易池。
3. 执行AAA-IF-BUSD路径的代币兑换,且当Router合约调用AAA代币合约的transferFrom函数时会执行攻击者的恶意代码,重入至IF-BUSD的pair合约,并将另一半IF代币正常兑换出221897个BUSD。
4. 回归到AAA-IF-BUSD路径的兑换,将之前计算的amounts值传入_Swap函数中执行这笔兑换,用一半的IF又兑换了2521897个BUSBD。
5. 归还闪电贷,完成攻击。

合约

图9 事件流程图
针对此类安全问题,成都链安建议:
在关键的兑换函数中必须做k值校验,不要为了节省gas和代码量就将K值校验和安全验证依赖外部验证,做到自身功能完善。
Part.3
-Decentralized Exchange
通缩代币未设置pair为分红例外
通缩代币在交易时会产生额外的分红与手续费。如果交易合约中包含了此类代币,且没有进行特殊处理,那么,就可能导致交易对合约记录的代币储量与实际的代币可用余额不一致。
以XSquid事件为例,XSquid是一种通缩代币,未将其与WHT代币组成的pair合约地址添加奖励例外列表,造成了pair合约除了正常代币兑换和流动性存储外,还存有多余的XSquid分红奖励代币。因此,攻击者就可以调用Swap函数将pair合约多余的XSquid代币转换为WHT提取(如图11),或者通过skim函数将多余的XSquid代币直接提取(如图12)。

合约

图10 XSquid交易对合约未添加奖励例外

合约

图11 Swap函数可以兑换多余的WHT代币

合约

图12 skim函数可以提取大于reserve的部分
针对此类安全问题,成都链安建议:
DEX在添加通缩分红型代币时多注意手续费以及分红的处理情况。在创建通缩分红型代币交易对时,可以添加奖励例外来避免此类代币的分红问题。
此外,以下两类不属于DEX本身的安全问题,但是被项目方借助了DEX的特性实施诈骗,所以将其写在文章末尾。
PART.1
诈骗交易池
这类问题主要是指项目方在自己发行的代币里留有后门,创建与主流代币的交易池,诱使投资者使用手里存在价值的代币买入项目方代币,并且不断拉盘对投资者进行投资欺骗。
以下面的TRTC项目方为例,项目方创建了ETH-TRTC的交易池。但是在TRTC的代币合约对transferFrom函数做了相关限制,要求代币的转出方为owner(管理员)或者为Uniswap。因此对于投资者,仅可以通过Uniswap买入TRTC代币,而不能卖出TRTC代币。最后由项目方把投资者投入的ETH提走跑路,给投资者带来了巨大的损失。

合约

图13 TRTC合约的transfer函数

合约

图14 TRTC合约的ensure修饰

合约

图15 TRTC合约的transferFrom函数
PART.2
项目方Rug Pull
Rug Pull是指项目方卷走投资者资金跑路的行为,目前已成为DeFi生态系统的最大骗局类型,项目方刻意制造代币价格暴涨的假象、许诺为提供流动性的投资者提供高回报等方式来大量聚集资金,一旦时机成熟就移除池子里的流动性或将代币卷走。这样的例子在DeFi屡见不鲜,AnubisDAO、Meerkat Finance、TurtleDEX、Squid token鱿鱼币等都是在卷款跑路之后,注销网站和社交媒体销声匿迹,导致投资者承担了巨大的损失。
写在最后
成都链安建议项目方使用锁仓和多重签名来控制代币流动性,避免出现砸盘跑路的情况。投资者不要被天上掉馅饼的事情冲昏头脑,防范虚假宣传。

Tiền kỹ thuật số thịnh hành

Nội dung Liên quan

“Mùa hè khó khăn” của phe tăng giá thị trường chứng khoán: Dầu 100 USD, AI phản tác dụng, thuế quan tái khởi động

Thị trường chứng khoán toàn cầu đang đối mặt với đợt kiểm tra áp lực khắc nghiệt trong mùa hè này, khi giá dầu tăng vọt, chi tiêu vốn AI bùng nổ và chính sách thuế quan tái khởi động đồng loạt tấn công các trụ cột cốt lõi của thị trường tăng giá. Giá dầu Brent vượt 100 USD/thùng do gián đoạn vận chuyển ở Trung Đông và Biển Đỏ, trong khi đề xuất thuế quan mới của Trump đẩy kỳ vọng lạm phát tăng cao, kéo lợi suất trái phiếu kho bạc Mỹ 10 năm lên 4.66%. Lĩnh vực công nghệ lao dốc khi Alphabet điều chỉnh tăng hướng dẫn chi tiêu vốn, làm dấy lên lo ngại về lợi tức đầu tư AI và khiến "Big Tech" mất gần 6% giá trị vốn hóa. Lý lẽ thị trường tăng giá dựa trên lợi nhuận vững, lạm phát kiểm soát được và chi tiêu AI mở rộng đang lung lay. Các tổ chức như Barclays và Goldman Sachs đang thận trọng hơn. Xung đột tại eo biển Hormuz và Biển Đỏ đe dọa khoảng 25% nguồn cung dầu toàn cầu, đẩy giá lên và làm gia tăng rủi ro lạm phát kéo dài. Cùng lúc đó, câu chuyện đầu tư AI xuất hiện vết nứt khi các công ty như Alphabet và Tesla cho thấy chi tiêu khổng lồ nhưng lo ngại về lợi nhuận. Lãi suất cao hơn đặt ra rào cản khó khăn hơn cho lợi tức đầu tư AI, trong khi xu hướng mô hình mã nguồn mở có thể làm giảm nhu cầu chi tiêu. Tuần tới sẽ là thử thách then chốt với Cục Dự trữ Liên bang Mỹ (Fed) và loạt báo cáo thu nhập từ các gã khổng lồ công nghệ như Microsoft, Meta, Apple và Amazon. Các tín hiệu kỹ thuật đang xấu đi, dòng tiền bán chiếm ưu thế và chỉ số S&P 500 đã phá vỡ đường trung bình 50 ngày. Tài sản trú ẩn như vàng và đồng USD tăng mạnh, phản ánh tâm lý e ngại rủi ro trên thị trường.

链捕手6 phút trước

“Mùa hè khó khăn” của phe tăng giá thị trường chứng khoán: Dầu 100 USD, AI phản tác dụng, thuế quan tái khởi động

链捕手6 phút trước

Theo Galaxy, số lượng địa chỉ Bitcoin im lặng giảm xuống mức thấp nhất kể từ năm 2022

Theo báo cáo từ Galaxy Digital, hoạt động của các Bitcoin không hoạt động (ngủ yên) đã giảm xuống mức thấp nhất kể từ quý 3 năm 2022. Alex Thorn, Trưởng bộ phận Nghiên cứu tại Galaxy, cho biết xu hướng này cho thấy đợt phân phối kéo dài hai năm của các holder lâu năm có thể đã kết thúc. Tốc độ "thức dậy" của các đồng coin cũ, thường trùng với việc chốt lời, đã chậm lại đáng kể so với mức cao của năm 2024 và 2025. Chỉ số Coin Days Destroyed cũng giảm trong quý 2, củng cố nhận định rằng áp lực bán từ các nhà đầu tư dài hạn đã giảm bớt. Điều này xảy ra trong bối cảnh Bitcoin giao dịch quanh mức 65.000 USD, giảm khoảng 48% so với mức đỉnh lịch sử hơn 126.000 USD vào tháng 10/2025. Thorn cũng bác bỏ thông tin cho rằng các tổ chức lớn đang bán tháo do lo ngại về rủi ro từ máy tính lượng tử. Ông khẳng định Galaxy không thấy khách hàng tổ chức nào của mình đưa ra lý do này. Thay vào đó, hoạt động bán mạnh từ các ví lớn, bao gồm của nhà đầu tư mạo hiểm Tim Draper và các công ty khai thác, dường như đã xảy ra vài tháng trước khi đà tăng chậm lại.

cryptonews.ru6 phút trước

Theo Galaxy, số lượng địa chỉ Bitcoin im lặng giảm xuống mức thấp nhất kể từ năm 2022

cryptonews.ru6 phút trước

Ba "tính phản thân" u ám bao trùm thị trường

Báo cáo của Goldman Sachs (qua nhà giao dịch Rich Privorotsky) cảnh báo thị trường toàn cầu đang chịu áp lực từ ba vòng xoáy "phản thân" (reflexivity) có thể tương tác cường hóa lẫn nhau: 1. **Vòng xoáy dầu mỏ và chính trị:** Giá dầu tăng cao (Brent từng chạm 100 USD/thùng) đang thử thách kỳ vọng về phản ứng chính sách của chính phủ Mỹ. Việc không có hành động can thiệp kịp thời buộc thị trường tự điều chỉnh, làm trầm trọng thêm áp lực lãi suất và lạm phát (như chi phí nhiên liệu làm giảm dự báo lợi nhuận của hãng hàng không Mỹ). Diễn biến địa chính trị (Mỹ-Iran) có thể tạo ra các biến động bất ngờ. 2. **Vòng xoáy chi tiêu vốn của các "siêu nhà cung cấp cloud":** Các công ty công nghệ lớn (ví dụ Google) đang tăng mạnh chi tiêu vốn (Capex) cho hạ tầng AI, nhưng thị trường ngày càng nghi ngờ về khả năng sinh lời. Đầu tư vào họ giờ giống một cuộc cá cược về việc "doanh thu tăng trở lại trước khi chi phí đạt đỉnh". Xu hướng này có thể buộc các đối thủ phải gia tăng chi tiêu theo, làm giảm lòng tin chung và ảnh hưởng đến cả các nhà cung cấp phần cứng. 3. **Vòng xoáy rủi ro nợ AI:** Thị trường trái phiếu đang phát tín hiệu báo động. Giá các trái phiếu được phát hành để tài trợ cho hạ tầng AI (ví dụ đợt phát hành của Meta) đã suy giảm đáng kể. Việc tự do dòng tiền (FCF) xấu đi do capex tăng có thể gây áp lực lớn hơn lên các chủ thể vay nợ để tài trợ đầu tư. Trong tương lai, việc mở rộng công suất quá mức có thể dẫn đến dư thừa và chi phí kháu hao lớn. Hàm ý: Hai sự kiện sắp tới cần theo dõi sát để đánh giá các rủi ro này: (1) Báo cáo tài chính và cuộc gọi của Microsoft, (2) Đợt IPO của nhà sản xuất chip nhớ Trung Quốc ChangXin Memory (CXMT), có thể ảnh hưởng đến ngành bán dẫn. Trong một thị trường đầy tính phản thân, mỗi biến số vừa là nguyên nhân, vừa là kết quả.

链捕手11 phút trước

Ba "tính phản thân" u ám bao trùm thị trường

链捕手11 phút trước

Claude viết code xong không nộp ngay: Tự kiểm tra qua 4 Skill, sửa tốt rồi mới tìm bạn

Trong lĩnh vực lập trình, AI như Claude đã có thể tạo mã, nhưng việc kiểm tra và xác thực chất lượng mã vẫn thường đè nặng lên vai người dùng. Gần đây, Anthropic đã giới thiệu "vòng lặp xác minh" (verification loop) trong Claude Code, một quy trình tự động giúp Claude tự kiểm tra và sửa lỗi trước khi giao kết quả. Thay vì đưa mã ngay lập tức, Claude sẽ chạy qua bốn bước kiểm tra chính: 1. **/code-review:** Tìm và sửa lỗi tiềm ẩn. 2. **/simplify:** Tinh gọn mã, loại bỏ phần dư thừa. 3. **/verify:** Kiểm thử đầu cuối để xác nhận chức năng hoạt động. 4. **/design:** (Khi cần) Đối chiếu thay đổi giao diện với tài liệu thiết kế. Bốn bước này, được gọi là "Skill", đóng gói các quy tắc và quy trình kiểm tra thủ công thành các module tự động. Người dùng có thể tạo Skill riêng bằng cách mô tả các bước kiểm tra cụ thể của dự án dưới dạng hướng dẫn đơn giản. Mức độ tự động hóa của việc xác minh có thể điều chỉnh, từ chạy thủ công (Standalone), nhúng vào tác vụ (Embedded), chuỗi tự động (Chained) đến kiểm tra trên mọi Pull Request (On every PR). Điều này giúp chuyển "thói quen" kiểm tra thành "giao kèo" tự động, giảm tải cho lập trình viên. Sự phát triển này cho thấy trọng tâm của AI trong lập trình đang chuyển từ "tạo mã" sang "xác minh mã". Khả năng tự kiểm tra giúp các tác nhân AI (AI agent) chạy độc lập và đáng tin cậy hơn. Các Skill cũng đang trở thành một tiêu chuẩn mở giữa các nền tảng, cho phép tích lũy và tái sử dụng kiến thức nhóm. Tóm lại, vòng lặp xác minh không thay thế lập trình viên, mà tối ưu hóa quy trình, biến AI thành một cộng sự đáng tin cậy hơn bằng cách giao phó công việc kiểm tra lặp đi lặp lại.

marsbit18 phút trước

Claude viết code xong không nộp ngay: Tự kiểm tra qua 4 Skill, sửa tốt rồi mới tìm bạn

marsbit18 phút trước

Bắc Kinh đã trở thành 'Đỉnh cao toàn cầu' như thế nào?

Bắc Kinh duy trì tăng trưởng kinh tế 5,4% trong nửa đầu năm nhờ vào việc tập trung mạnh mẽ vào các lĩnh vực công nghệ cốt lõi như chip, robot, AI và điện toán hiệu suất cao, thay vì dựa vào tiêu dùng hay bất động sản. Đầu tư đổ mạnh vào sản xuất công nghệ cao (tăng 36%) và dịch vụ khoa học công nghệ (tăng 87,2%), trong khi vốn mạo hiểm chủ yếu chảy vào các startup công nghệ cứng. Sản lượng công nghiệp tăng trưởng mạnh: vi mạch tăng 17,8%, robot công nghiệp tăng 75,5% và robot dịch vụ tăng 2,3 lần. Các công ty như Thiên Tầm Thông Minh và Ngân Hà Thông Dụng đang thúc đẩy robot thể hiện trí tuệ (embodied AI) trong sản xuất và dịch vụ. Bắc Kinh cũng dẫn đầu trong phát triển mô hình AI cơ bản và hệ sinh thái AI độc lập (FlagOS). Để hỗ trợ hệ sinh thái này, thành phố đang mở rộng quy mô điện toán thông minh lên hơn 70.000 PetaFLOPS và thiết lập các nền tảng thử nghiệm trung gian (pilot production) để đưa công nghệ từ phòng thí nghiệm ra thị trường. Chiến lược phát triển được mở rộng ra khu vực Kinh-Tân-Hà thông qua việc phân bổ nhu cầu điện toán và thúc đẩy hợp tác công nghiệp. Mục tiêu là xây dựng một hệ sinh thái đổi mới bền vững, kết nối nghiên cứu, vốn, sản xuất và thị trường, từng bước củng cố vị thế là "cao nguyên toàn cầu" về công nghệ.

marsbit18 phút trước

Bắc Kinh đã trở thành 'Đỉnh cao toàn cầu' như thế nào?

marsbit18 phút trước

Giao dịch

Giao ngay

Bài viết Nổi bật

Làm thế nào để Mua UNI

Chào mừng bạn đến với HTX.com! Chúng tôi đã làm cho mua Uniswap (UNI) trở nên đơn giản và thuận tiện. Làm theo hướng dẫn từng bước của chúng tôi để bắt đầu hành trình tiền kỹ thuật số của bạn.Bước 1: Tạo Tài khoản HTX của BạnSử dụng email hoặc số điện thoại của bạn để đăng ký tài khoản miễn phí trên HTX. Trải nghiệm hành trình đăng ký không rắc rối và mở khóa tất cả tính năng. Nhận Tài khoản của tôiBước 2: Truy cập Mua Crypto và Chọn Phương thức Thanh toán của BạnThẻ Tín dụng/Ghi nợ: Sử dụng Visa hoặc Mastercard của bạn để mua Uniswap (UNI) ngay lập tức.Số dư: Sử dụng tiền từ số dư tài khoản HTX của bạn để giao dịch liền mạch.Bên thứ ba: Chúng tôi đã thêm những phương thức thanh toán phổ biến như Google Pay và Apple Pay để nâng cao sự tiện lợi.P2P: Giao dịch trực tiếp với người dùng khác trên HTX.Thị trường mua bán phi tập trung (OTC): Chúng tôi cung cấp những dịch vụ được thiết kế riêng và tỷ giá hối đoái cạnh tranh cho nhà giao dịch.Bước 3: Lưu trữ Uniswap (UNI) của BạnSau khi mua Uniswap (UNI), lưu trữ trong tài khoản HTX của bạn. Ngoài ra, bạn có thể gửi đi nơi khác qua chuyển khoản blockchain hoặc sử dụng để giao dịch những tiền kỹ thuật số khác.Bước 4: Giao dịch Uniswap (UNI)Giao dịch Uniswap (UNI) dễ dàng trên thị trường giao ngay của HTX. Chỉ cần truy cập vào tài khoản của bạn, chọn cặp giao dịch, thực hiện giao dịch và theo dõi trong thời gian thực. Chúng tôi cung cấp trải nghiệm thân thiện với người dùng cho cả người mới bắt đầu và người giao dịch dày dạn kinh nghiệm.

Tổng lượt xem 618Xuất bản vào 2024.12.12Cập nhật vào 2026.06.02

Làm thế nào để Mua UNI

Thảo luận

Chào mừng đến với Cộng đồng HTX. Tại đây, bạn có thể được thông báo về những phát triển nền tảng mới nhất và có quyền truy cập vào thông tin chuyên sâu về thị trường. Ý kiến ​​của người dùng về giá của UNI (UNI) được trình bày dưới đây.

活动图片