【我的区块链之路】- 随便说一说 Tezos

Tezos 总结

Tezos是什么?

  • Tezos是智能合约和去中心化应用的新平台,具备自我修正的加密货币和区块链平台。主要基于 LPos (即: Liquid Proof-of-Stake 流动权益证明)。其具备智能合约的形式化验证(formation verification)功能。

架构图

【我的区块链之路】- 随便说一说 Tezos_第1张图片

开发语言:

  • 底层: OCaml 语言 (理由,函数式编程有比较强大的形式化验证功能,可以在一定程度上预防代码漏洞)

  • 合约:Michelson 语言 或者 Liquidity 语言 (语法简洁,编译速度快,形式化验证功能比较强大)

tezos 网络中的角色

  • 烘焙:即出块的意思,验证网络中的交易并进行打包称为烘焙,类似于比特币中的挖矿。烘焙可以验证区块链上的交易并保护网络 。

  • baker: 烘焙师,即:出块节点的意思,,烘焙者(baker)可以获得Tezzies (XTZ)作为烘焙奖励。烘培师的数量没有限制

  • delegator: 委托人,是指那些没有兴趣成为面包师的XTZ持有人,将其XTZ代币委托给其他的面包师进行烘焙。 理论上,委托人可以根据授权比例,从面包师所产生的总奖励中获得相应比例金额。 作为回报,被委托的面包师将收取x%的费用作为服务费。

  • 担保:即签名区块的意思。在接收到一个区块之后,验证区块的有效性,执行一个担保操作,从而获取一定担保奖励。

  • Accuser:指责者,监控所有链上的所有区块,寻找双出块,双签名的baker,一旦发现立即没收保证金。

一旦发现这些情况,该程序就会执行双重烘培或者双重担保指责操作

矿工负责烘培区块(即挖矿,Tezos 称之为 Baking )、担保(endorse)区块,以及对其他试图双重烘培或者双重担保的委托人进行追责。

一些指标:

  • 发行量:初始发行一百亿 (白皮书中说的)

  • 通胀率:5.4% (白皮书中说的)

  • TPS:40 (网上一对文章中说的)

  • 区块确认时间:(没找到)

  • 出块时间 :1分钟左右 (白皮书中说的)
    浏览器也能看出来

  • 支持智能合约,不支持VM。(原因是 Michelson 语言语言是基于堆栈的图灵完整的编程语言,和 EVM 字节码更加类似)

经济模型

自己委托自己以及别人委托自己,达到至少10k的XTZ时才有资格成为面包师。

那些无条件参与共识的投资人可以选择将抵押的XTZ委托给正在参与出块的烘焙师。这样会相应的提高烘焙师被选中出块的几率。作为回报,烘焙师在收取事先约定好的手续费之后,将和委托人共享一部分的出块收益。

保证金由专门的智能合约保管5个周期**(在白皮书中看到写的是要求质押一年)**,如果没有发生不合规定的行为,保证金在出块/签名后的第六个周期原数返还。所有烘焙师都必须保证账户内有足够XTZ余额来支付保证金。如果余额不足支付保证金,烘焙师将失去出块/签名的权利。

出块奖励奖励金额为每出一个区块16 XTZ+ 交易手续费,每一个签名2 XTZ。
保证金系统将收取512XTZ的出块保证金和64XTZ的签名保证金。

当面包师受到惩罚时,这些代币会被直接烧毁,它们会从总供应中完全消失。在烘焙或背书时不在线的面包师将会失去相应的收入,而其他的面包师将会取而代之。

可参考这里

四阶段的POS (共识)

  • 随机种子生成:
    每一个被挖的块都会携带一个由矿工选择的随机数的哈希值。这些数字必须在下一个周期的担保金没收时间前被公开。

