中金网|贾瑶琪:攻击无处不在 区块链安全和隐私问题有点与众不同



中金网|贾瑶琪:攻击无处不在 区块链安全和隐私问题有点与众不同
本文插图

本文为Web3.0训练营的培训课程之一 , 同时通过万向区块链蜂巢学院线上公开课直播间对外公开 。 在本次课程中 , Parity亚洲区技术总监贾瑶琪博士以过去几年区块链遇到的攻击实例 , 为大家展示了不太一样的区块链安全和隐私问题 。 错过直播的小伙伴 , 别错过下文!
大家好 , 我是瑶琪 , Parity亚洲技术总监 。 感谢万向区块链的邀请 , 有机会跟大家分享区块链相关的安全和隐私问题 。 我目前在Parity负责Web3.0在亚洲 , 特别是国内的技术和社区发展 。 Parity之前主要做以太坊Rust客户端 , 目前主要开发区块链框架Substrate和跨链网络Polkadot 。
今天我将分享一些过去几年区块链遇到的攻击实例 , 为大家展示一下不太一样的区块链安全和隐私问题 。
第一 , 恶意攻击 。 这些攻击大多是大家平时接触到的区块链相关的智能合约攻击 。
第二 , 理性攻击 。 平时可能比较少接触到 , 也就是攻击者如何利用游戏规则之内的一些方法将自己的利益最大化 , 具体会以矿池和矿工为例 。
第三 , 隐私攻击 。 会根据针对Monero和Zcash的攻击简单介绍一下目前隐私区块链系统存在的问题 。
在过去几年中 , 从比特币到以太坊 , 区块链系统从最初的分布式账本功能 , 慢慢进化到现在类似于分布式计算机 。 初期的比特币大家只能用于在线的电子支付或者跨境支付 , 但是现在有了各种各样的智能合约以及链上的运行逻辑 , 大家可以轻松的在以太坊以及其他区块链平台上进行编程和运算 。

中金网|贾瑶琪:攻击无处不在 区块链安全和隐私问题有点与众不同
本文插图

如上图 , 大家可以看到不同的节点目前其实是蕴含对智能合约等其他程序的处理能力 。 左边的用户可以使用密钥进行数据签名 , 然后发送交易给节点 , 节点处理这些交易之后会更新对应的状态生成区块广播给其他节点 , 其他节点会进行运算和验证然后写入本地的区块链 。 这样的分布式系统环环相扣 , 保证了不同国家、地区的用户可以在这台世界计算机上面进行操作和运算 。
功能这么强大的分布式计算机听起来很酷 , 但是从安全角度来看 , 当一个系统支持的逻辑功能越多 , 其实它的安全隐患是越多的 , 这也是为什么比特币系统的安全性相对以太坊要好很多的一个原因 。
参见以太坊的重大安全事件和 , 大家可以发现 , 如果一个区块链平台上的安全问题频频曝出 , 也会打击大量的开发者以及一些创业公司在平台上部署商业应用的信心 。
当我们去看另一个区块链平台EOS , 明显可以感觉到对应的安全事件 , 其实是跟对应的价值关联度更高 。 不管是链本身还是智能合约层出不穷的安全问题 , 整体使得大家更加倾向于选择去中心化程度高 , 以及更加安全的区块链平台去部署自己的商业逻辑 。
过去一年有各种各样的DeFi攻击事件 , 其实也为大量的区块链开发者敲醒了警钟 , 当上线各种新功能之前一定要做好安全审计 , 尽量保证自己上线的功能是没有较大的安全问题 。
恶意攻击
接下来我们看一下恶意攻击 , 特别是与智能合约相关的攻击 。
重入攻击
2016年的DAO问题以及最近的DeFi问题 , 都是类似的攻击 。 攻击者编写了对应的恶意智能合约 , 调用受害者的合约 , 同时利用自己的回调函数 , 循环地调用受害者合约的代码 。 由于是重复进入受害者合约执行对应的一段代码导致漏洞 , 所以把它叫做"重入攻击" 。

中金网|贾瑶琪:攻击无处不在 区块链安全和隐私问题有点与众不同
本文插图

如上图 , 右边是恶意智能合约 , 左边是正常的智能合约 。 正常的智能合约如果按照左边的逻辑 , 其实应该从上到下进行withdrawBalance , 然后以太坊转账 , 最后更新对应用户的余额 。


推荐阅读