加载中 ...

审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

2020-07-11 13:33 编辑:btc268.com 来源:区块链资讯

  近日,听说以太坊上的泰达币(USDT)频繁被增发。本着学习的目的在 ETHerscan 上审计了泰达币的智能合约(TetherToken)源码以及 USDT 增发相关的调用事件,本文记录一下分析过程。

  以下是 TetherToken 智能合约的 USDT 增发函数:

 

  可以看到增发 USDT 需要 TetherToken 合约的 owner 账户调用 issue(uint)增发函数进行,增发成功后还会抛出 Issue(amount)增发事件。

  再看下最近的增发记录截图:

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  Transaction Hash:0xdd108cd36fbeaab03b29ac46d465ad9824618d683268681d3206bd78302e0d71

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  可以看到在上图交易详情中并没有调用 TetherToken 合约的 issue(uint)增发函数,而是调用了 MultiSigWallet 合约的 confirmTransaction(uint)函数完成的增发操作。

  需要注意以下两点:

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

TetherToken 合约调用分析

  我们先看看 MultiSigWallet 合约的confirmTransaction(uint)函数的实现

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  调用confirmTransaction(uint)函数确认并执行交易需要满足以下条件

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  submitTransaction(address,uint,bytes)会调用到合约内部的 addTransaction(address,uint,bytes)函数,其实现如下:

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  最终一次完整的提交->确认操作流程如下:

  1、调用 submitTransaction(address,uint,bytes)函数提交事务并传入参数:cONTract-address、eth-value、payload。注意:提交事务包含一次事务确认。

  依次发送 Submission 事件 -> Confirmation 事件。

  2、调用 confirmTransaction(uint)确认并执行事务,需要 3 个不同的 owner 账户完成最终的确认。

  依次发送 Confirmation 事件 -> 执行 payload 所产生的事件(满足确认数量)-> Execution 事件。

  TetherToken 跨合约调用如下图所示:

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

USDT 增发分析

  继续看这笔增发交易的调用事件,正好满足调用 confirmTransaction(uint)函数所产生的事件。

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  通过查询 transactionId 即可看到调用参数

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  转换成以下伪代码:

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  那么 Bitfinex: MultiSig 2 地址的 USDT 是哪来的呢?根据 transactionId 继续向前追踪一个事务即可找到真正为 Bitfinex: MultiSig 2 地址增发 USDT 的交易:

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  转换成以下伪代码:

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

  Transaction Hash:0xb467ea92b5c0095b1a96f35eb466b239c13e5b0b3f493e3e452f832d99830d6b

  这才是真正为 Bitfinex: MultiSig 2 地址增发 USDT 的操作。

  USDT 增发如下图所示:

  审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

总结

  可以看到,USDT 的增发需要通过 MultiSigWallet 跨合约调用才能完成。而 MultiSigWallet 智能合约存在多个 owner 用户,完成一次跨合约调用需要至少 3 个 owner 的确认。这种增发机制在一定程度上杜绝了当某一 owner 账户丢失或被盗时 USDT 被恶意增发的安全隐患。

关键词:比特币新闻 币牛牛

转载自比特币新闻网(www.btc268.com),提供比特币行情走势分析与数字货币投资炒币最新消息。

原文标题:审计在以太坊上的泰达币智能合约源码及USDT增发相关的调用事件

原文地址:http://www.btc268.com/ytf/xw/23309.html

本文来源:区块链资讯编辑:btc268.com

本文仅代表作者个人观点,与本网站立场无关。

本网站转载信息目的在于传递更多信息。请读者仅作参考,投资有风险,入市须谨慎!

'); })();