在一个周期中所有的被公开的数字都将合并到一个哈希列表中 (应该是一颗 trie),并且这个种子将从根部 (trie root)通过使用scrypt 的密钥衍生函数得出。这个密钥的衍生需要经过调试,使得衍生种子所需的时间和一台普通桌面电脑确认区块所需平均时间百分之一的一小部分的量级相当。

  • 随币机制:( Follow-the-coin)
    通过建立大的由一万个 tez 组成的币卷(每10000个为一卷,且不做四舍五入,如19999 也是算一卷),全网大概总共会有大约一百万个卷存在(具体怎么来的?白皮书写的)。数据库把每个卷地图映射到其当前的所有者。即:(成为烘焙师的条件是需要抵押一定量的Tezos通证(XTZ)来参与共识。抵押的通证以“卷”(Roll)为单位计算,每一卷代表10000个XTZ)。
    Tezos上出块是以“周期”(Cycles)为计算单位,一个周期有4096个区块(白皮书里面是写着 2048)。以一分钟的出块时间计算,一个周期是2天20小时16分钟。其中前 6 个周期由基金会烘焙,没有收益,从第 7 个周期开始,面包师才开始产生收益。当获得权益收益后,需要锁仓 5 个周期(约 15 天) ,加起来就是需要 36 天[7×3 + 15]之后才能拿到收益。面包师无数量限额,其中,面包师的烘焙额受到保证金的限制。保证金(bond)是 Tezos 对于面包师设置的门槛之一。在烘焙之前,面包师还需缴纳基于烘焙额 8.5% 的保证金(有的地方说是 512 个XTZ),如果烘焙总值超过保证金限额,那么超额的 tez 将不会得到收益,所以需要注意委托的面包师是否有超过保证限额的问题;另外,当面包师有意或无意(宕机 / 掉线)作恶,那么面包师也会收到 tez 没收的惩罚,但委托人并不会受到惩罚。

系统内每256个区块就会生成一个“卷快照”(Roll Snapshot),也就是说一个周期内有16个卷快照。在当前周期内的出块权是由7个周期之前的一个随机卷快照算选定的卷决定的。而这个卷的持有者则可以为区块链锻造区块。新的区块将会被32个来自“支持者”(Endorser)的签名。这些支持者的选择方式和烘焙师一样。值得注意的是,一个支持者是有可能拿到多次签名机会的。因为系统是随机选择已抵押的XTZ卷,而非直接随机选择持有人。

  • 挖矿:
    随机种子 被重复用来选择币卷。第一个被选中的卷将给予它的持有者一分钟后挖块的权利,这个第二个可以在两分钟以后,以此类推。
    当一个持币者观察到种子并认识到他可以在下一个周期里挖掘一个高优先级的块的时候,他可以进行安全存币(缴纳 保证金)。
    存在这样一个潜在问题,即没有持有人进行安全存币购买债券来挖一个特定的块。如果这种情况发生,那么在 16 分钟以后,这个块就可以在没有存款的情况下被挖出。
    当购买债券的人不在挖矿时,购买债券的币将通过隐式的方式立即返还这些购买人。

  • 签名区块:
    当一个区块被挖出的时候, 随机种子 将随机分配 16 个签名权利给 16 个币卷。持币者获得签名权利后一旦观察到正在被挖出的区块就会上传区块签名。这些签名会包括在下一个区块里,该工作由试图保证区块链中父子包含关系的矿工(可以认为是下几名矿工)完成。**签名人获得的签名奖励与区块和其先祖区块之间的时间间隔成反比。**签名奖励只有在区块被写入区块链后才能发放。

slash (惩罚机制)

  • 在 Tezos 的 PoS 机制中, Slasher 主要是以没收押金惩罚双挖或双签节点的方式。

根据白皮书中所说现实没有考证,为了减少货币基数变化所带来的不确定性,所有的没有任何动作的地址和地址上所包含的币超过一年(由时间戳决定)都会被销毁。

