查看原文
其他

大妈也能看懂的波卡科普文

姜富耀 PolkaWorld 2019-08-03

加入 www.polkaworld.org 社区,共建 Web 3.0!


大家好,我是姜富耀 - Polkadot早期社区成员,波卡首款移动端钱包Polkawallet创始人。感谢大家这么热的天儿,过来参加我的线上分享。今天咱就用大白话讨论一下波卡到底是个什么?其实有些原理都懂,只不过波卡跟现实生活没有串联起来,我所要做的就是把波卡的机制跟生活串联起来,你会发现有些东西其实很简单嘛。



波卡由来,为什么会有波卡


咱先来说说为什么会有波卡这个东西。


这个问题得从Gavin wood web3.0 理念说起,现在的互联网属于“独有,独治,人民部分享用”,也就是说目前的互联网不属于咱,咱也没法参与现在互联网的治理,咱只能部分使用互联网,有些东西无论好的坏的,只要想不让你用,就不让你用,还能让你不知道,信息屏蔽,暗箱操作。这些都与大自然规律相违背,也就是逆“道”而行,所以这终将要被取代的。


那取而代之的将是Web3.0,用曹寅曹先生的话讲就是网络是人民拥有、人民治理、人民享有。我的理解就是“我们从大自然网络中来,到大自然网络中去,我们都是大自然中的一员,我们改变自然,自然改变我们,顺道而行,相辅相成。” 


从落实层面上讲就是:制定一套包容性的协议,为应用程序制造商提供构建模块。这些构建模块取代了传统的网络技术,如HTTP,AJAX和MySQL,提供一种全新的创建应用程序的方式。这些技术为用户提供了强大且可验证的保证,用户接收的信息,提供的信息,支付的内容以及用户收到的信息。通过授权用户在去信任市场中自助式处理,我们可以确保更少的审查和垄断式暗箱操作。这就是“后斯诺登时代网络”,其实就跟吃自助烤肉是一样的,web3给咱提供锅碗瓢盆以及食材,吃什么咱自己选,先烤什么烤几分熟咱自己说了算,你不仅可以自己吃,还可分享给别人。web3更多的是给咱提供一些基础设施和环境。就这么回事。


那有了这么美好的愿景,那不能让理想很丰满,现实很骨感,那就得去落实啊。所以Gavin wood 创办了 Web3基金会和parity 技术公司,他们是为这个愿景奋斗的领军者。


Gavin Wood在2016年10月受分片机制启发写了Polkadot最初的白皮书版本 ,构思了一个系统,其中连接到中继链的分片并不完全相同,允许不同的节点运行不同的应用逻辑,使每个链都成为自己的平台。然而构建这样一个支持不同架构的系统,整个复杂性是相当大的。但Gavin找到解决方案,用WebAssembly这样一种通用的抽象机器规范,可以在具有不同业务逻辑的区块链中进行调解。所以每一个平行链都可以具有不同的业务逻辑,处理不同的任务。


Polkadot 被设想为以太坊等区块链的扩展解决方案,Polkadot通过多个平行链进行扩展,节点只需要验证平行链上的交易。允许不同平行链上的有独立交易,从而增大交易吞吐量,并可扩展每个附加平行链的交易容量。


这个架构其实很简单,就像生活中的插排,波卡就相当于一个插排,可以接各种电器:冰箱,电脑,洗衣机,电风扇,等等。它们可以处理不同的业务逻辑和任务,如果这个插排插满了,那就再接一个插排,接着又可以接各种各样电器。这就相当于二级中继链,说白了也就是波卡接波卡,即将在8月份发布的Kusama网络其实就是一个波卡,有着跟波卡几乎相同的东西,将来可能成为波卡的二级中级链。相当于波卡是公牛品牌第一个型号的插排,Kusama相当于公牛第二个型号的插排,将来可能有别的团队也研发新的中继链,那就相当于飞利浦牌的插排。而接到插排上的各种各样的电器,就是各种不同架构的平行链。


为什么说波卡是扩容解决方案?比如说一个家用电风扇,风力相当于交易吞吐量TPS,突破它的风力上限是比较麻烦的,又得各种改进。那不如直接在插排上插好几风扇,一个插排插满了,可以接个插排接着又能插很多电风扇,那这样就可以接很多个电风扇,这个风就呼呼的刮。所以扩容才是波卡的核心思路,跨链只是他的一个次带功能


