0
雷锋网AI金融评论报道,12月3日,灵钛科技发起主办了亚太以太坊社区技术培训及交流大会,邀请包括以太坊创始人Vitalik Buterin在内的以太坊技术领军人物、应用开发者及业内研究人士参与。这么多位代表了以太坊前沿动态和最新发展的专业人士齐聚一堂,为在场听众分享了哪些以太坊相关的进展消息?展望未来,又描绘了以太坊和区块链怎么样的进步前景?
据雷锋网AI金融评论在现场的了解,涵盖此前AI金融评论报道的Vitalik Buterin关于解决以太坊隐私性问题的演讲在内,除去数个建基在以太底层架构的DApp应用项目介绍外,该交流大会当天的演讲大致可分为以太坊基础生态建设和区块链经济价值两大类。以下为亚太以太坊社区技术培训及交流大会深圳站诸位嘉宾的演讲精编,雷锋网AI金融评论做了不改变原意的修改:
在《以太坊分片概说》为题目的演讲中,以太坊研究者王筱维从以太坊现正运行的节点入手,论述区块链可扩展性问题及去中心化、安全性在内的三重困境,将如何通过分片(Sharding)方案着手解决。
她的演讲第一部分聚焦在以太坊现正通行的1.0节点构成的P2P网络。王筱维介绍道,作为以太坊1.0中的一个全节点(full node),需要完成以太坊虚拟机(EVM)字节代码的执行、各账户交易状态变更等工作,对于矿工而言,则需运行工作量证明算法来挖矿,在以太坊虚拟机平行化执行的情况下,每一个节点都需记录每一笔交易。
每次收到一个新的区块,需要去执行每一笔交易,尽管这样区块链的安全性和去中心特质得到了保证,但随着数据存储的规模越来越大,这样的机制很难长久保持下去。正如Vitalik Buterin所定义的区块链“三重困境”,即无法同时兼顾拥有去中心化、安全性和可扩展性三方面的特性。
如在前述的每个节点负责处理区块链的工作时,有可能出现某一节点优先验证某些交易的情况,这样另一些交易的安全性就会被削弱。
由此她开始介绍分片(sharding)解决方案。与Vitalik Buterin将分片比作为“宇宙”(Universes)类似,王筱维称,在区块链上进行数据储存时,可以将这些分片看成一个个“星系”(Galaxy),它们相互独立运作,彼此间不会受到干扰。
但与此同时,它们各自之间并非毫不相干,分片上的交易结果等数据,将会以标题(header)的形式与主链上的区块标题一一对应起来;在采用了工作量证明的区块链上,各区块的发起人被称之为“矿工”,对应在分叉链上,则设置了校对者(collator)的角色;在共识机制方面,目前以太坊采用的是工作量证明(PoW)的方式,还有实施权益证明的Casper计划在测试网络中运行,在分叉链上,将会通过验证管理合约(validator manager contract)的途径来对主链采用的共识机制进行验证,从而决定分叉链的共识机制。
王筱维介绍道,验证管理合约具有以下功能:存款、提现、取样和写入标题。透过这个验证器,参与者需要交付押金,才有被随机取样的可能性,被列到参与验证的名单中,并把分片上的部分数据即校对者写入主链。
特别注意的是,当有需要进行分叉时,分片上的的分叉选择结果将会根据主链的分叉结果来决定:
如图所示,以蓝色方框标识的分片会跟着较长的一条主链,从状态B到状态C时,由于其只存在于上面的一条主链,故分叉链仅会以上面一条主链为分叉选择的结果。
在这个分片解决方案中,王筱维接着介绍了一种数据储存结构的全新设计:无状态客户端。随着以太坊区块链中的地址数量不断增长,每笔交易在同步的过程中形成的数据存储量非常巨大。在以太坊区块链的数据结构中,每个账户发生交易后,只有其所在路径的哈希值才会发生变动--
根据这个特性,她提出名为“Witness“的计算模式:即当某个分片在确定时间内取样后,其无状态客户端(节点)便能向全节点进行快速同步,而全节点只需要储存状态根(state root)即可,大大减少数据存储的负荷。
林修平:“金库”模式避免代币被小偷劫持
另一位以太坊研究者林修平的演讲,从近期以太坊钱包应用Parity安全事故入手,聚焦在了虚拟货币保管的安全性问题上,为现场听众详细介绍了多重签名钱包及其升级模式“金库”(Vault)。
林修平说,与将密钥手工抄下保管等方式相比,多签名钱包更加能够规避风险。目前大多数的钱包主人只有一把对应的私钥,在这种情况下,这把私钥丢失了,用户就再也找不回存放在钱包里的代币了。
多签名钱包的设置避免了这种单一风险,一笔交易可能需要上百把钥匙来解锁,如果丢失了其中一把钥匙不至于损失账户里所有的代币。在多签名钱包的模式中,林修平介绍道,生成了M个签名,而仅需拿到其中的N(N≤M)个签名就可以进行交易。出于防范单一签名风险的考虑,用户还可以设置需要自己手机和电脑私钥等多重签名才可解锁的钱包。
在比特币多签名钱包生成流程里,需要先形成签名,在收集多个公钥后通过它们产生的新的多重签名的公钥进行交易。在经过这个多签名钱包进行一笔交易时,先需要得到第一位用户的私钥对这笔交易作签名,然后再交给下一个,得到足够的签名量后方可真正发起交易。
由此整个生成流程比较复杂麻烦,在交易中需要更多的等待时间,交易的延迟也会更长。而在以太坊的多签名钱包中,在收集了多个公钥之后,通过智能合约将这多把公钥的主人设为该合约的拥有人来生成该多签名钱包。林修平说,将钱存进去这个智能合约后,与比特币不一样,以太坊的交易以账户为单位,故在交易中只有将存入账户的金额花光,这个钱包才会消失。
并且,在以太坊的多签名钱包里,用户可以随时管理、新增或修改智能合约拥有人,从而任意更改多签名钱包的用户。而这在比特币的多签名钱包中没有办法实现,一旦需要变更,就只能重新部署一个多签名钱包。
除此以外,林修平还介绍道,以太坊的多签名钱包可通过智能合约动态设置需收集签名数量,从而赋予了这个多签名钱包更大的操作自由度。
在金库(Vault)模式中,每笔放入多签名钱包的钱取出都需要一定的时间来确认交易。如果发生私钥被偷的情况,当用户想要把钱取走时,盗得私钥的小偷有可能会取消该笔交易而对这笔钱进行“劫持”,甚至部署一个智能合约来和钱包主人做交易,如设置一个将该笔金额的5%发至一个地址而剩余的95%发至另一个地址的合约规则。
为了防止上述情况的发生,创造了加入第三方的2.0版本金库,规定在请求交易时,钱包用户和第三方都会得知这一消息,且第三方提起请求所需时间更长。
这样在发起一笔交易的时候,出现钱包用户忘记私钥情况时,用户可以联系第三方来将钱转走;而出现拥有者的私钥被盗的情况时,由于所需时间更长,用户可以极快地拒绝由小偷发起的取钱请求;还有,钱包用户可以通过智能合约与第三方制定特殊的取钱请求,当用户私钥被盗时仍能通过第三方将钱取走,避免被小偷劫持钱包的风险。
Vitalik Buterin:零知识证明等四种方案解决以太坊隐私性问题
雷峰网原创文章,未经授权禁止转载。详情见转载须知。