网络:

  • Betanet
    这是目前 Tezos 区块链的主要实验网络。它使用 XTZ 运行,是 Tezos 主网正式发布之前的最后一步。

  • Alphanet
    Tezos 区块链的测试网络,运行与 Betanet 相同的代码,很少重启,适用于想要在 Beta 之前测试软件的开发人员或者希望在使用真正 XTZ(Tezzies)之前熟悉网络的用户。

  • Zeronet
    Tezos 的最新开发网络,可能会随时重启,主要由 Tezos 内部开发人员使用。

Tezos 网络中有两种账户

  • 一种是隐式账户,即普通账户;以TZ1开头用于持有资金的账户。

  • 一种是发源账户,用于委托 Token 或者执行 Michelson 代码,即智能合约;以KT1开头。

代币的发行

Tezos区块链的原生代币是Tezzies(XTZ),一开始就会有一百亿个币,这些币小数点后保留两位。一个币被称作 1tez,而最小的单位是分。我们也建议使用 ꜩ 拉丁字母来代表一个 tez。这样的话,一分等于 0.01tez,等于百分之一 tez。Tezzies被用作平台的价值储存,用于支付网络交易费用和为智能合约提供支持。也用于平台治理,其中每个代币代表一个投票。这些投票将会投给代表,然后代表们再对提案进行投票。在Tezos网络中可以将Token质押给自己,也可以将Token 委托给矿工。

通胀率为: 5.4%

(白皮书中称) 为了减少货币基数变化所带来的不确定性,所有的没有任何动作的地址和地址上所包含的币超过一年(由时间戳决定)都会被销毁。

Tezos 的治理

Tezos 最强大的特性是它的协议自我修正能力,主要通过暴露给协议两个过程函数实现:

  • set_test_protocol 函数,使用新协议替代测试网络中使用的协议**(通常是持币者投票决定的协议)**。
  • promote_test_protocol 函数,用当前通过测试的协议替代目前正在运行的协议。
  • protocol_hash 函数,是.ml 和.mli 文件 sha256 哈希的 tarball 打包。

四阶段的治理

Tezos 设计了以投票决议方式来修订协议(就是提议),每一个投票周期时长为长度为2的17次方,即 131 072 个区块时间**(考虑到区块间隔是一分钟,所以这个间隔是三个月)**。投票结果的生效需要达到最小投票人数阈值,满足 Q = 80%,但会为了反映平均参与度而动态适应。

  • 第一阶段:
    建议修改协议需要提交一个代表新协议的.ml 和.mli 文件的 tarball 打包的哈希。持币人可能会批准任意数量的所提交协议。这也就是批准投票,是一个强健的投票过程。

  • 第二阶段:
    在第一阶段获得最多批准的修改案基础上进行投票。投票人可以投票反对或者弃权。投弃权的人也按法定人数计算。

  • 第三阶段:
    如果达到法定人数 (包括明确的弃权),并且修改案达到了 80%的支持率, 那么修改案就会被批准,并替代测试协议。否则它将被否决。假设投票人数值为 q,按如下方式更新最小法定人数 Q :
    Q ← 0.8Q + 0.2q

做出以上更新是为了避免因为丢失币的问题延缓投票过程。最小法定人数是达到前面选举法定人数以上的指数滑动平均。

  • 第四阶段:
    假定修改案被批准,在第三阶段开始的时候开始测试网络运行该修改案。持币者将进行第二次投票来确认他们确实想要支持测试协议替代主协议。这也要求一定的法定人数,以及 80% 的绝大多数投票者支持。

治理只有 proposal 的Hash 上链。

亮点

  • 自我修复:Tezos的升级不需要对区块链进行分叉,因为它具有自我修复功能。

  • 形式验证:Tezos区块链有助于形式验证,这种技术在计算上证明了管理交易的代码的正确性。

Tezos 与 Ethereum 的区别

治理方式、智能合约、大众共识和哲学层面 请参考

总结:

总体来说 staking 和 governance 都可以借鉴一点点。

你可能感兴趣的:(区块链)