而且这些电风扇都不用自己供电,直接用插排的电,这就是共享安全,共享共识机制。Cosmos相当于让每一个电器都自己去解决电的问题,相当于为了吹个空调,还得给空调装个柴油发电机。 



参与网络的四大角色


- 验证者

验证人就是需要维护整个波卡网络安全共识的一类人,他需要跑波卡的全节点,需要抵押代币,并且确保7*24小时的全天候在线,如果离线或者试图发起恶意攻击,就会受到惩罚。常见的离线的惩罚相对比较轻,但是频繁离线,惩罚的力度就会倍数增长。你可以在声明成为验证者时候,设置自动退出削减阀值,比如设置个4,如果不设置默认也是4次左右,被削减4次,就会自动推出不干了,从而避免节点服务器宕机,睡一觉起来全被削减光了。


- 提名人

提名人是普通用户比较轻快的参与抵押挖矿的一种形式,就是通过研究分析所有验证者,挑选几个你认为比较好的,然后提名他们,按比例进行收益。一旦提名了验证者,就需要与其同甘共苦,他受到奖励,你也按比例得到奖励,他如果收到惩罚,那你也会收到相应惩罚。所以在提名的时候,不能在一棵树上吊死,把鸡蛋放在多个篮子里,分散风险。


- 收集者

收集者,就是收集平行链的交易,并为验证者提供状态转换证明,就跟有好几个老外想给你讲故事,他们各自说的是葡萄牙语、法语、德语、孟加拉语、阿拉伯语。你听不懂,让后分别请了这几门语言的翻译,好几个,让她们把老外讲的故事收集起来,然后翻译了,并公开,证明可验证翻译的是正确的。然后把翻译结果呈现给你。现在你就是波卡,这几个翻译官就是收集者。


- 钓鱼者

钓鱼者,就是监控和证明验证者的不良行为,这个名跟他的职责很像,不经常有收获,但是一旦有收获就是个比较大的。现在这个钓鱼者概念已经跟收集者融合在一块。收集者可以同时兼顾钓鱼者的职责。



关于插槽竞拍


之前讲到波卡就跟这个插排是一样的逻辑,那第一个插排,也就是波卡本身,插槽数量是有限的,但是他以后会随着时间推移增加插槽数量。这就需要抵押DOT来竞拍插槽。


平行链插槽的竞拍使用蜡烛式拍卖。这个蜡烛式拍卖呢,就是最初十六世纪用于出售船舶的拍卖方式。就是在火焰即将熄灭的时候,你不知道哪一下它就“啪”一下就熄灭了。蜡烛式拍卖就在链上模拟蜡烛熄灭的过程:在蜡烛熄灭那一刻出价最高的人竞拍成功。


任何平行链得到这个插槽有什么用?有两大好处:第一个是,你可以不用自己供电了。就是相当于共识是由波卡来统一进行的,给你安全保障!再就是可以进行跨链互通,也可以提高自己的存储量和交易数量。


但是呢,这个平行链插槽其实也存在潜在的一些风险。比如说一些平行链已经拥有了插槽,但是在下一次的拍卖当中没有获胜,它就即将失去这个插槽,那他就会失去这个共享安全的机制。这其实是相对存在风险的,它需要召集大量的验证者来进行维护它的网络,所以在初始阶段呢它可能会比较不稳定。



如何成为平行链(两种方式,以及需要做什么事)


成为平行链,主要有两种方式。


一种是你如果已经有项目了,已经主网上线跑了很长时间,那你可能就需要做一些状态转换的模型上的机制增加。


如果你还没有创建项目,那你就可以用Substrate这个框架去快速的构建你的这个平行链。而且你构建完成之后,只需要加一行代码叫基云,然后你直接就可以成为准平行链。你还要需要再成功竞拍插槽,那你就可以成为正式平行链了。


那什么是Substrate呢?它是波卡在做到第二个概念验证的时候,突然觉得应该给大家一个框架来更好地做平行链。就是给大家做一个底层的框架,然后它把这个代码重新剥离出来。然后波卡也基于这个Substrate框架来进行开发,就相当于把底层的地基给单独剥离出来了,大家再用这个框架就相对简单了。那这个框架其实就相当于一个组装的机器人!


