编者按:本文来自链闻ChainNews,星球日报经授权发布。撰文:SamSun、AlexWade、ScottBigelow、TinaZhen、少平2020年9月15日,一个行动小组彻夜合作,从一个脆弱的智能合约中救出960万美元。下文讲述了他们的故事。SamSunakasamczsun自述
下面我总结一下审阅部分智能合约发生的故事。当然我没想到会有什么有趣的事儿。过去的几周中我看了无数收益耕种克隆项目一模一样的宣传模式:把你的代币放到我们手中,你就可能会成为下一个加密百万富翁。多数克隆项目只是对经过良好审计的代码进行分叉,加上些许的调整,而这有时会带来灾难性的结果。但是在所有的喧嚣中,有些代码我以前从未见过。本文中的主角、这份智能合约持有超过25,000个以太币Ether,当时价值超过960万美元,对于那些拼命从逻辑上发现错误的人来说,这将是一次收获满满的狩猎。
我迅速看了一下将ETH转出的代码,发现了两个匹配项。其中之一将ETH转移到了硬编码的代币地址,因此可以忽略。第二个是将ETH转移给发送方的焚毁功能。在跟踪了此功能的用法之后,我发现任何人可以免费为自己铸造代币,然后将其焚毁,换取该智能合约中的所有以太币都是不费吹灰之力的。我的心跳加速了。突然,问题变得严重了。我那份智能合约是LienFinance协议。不幸的是,他们的团队是匿名的!唯一的即时讯息支持平台是Telegram,而我不确定该Telegram频道的管理员是开发者还仅仅是某些早期支持者。我可万万不想将这一漏洞意外透漏给错误的人。在他们的网站又多浏览了一段时间,我发现他们曾与ConsenSysDiligence和CertiK合作,接受其代码审计。这看起来像是很不错的途径,ConsenSysDiligence和CertiK在审计期间肯定和开发者进行过互动。我迅速在Telegram上私聊了ConsenSysDiligence的安全工程师JohnMardlin。
观点:灰度胜诉可能成为新牛市开始的催化剂:金色财经报道,CryptoSea匿名创始人Crypto Rover在社交媒体表示,法院裁定SEC拒绝Grayscale比特币现货ETF 的决定是错误的。下一步是什么?可能所有其他比特币现货 ETF 都会获得批准,问题实际上是何时获得批准,而不是是否获得批准。该ETF是完全受监管的现货ETF,而不是合成版本。现货ETF意味着发行的每一股都必须以 1:1 的比例由实际比特币支持。鉴于这一要求,我认为这可能成为新牛市开始的催化剂。[2023/8/30 13:04:38]
发起聊天等回复是太煎熬的事儿。不幸的是,时间一分分过去,maurelian没回应。他好像已经睡了。绝望之下,我向ETHSecurityTelegram频道发了条消息,询问ConsenSys有没有哪位没有睡,请速联系。
几分钟后,我收到了一位过去有过几次合作的人的回复——AlexWade,ConsenSysDiligence的另一位安全工程师。AlexWade自述
我的脑袋刚刚沾上枕头,听到我室友敲门。「Sam在ETHSecTelegram频道问有谁认识ConsenSysDiligence的任何人。」
观点:YFII等去中心化产品的优势在于没有准入许可和隐私危机:Primitive Ventures创始合伙人万卉(Dovey Wan)在微博表示,二姨夫是一个狭义定义上的基于智能合约的去中心化被动投资平台,二姨夫这类产品的优势在于:
1. 透明和无第三方资金托管,可以在链上清晰看到每一步的钱都是怎么用的,随时赎回。08年的金融危机和前两年各种P2P暴雷,就是因为中心化金融产品是一个黑盒。
2. 没有准入许可,没有隐私危机。中心化金融的准入许可和手续繁多,并且有极高的隐私维护成本。并且中心化金融就是利用手里的用户隐私数据做了很多定价上的操作,我们常说的价格歧视,这个价格歧视可能是因为信用差距,也可能是因为其他的差异。去中心化相当于让每笔钱都在同一个平台上,每个地址都是平等的 ,每笔钱和每笔钱享受一样的服务。
3. 现在无法自动化的瓶颈是无法做链上的合约审计,保证合约安全是可以去做合约交互的第一步。Formal Verification等常用的合约审计手段暂时还无法上链,而且逻辑漏洞很多时候也只能靠人脑,等AI编程成熟,外加基础链的性能大幅度提高,预言机升级多N个版本。可能链上合约审计才有可能实现..[2020/8/26]
Sam与Alex对话中说今晚可能会是个漫漫长夜,事实确实如此一听说是Sam,我就知道这不会是什么好事。我找到了几个月前建立的与Lien沟通的频道以及一个电邮地址。他们团队可是个匿名团队,有这些总比什么都没有强。我当时依然半睡半醒。Sam不想在聊天中具体详谈,要求Zoom对话。我一面后悔干嘛要起床,一面评估事态的严重性:
观点:疫情之下日本一批投资者或已从加密交易所撤出资金以防范潜在风险:根据日本加密货币交易协会(JVCEA) 此前公布的3月数据,日本注册的活跃加密账户数量从2月份的2048501个减少到3月份的20448806个。这意味着3695个账户可能没有交易过任何数字资产。加密交易所Bitbank的市场分析师长谷川友哉(Yuya Hasegawa)在8月3日的一份报告中说,尽管三月份加密交易员的活动有所减少,但日本交易所的法定存款数量却有所增加。部分原因可能是日本家庭希望获得10万日元(约合940美元)的刺激资金。长谷川表示,其中许多存款在交易所停留的时间并不长。长谷川在报告中称:\"当新冠肺炎疫情冲击到更广泛的金融市场,并产生了追加保证金的需求时,一大批投资者可能已经从加密交易所撤出了所有资金,以筹集一些现金。一些投资者这样做,可能是为了防范紧急状态可能导致的收入减少和失业等潜在风险。”然而,长谷川表示,活跃账户数量的小幅下降“并不一定意味着日本用户对加密货币失去了兴趣”。(Cointelegraph)[2020/8/4]
五分钟后,我清楚了解我得喝咖啡提提神开始干活了。Sam和我一起审阅了代码。Sam当时已经准备好一个样品测试,能在其机器上确认这一问题。我们的对话寻找转移到讨论可行性方案:我们自己动手拯救这笔钱。联络上Lien团队,让他们公开身份,敦促用户撤资。两者都不是很让人满意的选择。第一个举动极为危险,如果您读过DanRobinson与Paradigm研究合伙人GeorgiosKonstantopoulos所讨论的以太坊DeFi黑暗森林一文,我们的交易被抢跑截胡的概率极高。第二种选择几乎同样危险,因为公开声明会引发外界对该问题的关注,给攻击者带来一个机会窗口。我们需要的是第三种方案。回想起以太坊DeFi黑暗森林一文中的部分内容,Sam联络了Amberdata工程副总裁ScottBigelow:「如果你切实陷入了这种困境,我建议你去找Amberdata工程副总裁ScottBigelow,他是一直研究这一课题的安全研究人员,有一套能更好实现瞒天过海目的的原型实施策略。」ScottBigelow自述
声音 | 赵东:BTC这次大涨 尚未看到资金大幅流入:据火星财经消息,DGroup创始人赵东表示:BTC这一波大涨,从交易上看,尚未看到资金大幅流入,但是继续走高。而之前从4000到8000的反弹是有迹象的:Tether持续增发10亿美元就是资金流入迹象。而从8000美元继续走高开始,还没有明显迹象出现。[2019/5/27]
我参加了以太坊DeFi黑暗森林一文中的资金拯救行动,最终败给黑暗森林狙杀者之后,我非常渴望能重赛一场。我花了一些时间监控抢跑截胡行动,设计了一个简单的系统,似乎能够过一般的抢跑者,至少我个人投入测试的200美元是成功拯救了出来。当Sam深夜联络我,诚恳得说「介意占用你大约一个小时左右时间吗」,我摩拳擦掌准备尝试了!我已经设想了那个画面:我如何做几个技术调整,需要几个小时,然后成功拯救用户数千美元的资产,戴着那种成就感,好好地睡上一晚。当Sam分享给我这个智能合约后,这些计划瞬间七零八碎:大约25,000个ETH,价值960万美元。我虽然非常想进行这种重赛,但我那几行破代码可不是给960万美元这种级别资产设计的。过去几个月,我一直试图与矿工们拉上关系,就为了这一目的:进行这类白帽拯救交易。如果有一个时间点需要矿工们帮忙,在其挖矿中写入一笔交易,以免被抢跑者偷走这笔钱,那就是现在。幸运的是,TinaZhen和我过去几个月联手寻求建立这种协作关系。当时这一拯救行动的成功希望渺茫,但值得一试:让Tina参与这一拯救行动,与一个矿池合作挖出一笔私下交易。TinaZhen自述
我刚刚因为加州代号「山猫」的森林大火从家撤离,当时正在喝着不知名的沙滩饮料,听着暗淡的太平洋送来的海浪声,Sam的Telegram私信使我回到了一个更黑暗的现实:「资金有风险,可能被截胡」。过去的几周中,我一直与Sam和Scott合作开展有关「矿工可提取价值」MEV的研究项目,并且在他们发送请求之前就已经猜到了:一个直接的渠道,可以保护白帽交易在以太坊内存池mempool这一「黑暗森林」中免遭「抢跑者」掠夺。由于这是一个冒险的举动,需要将我们的策略暴露给矿工,因此我们决定首先尝试从匿名的Lien团队获得开绿灯批准。当Alex试图通过ConsenSys内部频道进行联系时,我们也尝试联系CertiK。我意识到,Certik在美国的审计人员得过四个小时才会起床,但时间已经刻不容缓。我对CertiK了解不多,只是知道他们曾审计过几个亚洲项目,于是试图联络CertiK中国团队。我在「DeFitheWorld」和「YellowHats」两个微信群里分别留了一条语音留言。我的私聊里30分钟内接到四条信息,确认了我微信好友中的这个ID是真正的CertiK首席技术官倪兆中ZhaozhongNi。我被拉进由五位CertiK团队成员组成的一个微信群中,而当时我依然不能透露相关项目或漏洞。为了将暴露风险和潜在责任降至最低,我们只能邀请一位Certik成员加入我们的白帽行动。经过官方邮件最终确认后,CertiK的工程负责人GeorgiosDelkos加入我们的对话。在Georgios的帮助下,Alex得以迅速联络到Lien团队,并验证确认其身份。我们让他们最快速度了解到目前的严峻形势,争取其同意,直接与一家矿池合作拯救这笔脆弱的资金。在考虑之后,Lien团队赞同直接拯救资金或发布预警声明过于危险,同意我们推进这一方案。现在我们需要找一家基础设施充分到位、愿意尽快与我们合作的矿池。我们应该找哪家矿池?这家矿池的哪位联络人能迅速做出技术决策,帮助我们争分夺秒执行这一行动?我们想到了星火矿池SparkPool,我知道了他们一直在打造名为TaichiNetwork的公众基础设施,能轻松给予我们所要的支持。我决定私聊星火矿池联合创始人少平ShaopingZhang,他之前曾帮我调查过mempool安全事件。半个小时后,少平回复了:「你是说我给交易开白名单?抱歉,我们不能。」好吧,lostintranslation,中文里「白帽」whitehat和「白名单」whitelist看起来有点像。「现在有1000万美元危在旦夕。我和Samczsun在线,」我再次试图在不透露任何具体细节的情况下沟通这一局面。
声音 | 肖磊:这次推动比特币价格暴涨的,是那帮富人:财经专栏作家肖磊发文表示,在主流资产里面,年初至今表现最好的资产是原油,目前的涨幅超过40%,但跟比特币这个异类相比,似乎还是逊色了很多,比特币目前的价格,比年初价格高出95%。他认为,如果硬要给比特币价格的上涨寻找原因,可以列出无数个理由,但大部分投资者,或者说站在这个市场之外去看,应该来说普遍的解释可能是投机情绪的上升。肖磊指出,比特币诞生的逻辑,跟期货、保险等类似,它增加了一种选择,用来应对未来的某些不确定性。首先是信用货币的不确定性,其次是金融服务机构的不确定性,第三个是国家壁垒的不确定性。他表示,比特币作为一种社会资源,它的流向,注定是从中产阶级手里,流向超级富豪手里。这个是符合科斯产权理论的,最终来看,谁能用好它,或者说,它在谁的手里,发挥的价值最高,它就是谁的。肖磊最后表示,这一轮比特币价格的上涨,不是极客们的乌托邦畅想,也不是草根散户的暴富美梦,而是国际诸多的富人俱乐部,开始向超级富豪们提供比特币服务。[2019/5/13]
「你俩在拯救世界?需要矿池帮忙吗?」有点意外也让我松了一口气,少平调侃着表示愿意提供帮助。在经过官方邮件确认后,少平进入我们马拉松般的Zoom电话会,并由大批星火矿池开发人员给予技术支持。少平自述
吃过午饭,我正准备小睡一会儿,然后收到了Tina的一条微信:「星火矿池帮忙进行过白帽交易吗?」我一开始看错了,当时看成了给交易开白名单。以前没有人联系我们进行白帽交易,我们也不熟悉「白帽交易」具体什么情况。Tina更详细解释了以后,我意识到他们需要一笔私下交易服务,比如,白帽黑客想发送交易来拯救一个DeFi智能合约,但要防止被别人抢跑截胡,他们需要矿池在不广播交易的情况下将交易写入区块。我们一直在TaichiNetwork打造私下交易功能,这个功能还在开发中,还没测试过。我把白帽黑客的请求告诉了我们的开发团队,并强调了这种紧迫性:我们的私下交易功能需要在几个小时内顺利进入生产阶段。我们的开发人员说会尽力完成,然后迅速投入工作。我们在两个小时内完成了私下交易功能的开发,又花了点时间修复了bug。我们完成了内部测试后,把hitehat.taichi.network端点发送给ScottBigelow,来完成白帽任务。ScottBigelow自述
星火矿池加班加点推出了全新的白帽API,Sam和我也完成了脚本编程,生成四个先后衔接的签名交易。依次处理这些交易本身不会取出25000个ETH,但会把30,000个SBT+LBT代币转移给Lien团队,他们可以将其提交给最终交易,将这些代币再转换成ETH。通过将可以无限铸造的SBT+LBT代币转移给Lien团队而不是ETH,我们使用了更多交易作为障眼法,迷惑广义强迫者的攻击,能够让960万美元的收入一直不会进入我的腰包,片刻也不可以。我们生成四个签名交易后,Sam和我花了大量时间、利用各种多方交易模拟工具验证其连环行动。总数据量不到1.5KB的这四个交易程序,就是拯救960万美元资产的杀器,保障在星火矿池捕获这些交易之前不会被任何人先知先觉。我用一笔无意义的交易测试了星火矿池的白帽端点,其执行过程毫无偏差:该交易不会在mempool中看到,然后突然出现在星火矿池的一个区块中!就像眼睁睁看着水蒸气直接变成了冰,中间令人讨厌的液化过程完全看不到!我们调整了交易生成脚本,将交易直接提交给星火矿池的新端点,现在该是行动的时刻了。我犹豫了一会儿,但这绝对是我们能做到的最好的努力。我们可能会损失掉这960万美元,但不会后悔:我在IntelliJ中点击了「运行」。我不确定为什么,但我之前预计整个过程会花点时间,就像节点会了解情况的严重性,然后在其中消耗一些时间。但实际上它没有;交易以毫秒为单位发送。Zoom通话中的每个人都开始疯狂刷新Etherscan,我怀疑Etherscan团队是否看到了这3分钟的流量高峰。由于只有星火矿池有交易,并且星火矿池的哈希率中只有一部分专用于此目的,我们能做的只能冒着冷汗焦急等待。每一个其他矿工挖出的每个区块都让我们胆颤心惊。Zoom电话会中会有人伴随着紧张的笑声念出挖出区块的矿工名称。我们的交易被写入区块之前大约会产生15个区块,我们却感觉度日如年,像是经历了几个小时,但最终,我们完成了完美无缺的交易:依次挖出,没有回滚。我们如释重负地看着越来越多的区块叠加在我们的区块之上,对区块重组的担忧迅速消失。Lien团队现在拥有足够的SBT+LBT代币来清算整个系统的资金,Sam负责协调救援的最后阶段。SamSun自述
现在我们已经成功地将代币转移给了Lien团队,并没有发现任何强迫截胡迹象、尝试或其他迹象,我们很快用私聊告诉了他们这一好消息。他们确认已收到代币,并立即发送交易,以取出智能合约中锁定的大部分ETH。几秒钟后,Etherscan上出现了这一待处理的交易。看着进度条转圈时,我借此机会反思了这一行动。最开始就是看了看智能合约,最终演变成吸引了世界各地专家通力协作的一场「拯救大兵瑞恩」行动。如果没有Alex和Georgios,我们将无法与Lien开发人员取得联系。没有Scott,我们的拯救行动可能早就陷入困境。没有Tina,我们将无法与CertiK或星火矿池取得联系。没有星火矿池,我们注定要重演Dan几周前文章中写的悲剧。然而在周二深夜,我们这个看似完全没有可能合作的团队为了同一个目标通力合作,经过不懈努力,最终确保960万美元物归原主。我们过去七个小时的努力最终汇成一笔待确认的交易和这个转圈的进度条。当进度条最终显示为绿色对勾,Zoom电话会的紧张气氛终于烟消云散,大家都长舒了一口气。
https://etherscan.io/tx/0xe99ccb0b21854b65a2fa283638ab9ef01962b61c3310b596b4597bf22b911a43我们终于成功杀出黑暗森林。本文记录了很多人努力工作的成功。特别感谢拯救危难的AlexWade、ScottBigelow、TinaZhen、GeorgiosDelkos和星火矿池SparkPool,以及审校本文并给予反馈的AlexObadia和DanRobinson。如果你对这一行动背后的技术细节很感兴趣,请点击这里了解更多。如果因为种种原因,你还没读过以太坊DeFi「黑暗森林」一文,你确实应该读一下。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。