
為何「代幣授權」是去中心化金融中最糟糕的設計。 ERC-20 正確地標準化了餘額和轉帳,卻錯在了最困難的部分:它從未提供一種乾淨的方式,讓合約實際使用你的代幣。單純將代幣轉帳至合約,甚至無法通知合約有資金到達。因此,他們臨時加了一個補丁:approve + transferFrom。 看看這個補丁強加給你的困境:要讓合約花費你的代幣,你必須: - 一次性授權一個巨大或無限的數量,自此之後,該合約隨時可以訪問你的錢包,直到你記起來撤銷為止。你正在信任一個你可能從未閱讀過的合約。 - 或者,在每次操作前精確授權所需數量,這意味著每次操作都要進行第二次交易並支付第二次網絡費用。 信任陌生人,或為每一次操作支付稅款。這就是僅有的兩個選擇,而標準並未提供更好的方案。因此,所有人都選擇了第一條路,點擊「無限」,導致鏈上到處都是錢包,像對著自己舉著上膛的槍。 這不是理論上的問題。JaredFromSubway 的 MEV 機器人正是因此損失了數百萬美元。並沒有被駭入,它只是為了追蹤虛假交易而頒發了授權,結果有人使用 transferFrom 將資金提走。 最糟糕的部分:更好的設計一直存在。transfer-and-call(ERC-223、ERC-1363)能在單一交易中移動精確數量並通知接收方。無需長期授權、無需額外交易、也無需陌生人持有你帳戶的鑰匙。它敗給了 ERC-20 的先發優勢,如今無限授權已成為整個去中心化金融的支柱。permit、permit2、帳戶抽象,所有這些「修復」都只是在一個本不該上線的原始設計上打補丁。 我們沒有得到安全的選項,我們得到了方便的選項,而自那以來,我們一直在為此付出代價。
