比特帝国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

比特帝国 首页 赛贝CYBEX CYBEX资讯 查看内容

一篇文章读懂波卡Polkadot

2019-5-31 22:05| 发布者: CYBEX赛贝社区| 查看: 72| 评论: 0|原作者: CYBEX赛贝社区

CYBEX将于6月15日正式上线ETO项目——波卡Polkadot(DOT),对于这个由Gavin Wood主导的跨链项目,你了解多少呢?它是如何工作,又有哪些技术特点呢?


这篇文章将带你理解Polkadot项目。


详解Polkadot

Polkadot 是一个允许独立区块链互相交换信息和价值的跨链技术。它拥有低门槛、灵活、自治经济活动,共享安全性等特点。


Polkadot系统


1) 真正的互操作性
Polkadot 支持不同的区块链传输任何类型的数据或资产,而不仅仅是token,连接到Polkadot的区块链实现与 Polkadot 网络中的各种区块链进行互操作。


2)可扩展性
Polkadot 利用一组通用可保护区块链安全的验证人,从而提供前所未有的交易可扩展性,Polkadot 利用多个平行链来扩散交易。


3)方便的区块链哥们
使用区块链构建框架基建、可以在几分钟内创建一条区块链。 将其连接到 Polkadot,从第一天起就可以实现互操作性和安全性。 这种易于开发有助于 Polkadot 的网络发展。


4) 无分叉
Polkadot 旨在成为一个真正具有弹性的网络:它能够在不分叉的情况下适应和升级自己。 这使得 Polkadot 可以轻松适应变化,并在更好的技术可用时自行升级。


5) 安全性能高
Polkadot 引入了“共享安全”,其中平行链由 Polkadot 的验证人负责安全。 接入 polkadot 的 区块链从第一天开始很安全。当他们连接到 Polkadot 时,这给了他们有强烈的动机接入Polkadot 网络。


6)社区自治
Polkadot 用有一个开放的治理体系。 通过链上治理协调对网络的升级,确保 Polkadot 的发展能够反映社区的价值。



Polkadot 系统中的角色


1 )验证人
验证人负责生成 Polkadot 网络里中级链的区块。 验证人需要抵押足够多的押金。一个验证人必须在高可用和高带宽的机器上运行一个中
继链的客户端。每个区块上,节点都必须随时准备接收一个已提交的、在平行链上的新区块。 这个过程涉及接受、验证、再发布候选区块。


验证人的任命是确定性的,但无法提前知道。因为让验证人拥有所有平行链的全同步数据不太合理,所以把在平行链出块的工作指派给第三方,也就是收集人。


一旦所有平行链上的区块被它们制定的验证人小组正确地批准了,验证人就必须开始批准中继链自身的区块,包括更新交易队列的状态(也就是从一条平行链的出口队列转移到另一条平行链的入队列)、处理已批准的中继链的交易集合、批准最终的区块、吸收平行链的最终改变。


在我们选择的共识算法下,会惩罚没有履行他们职责的验证人。最开始如果不是有意的错误,就只是会扣留他们的奖励,但如果是重复的错误会扣减他们的押金(通过烧毁), 例如双向签名(double-signing)或合谋提供一个非法区块等可证明的恶意行为,会导致他们丧失全部的押金(烧毁一小部分,大部分奖励给信息提供方和诚实的验证人)。


在某种程度上,验证人和目前 PoW 区块链的矿池相似。


2) 提名人 

提名人拥有代币,他们可以把它委托给安全可信的验证人。他们没有其它的作用,他们信任某个特定的验证人(或群体)可以代表他们维护整个网络。按照他们的入金比例,他们也会受到和验证人总押金同样比例的奖励和扣减。和下面的收集人一样,提名人和目前 PoW网络的矿工相似,会依据密码学算法,把验证人随机地分成很多个组。一条平行链对应一组,甚至每个块的组也都可能不一样。这个设置意味着中继链至少也要和平行链的出块时间一样短。


3 )收集人 

收集人帮助验证人制造有效的平行链区块。他们会运行一个特定平行链的全节点,这也意味着他们有全部的必要信息,可以打包新块并执行交易,就跟目前 PoW 区块链的矿工一样。 在正常情况下,他们会验证并执行交易,并创建一个未打包的区块,再加上一个零知识证明 一起提交给一个或多个当前该平行链区块的验证人。


