打字猴:1.703876329e+09
1703876329 区块链项目开发指南 [:1703875289]
1703876330 区块链项目开发指南 2.18 以太坊的缺点
1703876331
1703876332 每个系统都有一些缺点,同理以太坊也有一些缺点。显然,像其他应用一样,以太坊源代码可能有bug。它也像其他以网络为基础的应用一样面临着DoS攻击。让我们看看以太坊独有的且最重要的缺点。
1703876333
1703876334 1.Sybil攻击
1703876335
1703876336 攻击者可能试图用他控制的普通节点占满整个网络,那么用户很有可能只连接到攻击者节点。一旦连接到攻击者节点,攻击者可以拒绝从所有节点转播区块和交易,从而将用户从网络中断开。攻击者只能转播他创建的区块,从而会将用户放到分开的网络上。
1703876337
1703876338
1703876339
1703876340
1703876341 图2-2 Mist的示意图
1703876342
1703876343 2.51%攻击
1703876344
1703876345 如果攻击者掌握了网络中一半以上的算力,他就可以比网络中其他人更快地生成区块。攻击者可以保留他的私有分叉,直到分叉比诚实网络创造得更长,然后广播自己的分叉。
1703876346
1703876347 拥有50%以上的算力,矿工就可以重写交易,阻止全部/一些交易被挖出,并阻止其他矿工挖出的区块被添加到区块链中。
1703876348
1703876349
1703876350
1703876351
1703876352 区块链项目开发指南 [:1703875290]
1703876353 区块链项目开发指南 2.19 serenity
1703876354
1703876355 serenity是以太坊下一个主要更新的名字。在写本书之时,serenity仍处于开发阶段。这个更新将要求硬分叉。serenity把共识协议改为casper,并将整合状态通道和分片。在写本书时,完整细节尚不明确。
1703876356
1703876357 1.支付和状态通道
1703876358
1703876359 在学习状态通道以前,我们需要了解支付通道的概念。支付通道功能允许将两个以上向另一个账户发送以太币的交易合并成两个交易。其工作原理为:假设X是一个视频网站老板,Y是个用户。X每分钟收费1个以太币。现在X想让Y看视频期间每分钟交一次钱。当然,Y可以每分钟广播交易,但是这里还有些问题,例如X不得不等待确认,所以视频就会中断一会。支付通道可以解决这个问题。使用支付通道,Y可以广播一个锁定交易,为X把一些以太币(比如100个以太币)锁定一段时间(比如24小时)。现在每看完一分钟视频,Y将发送一个签名记录表示可以解锁,一个以太币就进入X的账户,其余的进入Y的账户。再过一分钟,Y将发送一个签名记录表示可以解锁,两个以太币就进入X的账户,其余的进入Y的账户。Y观看X网站的视频过程中,该过程将持续。现在假设Y看完了100小时视频或者24小时时间到了,X将向网络广播最后的签名记录,以把钱收到自己的账户里。如果X没有在24小时内提款,全款会返还给Y。所以在区块链中,我们将看到lock和unlock两种交易。
1703876360
1703876361 支付通道是与发送以太币相关的交易。类似地,状态通道允许合并与智能合约相关的交易。
1703876362
1703876363 2.权益证明和casper
1703876364
1703876365 在学习casper共识协议之前,我们需要理解权益证明(Proof-of-Stake,PoS)共识协议的工作原理。
1703876366
1703876367 权益证明是工作量证明最常见的替代共识。工作量证明会浪费大量算力。PoW和PoS之间的区别就是:在PoS中,矿工不需要解决问题;而在Pow中,矿工需要证明挖矿权益的所有权。在PoS系统中,账户中的以太币被当作权益,矿工挖矿的概率与矿工持有的权益成正比。所以如果矿工拥有网络中10%的权益,它将挖到10%的区块。
1703876368
1703876369 但问题是怎样才能知道谁将挖下一个区块。我们不能简单地让持有最多权益的矿工总能挖出下一个区块,因为这将导致中心化。对于下一个区块的选择,存在不同的算法,例如随机区块选择和基于币龄的选择。
1703876370
1703876371 casper是PoS的一个修订版本,它解决了PoS中的一些问题。
1703876372
1703876373 3.分片
1703876374
1703876375 目前,每个节点都需要下载全部交易,数量庞大。按照现在区块链发展的速度,未来用不了几年,下载整个区块链并同步将是非常困难的。
1703876376
1703876377 如果用户熟悉分布式数据库架构,那么肯定熟悉分片(sharding)。简言之,分片就是在多个计算机分布数据的方法。以太坊将实现分片,以分割区块链并跨节点分布区块链。
1703876378
[ 上一页 ]  [ :1.703876329e+09 ]  [ 下一页 ]