EOS系值得讨论的设计

因为我对EOS比较了解,后续会针对EOS多做些介绍和延伸思考。

EOS在区块链领域应该没听说过的人很少。主要卖点是高TPS。在我看来它值得讨论的不止高TPS。下面逐个聊聊。

  1. DPOS
    DPOS就是EOS的名片,EOS的诸多特性都由此而来。DPOS就是所有持币人可以投票推选出块节点,得票最高的21个节点可以轮流出块,并且可以对链上的大小事宜作出角色。
    1.1 链上治理尝试
    EOS像是把现实中的政治制度搬到链上。
    EOSIO是EOS软件的开发公司,它利用ICO融资后开发出了EOS软件。但为了防止美国的审查,它并不参与EOS链的运营(我猜即使没有审查,它也不会参与运营)。EOSIO跟EOS链的关系是:EOSIO迭代开发EOS软件,并将其release出来,EOS链的21个BP (Block Producer)会投票是否升级到该软件。就好像EOSIO掌握立法权,BP们掌握司法权。BP们除了负责出块外,还负责链上事物管理。如投票是否封杀黑客账号等。作为回报,BP们领取出块奖励。
    所有的EOS持币者都可以向自己认可的BP候选节点投票。因此BP会尽量宣传自己,和为EOS社区发展做贡献,争取大家的投票。
    与其他链相比,EOS因为只需要在21个BP之间达成共识,就可以升级软件,对社区事务进行治理,因此效率比其他链高了很多。BP们在出块这件事上是合作关系,而不是竞争关系,因此针对出块的攻击也不存在(不确认)
    1.2 高TPS
    因为出块者早就定好了,所以出块时不需要考虑让出块时间远超过块的传播时间,也不需要临时选举出块委员会,新块只需要在21个BP之间传播完,就达到了网络的同步性。所以出块间隔时间可以非常短,也不会明显提高分叉概率。
    EOS的21个BP有预先定好出块顺序,轮到谁出块就直接出块,且同时对之前收到的区块做确认。出块时间可以达到0.5秒一个块。相应的块的不可逆时间也减少到3分钟。
    1.3 块的不可逆性
    比特币的块不可逆是概率上的不可逆。理论上当超强的算力出现时,即使6个块之前的块,也是可以被改写的。
    EOS的块是经过BP投票后进入不可逆,不可逆的块跟尚在投票中的块存在不同区域,因此是真的不可逆了。
    1.4 币价影响
    BP获取投票的最快捷、稳定方式,是直接买币投给自己。因此BP们都有大量买币,而且一直持有,相当于这部分币锁仓了,因此对提高币价是有帮助的。币价高了对炒币的是好事,但对开发者们来说成本变高了。是个双刃剑。
    1.5 中心化
    太中心化一直都是EOS被吐槽的。只有21个出块节点,太中心化了。而EOS拥护者的反击是,BTC等实际上更中心化,因为算力高度集中。
    这里我认为EOS确实太中心化,不止是因为出块节点集中,更因为他们出的块,非BP是没有审核权的。关于这一点后续再其他文章详细写下。
    1.6 安全影响
    pow和pos等其他共识算法,本质上挖矿就是对参与共识者做随机选择,算力大或者抵押币多的被选中的可能性更大,但至少每次出块都是个随机过程。而DPOS在每个块出块时,本次出块节点早就确定了,因此如果有黑客要阻止出块,只需攻击一个节点即可。但要想控制整个链,需要控制至少15个节点(2/3+1),这就不容易了。另外想要当上节点来影响出块,成本理论上也比pow等链要低,只需让自己当选就可以了。
  2. 免费执行交易
    EOS的一大宣传点就是免交易费。它需要把EOS币抵押在链上,可以抵押为内存和CPU,NET,其中内存用的班科,而且用了后如果不清除,就一直占用着了。CPU和NET每天会把前一天的使用情况清零。理论上可以认为是免费执行交易。
  3. 强大的权限系统
    EOS是账户模型,对账户的权限设置可以非常灵活。用户可以自定义各种权限,可以对每个权限设置阈值和权重,方便多签和各种情况下的权限管理,非常强大。
  4. 合约可升级
    很多人认为合约应该像以太坊上那样,上链后就不可升级了。EOS的合约可升级是破坏了code is law。这是对EOS认识不清晰造成的。我认为EOS的合约可升级是个进步。
    合约也是程序,不可能一写出来就完美无bug。而且随着各种攻击方法的出现,现在安全的代码不一定未来还是安全的,因此合约升级是个合理的需求。
    EOS的合约,可以合理配置让其达到不同的变更难度。通过合理安排让合约逐步完善,最终达到不可变更。
    4.1 普通签名
    只需合约owner账户的签名即可升级,这种是最不安全的,合约的owner随时可以升级合约。
    4.2 BP多签
    合约owner可以将账户的权限设置为21个BP,这样只有BP们联合签名,合约才可以升级,已经安全多了。
    4.2 黑洞公钥
    可以将账户权限设置为一个谁都不知道的公钥,如全0,此时效果跟以太坊上一样,谁都无法升级合约。
  5. 李嘉图合约
    EOS支持合约部署李嘉图合约,即在合约里每个action上部署一个人机均可读的类似法律条文的约定。这至少提供了一种方法让dapp和用户都清楚执行合约带来的影响,限制dapp的行为,规则上保护dapp的安全。也让用户能更清楚调用时产生的后果。让智能合约更像是个“合约”,而不是程序。
  6. 并行执行
    EOS声明支持链上并行执行程序。这是提高TPS的方法。目前没看到相关代码,应该还在开发。
  7. 快速交易验证
    EOS每0.5秒一个块,如果像比特币那样做轻量级交易验证,只存区块头,数据量也是非常大的,所以EOS开发了新的轻量级交易验证方法,只需拿到比要验证的区块后面的区块的块头,和验证路径,即可达到轻量级交易验证。这对跨链是非常重要的。

    以上是EOS的一些值得说的特性。EOS系还包含其各种子链,子链是在EOS代码基础上做改进,添加自己的特性。其中最亮眼的是BOS子链,在其白皮书里引入了很多实用的特性,而且一个个在变成现实,是非常有实力的子链。其主要特性有:
  8. 跨链
    BOS上通过IBC实现了跨链,能把EOS币转移到BOS上。据称后续还会做BTC,ETH等其他币的跨链。
    跨链还是有很多实用场景的,如下面这些。但这些都还需要额外的开发工作和巧妙地设计,拭目以待。
    8.1 去中心化交易所
    8.2 提升BTC等pow类币的TPS
    8.3 让BTC等持有者可以在BOS上执行智能合约
  9. 并行PBFT提升交易不可逆速度
    EOS上出块后,各个BP是串行对块确认,轮到自己时提交对之前的块的确认,不可逆时间大概3分钟。BOS上改进为并行PBFT,让这一时间大大缩短,达到3s就能不可逆,让现实生活中用区块链支付成为可能。(结合上述跨链,有可能让BTC在BOS上3s交易不可逆,让线下支付成为可能,闪电网络外的另一种可能)
  10. 随机数生成器
    随机数在dapp中是很重要的元素,但是目前在区块链上生成随机数是很困难的,目前基于随机数的游戏也时常会因为随机数不够随机而遭到攻击。BOS上会直接提供系统级的随机数(随机元素加BP签名),对dapp来说很方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值