近日,听说以太坊上的泰达币频繁被增发。本着学习的目的在etherscan上审计了泰达币的智能合约源码以及USDT增发相关的调用事件,本文记录一下分析过程。以下是TetherToken智能合约的USDT增发函数:可以看到增发USDT需要TetherToken合约的owner账户调用issue(uint)增发函数进行,增发成功后还会抛出Issue(amount)增发事件。再看下最近的增发记录截图:
TransactionHash:0xdd108cd36fbeaab03b29ac46d465ad9824618d683268681d3206bd78302e0d71
南昌印钞有限公司推出数字纪念品向公众宣传区块链技术:金色财经报道,2022年全国科技活动周于2022年5月21日至28日举办,中国印钞造币集团有限公司组织对金融科技相关技术进行科普宣传,日前南昌印钞有限公司联合中钞信用卡产业发展有限公司推出数字纪念品体验活动,向公众宣传区块链技术。“数字纪念品”共六款,每天中午 12 点开始投放。[2022/5/25 3:41:18]
可以看到在上图交易详情中并没有调用TetherToken合约的issue(uint)增发函数,而是调用了MultiSigWallet合约的confirmTransaction(uint)函数完成的增发操作。需要注意以下两点:
Tether在波场新增印钞10亿枚USDT(已授权未发行):Whale Alert数据显示,Tether在波场增发10亿枚USDT。增发哈希为:6a153c5574e4e25c1c915ce9857a7b639509c24951fb7ce90cacaab882ad18d5。
对此,Tether首席技术官Paolo Ardoino表示,波场网络补充了10亿枚USDT的库存。这是一笔已授权但未发行的交易,意味着该金额将用作下一次发行请求和链互换的库存。[2021/11/2 21:18:35]
TetherToken合约调用分析
我们先看看MultiSigWallet合约的confirmTransaction(uint)函数的实现
Pantera Capital CEO:政府增加印钞会抬高比特币价格:Pantera Capital首席执行官Dan Morehead表示,随着政府增加纸币印钞,人们需要更多的纸币来购买固定数量的物品,如股票和房地产。其必然结果是,这会抬高其他东西的价格,比如黄金、比特币和其他加密货币。(Bitcoinist)[2020/5/4]
调用confirmTransaction(uint)函数确认并执行交易需要满足以下条件
加密货币支持者:比特币是防范央行印钞的一种手段:比特币并不是针对“每一次”全球金融危机的对冲工具,但它将最终保护其用户不受央行、政府和法定货币印刷的影响,这是加密货币支持者在3月10日达成的共识。BitWise首席执行官Hunter hor指出,从历史表现来看,BTC的表现比以前好得多,尤其是与标准普尔500指数相比。标准普尔指数周一下跌7.6%。基于历史波动率,标普指数下跌7.6%,BTC指数下跌41%,然而在过去的24小时里,BTC只有-5%。从今天午夜到现在只有-0.5%。
AngelList首席执行长Naval Ravikant建议投资者远离最近的价格调整。Naval Ravikant表示,目前,比特币并不是针对每一只黑天鹅的常规对冲,它仍然表现得像一种追逐风险的交易,但从长远来看,比特币是防范央行印钞的一种手段,而印钞是对病的一种反应,是不可避免的。(cointelegraph)[2020/3/10]
submitTransaction(address,uint,bytes)会调用到合约内部的addTransaction(address,uint,bytes)函数,其实现如下:
最终一次完整的提交->确认操作流程如下:1、调用submitTransaction(address,uint,bytes)函数提交事务并传入参数:contract-address、eth-value、payload。注意:提交事务包含一次事务确认。依次发送Submission事件->Confirmation事件。2、调用confirmTransaction(uint)确认并执行事务,需要3个不同的owner账户完成最终的确认。依次发送Confirmation事件->执行payload所产生的事件->Execution事件。TetherToken跨合约调用如下图所示:
USDT增发分析
继续看这笔增发交易的调用事件,正好满足调用confirmTransaction(uint)函数所产生的事件。
通过查询transactionId即可看到调用参数
转换成以下伪代码:
那么Bitfinex:MultiSig2地址的USDT是哪来的呢?根据transactionId继续向前追踪一个事务即可找到真正为Bitfinex:MultiSig2地址增发USDT的交易:
转换成以下伪代码:
TransactionHash:0xb467ea92b5c0095b1a96f35eb466b239c13e5b0b3f493e3e452f832d99830d6b这才是真正为Bitfinex:MultiSig2地址增发USDT的操作。USDT增发如下图所示:
总结
可以看到,USDT的增发需要通过MultiSigWallet跨合约调用才能完成。而MultiSigWallet智能合约存在多个owner用户,完成一次跨合约调用需要至少3个owner的确认。这种增发机制在一定程度上杜绝了当某一owner账户丢失或被盗时USDT被恶意增发的安全隐患。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。