原文标题:The DFINITY “Blockchain Nervous System”

作者:Dominic Williams

翻译:红军大叔 & BlockPunk

社区:果壳宇宙(ID:DfinityFun)

概述

BNS (区块链神经系统)最初始的设计逻辑非常简单,
可以通过付费的方式,向 BNS 提交议案,然后由用户控制的“神经元”来进行投票表决,这些“神经元”之间会存在一个“追随”关系,这就很像一个流动民主的体系。

当神经元对刺激或外部反馈做出反应时,中枢系统会逐渐适应并学会做出更优的决策。神经元做出的决策,是由神经元间的多映射关系决定的,由于时机的不同,这种映射关系是不确定的。

每个神经元的操作,都需要通过其持有人在网络边界内运行的特殊客户端软件来传达。
BNS 在链上的部分,可以访问 EVM 中的特权操作码,用来直接执行系统所采纳的规则。

**
**

1

创建神经元

**
**

任何人都可以创建和运行一个神经元,并通过运行神经元获得“思维挖矿”
的奖励。在区块链神经系统中安全的锁定 dfinities 为抵押后,才能创建一个新的神经元。

神经元的投票权重,与它所拥有的抵押的大小成正比。要取回神经元内的押金,它的持有人必须等待三个月的赎回周期 (我们正在考虑让赎回时间更长)。

这就为促使参与者做出正确的决策,提供了强烈的动机
,因为如果 BNS 做出了糟糕的决策,那么被质押在神经元里的 dfinities 的价值,就有可能下降,参与者就会蒙受损失。

2

赚取奖励

神经元通过发行新的 dfinities,向它的持有者支付“思维挖矿”的奖励。奖励与神经元所持有的抵押的大小以及该神经元参与决策的比例成正比。

例如,如果 BNS 以一年为周期,将质押收益率设置为 10% 左右,那么一个抵押了 100 个 dfinities 的神经元,将在一年内为其持有者赚取大约 10 个 dfinities。然而,如果神经元只参与投票了所有网络议案的一半,同一个神经元只会赚取约 5 个 dfinities。

3

维护神经元

创建神经元时,生成了两个密钥。一个是委托密钥,使神经元能投票参与决策。另一个是管理密钥,需要安全地保存在冷存储中的
,可以用来解散神经元、赎回抵押或发出新的委托。

神经元由特殊的客户端软件来操作,该软件通常安装在用户笔记本电脑或安全服务器上,并在后台持续运行,不断监控 BNS 的链上部分 (使用能访问特权操作码的智能合约实现)
,实时监控网络中是否提交了任何新的议案。

此客户端软件配置了神经元的委托密钥,通过调用 BNS 链上合约来进行投票。

**

4

手动投票

当用户打开他们的神经元控制客户端后,它会显示 BNS 上待处理的议案。
议案的类型包括 ” 经济参数 “、” 系统规则 “、” 系统协议 “、” 客户端升级 “、” 修改质押大小 ” 和 ” 冻结 / 解冻账户 “

如果一项议案尚未决定,那么一个神经元可以再此之上进行投票 (投票的权重取决于在神经元内部存放的 dfinities 数量)。当手动投票时,用户可以选择三种类型的投票 :” 采纳 “,” 拒绝 ” 和 ” 弃票 “。

” 弃票 ” 表示神经元虽然参与了决策过程,但不持有明确观点,希望由观点更明确的神经元来做决定。


5

追随关系图

与决策的多层映射

客户端软件中的追随列表,配置创建了一个有向图,这个有向图是存在客户端的链下的,并且对别人都是不可见的

有向图表示了网络中的信任关系,当神经元所有者接收到了新的信息,并观察他所跟踪的神经元的投票历史,以及这个决策的成功之后,分布式的神经元就会自动地更新这些信任关系会。

在实践中,很多社区参与者会到 reddit 和 twitter 上发布个人神经元地址。投票的权重很容易被隐藏起来,是不可知的——可以只公布一个锁定很少 token 的神经元 A,然后再建立一个锁定了很多 token 的神经元 B,让 B 追随 A 即可。这样就可以
免过大的投票权重干扰到民主,出现无脑顺从大户的情况**,因为跟随关系都是不可见的。

如果神经元控制器在超时之前,没有对提案进行手动投票,客户端软件将根据该未决提案的类型,自动地配置的已追随列表,来自动的参与投票治理。

在最简单的配置形式中,这是一个存在优先级的映射表,尽管也可以使用其他的追随机制。客户端首先检查区块链,查看最高优先级的神经元是否已对提案进行投票,如果有,跟着这个神经元自动的投票就好了;否则,客户端暂时退出,当它返回时,检查优先级最高的两个神经元中,是否有任何一个已经投票,如果存在多个不同的观点,追随优先度最高的那个。

在达成决策时,底层的信任有向图是最重要的,尽管该过程是非确定性的,因为时间可能会影响到跟随关系。
通常通过神经元的多层映射关系,来达成决策。也就是说,当某些被社区高度关注的神经元投票时,因为信任关系是随着有向图一层层传递的,大部分神经元最终追随这个“明星”神经元的判断。

尽管如此,这个追随关系本身,以及后续的投票操作,是标准化地运行在每一个参与了 BNS 的神经元客户端中的。

BNS 的决策,是需要等所有神经元完全投票后才能产生,这和传统的部分投票机制有着很大的区别。

6

决策的执行

一旦 BNS 采纳了一个建议,接下来的执行取决于它的类型。 一般来说,执行可分为被动和主动。

当 BNS 采纳了会长效地改变系统数据的方案时,就会发生被动执行。例如,一项可能会对神经元持有者本身产生影响的新规则,或者修改每一个区块的出块奖励。

这里,被更新的值会被简单地写入 BNS 下智能合约的数据库中,后续执行时就会生效。还提供了这条新规则的说明连接,当执行到相关操作存在疑问时,就可以马上检索到说明。

主动执行,包括那些必须超出 BNS 自身的智能合约限制,来对已经部署在链上的部分进行修改覆盖,可以直接覆盖掉“代码即法律”的部分

例如,BNS 现在采纳了一项建议,冻结暗杀市场这种违反了宪法的邪恶智能合约,或者希望在管理员模式下,运行代码来修复 DAO 这类的损坏系统。

超过合约限制的主动执行过程,必须得通过调用我们添加到 EVM (以太坊虚拟机)上的特殊操作码来实现的。
在实现时,还得对 Solidity 编译器的做一点小小的修改,好让 BNS 的智能合约能以汇编的方式调用特殊操作码

7

提出提案的费用和抵押

评估部分类型的提案的利弊,所涉及的工作量可能是非常大的。

举个例子,假设由某个联盟创建的智能合约,出现了意外状态,系统被锁死,联盟成员希望能修复合约。这时,该联盟需要创建一个提供了三个关键信息的提案:

(1)证明他们具备足够的“权威”来请求修复;

(2)能精确的描述问题,并做出证明;

(3)他们上传的修复合约的地址,BNS 可以运行这个合约来解决当前问题。

**
**

备注:虽然修复代码可以上传到区块链,但只有 BNS 可以在管理员模式下实际运行它**

**
**

该提案必须分阶段的评估。
首先,将尝试建立“权威证明”,工作将从提案中包含的说明链接开始,展示了联盟成员网站上的说明页面和证据(如 Twitter 帖子),甚至是直接的联系人信息。

黑客同样也可以伪造一个“权威证明”,因此审查提案的人需要的得到保证,而且社区内对修复方案的支持程度是多数人的决定的。判断真伪的过程,需要消耗大量的工作,其中可能包括通过聊天软件与提案人进行实时联系。

在获得了“权威证明”,下一步将是评估所描述的问题,并对这些问题进行验证,证明的确是由于某些设计缺陷或黑客攻击导致的。
如果通过,调查人员会进入最后一个步骤,也是最消耗功夫的阶段——调查人员需要分析修复方案,检查上传的补丁代码,并验证它的确能很好的解决这些问题。

风险在于,主动修复过程,可能会直接或间接地影响到其他 ” 无辜的 ” 智能合约。
而提案人并不对其直接负责,这些损失是无法接受的。为了确保不会出现这种情况,必须有多个验证者参与代码分析,并得征得所有验证者的同意。

显然,这将消耗大量的时间和金钱。实际上,这种分析工作可以交给专业人员,然后由 BNS 来支付报酬。他们的工作将由生态中的其他多方共同评审,最终由相关决策图中位置较“高”的人评审。

为了解决上述所涉及的费用,BNS 要求提案者需要为提案付两笔钱。 当然了,从经济上考虑,为提案付钱总比蒙受损失要好得多。

第一笔付款,BNS 不可退还,这部分是 BNS 向生态中的专业代码分析人员支付的酬劳,更广泛地说,这是支付给神经元持有者的奖励。

第二种支付方式是保证金,提案被采纳后即可退还,只要是为了防止提交垃圾提案 (与涉及较少资金提案更相关),并鼓励大家提交高质量的提案。

8

双规的系统和全能的 BNS

DFINITY 实际上提供了两种类型的账户和合约,一种由 BNS 全权负责,另一种 BNS 只能控制它的冻结和解冻。

这是为了在账户所有者和合约创建者对代码安全性和准确性非常有信心的情况下,避免出现不必要的副作用。

这个设计有很多优点,但有一点必须牢记在心:BNS 可以在它希望的时候升级对账户与合约的控制,因此 BNS 最终是无所不能的。

9

BNS 的目标

保障安全,并防备突发攻击

在这个系统里,让 BNS 做到绝对控制,是非常重要的。 当 DFINITY 网络上线时,它将带有“创世宪法”,其目的是指导和协调神经元的持有者。

从本质上讲,第一部宪法将反映出一种被概括为“不作恶无暴力”的精神。 然而,宪法的存在实际上并没有限制神经元投票的方式。 此外,
BNS 可以按照自己的意愿修改宪法,我们希望宪法能够随着时间的推移迅速发展。 那么 BNS 是否有任何单一原则,指导其目的保持不变呢?

答案是肯定的。 可以说,BNS 的目标只有一个:长期增加系统的市场价值,大致表现为吸引更多用户,提高网络安全性,提升性能、容量和效率等

原因很简单,每个神经元中都抵押着大量的 token,想要取出来必须关闭神经元并登上好几个月还行。如果 BNS 始终如一地,做出增长用户基础和改善网络的决策,那么这些 token 的价值肯定会增加。

另一方面,如果 BNS 做出一个明显错误的决定,市场将迅速采取惩罚措施。

市场的调节速度是恐怖的,这使得对理性的神经元持有者来说,渎职作恶和尝试其他类似的投机策略是没有利润可图的。

例如,如果 BNS 通过了一个协议,给神经元持有者增肌一个 ” 特殊奖励 “,那么神经元中抵押的 token 的价值。将迅速下跌,这些做出错误决策的人肯定会遭受巨大的损失。

即使 BNS 决定做一些看起来微妙的事情,比如限制新神经元的产生,以及不合理地增加思维挖矿的回报,市场也会迅速做出反应,认为这是一个网络被掌控的信号,去中心化提供的安全性遭到破坏,就会出现大幅度的下跌。

那么是怎么走上错误的道路呢 ? 有两个主要风险。

第一种情况是,对手通过暴力手段获取了神经元的控制权,通过采纳糟糕的提议,从而控制整个 BNS。 要做到这一点,他必须控制大量的神经元。

如果他在市场上购买了所需的 token,会把市场价格抬的很高,这将大大增加相关的成本,让攻击者更迫不及待的想去攻击网络。除非他愿意不惜任何代价地损害 DFINITY 网络,否则他只有通过在市场上做空 DFINITY 来弥补自己的损失,但实际上,这个策略基本不可能赚到钱。

第二个风险,在我看来更切题,民主对煽动者的满目追随也会到时项目走上错误的道路
。特别是在协议升级出现问题,系统被冲击,dfinities 的价值下降的时候,最有可能引发这样的事件。

可以想象,一个煽动者疯狂地传销自己的神经元地址,并承诺“让 DFINITY 再次变得伟大”。虽然煽动者可能认为他们强行通过的建议是有益的,但在实践中,这些建议很可能会破坏民主的智慧,导致网络走向灾难。

这里只有一个解决方案:尽可能地提高神经元持有者群体的复杂性,以便煽动者不会轻易干扰到他们的独立思考。

但是如果无法估计的事情发生了,BNS 确实疯了,该怎么办?

假设一个最坏的例子——如果一个对手设法让 BNS 通过了一个提案,导致所有 DFINITY 托管的系统都被冻结,该怎么办?!
事实上,这种情况并不一定意味着网络的终结。

DFINITY 客户端存储了版本控制系统分配给它们的状态(这个状态也用于在重新连接后更快地同步节点),因此上述的情况是可以被逆转的。这将涉及到一个“真正的”硬分叉,在这里 DFINITY 客户端将被重新配置,以恢复状态,而且,最重要的是,会把支持过邪恶提案的神经元踢出网络。

最后这一点非常的重要:在极端情况下,稀里糊涂地追随作恶神经元的善意神经元持有者,会付出高昂的代价,这就是为什么不应该粗心地配置神经元追随关系。

10

隐私的重要性

我们在前面一直没有提到的一个方面,就是隐私。 由于某些原因,神经元是在链下进行管理的。从根本上说,神经元的跟随关系和决策过程,对全网来说是不可知,因为
攻击者无法收集到分布在世界各地、成千上万个客户端上的所有链下数据

这样就可以防止敌方通过敲诈或绑架等手段,将关键节点作为攻击目标,从而增加提案被采纳的可能性。

最后

BNS 使 DFINITY 成为适配以太坊的姐妹网络。

开发人员可以选择在以太坊上运行 Dapp,也可以选择 DFINITY,这取决你的权衡。如果你自信地认为你的系统绝对没有 BUG,是坚不可摧的,使用 ” 代码即法律 ” 的以太坊没啥问题;如果你是认为 BNS 提供的 AI 管理环境更安全,认为有必要全面的考虑到代码出现疏漏的情况,或者出于政策原因,你需要一种手段来处理当前的追责、冻结和其他技术问题,那么“AI 即法律”的 DFINITY 是很棒的选择。

BNS 的引入带来了网络空间环境的概念,即在没有直接的人工干预和控制的情况下,通过算法来治理网络。

如果 BNS 的设想最终成功,它将解决我们目前面临的许多问题。它还超越了最初由比特币引入的,过于简单的挖矿奖励计划,并引入了复杂的多维的灵活的经济治理模式,使用多个参数调节经济系统,而这些参数的驱动只有一个目标——网络的最终成功。

BNS 将发布在 DFINITY 网络最初的 Copper 版本中。

-END-