Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

IOST项目技术分析

深圳林妙可
77 0 0
先前有一段时间在关注IOST,这条链被称为现在的第四大公链,虽说在dapp数量上和前三大的公链差的不少,但是看起来也有一定的潜力可以挖掘。这条公链的主打点包括POB 共识,微型块,原子协议,动态分片等。在宣传上强调的高tps,稳定性,安全性也是大多数公链的宣传点,没有特别的地方。在区块链浏览器上我们看到,投票率为24%左右,tps目前保持在30以下,和tron状况差不多。下面具体从技术角度来进行一个分析。
  {6 q/ s* F. ?& D* f% n$ B6 i2 O) r( \- t
设计模型
7 Y$ ]; w4 \9 o  t3 h2 O1.账户权限系统/ Y. m: O/ i* G2 s: l" w, r
这个权限系统和EOS的非常相近。即IOST账户由账户名和权限组成,包括owner和active权限(EOS的朋友是不是很熟悉)。每个权限有一个阈值,要拥有这个权限,在一笔交易中包含的权重之和必须大于这个权限。系统通过验证交易的签名,计算签名中的权重来进行验证。0 r3 M8 P0 n% G$ s. o' @/ L6 L
2.投票
! e; u) T& I4 q9 |$ v- C2 ^在投票过程中,它这里有候选人、合伙人节点和出块节点。候选人需要得票超过210万并且通过审核才能成为合伙人或者出块节点。目前每个块的奖励大约为3.3 iost。节点获得奖励后50%给合伙人和出块节点,50%给投票者的奖励池。" X  Y' f, I9 @" I- j- ?0 U
3.经济模型
$ W% E- t. o" x/ [; r官方说他们的经济模型继承了ETH和EOS的优点。普通节点通过质押Token来获得Gas。一个Token每天获得10万Gas。交易的执行会消耗Gas。在IOST中同样有RAM,这个RAM初始上限为128G,每年新增64G。调用系统合约的时候可能会使用用户的RAM。
8 K0 ]: ^" O. `7 @/ O# C% O! J智能合约/虚拟机模型
7 R* z1 d3 s2 SIOST的智能合约采用JS来编写,这也符合现在的发展趋势,相比于solidity的确给大多数开发者带来了便利。同时合约支持更新功能。在Token方面,他这里是Token20,跟ERC-20差不多,都是在合约里面定义了一些接口。至于虚拟机,采用的是v8。最近看到几条链都采用的v8,这和v8的安全性和高性能离不开关系。
: o( Y8 i  ?5 {4 h5 ]- l4 \主打创新点分析1 ?) U" `7 M5 \- o" T6 }% \
白皮书重点讲的是分片技术,并介绍了保证随机性、安全性的支持。但是这其中的大部分技术并没有被实现,在github上提问后得到回应为仍在开发当中。这里我选择几个比较重要的技术进行分析学习。8 J! `1 z, s8 ~1 l
1.Distributed Randomness Protocol(github 代码未实现)5 U- g" N/ B8 v" L5 ]7 d
DRP 在恶意节点数目在一个特定比例之下的时候可以去保证一个公平性。DRP产生的随机数用于划分切片、将节点放到不同的切片并且选举切片中的leader。为了实现这种随机值,这里主要采用的是通过client和server来产生,具体的技术包括non-interactive zero-knowledge proof(NIZK,了解zcash的可能知道这个,零知识证明)以及public verifiable secret sharing(PVSS)。这个DRP协议包括两阶段,第一阶段client会给所有的server广播一条消息,包括一个随机产生的平衡分组。在这个阶段,每个server产生一个随机输入的值并且使用PVSS分享给同组的其他成员。当client通过NIZK来获取到了这些加密的分享值后,它会从中随机取出一个子集。这让client可以确定每个分组的secret和协议的输出值。在第二个阶段,servers 会加密并且发送他们所有的shares给client。这之后,client会结合所有的这些group secrets去获取到那个最终的随机输出。(这段我基本按照原文翻译,总的来看的话,感觉他们说的并不清楚,我也不理解). Z" T( q: ]0 O3 d. [
2.Leader选择算法(github代码未实现)) B4 C9 r3 s" W0 q# r
简单总结下白皮书中的这个算法,这个算法重点就是用来划分shard的。在每个出块的时期,每个validator算出一个lottery。在过一个特定的时间段后,这些validators会互相交流自己生成的lottery。每个validator选择3个最小的lottery,并共同确定出这三个最小,其中最小的那个被选为leader而剩下的两个则会作为备选的leader。这个leader会通过DRP来生成一个rnd值,这个值将被validator们来利用起来把所有的节点分成shard。如果这个leader在产生rnd值的过程中失败了,就选择备用的leader。; M0 i# E4 l+ s! C+ _- q+ @8 ^5 I
3.Inter-shard transactions跨分片交易(github代码未实现)
( W! s0 g( z$ z2 P大致流程如下。如果分片A中的a要发送一笔交易给分片B中的b。首先A中的所有节点会验证这笔交易,同时锁定这笔财产。接下来,这笔交易会发送给B中的节点,当这笔交易被B中的所有节点验证后,这笔财产才会被发送给b。
& E0 W. w7 L5 H2 _/ W4.POB共识算法(已实现)% L- v+ _7 w# i
这个共识算法的话是想消除POS中的中心化问题。通过一个servi的积分体系来决定出块。具体介绍看第三个链接,那个已经说的比较好了,我就不费口舌了。, y" C6 C' }0 H" w# F  Z7 v
5.Micro State Blocks(github 未实现)
4 `9 e- g2 ]2 B! rMSB目的就是解决存储问题,缩小存储区块需要占用的资源。要如何计算一个header,具体在白皮书中没描述。这里的关键点就是每个切片都只存储上一个MSB header,整个链的state被均匀分布在多个切片中。- @" w( D7 t: D* _1 ^
总结
) I5 W+ b7 P9 ~  Z& V  q- X- pIOST总的来说,白皮书给出的技术还是有一定的创新。但是由于代码中没有实现其中的很多技术,所以对于整体的发展无法给出评论。如果能够踏实地去实现这些技术,并且后期在dapp上能够着力发展一下,那还是可以的。毕竟波场的例子摆在那里。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

深圳林妙可 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    33