4) 钓鱼人

钓鱼人类似于网络警察,它负责监督验证人不作恶,不像其他的两个参与方,钓鱼人并不直接和区块打包的过程相关。他们是独立的“赏金猎人“,激励他们的是一次性的大额奖励。准确地说,由于钓鱼人的存在,我们才能减少恶意行为的发生,即使发生也希望只是因为私钥不小心泄露了,而不是恶意的企图。


钓鱼人只要及时举报并证明至少一个有抵押的参与方存在非法行为,他们就能获得奖励。 非法行为包括对两个有相同父块的不同区块进行签名,或在平行链上批准一个无效区块。


为了预防由于私钥泄露给钓鱼人所导致的过渡奖励,钓鱼人上报关于单个验证人的非法消息签名的基础奖励是从最小开始的,这个奖励会随着其他钓鱼人上报更多的非法签名而逐渐增加。依据Polkadot基本的安全性假设:至少三分之二的验证人是诚实的,平衡线设置在 66%。


钓鱼人某种程度上和目前区块链系统的全节点相似,他们所需要的资源相对较少,也没必要承诺稳定的在线时间和大的带宽。钓鱼人有如此大的不同,所以他们只需要提交很少的押金。这个押金用于预防浪费验证人计算时间和计算资源的攻击。它是立即可以提现的, 很可能不会比等值的几个美金更多,但如果监测到一个不当行为的验证人,可能会收获很大的奖励。



Polkadot 的结构


1) 平行链

平行链是在 Polkadot 网络的特定区块链,可以简单的理解为外部链(如ETH)在 polkadot网络内的映射。每个平行链都可以拥有最适合其应用的特殊结构。平行链可以实现并行交易和可伸缩性。不同的平行链之间由中继链连接,并由中继链提供安全保障。


2)中继链
中级链是 Polkadot 的网络核心。它保护平行链并在它们之间传递信息。信息可以是交易
或任何任意数据。 中继链会类似以太坊,也是基于状态的,包含一个账户信息到状态存储的映射关系,其中信息主要包含余额和交易计数器(防止重放)。把账户系统放在这里的目标是:记录每个身份在系统里控制了多少权益。


 但还有一些值得注意的差异:

  •  a. 不能通过交易部署合约;这是为了让中继链尽量缺乏功能性,不支持公开部署合约。


  •  b. 没有资源计数器(gas);因为公众能够调用的一些功能是固定的,gas 记录系统的原理就不适用了。因此在所有功能中,会使用一个更通用的手续费标准,这样就能更高效地执行那些动态代码,交易格式也会更简单。


  •  c. 会有一些包含特殊功能的默认合约,他们管理交易的自动执行和网络消息的输出。


3)桥
桥是提供 Polkadot 与外部的,真实的区块链进行连接。


平行链的区块头会被包含进中继链的区块中,用来保证不会发生重复交易,类似于比特币侧链和联合挖矿的安全性保证。


4)跨链通信


Polkadot 最关键的部分是跨链通信。因为在平行链间可以存在某种信息通道,我们才说Polkadot 是可伸缩的多链系统。在 Polkadot 中,通信可以很简单:一条平行链中的执行交易的时候(依据那条链的逻辑),可以给第二条平行链或中继链转发一个交易。目前生产环境中的区块链外部交易,都只能是完全异步的。


为了保证最小的实现复杂度、最小的风险和最小的平行链架构束缚,这些跨链交易和目前标准的外部交易没有区别。


跨链交易的问题可以用一个简单的队列机制解决,这个队列用梅克尔树(Merkle tree) 来保证数据真实。中继链的任务是把交易从来源平行链的出口队列转移到目的平行链的入队列。已转发的交易会在中继链上被引用,而不是中继链自身的交易。为了预防一条平行链往另一条平行链发送垃圾交易,规定在在前一个块结束后,发送每一个交易时,目标平行链的入队列不能太大。如果区块处理完后,入队列太大,那么目的平行链会被看做是饱和了,接下来的几个块里就不会再路由交易给它,直到入队列降到临界值以下。这些队列在中继链上管理,允许各平行链相互决定他们的饱和度大小。


Polkadot 是如何实现跨链通讯的


Polkadot 是一个跨链技术,它是如何实现跨链通讯的呢?


假设:

3050 年,宇宙文明探险队在 M56 星云发现了一个有生命的星球。这个星 球上有7个相互隔离的海岛,每个海岛各自居住者一个部落,拥有自己的货币系统和记账系统。虽然地球人的到来让他们认识了彼此,但是由于谁也不服谁,所以无法建立统一的国家。为了促进这个星球的交易和交流,探险队为他们设计了一个去中心化,可以绝对信任的Polkadot系统。


首先,我们回答一个问题,是否需要交易和交流?


要回答这个问题, 不得不说到一篇非常有名的文章《战俘营里的经济组织》 ( The Economic Organisation of a P. O. W. Camp ),这篇文章的作者是R. A. Radford,他是一位经济学者,在二战时,被当作战俘投到德国人的战俘营里去了。


作者在文中说:“事实上,一个战俘物质享受水平的显著提高,不是依靠自身攫取生活必需品的能力,而是通过商品和服务交换得以实现的。”


这句话,听上去好像平淡无奇。它其实讲了一个很重要的道理,即使物质的总量不发生变化,只要人与人之间能够进行交易,人们的生活水平就会提高。


我们举一个简单的例子来说明一下:


假设每个海岛上的人必须要生产两样东西:一是大米,一个是纯净水。海岛A 上的人种植 1 公斤大米需要劳动 1.5 小时,生产 1 升纯净水需要 3 小时。而海岛B 的人种植 1 公斤大米需要劳动 2.5 小时,生产 1 升纯净水需要 1.5 小时


原先,海岛 A 和海岛 B 的人分别需要每天工作 4.5 小时和 4 小时来保证他们的生活所需。但是如果它们可以交易后,海岛 A 的人可以每天生产 2 公斤大米,海岛 B 的人每天生产 2 升纯净水,然后 1 公斤大米和 1 升纯净水交换。这样,海岛 A 和海岛 B 的居民每天只需要工作 3 小时,都比原先工作时间减少了,这便是交易的价值。


好的,我们讨论了交易的必要性后,回到原先的案例,看看Polkadot系统是怎么工作:

海岛上都是采用公众记账的形式。例如海岛 A 的居民是去公共田里劳动 1.5 小 时,账本里面 Ta 的账户下就多了 1 公斤大米。


有一天海岛 A 的居民 A 拿着 5 公斤大米,想跟海岛 B 的居民 B 交换 5 升纯净水。当海岛 A 的居民 A 提出交易的时候,Polkadot 的收集人验证这个居民是否账上有足够的大米,可以验证居民 A 提供的账号是它本人的。验证成功后,居民A 账户的 5 公斤大米的记录通过 Polkadot 的桥(真实链与 Polkadot 的桥梁)转移到 Polkadot 账本并锁定。同理,收集人也验证居民 B,并锁定 5 升纯净水。


然后,大家交易完成。A 在 Polkadot 的账户上记录 ta 有 5 升纯净水,同 样 B 有 5 公斤大米。这笔交易以及账户的信息由 Polkadot 的验证人记录。


如果 A 想拿到 5 升纯净水,那么 Polkadotp 就会向海岛 B 的公众账本转账5 公斤大米,这样 a 就可以拿到 5 升水。如果 B 还暂时不需要 5 公斤大米,它拥有的东西被记录在 Polkadot 系统内。未来,ta 可以向海岛 C 的居民 C 交易,比如,用 1 公斤大米购买半斤牛肉。


用上面的例子,再具体理解一下 Polkadot 中各个角色和结构:

平行链: 复制的实时更新的海岛公众账本;
中间链: 去中心化的公众账本,就是p系统的核心账本,记录了Polkadot系

统发生的内部和与之发生的所有交易和数据;
桥: 连接 Polkadot 系统和海岛账本的数据传输通道;

收集人: 收集人复制每个海岛的居民的账本信息(不同的收集人拥有不同的账 本,复制的公共账本我们成为平行链),当海岛的居民打算用他们岛上的资源进行交易的时候,收集人来验证 Ta 的真实性;

验证人: 负责Polkadot系统内的记账。为了防止验证人做坏事,验证人需要 抵押一定的 Polkadot 代币;

钓鱼人: 负责监督系统里面的人;

提名人: 他们手上拥有Polkadot系统的代币,他们委托给他们信任的人当验 证人。


现在,我们对 Polkadot 的跨链通讯原理有了一个初步的认识。


Polkadot 中的DOT 和 Npos 机制


上图是 Polkadot 的代币分布


Polkadot 的代币为 DOT,总共 1 千万枚。其中 500 万 DOT,在 2017 年 10 月采用和荷兰式拍卖的形式拍卖,完成了 48万 ETH 的融资,其中Bosst VC、Pantera Capital、Polychain Capital 等知名风投机构在内。


另外 200 万 DOT 根据官网,在主网上线前分发。2019 年 4 月,Polkadot开启了第二轮私募融资,此次融资额度为 5000 万美金,出售 50 万DOT。


剩余150 万 DOTs(15%)则将会生态奖励,给开发者,合作伙伴或者后续持续销售的预算。


而还有 300 万 DOTs(30%)将由 Web3 基金会持有。



DOT 的作用


1)手续费

当用户使用 Polkadot 做跨链通讯的时候,需要支付 DOT 作为手续费给验 证人。


2)质押成为验证节点

验证节点是 Polkadot 里面非常重要的角色,成为 Polkadot 的验证人需要质押一定数量的 DOT。


3)添加平行链质押

如果添加一条平行链,需要抵押一定的 DOT。


4)自治

Polkadot 是一个自治的社区,DOT 代表 Polkadot 的权利。可以通过自治 社区投票,对 Polkadot 系统进行升级或修改功能。



Npos 机制


Polkadot 采用 Npos 机制,它是 pos 机制中的一种,但是是对 pos 机制的改良。传统的 pos 机制奖励与 Staking 量正相关,代币越多人约容易当选节点, 获得的奖励越多,代币分配趋向中心化,个别节点容易控制整个生态。Npos机制就是对防止这种情况的出现。


在 Polkadot 中,由代币持有人(即提名者,Nominators)选举验证人 (Validators)。那么提名人的投票,如何选出验证人的呢? 


Polkadot 在共识协议中为当选的验证者提供相同的投票权。 为做到这一点,提名人的DOT应尽可能均匀地分配给当选的验证人,同时仍然尊重提名人的偏好。 


为此, Web3 Foundation 研究团队,使用从选举理论到博弈论到离散优化的各种工具,开发了一个有效的选举流程,提供公平的代表性和安全性,并且可以在未来应用于使用 NPoS 的任何区块链。


在 Polkadot 系统中,验证人获得最终奖励结果不是依据持有 DOT 的量, 而是依据出块的工作量而决定。但是,验证人获得的奖励,将按比例分成提 名人。这会导致提名人把 DOT 投票给尽可能多的人。而不是集中到一个人身上。

我们用 5 个提名者选择 5 个验证人来举例,来说明 Polkadot 的 Npos 的算法如何保证公平公正。上面的选择结果有以下三种结果,一种违背了公平的原则,两个是符合公平原则。

1)最左边

最左边违背了公平原则,因为拥有 10DOTS 的提名人投票的验证人并没有当选,因此 Ta 也无法获得任何奖励。反而只有 4DOTs、5DOTs、3DOTs 的人有当选的验证人。


2)中间

中间的结果符合公平原则。虽然验证人 B 拥有 18DOTs 的提名人投票,但是Ta 同时投票了三个验证人。但是 B 因为只有一个人投票给它,而 ACDE 都有两个 提名人投票,所以 B 落选。这种结果,正好克服了其他 Pos 机制的弊端,不是拥 有大量的代币就一定可以当选验证节点的。


3)最右边

符合公平原则,因为第五个人只有 3DOTs,Ta 只选择了一个验证人,所以 Ta的投票可能会落选(也可能不落选,就是中间的情况)。落选有概率发生,会促使 Ta 去投票更多的验证人。


从上面的案例中,我们了解了 Npos 机制的运作模式。相比于其它 Pos 简单机制,Polkadot 开发非常复杂的算法以保证系统的公平性和安全性



比特帝国区块链交易所

最新评论

返回顶部