用Substrate去开发自己的链是一种什么感觉呢?相当于你收到一份快递,打开一看,这里边是一个组装式的机器人儿,而且它里边还给你一些各种各样的配件,并且里边有一个默认的组装方案。你喜欢这套方案的话,可以直接让它跑,也是可运行的。而且你可以直接去简单的去修改一下。甚至你不喜欢他的胳膊腿,那你就可以卸下来换一换。


甚至这个机器人呢他可能没有左腿,有可能没有左胳膊。比如说波卡,它就是没有没有这个智能合约虚拟机的,它有着自己独特的业务逻辑,不需要智能合约虚拟机。


所以说你可以用Substrate来构建各种各样适合你自己的业务逻辑的链出来。而且就是特别方便,而且加一行代码,就可以成为准平行链。


参数链开发工具包 (PDK) 是大大简化应用特定参数链开发的工具。Substrate 是一个有助于构建区块链的 PDK。Substrate 运行模板区块库 (SRML) 包括某些区块生产算法的内置实现,包括 BABE、Aura 等。另一个 PDK,称为 Cumulus,包含将基于基板的链连接到 Polkadot 网络所需的“胶水代码”。Substrate 和 Cumulus 共同构建和连接了 Polkadot 网络,并可轻松连接其交易吞吐能力。



GRANDPA/BABE 共识


BABE(区块链扩展的盲分配),用于生产新模区块 ; 和GRANDPA(基于 GHOST 的递归祖先派生前缀协议) 一起,用于旧区块的定稿。


BABE 是一种生成中继链区块的算法,它由来自这些参数链上的整理器生成的所有有效和可用的参数链区块的标头组成。BABE是一种基于槽的算法,为给定时隙生成中继链区块的权利被随机分配给称为插槽引线的验证者。发布下一个区块的资格由使用可验证的随机函数 (VRF)的专用本地计算决定。BABE 的设计主要借鉴了 Ouroboros Praos 的区块生产组件,这是 Cardona 的 PoS共识协议。但是,它解决了某些实际限制,如通过实现相对时间进行时钟漂移,并通过要求定期的 " 丢失证明 " 来证明验证者在给定时间段内没有被分配插槽,从而识别出跳过插槽的验证者。只要超过三分之二的权益属于正确遵循协议的验证者,BABE就是异步安全的,并且处在部分同步假设下。


GRANDPA 是一个最终性工具,其中每个验证者不是对单个区块进行投票,而是在他们认为有效的最高区块上投票,这实际上是对区块的所有祖先的投票。所有得到超过三分之二验证者权益投票的常用区块都得到最终确定。由于多个区块可以同时定稿,验证者可能需要超过一个区块的时间才能就最终性达成共识。这允许GRANDPA 支持比传统的必须单独完成每个区块的 BFT 算法更大的验证者集。如果验证者模棱两可,瞭望塔节点 (称为渔民) 可以构建包含验证者冲突投票的证明,通过削减验证者的权益来赚取赏金。权益削减使 GRANDPA 能够提供异步责任安全,这意味着任何两个冲突区块的确定将导致负责其的验证者失去其权益存款 (至少占所有验证者权益的三分之一)。GRANDPA 还提供合理的活动性,这意味着只要区块生产机制满足某些标准,最终链就会增长。



波卡网络的三种账户类型(存储账户,控制账户,出块账户)

波卡之前是没有区分账户类型的。在今年的三四月份,波卡提出来这个三种账户类型:控制账户、存储账户和出块账户。


存储账户很好理解,相当于你可以把它放在最冷的一个地方,就是最不容易被黑或者是离线的状态。就是专门储存你的大量代币。


然后你需要跟控制账户进行绑定,控制账户呢就可以控制你的存储账户的权益进行抵押操作,比如说发起验证发起提名等各种各样的操作。控制账户就可以放在一个相对比较热一点的地方,比如外部钱包或事移动端钱包这种地方。因为你在控制账里边的这个币呢,你只要把一些少量的手续费放在里边就够了,用来支付你发起提名或者验证的交易的手续费,但是一定不要把大量的资金放在控制账户当中,更不能放在出块账户当中,出块账户是最热的地方。


那么出块账户是用来干嘛的?出块账户只有验证者才用得到。验证者在成为真正验证者,就是他声明成为验证者之前,他要去申请创建一个出块账户,然后跟自己的这个存储账户进行绑定。你绑定完了,运行验证服务器的时候,在那跑节点不是吗?那是最热的地方,最容易被黑的地方。那你把这个SessionKey这个出块账户放在那,它只行使出块的功能,相当于派了个替身出去,但是这个替身只是给你负责一定的权限。他被黑的,他里边也没有什么币,也就是一点点手续费在里面。


