主页 > www.token.im > 以太坊钱包私钥以太坊钱包自爆严重漏洞,为何比特币从未出现过类似问题?

以太坊钱包私钥以太坊钱包自爆严重漏洞,为何比特币从未出现过类似问题?

www.token.im 2023-02-15 07:19:00

北京时间2017年7月20日凌晨,以太坊钱包Parity爆发极其严重的漏洞,导致15万个以太币(价值约3200万美元)被盗。

该漏洞是由Parity钱包的多重签名智能合约代码造成的,其他钱包尚未发现。 黑客在Parity钱包的Enhanced-wallet.sol文件中反复调用了initMultiowned和initDayLimit两个智能合约。 这两个初始化代码本应只调用一次,但代码执行不受限制,导致资金非法转移。

在撰写本文时,Parity 正式致力于此漏洞,但尚未正式修复。 因此,建议所有使用多重签名协议的客户将资金全部转出,待漏洞修复后再转回。

Parity 钱包黑客攻击对以太坊有多大影响?

以太坊钱包私钥匙_以太坊钱包余额查询_以太坊币钱包

Parity 是目前以太坊中使用最广泛的钱包之一,而这次盗窃与 2016 年 6 月发生的 DAO 事件类似。DAO 事件还导致 350 万个以太币(当时价值 5000 万美元,或超过 7 亿美元)由于智能合约代码中的错误导致的当前价格。

The DAO事件后,以太坊创始人Vitalik Buterin提出修改以太坊代码,对以太坊区块链实施硬分叉,回滚被黑客窃取资金的交易记录,得到了社区大部分矿工的支持。 也有少数人的强烈反对。 少数最终坚持不同意回滚的矿工将他们挖出的区块链命名为以太坊经典(简称ETC),导致以太坊社区出现分裂。

不过,在Parity事件发生后,Vitalik Buterin很快表示,由于被盗资金规模不大,他不会像上次那样考虑实施硬分叉来回滚交易。 因此,事件发生后以太坊的价格并未大幅下跌,目前以太坊交易价格为 213 美元,以太坊经典交易价格为 15 美元。

什么是智能合约?

以太坊钱包余额查询_以太坊币钱包_以太坊钱包私钥匙

以太坊诞生于2014年,是继比特币之后又一个成功的区块链项目。 其目前的市值约为 200 亿美元,仅次于比特币(约 400 亿美元)。

以太坊在比特币的基础上发展区块链技术,维护全球共享计算平台,实现图灵完备的虚拟机EVM。 计算。

比特币最初被设计为一种电子现金系统,内置了专门为资金转账交易设计的脚本语言。 为了保证安全,特意放弃了图灵完备性(没有跳转、循环指令),所以它只是一个全球共享的账本,不是一个计算平台。

以太坊使用多种内置编程语言实施区块链协议。 这些编程语言都是图灵完备的,可以支持条件分支、循环、跳转、函数调用等复杂的运算逻辑。 在 Square 区块链上运行任意应用程序。

以太坊币钱包_以太坊钱包余额查询_以太坊钱包私钥匙

具体来说,作为运行在以太坊区块链上的应用程序,程序员可以根据业务需要使用以太坊支持的编程语言来设计和编写代码,而不是为应用程序单独运行一个区块。 链。 基于以太坊区块链协议,应用开发者可以高效、快速地开发各种应用。 此类程序称为智能合约。 智能合约代码在区块链上发布后,可以在没有中介参与的情况下在以太坊区块链上自动执行,任何人都无法阻止其运行。

目前有数百个智能合约在以太坊上运行,Parity 和 DAO 就是其中之一。

受以太坊的启发,近年来出现了很多类似的项目,如Fabric、QTUM等,从不同角度和层面对以太坊进行了部分优化,但总体思路是相似的,核心是图灵完备的智能合约。

如何防止智能合约漏洞的发生?

以太坊钱包余额查询_以太坊钱包私钥匙_以太坊币钱包

值得注意的是,这次Parity事件的损失虽然比DAO事件的损失小,但问题的根源是一样的。

随着智能合约开始得到越来越多的使用,智能合约的流程和代码变得越来越复杂,人们也发现,和现实世界的合约一样,在设计和编码过程中如果不仔细审查就不可避免地会出现人为错误,而一旦漏洞被黑客发现,损失往往是巨大的。

但需要强调的是比特币滚仓是什么意思啊,这种漏洞并不是以太坊区块链本身的漏洞,人们不应该对以太坊和区块链的安全性产生不必要的怀疑。 这次事件不会对区块链的应用产生严重的负面影响,以后还会有类似的事件发生,并不意味着区块链技术的终结。

当然,区块链从业者应该吸取教训比特币滚仓是什么意思啊,尽量减少类似的安全事件发生。 在笔者看来,在区块链和智能合约的设计和编码实践中,需要做好以下几点:

以太坊币钱包_以太坊钱包余额查询_以太坊钱包私钥匙

1. 简化区块链脚本语言的设计,牺牲一些图灵完备性来换取安全性。 比特币非常安全,因为它的设计是非图灵完备的,中本聪大大减少了许多脚本指令。 无数黑客从未见过因比特币区块链和脚本本身而造成的资金损失。 然而,功能丰富性和安全性是一对永恒的矛盾,不可能同时兼顾。 因此,在设计区块链脚本语言时,尽量不要使用功能通用的编程语言,而是在语言中具备一些功能。 选择是对以太坊钱包的私钥使用最小的可用指令集。 同时,在智能合约虚拟机的设计中,应采用沙箱等隔离方式,

2.严格执行智能合约代码审查。 与真实的合约文本一样,智能合约代码也经过多级严格的代码审查,包括业务流程/逻辑审查、代码走查、详细测试流程、安全测试、专家审查等。针对逻辑复杂、金额大的智能合约资金,需要尽可能形式化代码验证,通过数学证明验证智能合约的确定性。

3. 智能合约程序员强化培训。 智能合约编程语言虽然表面上与传统编程语言相似,但属于一种新的编程范式,思维方式也与传统的面向过程、面向对象、面向函数的编程范式有很大区别。 交易、完整性和其他主观概念被纳入智能合约的设计和编码中。 为此,需要加强对智能合约程序员的培训,在实践中细化智能合约的编程和设计模式,尤其是在安全方面,减少程序员出错的可能性。

4、实践要谨慎。 在区块链智能合约的实际应用中,以太坊钱包的私钥应该采取循序渐进的策略,从简单到复杂,从小范围试点到全面推广,涉及的资金量也应该是小的要大,大额资金不可掉以轻心。 如此一来,即使早早地攻击到一个漏洞,损失也不会太大。

币圈新闻,版权所有丨如未注明,均为原创丨本站受BY-NC-SA协议授权

转载请注明原文链接:以太坊钱包私钥以太坊钱包自爆严重漏洞,为什么比特币没有类似问题?