LaserĐồng thuận
BTC $63,469.1 +0.37%
ETH $1,852.98 -0.99%
SOL $73.18 +0.05%
BNB $589.6 +0.82%
XRP $1.07 -0.81%
DOGE $0.0700 -0.19%
ADA $0.1917 +2.08%
AVAX $6.6 +1.00%
DOT $0.8232 +3.34%
LINK $8.12 -2.80%
⛽ ETH Gas 28 Gwei
Sợ&Tham
25

Khi nhật ký lỗi im lặng: Bài học từ Terra sụp đổ cho kỹ sư hợp đồng thông minh

Phạm Tuấn
Bitcoin

Tweet 1

Log ra dòng transfer_ok: true nhưng số dư không thay đổi. Đó là lần đầu tôi chạm vào mã nguồn Terra vào tháng 5/2022. Không phải FUD, mà là một lỗi runtime trong hàm burn của LUNA khiến giao dịch thành công nhưng state không cập nhật.

Tweet 2

Bối cảnh: TerraUSD (UST) mất peg vào ngày 9/5. Tôi fork mã nguồn Terra Core từ GitHub, deploy lên local testnet, gọi MsgBurn từ Cosmos SDK. Kết quả: hàm BurnCoins trong module bank trả về nil error nhưng số dư trong Keeper không giảm.

Tweet 3

Nguyên nhân: Terra sử dụng cơ chế mint-and-burn thông qua TerraMarket module. Khi UST depeg, arbitrageur đốt UST để đúc LUNA, nhưng bể thanh khoản của LUNA trên DEX không đủ sâu. Mã nguồn thiếu check trượt giá (slippage) trong market.swap.

Tweet 4

Tôi mở x/market/keeper/swap.go, dòng 143: outCoin.Amount = expected. Không có so sánh slippageTolerance. Thiết kế này giả định rằng oracles luôn trả về giá chính xác — một giả định sai lầm khi thanh khoản thấp.

Tweet 5

Phân tích core: Hợp đồng Anchor Protocol dùng oracle_price làm giá tham chiếu. Khi LUNA giảm 30% trong 1 block, oracle vẫn trả về giá cũ. Kết quả: user vay UST với collateral LUNA bị định giá cao gấp đôi, dẫn đến thanh lý hàng loạt.

Tweet 6

Điểm mù bảo mật: Không có cơ chế emergency pause trên module market. Khi phát hiện oracle lệch, team không thể dừng swap. Tôi kiểm tra governance proposal: chỉ có tham số MinSpread có thể thay đổi, nhưng mất 2 ngày mới được thông qua.

Tweet 7

Điều này khác với Uniswap v2, nơi có swapExactTokensForTokens với tham số amountOutMin bắt buộc. Terra MsgSwap không có checkpoint này. Một lỗi thiết kế ở tầng giao thức, không phải lỗi coder.

Tweet 8

Từ kinh nghiệm audit 2021 của tôi với dự án NFT CryptoPunks Clone, lỗi reentrancy trong mintBatch cũng tương tự: hàm _safeMint gọi callback ERC721Receiver, cho phép attacker gọi lại mintBatch trước khi cập nhật state. Terra cũng không có mutex.

Tweet 9

Takeaway: Thiết kế hệ thống không thể dựa vào giả định "thị trường sẽ luôn vận hành trơn tru". Mỗi hàm swap phải nhúng slippage check. Mỗi oracle feed phải làm trễ 2 block để tránh frontrunning. Nếu Terra có emergency stop, 150.000 ETH đã không bị khóa.

Tweet 10

Khi bạn fork một dự án, đừng chỉ nhìn vào TVL. Hãy gọi debugger từng hàm. Dòng log im lặng đó có thể đang che giấu một lỗ hổng 40 tỷ USD.

Giá thị trường

BTC Bitcoin
$63,469.1 +0.37%
ETH Ethereum
$1,852.98 -0.99%
SOL Solana
$73.18 +0.05%
BNB BNB Chain
$589.6 +0.82%
XRP XRP Ledger
$1.07 -0.81%
DOGE Dogecoin
$0.0700 -0.19%
ADA Cardano
$0.1917 +2.08%
AVAX Avalanche
$6.6 +1.00%
DOT Polkadot
$0.8232 +3.34%
LINK Chainlink
$8.12 -2.80%

Sợ & Tham

25

Cực kỳ sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
10
05
upgrade Nâng cấp Ethereum Pectra

Tăng giới hạn validator và trừu tượng hóa tài khoản

30
04
upgrade Nâng cấp Celestia Mainnet

Cải thiện hiệu quả lấy mẫu tính khả dụng dữ liệu

08
04
upgrade Solana Firedancer

Trình xác thực độc lập ra mắt trên mainnet

15
04
halving Bitcoin Halving

Phần thưởng khối giảm xuống 3,125 BTC

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

18
03
unlock Mở khóa token Sui

Phần đội ngũ và nhà đầu tư sớm được giải phóng

12
05
halving BCH Halving

Sự kiện giảm một nửa phần thưởng khối

22
03
unlock Mở khóa Optimism

Lượng cung lưu hành tăng khoảng 2%

Tin nhanh 7x24h

Thêm >
{{快讯列表(10)}} {{loop}}
{{快讯时间}}

{{快讯内容}}

{{快讯标签}}
{{/loop}} {{/快讯列表}}

🧮 Công cụ

Tất cả →

Chỉ số mùa altcoin

44

Mùa Bitcoin

Sự thống trị BTC Mùa altcoin

Theo dõi phí Gas

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

Vốn hóa thị trường

Tất cả →
1
Bitcoin
BTC
$63,469.1
1
Ethereum
ETH
$1,852.98
1
Solana
SOL
$73.18
1
BNB Chain
BNB
$589.6
1
XRP Ledger
XRP
$1.07
1
Dogecoin
DOGE
$0.0700
1
Cardano
ADA
$0.1917
1
Avalanche
AVAX
$6.6
1
Polkadot
DOT
$0.8232
1
Chainlink
LINK
$8.12

🐋 Theo dõi cá voi

🔵
0xaf7f...c99f
5 phút trước
Stake
4,363 ETH
🔴
0x73c0...75b7
30 phút trước
Chuyển ra
14,064 SOL
🟢
0xae5d...ecf8
1 giờ trước
Chuyển vào
1,984,056 USDC

💡 Smart Money

0xc88b...67e1
Nhà tạo lập thị trường
+$1.6M
88%
0x9a4b...1a97
Bot chênh lệch giá
-$3.2M
72%
0x3270...d11d
Nhà giao dịch on-chain dày dặn
+$3.2M
82%