这个东西就相当于啥?相当于皇帝想下一个诏旨,你不能自己出去,自己出去容易被刺客暗杀。那怎么弄?你派个太监出去下诏旨,他被杀了也没事,最多也就失去个太监。如果你自己出去的话,你容易被暗杀(黑掉),损失太大。所以就相当于你派一个出块账户,替你行使这个出块的这个任务。


控制账户其实就相当于你的大将,他可能行使的权力也更大一点,但是呢他手里也只是握了你部分兵马,但是你一旦丢掉,也存在一定的风险。所以最大的核心是保护你的存储账户,只要存储账户不丢,你的币还是在你手中!明白了吧?


存储账户就像皇帝,需要时刻保护,被盗了就彻底完了。控制账户就相当于你的军师/将军,被杀了被盗了,是有控制权的损失,也比较危险,但是皇帝还没事。出块账户就是传圣旨的太监,被杀了,损失不大,就是心里一紧。



波卡的链上治理(Democracy)


Polkadot正在采取比以太坊更有条理、更正规的治理方法。透明度和问责制通过要求所有拟议的改革都必须由权益加权代币投票程序批准来实现。决策通过节点软件中的内置升级机制进行绑定,可自动更新选民批准的升级。这些设计权衡基于的假设是:透明、可计数的投票机制将提高凝聚力,使治理决策更容易被对立的少数派接受,而默认接受升级能够实现创新。Polkadot 的治理设计考虑了利益相关者投票时的理论和经验观察问题,并引入了许多不同的机制来解决这些问题。


人的主体性是治理中的一个重要因素,也是对自动化流程的制衡。为了检查和协助其自动化升级过程,Polkadot的治理结构包括一个民选官员委员会,其宗旨类似于公司董事会。理事会的主要职能是提出合理的公民投票,取消有争议的危险或恶意的投票结果。理事会成员以股份加权表决通过,任期一年固定。Polkadot的议会最初将包括6人,但头9个月将增至24人。


选民的冷漠可能导致的法定人数不足是许多区块链和现实世界投票系统的问题。为了在选民参与率低的情况下保持治理良好运行,Polkadot 采用了自适应仲裁偏置机制,利用数学公式调整根据投票率做出决策所需的绝对多数。投票率越低,批准或否决提案所需的绝对多数票就越多。对于公众提交的提案,需要获得绝大多数赞成票才能获得批准。获得议会一致支持的提案需要绝大多数反对者予以否决。


购买选票可以通过权益池奖励来实现,这也是卡特尔获取投票系统的常用方法。为了确保经济上对决策的认同,并阻止选票销售,Polkadot 采用了时间锁定的票数乘数和延迟通过公投机制。选民必须将其代币锁定比最终实施更长的时间,并且可以将权益投票的权重与更长的锁定时间相乘。这就形成了一种机制,使得对某个问题抱有信念的选民可以押注于它,即通过获取更多代币来扩大他们的影响力。延迟颁布规定创造了一段时间,在此期间,反对作出决定的人可以在支持者代币被锁定的情况下将其代币取出系统,从而提供一些保护,防止多数人的暴政。


通过这些机制,Polkadot 希望改进以前的治理实施机制,并提供一个公开、透明、高效的治理流程,以激励分散社区的创新和凝聚力。Polkadot 的链式治理系统的设计人员承认其初始实施存在局限性,他说:"我们知道这远非完美,但我们希望并期望它足够好,能够提供真正伟大的治理平台系统,并可以在Polkadot的一生中不断演变和适应。


本文是 PolkaWorld “波卡 & Web3.0 生态系列直播” 第二期,直播地点为 PolkaWorld 社群。关注 PolkaWorld 公众号回复 “1”,进群向直播嘉宾提问~


更多精彩文章:


Kusama 代币 KSM 映射领取教程

关于 Kusama 的常见问题解答

Gavin Wood 亲笔:关于 Kusama 网络的公告

和 Gavin Wood 博士一起编程是什么样的体验?| PolkaWorld 工作坊


扫码关注公众号,回复 “1” 加入 PolkaWorld 波卡群

关注 PolkaWorld

发现 Web 3.0 时代新机遇


请点个 “好看” 再走吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存