随着新一天的调查,更多证据被各方挖掘出来,本次事件的真相正在逐渐浮出水面,戏剧化程度堪比一场年度大戏。文末还附上了wojak的财富密码。本文是TronBank被盗的续集,没有读过上一篇文章的读者,请先移步阅读《被盗1.7亿BTT今又被盗2600万TRX,TronBank在刻意埋藏后门?》
原文标题:《2600万TRX被盗背后的罗生门——第二集》
作者:DR小伙伴
注:以下调查的信息收集全部来自于Discord频道ScamWatch、Telegram群「TronBank抱团维权」,以及DappReview与关联人的聊天记录。
wojak反悔退款
自从5月3日晚上9点wojak出现并贴出一份退款对比名单之后,再次从Discord消失,在此期间很多人开始给wojak打上Scammer的标签,并认为「他不会退款,可能已经开上兰博基尼去度假了」,诸如此类言论不绝于耳。
5月5日中午12点
wojak再次现身,声称「我投入了8个小时写工具来给所有人退款,等我写完代码回来发现大家都在把我想象成是一个子,而没有意识到Tronbank才是放置后门坑了你们的人。你们原本会因此损失所有的投资。但在看到你们把我当成子而不是开发者后,我认为我没有任何理由把TRX退还给你们」。
此番言论遭到众人反驳,wojak坚持认为自己所做的事情并不违法,自己也不是小偷,只是发起了一笔交易调用了智能合约,并且遵守了智能合约的规则。此后,wojak再也没有表示过退款的可能性,而是让所有人去找Tronbank进行索赔。
ETH 2.0存款合约总价值达到历史新高:金色财经报道,Glassnode数据显示,ETH 2.0存款合同的总价值刚刚达到15,451,895 ETH的历史新高。[2022/12/1 21:15:02]
证据开始指向TSC开发者Khanh
5月5日中午12点
在真相依旧处于众说纷纭的迷雾之中时,telegram中某开发者发现了一条关键证据,进而扭转了整个调查的方向,把更多的信息带出水面。
TTX5N2wxLeyWBSNE6UeaBjCFZbpa2FH6jr该地址于4月28日部署了一个与事发TRXPro合约有同样后门的「测试合约」,并在4月30日对后门进行了测试。
如上图所示,TTX5N**该地址用同样的方式发送了0.011911TRX调用withdraw函数,触发后门,提走自己事先存入的约100TRX。
也就是说,在被盗时间约4天之前,竟然已经有人熟知此后门以及其调用方式。当我们去反编译该测试合约并与TRXPro被盗合约对比时,不难发现:
反编译工具:https://www.trustlook.com/products/smartcontractguardian
这两段代码的后门部分完全一致!
而且更为神奇的是,「测试合约」的部署时间比项目方部署的正式合约竟然早了5小时23分钟。
毫无疑问,TTX5N**地址与本次后门事件必定脱不了关系。
而该地址的所有者是谁呢?
MultiGeth已正式发布v1.9.15版本:据ETC官方消息,MultiGeth已正式发布v1.9.15版本。该版本解决了检索和关闭之间的数据争用等问题。[2020/4/19]
打开TSC的网站https://tronsmartcontract.space,点击AboutUs
这正是TSC的开发者Khanh所拥有的地址
至此,Discord和tg群各路开发者开始梳理Khanh地址以及Tronbank开发者地址的合约部署、调用信息,梳理出以下时间线。
惊人的时间线
以上为Discord频道中梳理的时间线,下面我们按照北京时间进行更细节的梳理。
4/28/20194:07PM
TronBank开发者部署了TRXPro的测试合约,该合约中通过反编译并没有发现后门,合约地址为:
https://tronscan.org/#/contract/TAWLPqFn33U7iaAfP6cXRdJXcBUc1ewCRJ
4/28/20195:35PM
仅在一个半小时后,由TSC开发者Khanh所拥有的地址TTX5N部**署了上文提到的「测试合约」,该合约中存在后门代码,合约地址为:
https://tronscan.org/#/contract/TYZ4oPdPmwZS9xTUXhnFtQkPFFTi2iAydz
4/28/201910:48AM
动态 | 矿机制造商Linzhi计划量产首批ETH、ETC矿机:在经过9个月的延迟并接受了380万美元的投资之后,总部为深圳的加密货币矿机制造商Linzhi正准备生产第一批新机器,这些矿机用于挖掘ETH和ETC。Linzhi周三宣布,已从台积电订购了37块晶圆,这些晶圆的主要部件将可供支持制造约200台ASIC矿机。(CoinDesk)[2019/9/11]
Tronbank开发者了部署TRXPro的正式版合约,该合约即被盗合约,其中有后门代码,合约地址为:
https://tronscan.org/#/contract/TW9AE7u5QADp2uej9xdaNVTYtqsRuJZNxJ
4/28/201911:00PM
在12分钟之后,TSC开发者Khanh调用TRXPro的正式版合约,并发送0.011011来测试后门。该笔交易记录为:
https://tronscan.org/#/transaction/d6d89713ebdb98402ddfd1d454be394a5521c83b7d385ce2c394924a2b923c89
4/30/201910:12AM
TSC开发者Khanh调用自己在4/28/20195:35PM部署的存在后门的「测试合约」,触发后门,并取走自己充进去的100TRX,该笔交易记录为:
https://tronscan.org/#/transaction/87bf173c126c4873ad333c02d4e352bacda9bfaae4d91d0bce156eb64bd5219f
5/3/20194:11AM
wojak调用TRXPro的正式版合约withdraw函数,第一笔转入了0.000123,并没有任何效果,交易记录为:
https://tronscan.org/#/transaction/aabfc7b6cedb2e8ce055c7fdc7a62df558213c63a33092293886b0e4b58277e5
5/3/20194:12AM
1分钟后,wojak再次调用TRXPro的正式版合约withdraw函数,转入0.011911,成功触发后门,提走合约余额2673万TRX,交易记录为:
https://tronscan.org/#/transaction/e26666a806e24697fd049e60cf83cf412f58d85cdb0493c014cef0d29d8bdc2e
根据以上信息,可以归纳出两个事实:
1、Tronbank上线之前的测试版本合约,没有后门,但最终线上正式版存在后门;
2、TSC开发者Khanh在Tronbank测试版合约发布当天部署过一个有相同后门的合约,并且知道后门的调用方式,且在4月30日自己进行过测试。也就是说,该后门与TSC脱不了关系。
在与Tronbank团队的沟通中,开发者提到,他们是使用TSC进行编译的。
注:以下内容是基于现有事实依据的可能性探讨,不代表最终结论和真相,请再次传播时不要断章取义。
在第一篇文章《被盗1.7亿BTT今又被盗2600万TRX,TronBank在刻意埋藏后门?》中,我们曾提到过三种可能性:
可能性一:Tronbank开发者在实际部署的合约中夹杂私货放置了后门,并成功了TSC完成了另一份没有后门的代码验证;
可能性二:Tronbank团队和TSC团队合谋,部署了有后门的合约,同时TSC协助用另一个没有后门的合约完成验证;
可能性三:Tronbank团队没有在合约中放置后门,而是后门在合约部署过程中以某种方式产生。
根据以上掌握到的更新信息,第一种可能性被否决,因为整个事件中,TSC开发者是最早调用后门的人,并不存在不知情被的情况,而第三种可能性的概率极大地增加。TSC集合了编译、部署、验证的一条龙服务,从理论上来说,如果开发者使用TSC进行编译并部署,期间确实有可能增加后门代码。
在事发当天5月3日,Discord上询问为什么TRXPro的实际运行代码与验证代码不一致时,Khank的回应如下:
上午7点22分回应:我刚起床听到消息,让我来扫描一下所有
晚上9点18分回应:各位抱歉,我也不知道为什么他们通过了我的代码
而5月5日当Khank的地址部署过后门合约并且调用的证据出现后,在Discord网友的质疑下,Khanh的回应如下:
MrFahrenheit:你怎么解释你的地址对另一个合约调用过可以触发后门的交易?
Khanh:我的私钥泄露了,github的密码也泄露了
这个回应显然过于苍白,一方面人们质疑如果私钥泄露为什么官网还挂着这个地址,另一方面该地址中还有28,052TRX没有被转走。
此时此刻根据已有的信息进行客观的分析,存在的可能性依旧有以下几种:
可能性一:Tronbank团队和TSC团队合谋,部署了有后门的合约,同时TSC协助用另一个没有后门的合约完成验证。
可能性二:Tronbank团队没有在合约中放置后门,而是后门在合约部署过程中以某种方式产生。
以上的两种可能性中,目前的证据对于而言偏向于第二种可能性,Tronbank团队目前正在多次与Khanh沟通,并将部分对话截图贴出,Tronbank团队坚持没有放置任何的后门,而是指向TSC是真正放置后门的元凶。目前虽没有决定性的证据显示后门是由Khanh放置,但是TSC和Khanh自身与后门已经脱不了干系。
可能性三:Khanh的github账号被盗,地址私钥泄露,幕后黑手另有其人。
关于这一点依照现有的证据,可能性较低,Khanh的回应含糊其辞,也并没有提供账户被盗的证据
至此最终的谜题仍未解开,这一场年度大戏尚未落下帷幕,更多的证据仍待挖掘。
wojak的财富密码
整个事件中,wojak的那一笔神奇的交易依旧是关注本次事件的群众口中一直谈论的话题。究竟是什么样的奇技巧能让自动执行的代码找到后门,并且触发后门?
在DappReview与wojak的对话中,给出了答案:
wojak的灵感来自于2018年8月的一篇论文《TEETHER:GnawingatEthereumtoAutomaticallyExploitSmartContracts》
该论文主要讲了什么呢?
基于底层的EVM指令,提出了存在漏洞的智能合约的一种广义定义;
提出了TEETHER工具,该工具能够对于智能合约的字节码进行自动化的漏洞识别并生成相应的漏洞利用代码;
对于以太坊区块链中部署的38,757个智能合约进行了大规模的漏洞分析,其中TEETHER工具发现了815个合约中的漏洞,整个过程完全自动化。
用一个不恰当但是通俗的比喻来说:TEETHER工具就是一台能自动从智能合约找漏洞并且提款的ATM机。
wojak基于这篇文章做了什么事情?
1、把TEETHER工具针对波场虚拟机做了适配;
2、收集波场上所有智能合约;
3、对所有的合约执行TEETHER工具来分析;
4、找到可能的套利机会比如从合约A中以X的价格购买某Token,然后在合约B中以Y价格卖出,整个流程都是自动化执行而且合法;
5、工具会产生一系列可能产生收益的交易列表;
6、脚本自动执行并出发这些交易。
本质上,那一笔神奇的交易就是这样自动触发的,连他自己都不知道发生了什么。至于wojak本身的行为是否可以定义为「黑客」,或者「违法」,此处暂且不展开深究。
有兴趣研究这篇「财富密码」的请看:
https://publications.cispa.saarland/2612/1/main.pdf
截至发稿,Tronbank已经宣布完成了链上投资数据的收集,统计完成后将按照原计划发放赔付TRX。此外,TSC开发者Khanh已经关闭了个人Twitter和Facebook。
来源链接:mp.weixin.qq.com
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。