05.23 EOS可能启用多条主网映射,存在严重安全隐患!

用户如果把EOS转入交易所,由交易所在各条主链上做多次映射,并且对各个链的钱包做专业的评估。 ”

今天EOS 90S 发布了EOS关于多条主网映射的安全性的问题。原问题如下:

6月2日之后, block.one的法律架构导致无法启动主网,而Block.one前段时间又公开宣布EOS GO不是官方社区,没有权威性。这样就会有多个社区同时启动EOS主网的可能性。

用户使用EOS映射后的初始文件是所有EOS主网启动的初始分配。

用户想要使用任何主链上的币,都是需要将私钥导入到那条主网钱包。

如果有钱包或者其中任何一条主网作恶,盗用了用户的私钥,结局将会是这个用户所有其他主网上的币会全部被盗,包括EOS go的那条链上的EOS也会被盗 。

这是一个无法回避的问题,有什么好的解决方案,大家一起交流!

针对这个问题,EOS FORCE第一时间进行答复,很快得到各大社区的热议和支持,也引起了广大媒体的关注和转发。之所以反映这么迅速,是因为EOS原力团队在进行EOS链上投票的测试过程中,已经发现了相关EOS的安全问题。

实际上,这个多主网映射的安全问题,不但是一个无法回避的问题,也是一个非常严重的问题。

一旦有作恶份子通过发布恶意钱包,或者在某条主网上用作恶的方式去窃取用户私钥,那将会发生大规模的用户资产被盗事件。这样不仅大量用户会因此蒙受资产损失,EOS社区成员也将大量流失。

那么,这个EOS多主网映射的风险是如何产生的?为什么会产生多条EOS链?这些安全问题都有什么办法可以解决?带着这些问题,EOS原力总结了EOS链上投票测试的经验,为你逐一解答 。

一、如何理解EOS可能存在多个主网映射?

我们先从法律关系、映射逻辑、以及起链逻辑三个角度,理解为什么会有多条主网产生。

1

法律关系

Block.One是BM和BB所设立的公司,他们发起了EOS这一区块链项目,并在以太坊上进行了一年的ICO。

EOSIO是Block.one开发的一套免费开源软件,任何人都可以直接使用,里面没有限定任何货币符号。目前用户所持有的EOS Token只是以太坊上的ERC20代币,并非EOS主网上的代币。

Block.One为了规避证券化的法律风险,在项目发起之处就已声明,他们不会去启动主链,而是把这项工作交由社区去完成。

2

映射逻辑

目前用户所持有的EOS TOKEN都是储存在以太坊链上的,由以太坊账户的私钥所控制。由于ETH链上的公私钥格式和EOS链上的不一样,因此用户无法直接使用ETH的私钥去获取、控制EOS链上的资产,需要产生EOS链的专用公私钥,这个就是映射。

那怎么去完成ETH链对EOS链的映射呢?

原来我们只有ETH地址 => EOS TOKEN余额的对应关系,也就说,通过ETH地址,我们可以获知该地址上有多少EOS TOKEN。

但怎么证明这个ETH地址是属于你的?此时你作为ETH账户的持有人,先用EOS钱包生产工具随机生成一对EOS公私钥,然后用你的ETH账户地址向一个智能合约发送一笔映射交易,该交易会要求你填写你的EOS公钥。

交易完成后就产生了ETH地址 => EOS公钥的对应关系,等到EOS主链启动时,启动者就可以直接写入用户EOS公钥 => EOS TOKEN余额的对应关系,进而完成了代币在ETH链和EOS链之间的迁移,ETH上的TOKEN也就变成了EOS链的原生COIN。

3

起链逻辑

因为官方,也就是Block.one已经声明了他们不会去启动EOS链,而是交给社区去启动,因此也就不会有主链,或者官方链的说法。

起链的事情交给社区,就代表了不同社区有可能相继自行启动主链,导致生成多条EOS链。而且这些链都认可ETH => EOS 映射合约里的EOS公钥 =>EOS TOKEN余额的对应关系。

这样的话,做完映射的用户手中的EOS私钥,就会变成多条EOS链的共同私钥。用户需要相继把私钥导入到这些EOS链各自的钱包中,进行解锁账户、投票、转账等操作。

EOSIO也没有进行完成的钱包开发,这些钱包也都是第三方社区自己开发的。

二、为什么多个主网映射会存在安全问题

1

私钥安全

官方没有开发统一钱包,任何人都能开发EOS钱包,这就使得导入钱包的私钥安全性问题非常严重。谁能保证所使用的EOS钱包的安全性呢?

如果每条EOS链都有自己的钱包,而且用户把这些钱包都下载来使用,那么只要任意一个钱包有问题,或者自己往钱包导入私钥过程中出现问题,都会造成私钥的泄露。

因为每条EOS链的私钥都是相同的,因此只要EOS私钥泄露了,那么所有这些链的私钥就都泄露了,所有EOS链上的资产都可能被转走。

2

钱包作恶问题有以下可能

  • 有些主链就是恶意的,发布一个恶意钱包让用户去领币,实则为了窃取私钥。

  • 钱包打包发布下载的流程可能被黑,也会造成被钓鱼问题。

  • 钱包私钥的存储没有进行安全的加密或直接明文存储,在本地存储后被其他软件扫描到。

  • EOS钱包都不是全节点钱包,都要从钱包提供方的后端节点进行数据读取,这个过程中后端节点可能被黑,虽然不太会造成本地私钥泄露,但可能引导用户签署错误交易,将资产转给他人。

三、如何解决多个主网映射的安全性问题?

1

用户对每个EOS的主网分别进行映射

分别进行映射是什么意思呢?

比如现在有EOS A链,EOS B链,EOS C链三条EOS链,用户就需要对EOS A链进行一次映射,然后再对 EOS B链进行映射,最后再对EOS C链再做一次映射。这样每次映射完,不同EOS链的公私钥都是不一样的,也就不用担心私钥“一丢全丢”的情况出现。

目前链上已经有ETH地址 => EOS TOKEN的对应关系,也就是已经包含了大家之前所做的映射的记录。

如果现在需要再做一次映射,再新造一个ETH地址 => EOS公钥的对应关系,那么可以和官方一样部署一个新的映射合约,要求用户对合约做映射操作,这个需要专用操作界面支持(类似需要imtoken、myetherwallet等),比较复杂。

而根据EOS Authority提供的统计(https://eosauthority.com/genesis), 现在仅有41% 左右的 EOS 完成了映射。

这个数据反映一种现实:仅仅对一条链的映射操作,很多用户都已经忘记或者不愿意去做。如果接下来是需要多条链多次映射的话,用户就更不愿意,更操作不过来了。

2

通过交易所重新映射

用户如果把EOS转入交易所,由交易所在各条主链上做多次映射,并且对各个链的钱包做专业的评估。

同时交易所可以只进行中心化交易,等链稳定和钱包安全后再进行激活进而支持充提现,这样更为安全稳妥。

四、结语

EOS FORCE社区于2018年5月初发起了EOS FORCE TESTNET,全球首次实现了链上投票功能,在测试过程中也发现大量有关EOS的安全问题和社区治理问题。

后续我们会陆续发布,希望其他社区,交易所,超级节点,和Block one官方能重视这些问题。


分享到:


相關文章: