Kusama正在准备创世治理,Polkadot也正为主网上线做准备。参与者蓄势待发,想要成为Polkadot及实验性网络Kusama的验证节点,或者用手中代币为节点提名。
在这个NPoS共识网络之下,staking包含哪些参与者和主要行为?多个平行链组成的区块链网络与单一网络会有哪些区别?在「奖励」和「惩罚」两个重要设计上,我们应该了解哪些关键点?
stash和controller账户、会话密钥、哨兵节点……关于staking、验证、提名的诸多细节,也许你需要一个全面了解。
本周stake.fish编译了媒体Relay Chain的新一期播客,详细解答Polkadot和Kusama网络中诸多细节问题。Relay Chain由负责Polkadot项目的公司Parity Technologies支持,专注Substrate、Polkadot等区块链技术前沿问题。
本期播客由Parity解决方案架构师Gautam Dhameja担任主持,Parity研究分析师Joe Petrowski担任特别嘉宾,许多验证和staking问题也是官方首次在公开媒体平台详细与听众分享。
阅读本文你将了解:
验证节点与「共识」的关系
2个重要算法:BABE和GRANDPA
2类关键账户:Stash和controller
4个会话密钥及管理
NPoS共识的提名
奖励及罚没
验证节点的设置
澄清一些概念误解
DOs DONTs守则
主持人:Gautam Dhameja
编译:stake.fish
验证节点、算法与「共识」
Gautam Dhameja:大家好,欢迎收听Relay Chain。今天我们主要探讨如何成为验证者、需要了哪些必备知识、必备条件等诸多问题。
首先,验证者在Kusama和Polkadot网络中都负责什么?
Joe Petrowski:我们可以先跳出区块链的视野来看这个问题。因为验证者是帮助一个网络去达成共识的角色。什么是共识?共识算法就是用一系列已经定义的消息,让多个计算机网络展现像同一个计算机一样去展现,无论你与网络中的哪一台计算机通讯,得到的回复都是相同的。
这可能有些抽象。但是请你想象一下,比如在一个物理的空间,如果你有一架飞机,里面会有多台电脑(因为人类操作的系统会倾向于有冗余),如果你问任何一台计算机,飞机将要往哪个方向走,不管问网络的哪个部分,你得到的应该都是相同的答案,因为很明显,飞机只能朝一个方向飞行。所以共识是一个算法,结合一系列信息,让一个计算机网络看起来像一台计算机。这就是我们的目标,验证节点就是为了传递这一系列信息的。
BABE和GRANDPA
Joe Petrowski:在Polkadot和Kusama的网络环境中,我们让这些算法共同工作,其中包括BABE和GRANDPA。BABE用来生产区块,提议下一阶段如何更改,GRANDPA用来最终确定(finalize)区块。这里我们会谈到许多staking、奖励、惩罚等问题。
要记住,奖励和经济因素与共识机制是不同的。共识机制就是用来下定义的,确定哪些动作需要验证节点去做。我们要求生产有效区块、验证确实有效、对确定的事情达成一致等。有些有害行为会存在其中,比如说向两个相互矛盾的区块签名或投票,或者提议一个无效区块等。
当我们聊到staking、罚没(slashing)、奖励等情况时,我们其实是在聊如何回应那些共识机制中定义的或好或坏的信息。
Gautam Dhameja:这很有趣。在这种情况下,如果我理解对的话是不是这么说:在 Kusama 和 Polkadot的网络环境下,验证节点主要做两件事:第一,当时机确定的时候可以生产区块;第二,就此前或此后的区块的最终审定进行投票。你有机会来投票或者最终确定的时候都需要采取行动,这是BABE算法里产生区块的一个循环方法,或者说是一个随机方法?
Joe Petrowski:两者都是。在BABE算法中存在一个随机方法和一个循环回撤,所以我们可以得到一个恒定的区块产生时间。
还有一点也很重要。Polkadot特有的一点就是,验证节点负责在平行链之间传递信息,这是在单一区块链网络中不具备的。但当你有了多链网络之后,验证节点就需要有额外的责任在链与链之间传递信息,并使其能够重构。
Gautam Dhameja:这么说来,验证节点有三个主要责任了:第一,在需要时生产区块;第二,为此前需要最终审定的区块投票;第三,在不同的区块链间传递信息。
Joe Petrowski:没错。这里有个细微的区别:我们不是在区块上投票,而是在不同的链上投票。所以我们考虑的是一连串需要最终确定的区块而不是单一区块。
Gautam Dhameja:厉害。在最终确定方面,这相当有效率。
Joe Petrowski:你可以在最后一个区块之前的5个区块投票,它会将这些签名和投票添加到其后的区块中,然后我们可以在同一时刻最终确认所有的区块。
Gautam Dhameja:如果我用另一种方式思考,那真是太神奇了,因为你实际上是在用区块链的特征来最终审定区块链。
Joe Petrowski:是的。
stash和controller账户
Gautam Dhameja:哇哦,我的同事Ben在解释GRANDPA算法的时候,指出了这一点,这相当酷。我们现在已经知道了验证节点的作用,现在想聊一聊关于账户、密钥、代币的问题。
那么到底staking了什么?如何控制?如何存取?如何对你的信息进行签名?
Joe Petrowski:Polkadot 有两种账户:一个叫stash一个叫controller。两者仅仅是语义学上的区别。相同的密码学原理,相同的密钥对,其实完全就是同样的账户。但是我们不推荐这么去看待他们。区别仅仅在于,你如何使用它以及我们希望你如何使用它。
stash账户应该总体上离线保管,就像存储你的大量不常用的积蓄一样。
但是如果你是治理和提名的参与者,希望进行staking,又不想用stash账户进行太多次签名以防被别人更容易的发现。你可以用stash账户对一条信息进行签名,相当于签发了一个证书。然后你就得到了另一个账户,也就是controller账户的公钥。你只需从你的stash账户中签上例如「这是另一个地址的公钥,我想要让它成为我的controller。」
在controller账户中,你只需放一点点资金,能够支付交易费即可。
这个controller账户的密钥仅仅是用来告诉系统你想要做什么。比如说想要提名验证节点,想要给自己做验证,或者想要为治理提议投票等等。controller与stash账户具有相同的权重,因为他得到了相应的许可,但是资金并没有风险,因为你没有用stash账户进行签名,真正有风险的资金仅仅是controller里那一小部分。如果你担心controller账户的密钥被别人控制了,为你的stash账户指定一个新的controller就可以了。
Gautam Dhameja:就是说,stash账户用来存储资金,controller是一个操作账户,用来控制和管理。
Joe Petrowski:是的。
会话密钥
Gautam Dhameja:接下来我们谈谈会话密钥(session keys)。
首先什么是会话密钥?
Joe Petrowski:首先,会话密钥是一个比较抽象的概念。我们用一个Polkadot上比较具象的例子来解读。不过更抽象的是,你可以声明你用Substrate在一个区块链上使用多少会话密钥,在 Polkadot 网络上是4个。你可以声称这些密钥与验证节点执行的某些信息相联系。
要注意,这些密钥并不意味着是账户,因此也与一个账户的加密方法不尽相同,事实上可以完全不同,尽管目前还不是这样。这些密钥只用来签署消息,因此与资金并无关联。
Polkadot中有4个会话密钥:
一个是给BABE算法用作区块产生的;
一个是给GRANDPA用作最终确定的;
一个是用来表明「我正在线」,类似于帮助信息,每隔几个小时向区块链进行报告;
还有一个被称为平行链ID,帮助验证节点与平行链进行匹配。
Gautam Dhameja:总体来说这些都与身份相关。所以说会话密钥主要是为了验证节点在不同场景下表明身份。四个会话密钥彼此分离,因此可以很容易地进行更改、维护,或者只是为了更好地控制。
那么如何去维护这些密钥呢?
Joe Petrowsk:没错,这些密钥是连接验证节点及其行为的,就像你通过签署一段信息从stash分配一个controller账户一样,你将会用你的controller账户告诉网络你的会话密钥信息。
在你告诉所有人你想成为验证节点之后,你将获得你所有的4个会话密钥,它们的一半是公共的,然后用你的controller帐户来签署这个消息。也就是说,这些会话密钥是为我的验证节点签名的密钥,它与stash帐户绑定在一起。当网络收到来自你的消息,说它已签名,GRANDPA进投票最终审定,然后它可以说,这个投票来自这个stash帐户,因为它链接到了这个会话密钥。
Gautam Dhameja:但为了便于听众理解还是要多解释一下,当我有2类账户,4个密钥后,我如何确定我执行对了相关操作,或者需要做的事情呢?
Joe Petrowski:这就比一般用户要知道的更深一些了,更多的是对于验证节点的探讨。如果你仅仅想要做提名人,你无需担心这些问题。产生会话密钥的方式是在实际节点上调用RPC端点,在实际节点上你将成为验证节点。它将为你生成这4个会话密钥,将其放到包含在客户端中的密钥库中。之后你可以用controller账户对消息签名,以关联你的节点和controller账户。
这些密钥都可以在客户端中进行管理,因此不用担心。你已经告诉这个链这些都是你的会话密钥,它们位于客户端中,客户端也知道应该使用哪些密钥。你只需要在第一次使用时操作一次,然后你可以在每个会话中改变这些密钥。
所以你可以通过调用RPC生成新一组密钥,然后给链上发送该消息说「嘿,这是我的新会话密钥,」你的节点会进行检查的最新会话密钥并使用和记录它们。
Gautam Dhameja:用更简单的话说,我只需要把这四个公钥作为参数传递给外部调用,因为消息将用我的controller密钥签名,外部调用就会把这些公钥与我的controller账户关联起来,这样就设置好了。
Joe Petrowski:是的。还有一些更进阶的验证节点希望在客户端外部生成会话密钥。所以如果你想这样做,有一种方法可以把你的会话密钥注入客户端,尽管这样做的动机之一是使用备份验证节点。因此,如果你需要设置两个具有相同会话密钥对的验证节点以防其中一个离线的情况,也建议试一试。
我想这部分比较适用于进阶的专业人士。你想要在线并有一个后备方案的想法很好,但要知道对两个相互矛盾的区块签名的惩罚要比离线的惩罚大得多。所以如果你不能100%确信你所做的事,你应该让客户端自己来做决定。但是,如果你想要生成这些密钥并在客户端外部管理它们,并根据选择将它们注入客户端,也是有一些工具供使用的。
密钥管理
Gautam Dhameja:我还想了解一些密钥管理的问题。我知道,我现在仅需管理stash和controller两个账户。stash账户不需要我们操作太多,可以先暂不考虑。controller账户如何管理密钥?
Joe Petrowski:现在我们的密钥是基于SR 25519的。你现在需要使用桌面钱包或者纸钱包,因为我们没有全面支持硬钱包,我们已经有人正做 Ledger和Trezor的集成。
对于Kusama来说,你只需要管理一个密码并把这个文件保存在你的电脑上,当然是以加密的形式。如果你设置了密码,当我们启动Polkadot时,我们应该已经支持Ledger和Trezor了,届时你就可以用硬件钱包来管理这些密钥了。我们现在还没有硬件安全模块( HSM,hardware security module)或者硬钱包支持,但是正在准备中。
硬件安全模块会被移动到验证节点中,因为可以将它们用于会话密钥,其他一些PoS网络也是这么做的。现在也不可能,因为我们有4个会话密钥,而且目前没有任何硬件安全模块可以处理SR 25519。
HSM硬件安全模块内存非常有限。这是特地设计的,用来限制了攻击者做任何操作的空间。我们也因此不能真正做出SR 25519的签名,当然,4个会话密钥就更不可能了。目前,我们还没有HSM支持,但我们正在开发一些替代方案。
作为路线图中的规划,我们不仅能够支持会话密钥的客户端内部管理,还能够支持外部管理。也就是说让客户端发送一个有效负载并表述「我需要将其签名」,然后你可以将它签名并返回给任何想要的人。
HSM硬件安全模块实际上有一种提供虚假安全感,因为它们只是一种虚拟的签名条款,无论你发送什么,它们都会签名并将其返还。如果如果你确实发送两个互相冲突的不同区块,HSM也会给它们签名。它什么都不知道,因为里面没有任何相应的逻辑。
一些更高级的方法,比如SGX或者x86通用机器实际上有所帮助。它有一些签名逻辑比如说永远不会给两个相同高度的区块签名。每个人都把HSM当作第一要务,但实际上这并不一定是安全保护的最佳方式。通过加入一些逻辑,你可以实现更安全的设置。
NPoS及staking
Gautam Dhameja:让我们接着聊一下staking、NPoS方面的话题。提到staking,我们自然就会问到staking奖励和惩罚,请先简要介绍一下吧。
Joe Petrowski:NPoS网络会有很多人想要运行验证节点,但也有很多人不想成为验证节点,因为要做事的实在太多。但是这些人还是想要在网络通胀中去获益。PoW和PoS网络的区别之一就是,PoW中,矿工是那些真正「捕获通胀」的人,PoS中则取决于网络如何配置,许多人能够以提名、委托或者其他的特定方式「捕捉」部分的通胀收益。
而Polkadot是基于提名方式PoS共识。有许多人将愿意成为验证节点,如果不想可以提名你想要的候选人。而且你可以提名这样的候选人。我们的目的是想要在验证节点间实现同等的staking。所以如果我们想要设置100个验证节点,我们会想要每个节点都有1%的staking份额。我们让人们提名不止一个验证节点,用fragment的算法,自动分配提名的staking份额,以不断优化验证节点的组合。
实际上我们也正在进行两种优化。第一是,找到验证节点和提名者的最佳组合,以获得最佳的DOT代币staking数量;第二是,找到最佳的提名人分配额使其分布最均匀。
Gautam Dhameja:如果说算法自动决定提名,那我是否还对自己的提名有所控制?例如,算法或者网络允许我提名多个验证节点,我手中有10个DOT或者KSM代币,想要投给4个特定节点,我能决定分给每个节点的具体代币数量吗?还是算法替我决定?
Joe Petrowski:你不能,是算法给你决定的,让过程简易。
Gautam Dhameja:我大概了解NPoS如何运作了,那么就是说,提名者可以是持币的任何人,被提名者就是验证节点,或者下一个被选的验证节点,或者是想要成为验证节点的人。
Joe Petrowski:是的。
提名、奖励及通胀设计
Gautam Dhameja:下一个问题是,人们如何提名以及如何要求提名?因为我们要分清两种不同角色,也要了解如何操作。如果我有代币,想要提名Joe和Joe的3个朋友,我如何在系统操作?
Joe Petrowski:超简单。你只需用你想要提名的验证节点地址签署一条消息。并且应该是验证节点的stash帐户地址,因为controller账户的会话密钥是可以更改的。并且,这些都是通过UI处理的。在验证节点地址的消息上签名这些问题听起来比较复杂,但是在Polkadot JS中,实际就是点按钮「提名」按钮,人们就可以自由选择了。
作为一个提名者,你可以有stash和 controller两个账户。你不应该把你的stash资金置于风险之中。用在你的controller账户签名来表明你想提名的人就可以。
Gautam Dhameja:验证节点通过验证来获得奖励,提名人通过提名获得奖励,这是两种staking形式。那么具体我们怎么拿到奖励?
Joe Petrowski:Polkadot与其他网络不同的就是,获得奖励的金额与你个人staking的金额不成正比,而与总的staking金额成正比。在这个范围内,所有验证节点得到相同的奖励,无论每个节点staking金额的多少。
我们希望全网的staking的数量达到50%,这是我们的目标。那么剩下50%会用于平行链的插槽拍卖,我们希望平行链有DOT代币的绑定用于他们自己的平行链。一小部分代币作为流动代币用户交易、转账等。
我们希望保证用于在验证节点进行staking的代币的安全性,所以会有一个随着通胀从0%到50%不断上升的staking额的曲线,这样一来总体staking数量越多,得到的奖励就越多。当这个比例超过50%,收益就会直线下降,人们成为验证节点或提名节点的激励也会随之下降。
一旦设置了网络的膨胀率,无论有多少staking的代币,都会在所有验证节点中平均分配。即使一个节点拥有的staking数量是另一个验证节点的两倍,他们也会得到相同的回报。
这么设计出于两点考虑:
第一点,从第一性原理来讲,验证节点是在做同样的事情,他们有同样的责任。他们在投票,在生产区块,做同样的工作,得到同样的报酬。
第二点,希望人们在所有验证节点能够同等的进行staking。如果你提名一个节点,你是希望给最低staking的节点的。因为如果大家在一个验证节点上staking了100个DOT代币,另一个是500个DOT代币,作为一个提名人,你给100个DOT那个节点提名,将会得到更多的回报。这就自然鼓励了人们为更低staking数量的那些节点提名,这样就将形成一个趋于平均的staking网络。
slashing惩罚机制设计
Gautam Dhameja:接下来,让我们聊聊罚没(slashing)。我们得到回报,但后来搞砸了,咋办呢?
Joe Petrowski:那你就得接受惩罚了。
作为一个验证节点,你需要承担许多责任,心存敬畏感。当然不同层面需要有不同的考虑,比如需要让网络保持均衡等等。罚没的比例与staking金额成正比,其基于百分比,而不是绝对值。
如果你把许多资金staking给一个验证节点,但这个节点发生故障或者行为不当,你失去的绝对数量实际上将比一个低staking数量的验证节点要多。当涉及更大的验证节点时,你将会发现应该在多个验证节点、而不是仅仅在一个验证节点上staking。
那么如果我们单谈罚没,有几种不同验证程度的行为不当,程度较轻的是离线。
验证节点应该保持在线因为这是你的工作。我们也意识到糟糕的事情时有发生,比如隔一段时间会失去几分钟的联系这种事。我想我们会给一定的试错机会,比如,错一次没关系,错两次将罚没。
罚没的金额比较小,比如staking数量的0.01%或0.1%,但它实际上是迫使进行新的选举,然后你将被踢出下一时期的验证节点名单并即时生效,让你不得想办法等一段时间重新加入。
当发生更严重的错误后,惩罚也将增加,比如说双签区块,也就是说为两个相互矛盾的区块签名,这种情况会有大概10%的罚没;
再比如攻击网络,例如向给一个与已经最终确定的链相冲突的链进行投票,这可能将受到100%罚没。
那么总结起来就是:离线、发生错误、双签等因素将会触发罚没机制。
当你用同样的密钥设置了两个节点,他们意外的签名了不同的区块,那你将受到严重惩罚。如果你做了类似于双签的操作然后被最终确定下来,就等于说把软件系统修改了,在Polkadot的执行过程中,是不允许引入一个与最终确认的链相矛盾的区块的。如果你这么做了,证明你没有运行标准化的系统软件,这就不仅仅是搞砸了的问题了,你这叫攻击网络。如果这样你将受到很重的罚没。
思考这一问题的另一个维度就是协作。
假如说全网20%的验证节点离线了,罚没就不像单一节点掉线那种0.01%或者一小部分了,因为这看起来是一种让网络变慢甚至停止的协同攻击。但也可能是疏忽大意,比如说许多验证节点连接在同一个数据中心等情况。我们希望各个节点保持独立,这样能够尽量避免大量离线的发生。
Gautam Dhameja:也就是说,作为验证节点,我们获得的奖励是平均的;作为提名人,得到的奖励基于自己在节点上staking的金额。比如,如果一个验证节点得到了10个代币的奖励,一个提名人staking的数量占10%,那么他将得到1个代币的奖励。但是如果发生了罚没事件那就要另说了,因为每个人被罚没的金额不是相同的,因为犯错误的是特定的节点,他们将按比例被罚没。
Joe Petrowski:没错。你应该谨慎的考虑为哪些节点投票,最大限度的防止被罚没,如果发生此类情况,验证节点和提名人都将收到同等比例的处罚。
Gautam Dhameja:我如何才能看到是否被惩罚了,以及是否大家都公平的参与其中呢?有没有dashboard?去哪儿看目前有哪些验证节点在工作,他们的信誉如何?在这方面你们是如何计划的呢?
Joe Petrowski:已经在计划之中了,有可能会请Parity外部的参与者来做这件事。也非常希望人们以论坛、dashboard的形式来报告验证节点的活动。因为像罚没这种事都发生在区块链上。事件发生后你可以重放来看看究竟发生了什么。你可以看到账户余额的实时变化,总体来说这样的事情会逐渐出现的。
验证中有很多物理基础设施,如果你没有资金或物理资源来做这件事,而且你对staking和验证很感兴趣,这完全可以作为一个软件项目来做。创建一个这样的网站来证明他们是在线的,这对优秀的验证节点来说很有好处。
部署验证节点
Gautam Dhameja:在了解了许多关键概念后,让我们来看看如何进行操作。如果有人想成为验证节点,与其他PoS网络相比,有哪些不同的事情要做?Kusama 和Polkadot网络中,思考方式或者期待的事情会有什么不同?
Joe Petrowski:我认为从设置的角度来看非常相似,开发运营和基础设施在任何地方都是一样的。有一些不同之处,比如你是否采取HSM硬件安全管理,但是总体架构与其他PoS网络非常相似。目前,这是一个非常小众和新兴行业,我们已经看到最有经验的验证节点在其他PoS网络上进行验证了。
最安全的设置之间有类似的东西是很好的,比如保持在线、禁止双重签名等,这些在所有的PoS网络中都是通用的。
Gautam Dhameja:好的。那么当我要部署节点,首先要注意在哪儿部署呢?
Joe Petrowski:我在 Web3峰会上与一些正在做一键部署的参与者交流过,希望打开都能比较简单的操作。但是我们如果仔细看看什么是一键部署,你可能会注意到云端哨兵节点这样的方案。哨兵节点不会泄露验证节点的IP地址,因为可以很容易的拒绝服务让其离线。它不会让任何攻击者有利可图,但也会有被罚没并损失资金的风险。
你不希望实际的验证节点暴露给网络,但是要又有很多工作需要在网络中处理,那么我们就需要引入哨兵节点(sentry nodes)的概念。它只是运行在云端上的完全节点,是唯一有权连接到验证节点的节点。这就实现了让你的验证节点不在公共网络上,而只有一个虚拟专用网络连接到云端上的一些完整节点。这可以成为AWS或Azure等云端服务的EC2实例。
如果有人试图通过发送100万份相同的消息副本进行攻击,哨兵节点将进行检查,他们只会向实际的验证节点发送一份副本。如果这些哨兵节点受到攻击,就很容易使它们运转起来。我们建议在私有数据中心运行此功能,或者如果你具备在自己服务器基础设施上运行此功能的技能也可以。
我们不建议把实际的验证节点放在云端中,因为那相当于把你的密钥管理交给别人了。很多小企业甚至是中型企业都不希望把信息被放到云端,因为不确定是否安全。要知道staking在一个Polkadot的验证节点的代币价值将有可能达到数百万美元。
不过从一个开发运营者角度来说,在云端上运行实际的验证节点相对简单。
Gautam Dhameja:如果staking数量足够那么我就可以成为验证节点。如果不够,没成为验证节点,怎么办呢?
Joe Petrowski:坚持下去。如果你运行多个验证节点,你可能只需要关闭一个,然后在另一个验证节点staking更多,或者找更多的人来为你提名。
Gautam Dhameja:验证节点集合大概一天就会变换一次,人们可以在这个周期来竞选成为节点。
Joe Petrowski:对的。
Gautam Dhameja:前面说到离线会被罚没一部分代币,如果说一个验证节点开始验证之后,出于一些原因,比如基础设施升级维护或者换一个更好的地方需要离线,该怎么办?
Joe Petrowski:如果你确实需要离线,你有两个选择。
一个是设置Chill,立即表明你想要停止验证的意图。你仍然需要完成这一时期的相关验证工作。但是在下一轮提名选举中,将从验证节点集合中被移出,不会有惩罚或其他影响。此后,当你做完了要处理的工作继续上线,可以发送“我想要继续验证”的消息,然后为下一轮提名竞选作准备。
如果你不想中途退出验证节点结合,你可以设置第二验证节点,给他设置会话密钥,然后告知网络你想要用一组新的会话密钥进行验证。但不要把同样的会话密钥放在不同的两个节点中使用,避免双签。
要明确告诉网络你用哪组会话密钥,然后用你的第二验证节点接着工作。我认为你需要连接相同的哨兵节点,因为网络连接中,节点用分布式哈希表来确定其他节点的位置以及找到他们的方式,如果你增加或者移除哨兵节点,分布式哈希表就变了。所以还是保持相同的哨兵节点比较好。
明确几个重要概念
Gautam Dhameja:那么节目最后我们还是想请你澄清一些对概念的误解。因为许多概念很新,我们也是第一次详细的介绍这些概念并在公开领域发布。那么请你介绍哪些概念容易理解错,哪些事情应该避免?
Joe Petrowski:第一大需要明确的是,验证节点无论staking金额多少都会有相同的收益。我几乎每天都在解释这个概念,因为这是Polkadot跟其他PoS网络的明显区别。
第二个需要明确的是,在GRANDPA算法中你在链上投票,而不是区块上。我们之前聊过,这个算法跟别的区块链算法很不同。它不是以区块为基础的,是以链为基础的。
其他的误解不是很多,因为实际上各个网络上,无论是不是区块链的,基础设施大多比较相似。
Gautam Dhameja:我认为最大的误解是关于罚没和奖励的。奖励在验证节点间是平均分配的,提名人根据在各个节点上staking的份额获取奖励。当罚没发生的时候,按比例罚没代币。
DOs DON’Ts
Gautam Dhameja:那么如果提醒广大潜在的验证节点什么需要做,什么不要做,你有什么建议?
Joe Petrowski:需要做的是,第一,认真对待,因为staking金额将会很大。PoS网络中,以至所有区块链网络中、共识网络中,我们看的都是与经济密切相关的。网络的安全性总体是基于有多少金额staking在网络中的。
我们期望验证节点能够收到更多的staking金额,那么这就不是一个在网络上做实验的事情了,你需要确定的是在主网上的活动确实是经过审慎考虑过的,设置是被严格审计过的,以及诸多问题,而不能够想当然的去做。
什么不能做?别把事情搞砸。也就是说,别离线,别双签区块,别作恶,类似为与已经最终确定的链相矛盾的链进行投票这种事就不要做。
Gautam Dhameja:谢谢,我觉得以上是我们需要聊的一些重要话题,希望这些能够对想要成为Kusama或者Polkadot网络验证节点的参与者提供帮助。
stake.fish一直密切关注Kusama和Polkadot的网络进展,并筹备成为其验证节点,建设网络生态。PoS网络中,验证节点需要运行具有多重安全功能、 7×24 小时在线的强大硬件,还要进行大量细致的工作,而这恰恰是我们的强项。作为专业的验证节点,我们能够为staking参与者提供放心的全天候服务。
官方网站:https://stake.fish
Telegram社区:https://t.me/stakefish
Twitter:@stakedotfish
YouTube:bitfish
微信公众号:stakefish
新浪微博:@stakefish
We Know Validating.