用声音碰撞世界,
生动活泼。
hello,
大家好,
我是丁,
欢迎收听全新一季。
嗨,
大家好,
我是金致流灿,
那今天要跟大家分享的是一个非常有意思的话题,
它可能是WEB3近期最大的两件事儿,
他就是noma和solona黑客事件,
这个事呢要回到8月1号,
当时nomabridge是遭到了黑客的大量攻击,
被抢劫的金额总计是价值1.86亿美元左右,
这个事儿后来就在WEB3领域里面迅速引起了轩然大波,
因为no麦今年4月份才刚刚完成了由policapital领头的2240万美元的种资轮融资,
可以说是非常有代表性的跨链项目。
而且这一次呢,
出现了很多不怎么动WEB3甚至是代码技术的人参与了这些抢劫,
他们也在后来被统一称为follower,
也就是模仿者。
那根据corinbases在8月10号发布的统计,
有90%的地址都是模仿者,
那紧接着在8月3号又发生了另一起黑客事件,
他是出现在solona生态里的。
那当时是有很多推。
EG上出现有用户反馈说自己是phantomslope这样基于solona生态的钱包用户,
但是呢,
自己钱包里的钱不见了,
后来8月4号还媒体就统计这样的钱包被攻击的数量是有将近8000个,
而总计丢失的加密资产金额大约是800万美元。
后来solona基金会也给出了自己的解释,
那他们认为这事儿呢跟solona生态没有关系,
主要问题是出在了钱包的项目方。
如果我们去看今年上半年,
其实类似的黑客抢劫事件是频繁发生的,
那总计的损失的资产金额也很高,
大概是22亿美元左右。
那比较有代表性的几个就是比如2月份的solonawarmhome虫洞,
他们就损失了价值3.2亿美元左右的加密资产,
而我们节目屡次提到的GA项目Xinfinity,
在今年3月他的侧量running也被黑客攻击,
损失了价值6.2亿美元左右的加米资产。
那。
这个金额其实就已经是超过了2021年8月poly黑客事件中6.1亿美元损失的最大规模,
那在跟很多从业者交流之后,
我们发现WEB3安全在这两年其实应该是引起了广泛的关注,
如果我们去看一些WEB3安全的独角兽,
他们在2022年就已经出现了投资的现金流和收入的现金流双重增长的这样一个趋势,
那今年年初开始呢,
与WEB3相关的安全技术啊,
创业项目在一级市场大家都能够看到有大牌投资机构的入场的身影,
所以本期节目呢,
我们是想讨论怎么去看待这近两年WEB3频繁发生的安全事件,
这些事儿发生的根本原因是什么?
那WEB3生态又是受到了什么样的影响?
最重要的是安全到底会不会在WEB3领域成为一种必备的刚需?
那我们邀请参与讨论的第一位嘉宾就是keystone的创始人刘立新。
呃,
使用过madams的人应该是知。
到,
因为他们是合作伙伴,
然后kingston的另外一个合作方so呢,
刚好也是8月初solona这个钱包被盗事件里面,
前三大钱包中唯一一个没有受到攻击的,
所以他对这个事儿是有近距离的观察,
那第二位嘉宾是安全领域的研究学者周亚金周教授,
呃,
周教授在北卡读博的时候是是从蒋旭先蒋教授那在安全领域里面也是发表了多篇被广泛引用的论文,
周教授的团队在nomad这个事儿发生之后,
非常快的就把这个事从头到尾的拔了一遍。
那我们就先请周教授讲一下他对no脉这个事儿来龙去脉的总结和观察,
周教授好的好的,
谢谢。
这个罗曼德事件其实是一个嗯,
我们觉得蛮有趣的这么一个事件,
它的有趣的点主要是在于说它的这整个的攻击过程啊,
它其实是比较简单的,
就是说不像以前我们可能有很多这种合约漏洞,
然后你发起攻击可能需要非常啊复杂的一些技巧,
你需要很经过很复杂的一些流程的准备,
要去写很复杂的攻击合约,
而在这个no曼的这个事件里面呢,
它的攻击的过程非常简单,
你只需要copy网上别人已经做好了一段,
这个我们叫要paylo,
然后去修改,
稍微修改里面的参数,
甚至网上这个教程啊,
教你怎么去做,
然后你就可以去发起攻击,
就可以把资产从诺曼的跨境场里面转到攻击者所控制的这个账户里面,
所以正是因为他这个攻击的过程比较简单,
所以出现了大量的这个follower来去,
无论你是说他是rescue也好,
或者说。
是从这个点也好,
或者感兴趣,
那就是出现了很多同时来去供这个跨,
那根据我们这个自己的一些来看,
大概是有400多个到500多个地址参与了这个攻击,
那这个地址就包括发起攻击的地址,
以及最后的获利地址,
但因为一个实体可能控制多个地址,
那么真正参与的这个实体的人数可能会少于地址的人数,
然后这个事后呢,
这个罗马的官方他也公布了自己的一个这个叫资金归还地址,
那么老马的官方就是说,
那如果参与这个公积的,
无论是谁,
你只要将90%的资金这个归还给啊项目方,
那么项目方就认为你是一个白帽子,
然后呢,
就不会对你采取任何的这个返利的措施,
那我们也就观察,
其实大约只有30%左右的资金,
其实目前是还到啊,
项目方公布的地址里面啊,
然后呢,
还资金的地址数的数量的比例其实是比较高的,
呃,
具体大概是。
按以上就是地址的比例,
但是归还的金额的比例实际上只有30个面店吧,
所以其实差不多在就是离一半还差的比较远啊,
这里面主要的原因是因为其实有两个地址处,
就是有两个实体,
因为我们会的地址做聚类,
有两个地址处,
这个控制的人其实是脱离了差不多这个一半的这个资金,
而且这两个者呢,
它的资金的来源和资金的去向都是从这开始,
所以我们其实大概认为啊,
这个其实是啊,
真正的者他不是这个followler,
也就是说这个资金可能大概就基本上不太可能追回来了,
所以这个就是我们观察到的,
从事件的这个发生,
然后为什么那么多攻击队员,
以及事后的整个追损的一个情况吧。
可能听众当中可能有一些人对这个区块链的原理这些不是特别了解,
最简单的说呢,
就是区块链上面呢,
会记录很多,
呃,
区块链是公开信息,
首先这个大家可能知道,
就区块链是一个公开的,
然后去中心化的这么一个透明的这么一个账本,
然后在这个账本上呢,
记了很多的账,
然后呢,
当中有一部分的这个账就是nomad这个跨链桥的账。
然后农麦的这个跨链桥是干嘛的呢?
是因为有很多的不同的区块链,
然后不同区块链上面又有不同的资产,
跨链桥做的事情就是把这个资产跨来跨去,
就比方说你在以太坊这条链上有以太坊的资产,
然后现在呢,
在另外一条链上呢,
有其他的一些应用也好,
金融产品也好,
你想去参与,
那你就需要把资产跨过来,
所以这个就是像no麦的这样跨链桥在做的事儿。
然后回到前面说的,
在区块链上就有很多是这个noma的交易,
它是记录在区块链上,
这个也就是刚才周教授说的那个所谓的配漏的,
就这个交易信息记录在区块链上,
然后他这个攻击是怎么一个原理呢?
简单到什么程度呢?
简单到就是说你只要去把区块链上面的no麦的这些交易信息给摘出来,
然后呢,
可能去修改几个参数,
再把这个交易信息提交给农麦的,
农麦的就会认为啊,
你这个信息是有效的,
然后呢,
他就会给你把它那个。
可以理解成他有一个小金库,
然后就把小金库里面的钱给打给你了。
举个可能不恰当的例子,
就好像有一家银行,
然后这家银行的这个支票是一个公开信息,
然后你很容易就能复制这个支票,
然后你复制了支票以后,
拿张支票去问银行要钱,
然后银行就会给你钱。
就这么简单,
所以他这个逻辑机制非常简单,
以至于很多没有什么技术背景的人,
可能看花五六分钟时间看一篇网上的教程,
它就能实施一次攻击,
而且他这个攻击不是说每个人只攻击一次就就完事了,
其实你是可以反复的不停的攻击,
就不停的从这个银行里面,
用这张假支票,
从银行里面把钱,
把钱给薅出来,
就这换成自己的地址就可以了,
对吧?
对,
换成自己的地址,
就是稍微改几个参数,
换成自己的地址就是别的交易,
可能是别人的地址,
你把别人地址改一下这个支票,
这个钱就到你账户里面啊,
然后周教授刚才讲的还有一个点特别有意思的就是rescue。
就rescue是这个拯救的意思嘛,
中文是拯救的意思,
就特别有意思的点,
就是说有些人不停的从里面提钱,
然后提出来以后呢,
别人问他,
诶,
你是个黑客,
你从里面偷钱了,
因为有有些地址,
他可能就比较知名嘛,
你采访世界很多人,
他用的地址都是,
比方说自己的主地址,
那你的主地址可能你有朋友知道你用这个地址,
这些人就会被质问,
诶你再从里面偷钱,
然后他说不不不,
我没有投钱,
我是把这些钱提出来拯救这个项目方,
然后回头再把钱给他还回去,
所以就就非常有意思,
就有有不同的揣测,
有不同的揣摩,
然后不同的有不同的意图,
呃,
当然最后就像周教授说的,
项目方说如果你把90%的钱还过来,
剩下10%的钱你可以留着,
你把90的钱还过来,
我就算你是一个白帽黑客,
就你再帮我拯救这个项目,
对,
这是非常有意思,
但大部分的钱最后还是没有,
还是没有退回去,
就像都教授说的,
对。
呃,
猎心,
所以周教授聊的这个noma事件,
跟近期我们现在因为刚刚录职之前,
你也说solona这事还没结束,
跟solona最近发生这个事儿,
他怎么我们怎么去比对呢。
嗯,
Sola,
那这个事情可能要从就是一个钱包的原理开始讲,
比方说大家要开一个银行账户,
对吧?
大要开一个银行账户,
当你在开银行账户的时候,
其实你是跑到银行去,
然后提交了你的所有的身份证等等这些信息,
然后银行指定一个银行账户给你。
然后你就用这个银行账户可以收钱,
然后银行保证了每个用户,
就是他的每个客户之间的这个银行账户不一样。
但是在去中心化的世界里面,
没有这个中心化的这样机构来确保每个人的账户不一样,
所以在去中心化的世界里面,
它是怎么保证这个账户和账户之间不一样的呢?
这原理非常简单,
就是随机。
什么意思呢?
就是说你可以想象一个很大很大的一个池子,
这个池子里面有很多很多的账号,
然后呢,
你随机去挑取一个账号,
只要你这个随机挑取账号的时候,
这个充分的随机,
它就能保证你挑的这个账号跟别人的账号不一样,
然后这个池子有多大呢?
这个池字是2的256次方,
这个数字的大小就约等于整个宇宙的原子的数量啊,
所以这里有最关键的一步,
就是说。
当你在挑选这个账号的时候,
你必须充分随机,
当然再往深挖一层呢,
就是说你其实第一步挑选的不是一个账号,
你不第一步挑选的是一个私钥,
然后呢,
由这个私钥呢,
又会派生出你的这个账户的信息,
呃,
然后私钥呢,
你必须把它保管好,
为什么?
因为当你这个账户信息里面有了钱以后,
你是怎么去移动这些钱呢?
就需要你用这把私钥去做一次,
在密码学上面去做一次签名,
所以这个私钥是整个区块链世界,
整个外部世界当中最最最最关键的信息。
然后一般钱包创建的时候,
它就会帮你创建一个私钥,
并且这个私钥呢,
会对应一个东西叫助剂词,
助剂词什么意思呢?
就是说它是这种私钥的,
这个私钥的另外一个展现形式,
一般就是12个或者24个英文单词,
大家如果有玩过这个钱包的话,
可能知道这个流程里面最关键的一步就是让你把这12个或者24个单词给记录下来。
然后呃,
这个单词记录下来是什么用呢?
因为钱包它有可能会比方说停止运营了,
或者说你的手机会坏,
对吧,
那这个12个或者24个助剂词,
就是帮助你去恢复出你的私钥,
以及恢复出你的账号的这样一个功能,
因为这这12个或者24个词,
这个诸暨词是每家钱包都是通用的同一套标准。
所以你把相同的注基词导入到不同的钱包,
理论上来说,
只要这个钱包它呃follow了,
它严格按照这个通用标准来执行的话,
那你用同样的注基词就能得到同样的账户,
并且你还能继续操作这个账户里面的资产。
对,
这个也是整个区块链世界WEB3的这个去中心化的一部分嘛,
然后索拉那那个事情他。
为什么会发生呢?
这个问题最大就是发生在这个注基词上面,
因为刚才说了,
注基词非常非常重要,
对每个用户来说都非常非常重要,
你必须得加倍小心的保管它,
因为呃,
区块链是没有任何风控机制的,
你如果在传统世界,
比方说你今天突然用信用卡刷了5万块钱,
可能银行会先阻止这5万块钱,
然后打电话给你问,
你说诶,
你是不是花了这么多钱,
因为中心化的机构,
它的这个安全的责任其实很大的都放在了中心化机构上面,
比方说银行上面,
但是区块链世界是没有任何风控的,
你的注基词,
谁拥有你的注基词,
它就能够毫无障碍的去操作你的你在区块链上的所有的资产,
所以这个诸暨词是非常非常重要的,
然后索拉娜的事件里面发生的也是极其愚蠢的一个错误,
就是就当然这个事情还没有完全的彻底的被理清楚,
大概只有丢掉的30%的账户,
他们的原因是因为这些使用这些账户。
个人使用了一个钱包,
然后那个钱包呢,
他把用户的助剂词上传到了云端,
就相当于把用户的注剂词传到了别人的这个数据库里面,
有很多人揣测他这个是倒是故意这么做哈的,
然后其实呢,
从表面上看起来的现象啊,
他们用了一个这种监控手机软件使用的这么一个开发者的一个工具。
呃,
你可以理解成比方说我们在使用微信的时候,
有的时候比方说微信会闪退啊这些,
呃,
你每天打开了几次朋友圈,
然后你每天发了几条信息,
就这些信息对开发者来说是非常重要的,
能够帮助他们去解决产品里面的问题,
去优化产品,
所以几乎我们用的所有的手机APP都会多多少少使用这样的开发者工具,
帮助开发者去更好的优化他的产品,
然后那个钱包他做的非常扯的一点是什么呢?
就是他在使用这个开发者工具的时候,
不小心把这个助记词也上传到了这个开发者工具的这个数据库里面。
呃,
理论上这些信息都是应该完完整整的,
不能分享给任何人的,
因为这个注题词就是用户自己掌握的东西嘛,
不能分享给任何人,
但是他把这个信息啊上传到了云端,
呃,
但是呢,
到目前也没搞清楚是那个工具本身就是做那个开发者工具的厂商内部有内鬼把这些主题词给提取出来,
还是有漏洞,
还是说这个钱包自己有内鬼把这些信息都拿到了,
所以到目前这件事情还没有一个定论,
所以这也是也是近期非常非常有话题性的这么一个安全事件吧。
我理解其实这都是属于项目方,
它本身就是他们两个,
其实项目方都可能会存在风险管理能力有缺陷这样的一个问题,
可以这么说,
可以这么说,
周教授你是怎么去看诺曼事件里面项目方他的这个管理能力是出现在了哪里呢?
就他是犯了什么样风控上的错误,
这个项目方我们讲区块链安全,
它其实是一个,
就是涉及到蛮多不同阶段的这么一个安全,
那实际上我们在讲安全的时候呢,
现在区块链安全往往大家都是在讲是我的这个合约经过审计的,
那no曼的合约确实经过审计的,
而且是一个蛮知名的和啊老牌的这么一个审计公司,
但是问题是no曼的这个项目方本身啊,
在运营这个项目的时候,
就是项目审计上线之后,
其实我觉得整体的风控体系做的不是特别的好,
或者说从公开披露的资料来看,
就没有做,
呃风控,
呃怎么讲,
因为农曼这个事情,
这个资金被盗的时候,
因为你做一个跨电厂对吧,
你做一个金库,
你的金库里面有那么多的钱,
然后当你的这个金库出现。
异常的资金流出的时候,
项目方自己是不知道的,
那这个事情是其他的安全的研究人员,
首先其实在一个TG群里面报出来的,
而且这个研究人员其实也不知道他的,
他只是观察到现,
所以这研究人员肯定是有自己的一套监控体系,
然后他就观测到说诶,
这个老曼bridge里面好像这个资金有异常的流出,
然后就问一下大家知不知道这是怎么回事,
其实他也没有去看具体的原因,
对吧?
后这个时候项目方还是不知道的,
然后其他的社区的这个研究人员啊,
就一起看了一下才确定的原因,
啊,
原来是一个漏洞造成的,
然后事情就在社区开始发酵起来的,
然后项目方可能是啊,
过了几个小时之后啊才知道,
哦,
原来我的这个项目出问题了,
对吧,
然后我的钱不停的在往外走,
但是这个时候呢,
项目方无能为力,
对吧,
这个涉及到项目方分控的第二个点,
就是他对整个的合约,
他没有一个emergencypo的机制,
那我觉得这个机制其实也是对于这种大额的资金的项目是非常有必要的,
对吧?
那因为谁也不能保证我自己的项。
项母永远没有安全漏动,
因为这个世界上不存在绝对的安全,
所以你一定要在,
嗯,
对,
所以这个就是我们也很困惑,
就是我们后来猜测就是我觉得有两个原因,
那第一个原因呢,
就是这个项目方可能没有意识到有没有进行po机制的重要性,
对吧,
他认为我的合约经过审计的就是安全的,
所以我上线之后,
呃,
既然我合约是安全的,
那我也没有必要说不会发现emergency实情,
对吧,
我就不不需要这个机制,
那我觉得第二个可能的原因呢,
是emergency,
这个就是我们叫emergencypass的这个机制,
在社区来讲呢,
其实是,
呃,
有一点争议的啊,
为什么它有争议呢?
就相当于这个赋予了项目方一定的中心化的权利,
对吧,
也就是说项目方可以在呃,
发生emergency的时候,
他可以去把这个协议给终止掉,
所以它有一定的中心化的风险,
那所以呢,
呃,
有的时候社区对采用这个emotion的机制的项目是会有一点点的这个concern,
但是从目前整个安全的实践来看,
采用POS机的项目已经成为一种共识了。
呃,
我觉得无非就是这个机制是共识,
那无非你就是在怎么使用的时候,
你可以避免很多中心化的风险,
比如说你的谋进神POS机制的这个账户可不可能是一个这个多签钱包,
对吧?
那么可不可能有呃一些这个呃道提啊,
当然这里面又涉及到道题啊,
它的效率问题,
但是这个是呃延制效的问题,
那本质上你项目还是要有机制,
只是说怎么触发可以降低中心化的风险,
那我觉得是另外要讨论的问题,
对。
对周教授中心化的风险我不知道,
也可以请立新来一起解答这个问题。
什么叫做中心化的风险,
是比如说用户的信任度可能不够高,
还是理论上来说,
就我们假设一个最理想的去中心化的世界啊,
就以太坊的去中心化,
假设以太坊是一个完全去中心化的世界,
它会发生什么呢?
它会发生呢?
首先所有挖矿的人他是去中心化的,
就是可能全球好多好多人一起在挖矿,
这样的话呢,
比方说一两个挖矿的人他不参与了,
那不会导致整个或者说一部分挖矿的人不参与了,
他不会导致整个系统的宕机。
然后那跟中心化的这个呃情况相比,
比方中心化,
你用一个中心化的一个服务,
比方他就算用了非常稳定的腾讯云,
阿里云,
亚马逊云这样的云服务,
它还是存在宕机的可能性,
所以这个就是驱动心化的中心化第一个点就是它的英文有一个词叫robust,
或者robust就是它的这个系统的鲁棒性啊,
标准叫鲁棒型,
如果或者可以翻译成稳定性,
就区中心化的系统呢,
它的稳定性,
因为它节点足够多嘛,
所以它就会这个稳定性就会非常强,
然后呢,
当这个系统稳定的跑起来以后呢,
在这个系统上就会有很多的智能合约,
呃,
这个智能合约指的什么意思,
大家简单可以理解成一大段的代码。
然后这个代码被部署到了以太坊这个区块链上,
这个代码如果足够的区中心化这个代码的运行,
没有任何人能够阻止它的运行,
你只需要支付这个代码运行的费用,
也就是矿工费,
你给这些挖矿的人支付一点的矿工费,
好,
他就会帮你去跑一下这个代码,
你支付一次它跑一次,
支付一次跑一次,
然后这个整个过程也是完全去中心化的,
也就是说当他这个代码一旦被部署上去以后,
就没有人再能去修改它,
没有人能够停止它,
就它永远就会在那里,
只要你付矿工费,
而且这个矿工费只有涉及到最近一些这个censorship,
就是一些这个审查相关的一些问题。
就理论上来说,
如果这个矿工足够的去中心化,
比方说有一个矿工,
他呃遵守这个美国相关的审查的条例,
他不帮你执行某一个代,
某一段代码,
但其他的矿工他可能会帮你执行,
那你总能找到可以帮你执行,
所以这个就叫做这个去中心化,
或者说在这个代码执行。
上面的去中心化,
这个也是以太坊带给这个世界很大的意义,
然后具体到刚才周教授说的那个问题啊,
就emergencyp,
就是这个紧急,
大家可以理解成就像刹车一样,
就紧急制动的这么一个意思,
就是说能够他在这个合约里面有一部分代码,
指的这部分代码可能定义了。
呃,
某一个账户,
就我刚才说的那个钱包,
某一个账户可以发出一个指令,
这个指令一旦发出来,
就会让整个这个它的这个跨链桥的资金冻结,
比方说谁也不能从里面提出来钱,
这个就叫emergencyPOS,
然后这个东西它为什么会有中心化的风险呢?
因为你想,
因为刚才我解释了很多去中心化,
去中心化它带来的好处就是说任何人都不能阻止它的运行嘛,
但如果存在这么一个口子,
允许项目方把它给暂停掉。
啊,
那这就是一个中心化的一个风险,
举个再极端一点的例子,
就比方说这个项目方他想作恶,
然后他有这个紧急暂停的这么一个权限,
比方说他这个资金池里面已经有了3亿美金或者5亿美金,
然后他按下了这个紧急停止的按钮。
然后他向所有用户说,
OK,
你们自己去募集1亿美金,
打到我的一个账户里,
然后我就把这个开关给解除掉,
然后你们可以把钱提出来,
当然这是一个非常极端的一个例子啊,
想用这个例子表达的就是社区,
他有的时候他希望这个东西尽可能去中心化,
不要被一个中心化的per也好,
或者项目方也好,
把这个给阻止掉,
然后周教授刚才也解释了,
就是怎么把这个紧急暂停的这个按钮变得更加去中心化,
周教授刚才提了一个概念叫多签,
多签的意思就是说。
这个紧急暂停的按钮可能不是被一个人控制的,
他可能是被若干个人控制的。
然后这若干个人,
呃,
理论上如果你要做的足够的去中心化的话,
这若干个人也不能全部是项目方的人,
因为全部是项目方的人呢,
他们都是利益共同体嘛,
所以呢,
一般来讲,
这若干个人他可能会是一些行业里面,
比方说这知名的投资人,
记者,
比方说以太坊基金会,
甚至比方说你认识一个以太坊基金会的人,
那基金会的人他肯定不希望这个emergency,
就这个紧急暂停的这个功能被滥用吧,
他的角度肯定希望这个社区变得更好,
所以通过这种多签账户来控制这个。
紧急暂停按钮的这样的方式,
就能够把这个机制变得尽可能的去中心化一点,
所以这个像周教授刚才说的这个现在也是就是以太坊世界比较通用的一个做法吧,
既然大家现在已经想出了一套解决机制和解决问题的办法,
为什么针对黑客事件,
或者我们说区块链的抢劫事件,
我们仍然没有很好的应对应对方法,
为什么从我们打比方Norman是个跨链项目,
从跨链项目出现以来,
他就一直有这种不停存在的安全的争议的问题呢?
我不知道周教授怎么想。
首先就跨链条的出现,
它是一个刚需对吧,
它其实有有很呃多的这个需求,
是需要在不同链之间去这个转移资产,
所以才出现跨链条这么一个东西,
然后跨链条出来之后呢,
其实一直是出很多很多的安全事故,
而且每一次的安全事故其实造成的损失都是蛮大的,
那这里面我感觉可能有好几个原因嘛,
就是说导致为什么跨链桥啊,
比较容易受到攻击,
或者说啊,
受到攻击的这个可能性很大,
并且呢,
被攻击成功的概概率也比较高,
可能有几个原因,
第一个原因就是还是这个我们讲经济利益的刺激,
因为你跨链条作为一个拥有这么大资金量的这么一个项目和实体,
一定是成为很多攻击者的这个目标,
对吧,
因为这个里面呢,
可能获取的经济利益实在是太多了,
所以就导致有很多的人不停的在研究跨链桥,
以及跨链桥里面可能出现了攻击向量,
这个时候有人可能说那没关系啊,
因为这些跨链桥项目是经过审计的,
对吧,
那经过。
跟审计的人不也是从安全的角度来去发现这里的安全威胁吗?
但是你要知道,
呃,
我们讲这个安全,
有的时候它是一个不平衡的战争,
那所谓叫不平衡的战争,
就比如说审计公司,
我可能花啊两个月的时间去非常完善的去review了这个跨链条的代码,
但是攻击者他可能不是花两个月的时间,
可能是有很多很多的这个,
呃,
研究的人他花了两年的时间,
对吧,
或者说更聪明的人,
然后他花了很多很多的精力在这里面去研究这些,
所以他是一个不平衡的战争,
对吧,
你一个审计的团队和一个这么大的一个攻击的社区,
在不平衡的战争里面,
所以由于经济利益的刺激,
所以攻击者他往往会投入很多的时间和精力去研究,
然后来找这里面可不可能有攻击的点,
我觉得这个可能是第一个有可能被蛮多跨链条被攻击的原因啊,
那么第二个原因就是跨链条的这个攻击面确实也比较大,
就是跨链条它整个技术架构体系相对于其他的区块链上项目,
D项目其实是比较复杂的,
它涉及到。
原链上的智能合约,
目标链上的智能合约,
那这有的时候原链它都不一定是个智能合,
原链可能是一个我们讲类似于像应用链这样的一个实体,
然后还涉及到中间跨链的这个链,
对吧,
或者说叫跨链的也好,
或者是叫跨链的这么一条链也好,
然后还涉及到整个中心这个实体对于跨链交易的一些验证,
就他有很多很多的这个交互和攻击向量,
所以就导致他被发现问题的概率就会比较高,
那你想这么一个目标,
它既有利可图对吧,
钱特别多,
然后有利可图,
攻击者研究的这个动力特别大,
然后他的这个攻击面的向量又相对比较多,
然后再加上项目方,
他可能安全的意识不足,
对吧,
他认为安全可能就是审计,
但实际上安全包括后面的风控的一整套体系的东西都没有建立起来,
所以就导致这个跨链桥出现的事情其实蛮多的,
那包你看这一次的这个老板的跨链桥,
它的出现的这个问题啊,
是一个很简单的一个升级导致的bug,
然后包括它后面没有风控这套体系那。
之前比如说我们曾经发生过这个network,
这跨链的攻击事件,
他的这个原因就然是因为说中间的来去证交易的这个这个证者的几个私钥泄露了,
那这对吧,
这个其实在审计的时候,
根本不是一个审计向上,
他会认为啊,
你中心化的这些Li或中间这他是可信的,
我认为你就是trust,
那现在你在审计的时候被认为是一个trust的一个实体,
在实践的运行当中,
因为很多运维的安全也好,
或者其他系统层面的安全也好,
导致私要泄露,
然后它整个信任体系就崩塌了,
所以也也导致损失很多钱,
所以就是我总结一下就是对吧为就是跨链桥,
它是一个实时存在的需求,
但是因为跨链桥本身资金量特别大,
所以容易成为工地的目标,
然后又因为跨链桥本身的技术站复杂,
涉及的方向面特别的多,
所以就导致出问题的概率又比较大,
所以这几个因素一结合,
所以跨链起来就出现很多很多的这个安全的问题。
我们也可以顺着刚才周教授说的,
稍微看一下跨链桥,
它基本的这个工作原理,
可以简单的理解成一个资产要从A到B,
它有几个核心要素,
呃,
第一个要素呢,
就是说这个项目方会在A这条区块链上先建立一个资金池,
然后呢,
在B那条链上它也会有一个资金池,
然后当你把你的资产,
因为这里面涉及到很多因素,
呃,
首先呢,
当你把你的资产打到A这条链的资金池里面的时候。
他需要有一个监控,
或者叫monitor去监控,
说OK,
我这个资金池已经收到了这笔钱,
同时呢,
他要能够把这笔钱给锁住,
然后呢,
这个monitor呢,
又要告诉B那条链,
B那条链上的基金池给转到用户指定的他在B那条链上面的这个账户里面去,
对这个就是一个最简单的这么一个跨链的逻辑,
然后呢,
刚才周教授说的为什么这个安全风险点大,
就是他这里涉及了好几方,
首先你在A这条链上。
你有资金池,
你有代码,
你有智能合约,
然后那个monitor呢,
或者说那个ER呢,
它那个上面又有大量的代码,
而且那个你想刚才我提到这个中心化,
去中心化这些点嘛,
这个monitor或者这个ER。
就是传递信息的这个中间的这一方,
他也要尽可能做的去中心化,
因为他也不能做的太中心化,
做的太中心化呢,
他又存在前面说的那种因为中心化带来的,
比方说它整个服务停止了,
这种这种问题所在,
所以怎么去构造一个这个去中心化的ER,
这个也是非常复杂的,
非常复杂的问题,
然后第三块就刚才说的那个B,
那条链上它也有代码,
它也有资金池,
那所以呢,
因为系统越复杂,
它那个漏洞就有可能越多,
所以呃,
一个跨链桥相比在一条链上去做这个token和token之间的交易,
比方说swap,
我们叫做就是swap交易,
它要复杂很多,
然后呢,
他的资金量特别大,
像周教授说的,
所以这个就是特别大的风险点,
然后这里我特别想补充一点,
就是刚才周教授提到running那条链,
什么running那条链,
你可以简单的理解成就是说。
它中间那一层就是那个monitor,
或者那个他有几个验证者,
就他这个也是去中心化的,
就他有若干个验证的人,
比方这几个验证的人,
举个不恰当例子,
可能就这几个验证的人,
比方说一致通过这个用户在A这条链上的资金已经到位了,
然后一他们一致通过这个信息,
然后他们再告诉B那条链,
把B那条链上的资金打给用户,
那这个valid,
就这个投票一致通过的这个人,
他也有可能承担被攻击的点,
因为他去投票也是要用他的刚就我刚才最前面说的,
要用他手里的私钥去签一个名,
他做了签名以后就认可了这个票。
呃,
然后呢,
攻击者是怎么攻击呢?
攻击者把这些投票的人的私钥给拿到了,
那攻击者就能够去投这张票了嘛,
所以这个就造成了RO尼那条链的这个被攻击,
然后呢,
这个私钥丢失这件事情像刚才周教授说的,
他根本就不在审计公司的审计范畴里面,
因为审计公司它只会审计说OK,
你在A那条链上代码对不对,
你在B那条链上代码对不对,
然后你这个中间的这个这些验证者他们,
因为他们验证者他们其实也是要去跑一段代码,
然后他去投票,
然后这个票怎么计票啊,
这些其实全部都是通过代码来实现的,
那他们只会去看这些代码有没有问题,
这个整个架构,
整个代码有没有问题,
他不会去考虑你这个作为投票的那个人,
作为验证的那个人,
然后私钥丢失这件事情,
他是完全不考虑的。
啊,
所以这就是一个非常典型的一个漏洞,
然后那些黑客都是持续的去找这些漏洞,
你百密一疏,
你这个很复杂的系统,
你只要某一个地方有漏洞,
比方说你就几个人私钥没保管好,
然后就发生了问题,
然后这个点呢,
其实我觉得说实话就是我觉得现在外部山的很多的发展,
尤其是在安全这一块发展还非常非常任重而道远吧。
因为。
像在WEB2的世界里面,
他们不仅仅是会审计代码,
他们也会去购买那种第三方的渗透服务。
因为在中心化体系里面,
比方说百度也好,
谷歌也好,
他肯定也有,
比方关键员工掌握了关键的私钥,
他会去请第三方的安全公司过来渗透这几个员工,
他们做的其实这些东西都很全面,
但是现在在WEB3就很多这些东西都没有造起来,
就是现在这个行业发展太快,
然后很多基础架构的这些东西全部都被忽略了,
所以这也是为什么像周教授我们一直在致力于做这样的事情,
就是说这个东西目前在这个行业里特别费力不讨好,
因为其他项目方这个潦潦草草做一个项目,
然后代码审计一下,
然后就赚大钱,
然后我们是其实哼哧哧的是在给这个行业打补丁,
但总体来说肯定是还是在迭代,
还是在发展的这样一个过程。
刚刚两位提到的事情,
让我想到我之前在读,
就是做前期功课的时候看到的那种说法,
他们说区块链也好,
或者块链也好,
可能他会有一个所谓的不可能三角,
就是你是无法满足去中心化,
安全性跟可扩展性的,
对我很好奇,
我们这里可能可能得补充一下,
因为刚刚大家讲的ER嘛,
我我确认一下啊,
就是这个概念是在比如说LAY0lay1lay2和侧链里面,
它大概是一个什么概念呢?
它是LAY0那个层级的吗?
就是把各种攻链做一个信息交换的枢纽,
是这样的一个一一个角色吗?
这个概念他应该不是在层级里面,
因为我们现在讨论的是整个啊跨链的这么一个流程里面,
比如跨年流程,
这个逆青刚才也讲的非常就是包括原链,
目标链,
然后还有中间负责这个传递和very瑞法信息的这个实体,
或者说一批实体,
我们称之为叫ER,
所以它不是哪个呃,
Levelto这个那个成级上的一个概念。
我们这里需不需要跟大家先讲一下,
就是6061列2,
我不知道大家就是能能不能帮我们科普一下,
就是因为可能我们现在讲的所有的跨链是基于这个层级的逻辑来聊,
就是可能大家我们熟知的以太坊,
或者是呃,
Solona,
其实在这个逻辑里应该它它是属于layone的嘛,
然后那lay和LAY2lay2是属于类似像侧一样的这样一个角色吗?
对,
雷二是怎么诞生的呢?
其实大背景啊,
就是说因为那个区块链也有它的不可能三角,
然后里面很重要的一个点呢,
就是区块链本身的效率,
就大家可能听说过一个词叫TPSTPS就是以前201617年那会儿,
那会儿有很多供电的项目嘛,
然后所有供电项目都在讨论,
哎呀,
我TPS有多厉害。
然后这个也是大家经常拿WEB2的服务跟WEB3比较的一个点,
就是TPSTPS的全称就transactionsecond,
就是每秒的交易笔数,
因为去中化,
所以它有大量的这个比方说节点同步啊,
节点验证这样的一个流程,
所以导致呢,
它的这个TPS是要远远低于传统的金融世界这些中心化的TPS。
简单来说,
就比方中心化就一台服务器,
然后去中心化,
比方1万台服务器,
那你这1万台服务器信息的同步啊,
校准啊,
所有都需要时间,
那这个时间肯定就会拖慢,
它把它这个TPS给拉下来,
因为以太坊也算是比较老的一条区块链吧,
它的TPS已经比比特币要高很多,
比特币我们记错的话,
就是全球的这个整个世界的TPS每秒也就10吧,
我没记的话,
对,
所以太坊是把这个比特币的TPS做了大量的提升,
但是呢,
随着太坊生态的这个发展上的应用越来越多,
因为坊式lay嘛,
然后就出现了这个lay,
通过改修改一些坊的运行机制,
把坊的这个TPS去做提升。
我举个最简单的例子,
比方说以太坊有1万台服务器在记账。
然后呢,
某一个雷尔兔呢,
他可能就把这个1万台服务器改成800台服务器,
那他可能这个区中心化程度降低了,
因为服务器变少了嘛,
但是呢,
它能够把TPS给提上去,
所以这个时候就有了像这样的一个,
然后它TPS提上去有一个什么样的好处呢?
就是能够让用户能够覆盖那种用户交互更加频繁的场景。
因为金融场景它可能交互没有那么那么频繁,
但比方说如果你要去玩一个区块链游戏,
那可能你每砍一刀,
或者每掉一个装备,
每每打一个怪,
可能都会要跟区块链发生一次交互,
而且游戏场景相比金融场景,
它的这个覆盖面,
人群都会更广嘛,
所以就会有了这样的雷兔,
然后有了这些雷兔以后呢,
那就引出了我们又绕回了我们前面说的问题,
就是跨店。
因为当你的资产,
比方说呃,
假设你在一个雷兔的链上面玩一个区块链游戏,
然后这个游戏你你是打金也好,
然后你是专业玩家也好,
可能你赚了很多钱,
那你赚了很多钱呢,
你可能会觉得啊,
这个layertwo它去中心化程度不强,
那我赚来的这些钱,
我可能想把它放到layone,
放到以太坊的链上面去,
你可能觉得这样更安全啊,
有些人跨链它是为了提升安全性,
比方他在某一条侧链上,
某一条layto上赚了钱的话,
把钱移动到更加安全的一条链上,
那这个就产生了刚才所说的这种跨链的这种。
场景,
然后为什么会有像索拉娜这样的雷呢?
就是索拉娜为什么不说他是一个雷尔two呢?
是因为他基本把以太坊的很多东西都做了彻底的修改,
所以一般来讲大家就会认为那索拉na是另外一个单独独立的,
对单独的独立的,
然后索拉那如果他这条链再继续往后发展,
可能又有人发现诶索拉那存在某些问题,
那又有人可能会做一条索拉那的theretwo,
就基于索拉那的上面的就改solana的某些的一些参数也好,
一些特征也好,
变成一个solana,
的mayto,
但目前还没有出现了,
只有像呃以太坊这样老牌的链,
大家才会去在上面在做layto,
所以这个就是一个简单的layone和layto之间的一个关系吧,
然后雷尔0我我自己感觉更像是一个一个的一个概,
一个市场的概说自是是市场概是。
我觉得我觉得有点像是一个,
当然它因为这个新的概念总是不断被造出来嘛,
然后外B3的世界也有大量的这种眼球经济,
他如果说我是一个,
然后你们基于我来做,
那这个这个故事就没有那么的那么漂亮,
那么有意思,
所以他会说自己是0,
对,
所以我们可以理解就是比如它是为了在为了给layone的这些供链扩容,
然后提高大家的用户体验去去拓展出来的,
呃,
但它的安全性我们可以这样理解吗?
To的这些安全性其实是基于lay湾的,
就是比如说我依托于以太坊,
那以太坊我其实我这个layto的这些项目的安全性是太于以太坊的安全,
但是如果我是个侧链,
其实因为我要自己去维护我的节点,
自己去做我的共识机制,
所以它的安全性是我侧链的这些项目方自己来决定的,
我不知道这种理解对不对。
对,
我我觉得就是呃,
如果从呃,
单从安全性这个角度来说,
就您刚才讲,
比如说laytwo的这个策略安全性,
那它本身首先它需要有底层的这个level的安全性来保证,
然后呢,
它本身还有它自己啊,
这个安全性需要去维护,
所以就是它的安全性是取决于底层的levelone的安全性,
以及自身的安全机制的安全性,
就是两个都要有。
对,
安全还是一个很复杂的问题,
因为嗯,
哪哪都可能出错,
就是链本身它可能就会有问题,
然后项目方本身可能有问题,
然后用户那一端钱包本身可能有问题,
就它是一个很大的一个网,
很难定义说,
比方说我这个项目在以太坊上,
我就更安全,
因为以太坊本身更安全,
不是这样的,
就是项目本身它还会有漏洞。
所以如果两位去看现在啊,
就当今我们可能跳出no麦solo呢,
你们觉得目前这个领域里面最与安全与隐私相关的挑战,
它最大的挑战是来自于哪里?
大家现在都在针对这种挑战做哪些尝试或者是解决措施的这种思考呢?
因为我是做硬件钱包的嘛,
因为刚才也描述了,
就是安全,
它出漏洞的地方非常多,
就很难说,
比方说某一家公司,
它就能提供一个产品也好,
提供一个服务也好,
解决所有的问题。
像我们和周教授就各有侧重,
像我们这边可能就会我们会更关注在用户这一段的安全,
比方说索拉娜这样的事情,
其实就是我们身上的职责,
因为软件钱包它是一个闭源的一个软件钱包,
别人也没有办法看到他的代码,
然后他就做了非常愚蠢的事情,
把这个助题词这么关键的东西,
助题词上传到了一个云端的一个服务器,
那像我们这段就是在解决这样的问题,
帮助用户更好的保存它的这个私钥以及助剂词,
然后通过硬件钱包这样的形式,
帮助用户更好的保护他这些信息,
所以这个是我们我们做的事情,
当然我们也会参与到一些。
项目方他们的一些这个安全的防护当中,
比方说这个很多项目方我们也在跟他们合作,
因为用户他在做一笔交易签名的时候一个很关键的一个点,
就是说就好像你签一份合同一样,
你肯定要去把这个合同读一下,
然后你再签上你的名字吧。
但是呢,
这里有个很关键的点什么,
就当你在签名一笔区块链的这个交易的时候,
你也要去充分的了解你正在签一笔什么样的交易,
因为有可能比方说你的电脑被攻击了,
你的这个手机被攻击了,
然后黑客他让你签了一笔,
比方说你就是一个转账,
简单的一个转账,
我要把以太坊转给朱教授啊,
黑客如果攻击了你的电脑或者手机的话,
他会把这个周教授的地址替换成黑客自己的地址,
那这就是一个最最浅显的一个攻击的一个场景,
那我们做钱包,
我们做一年钱包,
我们在做的事情就是我们会跟项目方合作,
然后让用户在钱包上面清晰的看到。
他正在签的是一笔什么样的交易,
这个是我们做的,
对朱教授可以讲一讲他们那边,
呃,
主要努力的一些方向,
对。
嗯,
就叫上你。
其实对整个的区块链的一个生态里面,
就是参与的各方其实非常的多,
它有各种各样的实体的参与,
那就包括用户对吧,
钱包啊链交易所大的项目,
而每一个实体其实都有可能会有自己不同的安全需求,
那目前呢,
我们自己的观察是说,
其实很多的这个啊安全需求,
就是不同实体的安全需求其实都没有得到比较好的保护,
我们和沥青其都一直有在整个生态里面去做一些自己的事情,
那包括像啊立青主要是focus在那钱包这一块和用户安全这一块,
那我们可能就比较focus在啊一些项目方的一些安全,
呃安全呢,
我觉得这是呃第一个特点,
也就是说整个区块安全里面,
它参与的方特别的多,
然后每个人的这个安全需求又不一样,
那第二个点呢,
我觉得就是每一方呢,
它的这个安全的需求对吧,
它是多样化的,
然后可能被攻击的这个向量和点呢,
它又是不一样的,
就打个比方。
说用户其实经常被攻击的一个可能的向量就是啊,
被钓鱼攻击,
用户被钓鱼以为你是在签一个什么东西,
但实际上并不是,
然后呢,
涉及到这个钱包的安全,
怎么去保管私钥,
呃,
然后呢,
又是交易所呢,
怎么去做好自己的一些运维,
然后大的项目怎么去保证自己代码安全,
怎么去保证这个项目部署商业之后的这个风控的安全,
就是每一个项目方他都有自己不同的安全需求,
而现在整体的这个安全需求就是能提供一个系统化的这个安全需求的,
这这么一个服务商其实也是不存在啊,
并且我觉得将来区块链里面也不太可能出现一家能提供所有安全需求的服务商,
一定都是在自己细分的领域里面有自己独特的东西,
然后那我觉得整个现在就区块链安全呢,
就呃安全拉,
其实是个系统工程,
就是系统工程的意思就是你需要把方方面面可能的攻击点和可能的攻击向量都需要考虑到,
然后有自己的应对措施。
安全,
它并且还是一个持续性的投入安全,
它不是说我在开发阶段投入安全,
然后开发完了之后就不需要安全的,
安全它不是安全是贯穿在整个项目,
无论是项目也好,
交易所也好,
呃,
就是任何食体也好,
它整个生命周期都需要安全这么一个因素的存在,
所以这也是为什么就是安全特别难做的对吧的原因,
就是你你是一个系统化工程,
然后你还需要持续的投入,
也许你持续的投入其实平时看不到产出的,
对吧,
因为没有攻击,
实际上是表示你比较安全,
对你安全做的好的话,
可能你怎么证明这个投入,
就是你怎么证明你的投入安全回报个悖论啊,
对,
就对,
导致很多很多的问题是在是的安全,
你是你很难向用户证明你安全,
但是你不安全,
这个用户就很容易get到这个点,
所以这个就是特别特别困境的一个点,
然后在别人看来就是你就是一个成本中心一样的感觉,
没有产出。
但是一个成本中心,
我好奇啊,
周教授可以请你补充一下,
比如说我们说现在的项目方,
他如果要提前假设,
你刚刚说到是保证风险不发生,
他会有哪些非常具体的措施是能够让项目方在这个风险发生之前,
他就能够意识到说这个是一个重大的危险信号,
或者这是一个Lex,
这是一个红旗事件,
我要做一些举动去避免这个事儿发生。
现在大部分项目方的安全意识就是我做个审计,
我觉得我是安全,
实际上不是,
就是项目方其实更需要去时刻毛利是自己项目的状态,
就是,
呃,
通俗来讲就是做好风控,
对吧,
你想银行它有很多的安全措施,
那风控一定是银行整个系统安全里面非常重要的一环,
对吧,
它需要每天来鉴别,
跟我银行交互的这些交易,
它到底是一个服的交易,
还是一个呃,
正常的一个用户的交互,
对吧,
那同样的,
那作为一个低的项目方,
或者说你的这个项目方里面有很多数资产的。
那么你你也需要做好这样的风控对吧?
那简单的说,
那你需要去鉴别每天有哪些人跟你在进行交易,
然后呢,
对于这些交易会不会导致你的项目产生这个风险,
那么这样的风险是可以容纳的风险,
还是说它是一个攻击的风险,
那这个东西都需要项目方有这个意识,
需要部署这么一套东西,
那具体我举个简单的例子,
比如说我们还是回到这个老曼这个世界里面的项目方,
如果老曼德世界的项目方它有比较好的风控体系,
那他其实可以怎么做,
他可以去监控这个,
因为我们讲这跨链对吧,
是资产从原链到目标链的一个流动,
那项目方其实是可先首先监控一下,
就是他可以开发一个额外的自己后台运行的一套系统,
他去监控说,
诶一个用户有没有把钱放到这个啊原念里面去,
有没有被锁定,
然后呢,
从目标里面取出钱的这个人,
他有没有资产锁定在这个原念上,
这个是。
可以做一个线下的这么一个风控体系来监控,
而不是只靠线上逻辑啊来运行,
这样的话,
当一旦线上的逻辑跟线上逻辑不一致的时候,
对吧?
所谓叫不一致,
就是因为你线上逻辑出漏洞了嘛,
所以我线下逻辑我能检测到不一致,
因为我发现从目标那上挪出钱的这个账户,
他并没有钱被lock在原念里面,
那这个时候我就很容易发现问题了,
对吧?
这个就是老满的风控里面非常容易做,
也非常啊好理解的这么一种风控的体系,
所以我觉得这一套体系的构建,
当然对于不同的项目方,
比如说你是借贷平台,
是一个代词还是一个道,
对于不同的这个项目平台,
它有自己的这个风控的点和规则,
但是一定需要有这么一套东西啊,
来去监控,
我觉得这个还是蛮关键,
其实其现在项目上比较缺乏的一个意识。
立新,
你觉得so罗na这个事件,
如果要前置去防范他这个风险问题,
从你的角度来讲,
他可以像周教授那样说的,
就是做哪些举动来提前防范风险发生呢?
手拉拉这个事情感觉就如果你的私钥或者说如果你的助剂词泄露了,
这个几乎就是不可逆的,
除非就是说对于用户来说,
你尽早的知道这个消息,
知道这个消息以后呢,
然后你尽快的把你的资产在黑客,
因为so拉na这个事情,
他他另外很神奇的一点就是他的这些转账是逐步发生的,
就是前后,
前后大概有。
几个小时吧,
五六个小时,
就不断的有用户在丢钱,
在丢钱在丢钱,
这样子他不是一下子在几分钟内就整个事件就就完结了,
所以呢,
嗯,
这个事情如果真要。
就发生了,
这要补救可能唯一的手段就是通知用户,
然后用户赶紧把钱给提出来,
赶紧转到别的地方,
这是这样一个手段,
然后如果说事前要做的话,
我觉得。
很重要的,
其实代码开源我觉得其实挺重要的一件事情,
首先他代码开源,
如果一个项目,
比方说一个做钱包的代码开源,
他肯定会非常仔细认真的去对待自己的代码,
它的工程质量受这个开源的影响,
可能就能得到提升,
因为他知道这个代码会给大家看,
就甚至我的这个代码写的好坏所有人都知道。
然后代码开源以后呢,
肯定会有开发者过来看你的代码,
这样带来一个结果就是你的很多的风险就能被封堵,
在早期就可能攻击就不会发生在这个9000多个地址,
可能在你的早期9个地址的时候,
这个漏洞就暴露出来了,
就能及时把这个东西给解决掉,
所以我觉得开源是很重要的一点,
然后但开源它本身是跟很多钱包的这个商业目的是相违背的,
我自己其实对钱包未来的开源其实是不乐观,
一方面呢,
是他这个钱包开源可能会有损他的商业利益。
然后另外一方面呢,
很。
因为有一些这个开源代码,
它不同的开源协议还不一样,
就比方说有一些有一些项目方,
它用的开源,
它可能是开源了,
比方说呃,
具体是谁我就不举例子了,
就是一个老牌的钱包,
他是开源的,
他代码是开源的,
但是他不允许你去对他的开源代码进行商用,
就是它不允许你copy一份代码。
把这个代码又又做了另外一个钱包,
再给别的用户用,
他不允许这样操作,
然后呢,
有些钱包呢,
他为了自己业务能跑得更快,
他就去分叉了别人的代码,
Copy了别人的代码,
那copy了别人代码他肯定就不敢开源了嘛,
他一旦开源出来,
那别人就发现哦,
你在你把别人不可商用的代码给商用了,
所以呢,
我自己其实不看好未来钱包这一端的开源,
像索拉那到目前为止,
索拉纳社区还没有一个开源钱包,
全部都是闭源的,
而且甚至以前还有一些钱包本来是开源的,
然后慢慢慢慢发展的,
就变成闭元的钱包了。
然后这个也是为什么我们做硬件钱包,
然后我们强调我们硬件钱包跟不同软件钱包之间整合,
我们跟做了整合,
然后我们现在也在帮助其他的一些源的钱包,
就是你既然因为你的商业的原因,
或者别的一些目的和原因,
你不开源,
那你就那你就接硬件钱包呗,
然后允许你的用户把私钥脱离你的软件钱包,
而保存到一个硬件钱包里面去,
每次签名的时候都用一下那个硬件钱包,
所以这个是我们对这个钱包发展的一些看法,
以及我们试图在做的一些努力吧。
对,
所以我们可以是否可以这样理解,
就是随着这些可能对业内越来越有影响力的安全事件不断的去发生,
可能这些安全事件对WEB3本身的发展,
或者是对业内的人,
大家对技术和商业径的思考,
可能也会起到一些推波助澜的作用,
比如说像刚刚李静说到的,
我们可能就是像这样的智能钱包,
他会整合到的生态里面,
或者是像周教授说这样的项目方,
他不单是单独的去依赖安全审计,
他会更多的考虑一些前置风险的这种,
呃判断和预测,
呃,
我好奇那你两位是怎么去看这些安全事件,
比如说对未来整个web算长期的这个生态的影响和发展,
因为我听起来啊,
我觉得这些事件梳理出来,
比如说我如果是一个WEB3的观察者,
或者是一个我未必不会成为那个follow,
对吧,
如果别人告诉我说他有这样的一个代码漏洞,
然后你每次去转入2100,
一万两万,
而且这个里面我拿了这笔钱之后,
其实项目方还会给我一个机会,
让我把钱退回去,
对我来说就是我觉得。
这个你去拿这笔钱的动机是会非常大的,
我不知道大家怎么去想,
就是未来这些安全事件对WEB3生态的长期影响会是什么样,
大家肯定很不想看到这些安全事件,
甚至这些安全事件会吓退一些用户,
可能有些用户可能觉得啊,
这个这么不安全,
我这个是不是要去体验,
要去尝试这些东西,
呃,
但是呢,
从一个更加长的线来讲呢,
我觉得。
WEB3的这些安全事件频发还是有积极意义的,
为什么?
因为这样的话,
大家能从这些公开事件里面不断的去学习,
然后新的项目方能够站在前人的肩膀上,
把自己的产品,
然后把自己的这个服务做的更加的安全。
其实在WEB2的世界里面,
安全事件也是很多,
只是在所有WEB2的事件里面,
你不太看到说这些安全事件的公开报道。
这带来的结果就是各家都要你自己去摸索一套你自己的风控,
然后你自己的安全机制,
你自己的审计的机制,
你自己的这个内部的流程,
各家都是自己在做,
缺少就是彼此之间的沟通和交流。
所以结论就是我自己还是比较积极的看待这些安全事件,
而且这样能够加快整个WEB3的迭代的速度,
因为WEB2假设说50年假设啊,
假设50年,
然后打造了一个很安全的一个世界,
很安全的一套服务,
一整套体系和服务相对非常安全的,
但是在外B3的世界,
因为它所有信息暴露的更充分,
他可能不需要50年,
他可能10年15年就能够完成这个过程,
所以说我自己还是比较积极的看这个事儿,
对。
我非常同意逆新的说法,
就是在WEB3的这个世界里边,
呃,
相比于传统的安全,
就是我们发现过往对吧,
就几年是有非常非常多的这种非常highprofile的这些项目被攻击,
然后造成了非常多的损失,
那听上去好像是外部上的,
外部上事更不安全,
对吧,
好像传统更安全,
那实际上不是这个样子的啊,
为什么这里面就涉及到说为为什么这个会发生这样的情况,
那是因为Y82的很多问题被掩盖了,
因为它的这个攻击的这个入口比较狭窄,
或者说它这个物理隔绝,
或者说是一个非常受限的环境,
所以你呃,
黑客很难去攻击到这样的一个呃目标,
但是这并不意味着它是安全和不被攻击的,
因为现在外三所遭受的些攻击呢,
实际上是,
呃,
打醒的项目方,
也打通了项目方和打通了整个生态里面每一个人,
要让他们意识到,
如果你要不积极的去建设安全的生态,
那么你就很难得到发展,
所以从这个角度来说,
现在发生这些事件啊,
虽然有,
但是我觉得他是积极。
促进了整个外部山的整个生态的繁荣,
因为你只有大家的安全水位都提高了,
然后大家都经过安全的教育啊,
纷纷的提高自己安全的这个水准,
然后整个外B碳的生态才能健康的发展,
而不是把问题掩盖下来,
直到eventually有一天发生一个非常现在我们无法预料的事件,
然后整个大厦就崩塌了。
我不知道大家是否会这样子去想,
就是现在本身大家去交流这种安全问题的渠道机制,
让大家都了解的这种方式,
它本身也是一种容易产生风险的部分,
我自己好奇,
为什么这些可能发现漏洞的人,
包括告诉传播这种漏洞的人,
他们都是在推特上去进行这种交流的这些事情,
就是大家怎么会去评价8毛黑客对外三生态的影响呢?
在呃安全里面,
我们通常会讲,
其实有一个应该有一个比较好的叫我们叫负责任的这个漏洞啊,
纰漏的这么一个机制,
就是这个其实也是在呃外包安全里面,
呃就是经过很多年,
大家慢慢慢形成一种共识,
什么样的一个共识呢?
就是如果你发现了一个未知的安全威胁,
并且这个安全威胁呢,
然后有可能会造成比较大的损失,
那么这个时候你第一时间需要联系项目方,
你不能这个公开的去披露这样的信息,
然后你会给项目方这个一个相应的时间呢,
呃,
现在安全天里面形成的共识是给21天的时间,
就是21天里面,
然后项目方可以积极的跟这个呃发现漏洞人进行沟通,
然后来修复漏洞,
然后发布新版本,
那这样的话,
在这个新版本发布之后,
如果不会造成威胁了,
然后啊,
这个安全研究人员才会啊,
负责任的去公布整个漏洞的过程,
这个是在就是传统的安全里面,
大家相对形成了一个比较好的一个机制和流程,
但是这个东西呢,
在外部三事件里面其实受到。
比较大的挑战啊,
为什么受到比较大挑战呢?
因为在白B3事件里面,
很多的时候,
安全漏洞的发生,
它不是说还没有被受到攻击,
是已经受到攻击了,
然后这个事情才披露出来,
他不是说在没有受到攻击的情况底下,
你发现一个的攻击,
那你完全也可以followup去的一套流程,
对吧,
你跟项目方说你的项目存在风险,
然然后你应该修复,
然后项目方可以啊,
根据你的建议进行修复,
然后发布新版本,
那这个完全是一样的流程,
但是在外B3的事件里面,
很多的安全事件都是在被攻击之后,
然后这个漏洞才披露出来,
也就是说在被攻击之前,
其实没有人知道,
除了这个发起攻击的人,
其没有人知道这个漏洞的存在,
所以在这种情况底下,
他就不太适用我们刚才讲的那一套负责任的纰漏机制,
对吧?
因为你没有办法在负责人披露了,
这个时候攻击已经发生了,
所有的攻击交易都已经在链上,
大家都能看得到,
只要有安全知识的人,
他只要去把这个攻击交易拿下来,
然后研究一下,
他也就知道这个攻击的原理是什么,
漏洞是什么,
然后应该怎么去发起攻击。
所以在这种情况底下啊,
负责任的披露机制就不起作用,
那在这种情况下,
有没有一种这个更新的机制来去协调呢?
就是发生攻击事件之后的整个安全呢?
那觉得现在还是呃处于一个比较早期的状态,
没有个特别好的机制,
那我觉得未来啊,
也许会形成一个我们称为叫呃,
就是有一个道一样的组织,
或一个什么样的组织来去比较负责任的共享这些啊这个信息就even在攻击已经发生的情况底下,
因为攻击被发生的,
其实这个是大部分人都还是不知道的,
只有少部分安全研究人员,
他可以从这个攻击交易里面知道发生的什么,
我们可以在一个相对比较好的经过verify的这个圈子里面来去share这些信息,
然后这个时候并且及时的帮助项目方来去做一些应急的响应,
但我觉得这样的机制那怎么建立对吧,
那大家背后的是什么?
我觉得其实现在社区都还在讨论,
其实也没有一个定论,
但对于普通用户来说,
当我们看到这样的信息,
我们未必是看。
但是还是不应该,
尽量是不应该参与这种行为的,
对吧,
尽量不参与这种攻击方的行为,
对对,
因为因为你刚才讲的这个,
就是比如说啊,
白帽子的这个行为,
其实现在社区也是蛮有争议的,
因为这个主要是对白帽子怎么定性,
因为我我们是做传统安全就是出来的嘛,
所以也就相当于我们以前相对接触过一些比较好的安全的一些伦理的教育,
就是你比如说你要做一个白帽子,
实际上你首先要把你的要放在前面来讲,
而不是说你在做了攻击之后,
然后在被迫还钱,
或者是啊什么情况底下,
你才肯定你自己白帽子,
因为这个时候已经太晚了,
我们没有办法辨别你这个行为到底是一个攻击行为还是白帽子行为,
对吧,
就我们很难去辨别了,
实际的实践当中呢,
其实市区里面也有一套自己的准则吧,
就是说如果你要做外,
你需要这个,
一方面基金联系项目方,
一方面你需要把你这以某种方式告诉社区,
这样的话就相当于你是自证清白嘛,
虽然对案件的要求有点高,
但你确实。
要自证清白,
否则后面的话你是说不清楚你自己原来的intention是什么。
那就像立新和周教授所讨论到的那样,
安全审计公司呢?
通常是会被认为项目方,
尤其是区块链项目的这个看门人和守护神,
但是安全审计公司他是如何看待和应对这些安全事故,
引起了我们的好奇,
所以我们就跟安全审计的独角兽,
也是今年4月刚完成8800万美元B3轮融资的thirtyk他们的安全工程师袁南进行了一个快速的交流,
袁南他所参与的就是智能合约的审计和针对安全事故的应急响应。
首先我想问一下云南,
就是你们对于nomad还有solona这些跨链项目发生安全事故的根本原因,
你们的一个观察会是什么?
Noma和na是两个完全不一样的发生的,
我们可以说是两种不同的。
关于noma的话,
它其实主要的是你初始化的configuration出了问题,
就是说在你初始化的时候,
它把一个错误的一个参数作为一个初始值传给了一个变量,
这样子的。
的话,
就会导致他们中间的有一个verification,
这是一个校验的一个地方,
会被bypasss掉,
然后当你的check发现你这个错误的初始化的一个变量会导致这样一个bypass的verification的时候,
这个attack就可以利用这个漏洞去从这个contract里面取钱了,
这个是newnewma的一个根本问题,
其实它可能呃也可以说它是一个人为的一个设置问题,
然后solana就比较复杂,
Solana是他用了一个呃已经depre的一个solana的版本,
然后它这个版本它没有对传入的scount进行检测,
就是传入的caccount不一定是一个正确的,
并且是一个合法的一个caccount,
这样子就导致这个attacker可以去它的这个传入的这些account里面去inject一个malicious的caccount,
这样子就会导致整条与caraccount相关的validation全部会fail掉。
就导致scon是失效的,
这样子从而导致了它整条链的这个verification的这个chanceofverification会失效,
像比如说noma这个事情的话,
其实如果你不去跟项目方去沟通他们的设计和他们真要怎么样初始化他们的合约的话,
其实这个问题比较难被发现的,
因为它可以看作是一个动态调整这个合约的时候的发生的一个MISconfiguration,
这个动态调整其实是调整的,
它的configuration是它的有一些参数,
它的有一些变量,
就是它在智能合约里面有一些变量去存储这个合约当前的状态的。
所以说有一些有一些account,
比如说在初始化的时候,
它会把这一些状态,
这些configuration的状态赋予特定的值,
然后另外是关于索拉事件的话,
他其实他用的这个DEP的这样一个很DEP的这样一个account的话,
其实在审计中呃,
很大概率是会被看出来的,
因为它的这个deated的account其实是会在代码里会显示的去标出来,
这个可能是已经不会用了。
黑客是怎么发现这些漏洞的呢?
首先第一点是这个contract在所有的链上是开源的,
对吧?
所以说推客很清楚他这个代码的逻辑是什么样子。
另外关于他这个confirmthat,
这个mapping的configuration的值,
其实attacker也是可以在链上访问到的,
考虑到他知道了代码逻辑,
并且他知道这个值是如何初始化的,
他其实就可以立马想到一个攻击手段,
如何去攻击这样一个contract。
那从你们的角度来看,
其实安全审计公司在跨链项目也好,
在公链项目也好,
他们到底扮演的是一个什么样的角色呢?
审计公司其实更多的是一个,
呃,
算是block的一个守护者吧,
就包括CDK,
他已经审计了很多链上的合约,
我们在审计的过程中,
其实往往会发现很多一些呃,
可能像作为一个developer你不会去考虑的一些问题,
包括说一些flash的一些vulnerable的一些injtpointflash就是闪电贷,
就是闪电贷,
你在一个transaction里面可以去借大量的资金,
只要你在这笔transaction的结尾把这个钱还给这个flash的provider,
在这个transaction你就相当于拥拥有了很多很多的钱,
你可以近是认为你在这个transaction里面,
你是一个一个富豪,
是一个百万富翁,
然后你用这笔钱,
你就可以去做任何你想做的事情,
包括操纵价格,
包括去做一些AB,
就是一些赚那种UN它那些差价。
呃,
像这种东西是很多developer,
他其实在开发的时候,
他自己不会去想的,
就包括他在计算这个reward的时候,
他可能去没有想到他自己的这个deposit函数和withor函数在一个transaction里面,
如果反复被调用的话,
会不会有大量的ward产生像这种类似于这样的逻辑的话,
作为audit是会着重的看,
我们也会去考虑这个flash会对整体的项目逻辑造成什么样的一种冲击,
诶我好奇为什么项目方他没有办法发现这个问题呢?
其实并不是没有办法去发掘,
其实这有很多个原因吧,
第一个有可能是因为很多项目,
你知道在区块链上很多项目是fork的,
其实它往往developer他不一定对smartcontract很了解,
他可能很了解这个整个合约的这个从头到尾是如何部署,
如何去实现,
如何去调用,
如何去交互的,
但是他对本身这个smartcontract的安全性,
它其实是不是很了解的。
第二点是因为现在smartcontract的发展的非常快嘛,
导致现在很多developer其实就是学的并不是非常的深入,
他可能只知道这个语言的特性,
如何去实现一个功能,
但是对于他这个语言的带来的一些特性,
它其实并不是非常的了解。
举个非常简单的例子,
就是说,
呃,
Open有一个ERC721的这样一个smartcontrol是一个通用的模板,
它是一个NFT的这样一个token的模板,
但是可能很多developer就不知道它里面的这个safetransfer其实是存在潜在的一个。
En的callbackcallback其实就是比如说你你去调用了一个ERC721的这样一个token的一个safetransfer,
然后这个safetransfer呢,
需要去到这个调用者就是called的,
就是那个调用这个函数的人,
他的地址上去查看他有没有一个叫uncereceive12C721这样一个函数,
如果有的话,
它会执行这个函数并返回结果,
所以说这个时候如果你的调用者是一个是一个黑客,
他可能去在你他自己的这个调用的合约里面去实现一个呃,
Malicious的UN1C721这样一个,
所以说这样子就创建了一个这个callback的一个路,
嗯,
明白。
另外就是比如说老生常谈的在so上面的reattackOK,
重入攻击retheattack其实包含了就比较多部分了,
就reattack有很多部分,
有简单的,
有复杂的一些复杂的可以是从一个function呃,
去。
去存到另外一个方式,
然后关于这种原审谁的话,
我们就需要会把这个逻辑,
会把整个项目的逻辑会非需要非常清楚知道他的状态之间是如何联系的,
这个就是一个比较复杂的一些情况,
需要阿去需要做花很多的心思去做验证也好啊,
去发现这个漏洞也好,
我如果代码更新的话,
逻辑上我也应该找安全神经公司再去检查一遍我的代码逻辑,
检查这些漏洞对吧?
对,
是这样子的,
因为你在软件迭代的过程中,
如果说呃,
你有新的逻辑,
或者是有一个一些新的一些模块被加入到你这样一个你的APP里面的话,
你是需要重新做审计的,
因为你不知道你加新加入的这些逻辑会对之前的老逻辑产生什么样的影响。
这就是为什么很多项目它在比如说更新或者是迭代的时候,
反而非常容易被黑客集中攻击,
可以这么理解吗?
对对,
是的,
那会有项目方说,
比如说我更新的代码,
但是我可能考虑后面就不去找安全设计公司工作,
会有这样的情况出现吗?
这样的情况是会有的,
安全部门的话,
其实是呃是很多公司比较忽略的一个点,
成本部门对,
当你有额外的金钱和资源的时候,
你是会去考虑这个安全这一块,
但是如果当你的这个资金不足的话,
其实你很多时候是不会去做这样一个审计的,
而且你做迭代的审计的话,
很多时候呃也是需要审计公司会重会重新从头把你的代码过一遍,
这样子也会导致一个很大的时间开销,
这样子很多公司其实也不是非常愿意去做这样一个迭代的这样一个审计。
那事故已经发生了,
项目方我们打比方啊,
这个黑客他可能是短时间内就发动了比较大量的攻击,
在这个过程里面,
安全审经公司他会观察到说有这样的攻击行为发生,
他会及时去跟项目方沟通吗?
是会的,
像我们公司有skynet这样一个system,
他就会去实时的去监控链上的一些数据,
比如说他发现大量的可疑交易的话,
他会去把这个交易去扔给我们的Coteam,
就是quickresponseteam,
我们会在第一时间去分析他这个交易到底是不是一个可疑的交易,
当了一个attack要发动攻击的时候,
他如果想要他的利益最大化的话,
大部分时间他需要通过闪电带这样一个途径来扩大它的利润。
所以说我们当监控flash的这个provider,
我们其实可以去拿到大量的交易,
同时我们会设置一些rule,
一些filter去过滤掉一些AB的交易,
这样子剩下来的就可能是一些我们不知道的和一些可潜在的一些ta的交易。
然后这种时候我们可能。
会去人工去看一看这个交易到底是一个什么样的东西,
然后最后一个其实是通过安全审计的项目通彻,
还有可能会存在哪些安全隐患,
这个是你们后续在跟项目方沟通的时候会特别关注或者是提醒对方要去注意的,
这个就是包括我之前我们提到的这个关于contract的configuration,
就是它有一些参数的一些,
呃,
修改吧,
就举一个非常简单的例子,
就是在我们的report里面,
我们会反复的提到一个叫central的一些risk,
这个risk就是有一些privilege,
对,
对这些privilege的,
它可以去修改这个contract的一些参数,
当修改完这些参数之后,
它可能对这个合约会造成一些不可预知的一些风险,
这些是我们可能会去关注的一些点,
这些安全事故发生之后,
他们对于整个跨链项目也好,
供链项目也好,
他会有什么样的影响,
就是想问一下云南你是怎么看这个问题的,
像诺麦的,
它是一个这configuration的问题,
所以说其实呃,
很多时候除了在做代码审计。
呃,
这样一个类似于manyreview的情况下,
可能更多时候作为呃一个安全审计方的话,
也会去需要去关注它是如何去setup这样一个contract,
需要知道它的这个初始化的参数,
并且带着这个参数去去审计这样一个合约,
去看它会不会有一些漏洞,
会由这些错误的参数configuration导致一些漏洞,
这个是noma教会我们的吧,
然后对于solana的warm号的话,
可能是呃,
我们需要去尽量去使用比较新的,
比较稳定的一些dependency,
就包括caccount这样子看我们,
我们尽量去使用比较新的版本。
至于之前发生的其他的机器机起桥的事件啊,
包括之前有对之前还有一些cube啊,
一些很多的桥的一些攻击事件,
那些事件他们的各有各的漏洞吧,
但是最主要的是有一些verification的一些验证缺陷啊,
丢失主要就是一个。
对校验的问题,
关于桥这一方面最核心的一个问题就是校验,
就如何去证明我拥有这笔资产,
如何证明我我在另外一条链上去存了这样一个资产,
这是一个非常复杂的一个问题,
然后也有很多的这个attackfactor,
呃,
那我这边其实问题大概就是问的差不多了,
我感觉云南回答也非常详细了,
谢谢云南,
这期whatnext科技早知道就到这里了,
听完之后如果你有任何的想法,
欢迎在评论区里面给我们留言,
我们每一条都会认真的看,
如果你喜欢我们的节目,
请记得给我们五星或者好评,
分享给更多的朋友,
也会对我们非常有帮助。
你也可以单独写邮件给我,
邮箱地址试听tingat生点,
我都会一一回复,
那同时公众号和微博也可以搜索生动活泼盛世声音的声节目,
相关的更多信息会在公众号里出现,
微博和公众号都会有不定期。
的福利给到大家,
如果你想要跟我们更加紧密的讨论和分享,
或者是想要认识和你一样有求知欲的新朋友,
可以加入我们的微信群。
进入听众群的方法是在公众号文章中扫码添加,
或者是公众号后台回复科技早知道即可获取邀请码。
期待你的加入,
我们下期见。