
なぜ「トークン承認」がDeFiで最悪のアイデアなのか。 ERC-20はトークンのバランスと振替を標準化することに成功したが、契約が実際にあなたのトークンを使用するためのクリーンな方法を提供しなかった。単純な契約への振替では、何が到着したかを契約に通知することすらできない。そのため、彼らはホットフィックスとして「approve + transferFrom」を追加した。 このホットフィックスがあなたに強いるものを見てみよう。契約にあなたのトークンの使用を許可するには、次のいずれかを選ぶしかない: - 一度、巨大または無限の数量を承認し、その後は契約がいつでもあなたのウォレットにアクセスできるようになり、あなたが取り消すまで永遠に続く。あなたはおそらく読んだことのない契約を信頼することになる。 - または、毎回の操作前に正確な数量を承認し、各操作ごとに2回目のトランザクションと2回目のガス代を支払う。 他人を信頼するか、すべての操作に税金を支払うか。これが二つの選択肢であり、標準はそれより良いものを提供しない。そのため、誰もがドア1を選んで「無限」をクリックし、チェーンは自分自身に向いた銃を向けたウォレットで満たされる。 これは理論上の話ではない。JaredFromSubwayのMEVボットは、まさにこの方法で数百万ドルを失った。ハッキングされたわけではなく、偽のトレードを追いかけて承認を配布したところ、誰かがtransferFromを使って資金を持ち出したのだ。 最も悪いのは、ずっと前からより良い設計が存在していたことだ。transfer-and-call(ERC-223、ERC-1363)は、正確な数量を移動し、1回のトランザクションで受信者に通知する。常設承認も、追加トランザクションも、あなたの口座への鍵を他人に渡す必要もない。しかし、ERC-20の先行性に負け、今や無限承認はDeFi全体の基盤となっている。permit、permit2、アカウント抽象化——すべての「修正」は、本来出荷されるべきではなかった原始的な仕様へのパッチにすぎない。 私たちは安全な選択肢を得られず、便利な方を選んだ。そして、それ以来ずっと代償を支払ってきた。
