以太坊自动化做市 (AMM) 兑币协议 Uniswap 公告,没有计画支援任何以太坊分岔,PoS 以太坊的过渡是重要奠基。Uniswap 用户无需在合并时进行任何操作,协议将正常运行。但若第三方基础建设供应商出现提机,部分用户可能出现短暂无法使用的状况。
更重要的事,Uniswap 提醒用户在合并后可能会有的风险。
Uniswap 提醒开发者注意:预言机变化、许可重播性
Uniswap v3 TWAP 预言机安全性的变化
Uniswap 表示,Uniswap v3 预言机的设计有权衡 PoW 的安全性 (单一实体是难以预测,以连续挖到区块的)。在 PoS 中,每个 epoch (时间单位:6 分钟) 都会提先宣布谁是区块生产者。这种前瞻性显示,要操弄连续两个预言机的数值,成本会大幅低于 PoW。
例如:某一区块 N 的验证者可以支付额外的 gas,来控制区块 N-1 中的最后一笔交易,因为他们知道他可以控制下一个区块的交易顺序。由于预言机是基于时间权重平均值 (TWAP),这会开启一个机会,让验证者可以用极高或极低的价格来影响平均值。
Uniswap 建议仰赖 Uniswap Protocol v3 TWAP 预言机者,可以采用 Euler 团队的 Median Oracle 方案。
许可重播性 (Replayability for permits)
Permit 是 Approve 的替代方案,用户可以允许另一个智能合约使用他们的代币 ; 这样就可以跳过 Approve 的步骤来减少 gas 花费,Permit 只让用户可以产生一个加密的链下签名并指向他们的同意就可以了。
但是,有些 Permit 的施作,包含 DAI、USDC、UNI 还有 Uniswap v2 LP 代币,都已经写死 (hardcoded) 链 ID 了。在链分岔的情境下,新的链 ID 会被忽略。这会让创造一个新的重播签名路径,Permit 可以让特定地址在分岔链上重播一个用户的花费行为。
举例而言,一个在以太坊上签署过 permit 的 Uniswap 路由器,可以在 ETHPoW 的同样地址上在施作一次。若是该 Uniswap 路由器没有能力在不需要任何额外交易授权之下,动用你钱包中的资金,那就不会有风险。
若是 ETHPoW 有个恶意合约部署至相同地址,那它可以拒绝那个在以太坊上已签署的 permit,并且不需要用户的允许就能移动资金。