[Coin] Coordicide 重点节录

楼主: lolo0856 (lolot)   2019-06-05 08:51:35
转贴自iota爱好者中文社群
作者YuWei Wu
全文 http://0rz.tw/OupZA
移除 Coordinator 一直是 IOTA Foundation 的目标,而日前他们将白皮书 释出了,大致
上可以理解移除 Coordinator并引入投票机制作为主要解决方案,另外还有以下的目标将会
以模组的形式在往后加入节点中:
- 将交易最终确定时间降为秒级
- 降低 Reattach & Promote 的需求
- 自动寻找节点的机制
- 压缩讯息传递的 Metadata
以下将会整理变更的重点,并简介每层新的协定与共识机制。
节点身份与魔力(Mana)
在没有 Coordinator 的网络下,我们需要能够识别出节点的身份才能让它们投票。这样的
话每个节点会需要产生独自的身分识别,并以此来签署讯息或者进行投票来确保可靠性。但
这样的分布式系统又容易遭受女巫攻击。要防止这样的攻击方式的话,就需要要求节点在投
票时提供稀缺资源,像是在 PoW 使用的算力,或者在 PoS 的 stake。PoS 虽然的确不像 P
oW 那样受到扩展性的难题,但是在“最长链准则”下的话 PoS 却会有以下两种常见的攻击
向量。一是“nothing-at-stake”,stakeholder 可以同时投两笔互斥交易而且不会被惩处
或承担任何风险。另一个则是“long range attacks”,庞大的 stakeholders 可以预先秘
密组起另一条链然后在之后才进行广播。
由于 Coordicide 的解决方案并不依赖于最长链准则,以下提出的方法并不会有这些问题。
这个提出的信誉系统称为魔力(Mana):
- 进行交易转移 IOTA 时,使用者会对转移得 IOTA 证明拥有权
- 使用者可以连结交易到他们选择的节点,将节点 ID 加到交易签章中。在大多数的情况下
,传送交易时应该都会使用相同的节点
- 交易会让魔力从之前指派的节点转到下个节点
魔力系统是个建立在资金上抵御女巫攻击的信誉系统,魔力不仅可以透过转移 IOTA 交易获
得,也能透过提供良好的服务给社群或传播有效交易来获得。而这些魔力作为良好的信誉评
比,在之后也能够用来奖励这些可信任的节点,像是速率控制(rate control)或是投票模
组。魔力还建立在信誉是非常难取得且容易失去的条件下。信誉系统最重要的能力之一就是
能够撤销不良份子之前所获得的信誉。在 IOTA 的话,如果使用者发现他所用的节点行为不
正常像是传递无效交易的话,只要转移指派到其他节点即可。
最后与其他抵挡女巫攻击的机制不同的地方是,魔力的 nodeID 并不需要拥有者连结私钥然
后强播使用者参与复杂且具风险的 staking 处理机制。魔力系统确保原本的资金就能投入
参与信誉系统中。
邻居自动互联(Auto-peering)
在对等(peer-to-peer)网络中节点的邻居是唯一资讯的来源,任何寻找邻居的机制都需要专
注在连接到健康且诚实可信的节点。IOTA 接下来会实作自己的 peering 机制让每个节点都
有自己的标准来选择潜在邻居。攻击者没办法在选择过程影响节点的决定,节点对于网络观
察到的面貌会是本地端且无法预测的。这能够抵挡外部攻击(像是日蚀攻击)并且让攻击者
无法锁定特定节点的互联过程,确保节点永远最少有一定数量的诚实邻居。除此之外,此互
连机制还会尝试组织小世界网络(Small World Network),让每个节点都可以透过最少的一
定步数,以期借此加速共识。
防止滥发(Spam Protection)
目前 Tangle 使用基于 PoW 的简单机制来防止滥伐,不过用 PoW 来控制交易产生速率是不
实际的,因为这会带来挖矿竞赛(Mining Race)。新的机制会使用自适应的速率控制机制,
他会按照不同因素像是最近产生的交易与魔力,来自动变更每个节点的 PoW 难度。注意这
与 PoW 共识不同,这边做的 PoW 是作为速率控制以防止挖矿竞赛,所以也不会用到特别大
量的算力。
在此模型中,越高魔力的节点能够产生越多的交易,且需求不会比低信誉节点花费来得高。
但是在一段时间内产生越多交易的话,PoW 难度也会随之增加。速率低的话难度则只要一点
点就足够。这样的机制能够有两项好处:
- 让网络能防止资源够多的节点,像是 ASIC 节点能够影响共识
- 在 IoT 情境下,大多数会是算力低且速率较慢的节点,这让这些节点能快速稳定传送交

Tips 选择算法(TSA)
在过去节点使用一个特定的随机漫步作为 TSA,这能够组织起健康且判别出权重最重的 Tan
gle。但这却也带来一些不想要的结果:
- 诚实交易如果没有累积足够权重的话容易被遗弃,目前转圜的方式是透过促进(Pomotion)
和重新连接(Reattach)。但这样却大大降低了交易的考靠性
- 攻击者可以去尝试挑战随机漫步并组成恶意的架构像是寄生链,或者进行分裂攻击阻止网
路达成共识
- 计算权重相当花费资源,这让协定的扩展会有些困难,尤其是在高吞吐量的情形下
如果加上投票机制能决定哪部分的 Tangle 是多数倾向的话,不仅可以让选择 tip 的过程
更迅速和便宜,更能带来:
- 冲突解决能更迅速,并降低交易连接到 Tangle 不合理的部分的机率
- 不再用权重判定 TSA ,降低合理交易被遗弃的风险
解决冲突
只透过建立在权重上的 TSA 共识机制目前仍让 IOTA 受制于挖矿竞赛。所以为了解决此问
题,IF 提出了一层安全机制让节点交换投票意见。在过去几年来这类的投票模型就有不少
研究过: 在机率模型下使一节点与一小群节点互相交换意见数轮,并互相左右自己的意见。
在 70 年代投票模型就曾独自被 Holley/Liggett 与 Clifford/Sudbury 提过,然后自从那
时起就有不少相关的研究论文依序出现。有了投票机制后可以带来不少益处:
- 与其等待状况自行解决,节点与邻居会自行交谈来亲自解决冲突
- 节点的投票权重依据自己有多少魔力。因此良好的节点能够大大地影响网络
- 就算诚实节点没有在产生任何交易,他们仍会用投票保护网络。加上之前提到的女巫攻击
防御机制(魔力),这样能不依赖 PoW,取代区块链上用诚实算力的方式
- 达成共识不再依靠 TSA 或 Tangle 的结构,这让其他 DLT 能够快速衔接,如果达成未来
有其他的需求。这也能防止任何形式的攻击,像是操纵 Tangle 结构来破坏共识机制,包含
那些白皮书提到的危险攻击,像是寄生链攻击等
-
而传统投票机制的缺点是,他们没办法有效的扩大规模。他们通常都需要网络参与者完整机
确的意见,而这会造成大量的讯息传递阻塞。所以 IF 提出了新的方案 Shimmer,一个可以
克服这些传统机制造成的问题的投票方案。
微光 (Shimmer)
Shimmer 会是个独立自主的媒介,会依照一些预先定义的规则去反应,在大自然中有很多这
样的系统,像是蜜蜂、蚂蚁以及鱼群等等。一些简单的规则就能够建构出复杂难以置信的功
能,并随着时间形成系统中的紧急应变特性。Shimmer 共识算法也一样,与其让所有节点
都尝试整理出同样的意见,Shimmer 只关心一小群子集中节点的意见,并让共识组织成网络
中的紧急应变系统。当冲突发生时,Shimmer会让节点多次交换他们所能解决冲突的交易给
其他邻居,直到达成共识为止。节点会拿到所选择的 Tangle 部分的全域观点,这步是保证
共识的关键步骤。在某些状况下,节点甚至能决定将这些部分列为最终确认。这代表他会结
束参与投票,且不会再更改决定,就算有攻击发生让意见更改了。在 Shimmer 作为 Tangle
的共识机制后,喜欢或不喜欢一笔交易都将会造成广大的影响。如果交易被节点喜欢的话
,就代表该节点也喜直接或间接验证此交易的后续交易。反过来说,如果交易被不喜欢的话
,那后续的交易也不可能被喜欢。
值得注意的是对所有交易投票并不是必须的,没有产生冲突的交易可以直接依据本地调整码
(local modifiers)来直接视为喜欢(像是经过一定的时间都没产生冲突)。投票只需用来解
决冲突或者特殊情况。节点会拒绝那种一次喜欢两笔冲突交易的票,这让节点必须决定一个
唯一的生存者,要视节点违反此规则的话,则会遭受忽视或者永久被其他邻居遗弃。除此之
外,诚实节点也没有理由去投两笔互斥交易,因为这完全没有诱因也没有任何奖励(更可能
被惩罚)。
接下来会介绍两种方式让投票如何进行并保全整个机制,他们会是未来实作的候选,并在往
后会在测试网络进行审查,他们分别是:
- 细胞共识(Cellular Consensus)
- 快速机率共识(Fast Probabilistic Consensus) [2]
细胞共识(Cellular Consensus)
在细胞共识中投票过程被塑造成细胞自动机 (cellular automaton),可以把节点想成是
一个细胞然后会监控周围邻居的状态,然后依此调整他们的意见。而实际的共识算法也非
常简单,只需要五行就能解决:
If NumberOfNeighborsPreferringTransaction(tx) > NumberOfNeighbors / 2 {
PreferTransaction(tx)
} else {
DislikeTransaction(tx)
}
此机制主要能让节典能采纳大多数邻居的意见,并以此绝大多数来决定喜欢或不喜欢那些交
易。而且这十分快速且稳定,以下图示显示一万个节点如何在 128 个冲突交易中达成共识(
不同眼色代表不同节点),可以看出网络要达成共识只需要几秒的时间
(图略)
随着节点数量增加,网络中交易传递的时间也会随之增加,但这不会影响达成共识的时间。
意见是在本地端决定的,所以网络中节点都是同时进行。不过一直与相同邻居交换意见的话
也很容易被攻击,所以这还会再加上一层依据魔力信誉系统的互连机制,节点会倾向与魔力
接近的邻居相连。这让攻击者的成本大幅增加,甚至是想成为邻居都会有困难,这也增加另
一个保持高信誉的诱因。随着诚实节点补魔越多,网络也会因此越来越安全稳固。
意见八卦(Gossip about Opinion): 有机体的免疫系统
将节点对待为像是有机体的细胞让这样的系统可以实作出“免疫系统”。这让网络能抵御攻
击,强制参与者必须按照规则走,并提供比传统的女巫攻击防御机制更安全的防御手段。因
为所有邻居都是随机选择的, Shimmer 达成共识会是非常依靠机率的。但在节点观点上的
话,细胞共识会能够是确定性的。如果我们可以知道节点的意见,那我们便可以验证节点的
行为。恶意节点违反规则的话便能够被侦测出来,并马上被邻居驱逐。此协定被称为“意见
八卦” (Gossip about Opinion),而大致上的做法如下:
- 每隔一段间隔,每个节点会传送“心跳”(heartbeat) 讯息给邻居。讯息会包含他目前的
意见以及为何未产生这样的意见(像是因为它邻居在前一轮有这样的意见)
- 为了压缩交换讯息的数据,只有在连续心跳中有不同时才会传送出去,像是只有那些交易
hash 喜欢的状态变更时
- 节点会签署心跳讯息及意见确保真实性
这样一来有心跳讯息的话就能够达到:
- 强制节点产生正常的声明并在网络中保持活跃
- 同步邻居间的意见,让节点能依据上述规则更新自己的意见,且不必持续向其他节点请求
这样让节点能够验证邻居是否为诚实的,那些违反协定擅自更改意见的邻居将会马上驱逐于
网络。而且既然讯息是有签章的,不正常的行为便也能够追踪,查证出讯息是从哪个节点发
出的。这样的做法还有几项特点,它是异步的、简单容易实作,讯息传递非常有效率,而
且达成共识的速度极快,让攻击能够快速被避免。
虽然紧急应变现象是常见于生物系统中且证实非常有效的,但它非常难用数学去模组化,因
为通常这是复杂且混乱的行为本质。此方式最大的问题是很难有效地用正规科学方式证明它
。要部署到主网前,会需要在测试网络详细地研究验证细胞共识。
快速机率共识(Fast Probabilistic Consensus)
为了弥补细胞共识的缺点,IF 同时还分析了另一种投票过程,并且已经用数学模型阐述并
验证了,这个方式称为快速机率共识(Fast Probabilistic Consensus)。它基本的准则和细
胞共识类似,但是和同时间在邻居间异步进行投票不同,其投票过程会分成数轮。在每轮
每个节点会选择新的随机节点子集并请求它们现在的意见。节点的意见就会依据大多数节点
回传的来形成,但是这边的绝大多数不会是 50%,而是用一种去中心化的随机数列 [3] 来
产生阈值。选择不可预测的全域阈值让我们可以防止攻击者想要延迟共识。此投票过程会收
敛的非常迅速,就算在最糟糕的策略且有恶意节点的状况下投票也是如此。而且这也已经过
论文证明,大致上的规则如下:
- 如果对手知道诚实节点所用的规则,那它便能够预测他们的行为并调整策略来持续延迟过

- 想像一下如果诚实节点要改变意见的阈值是固定的,那么拥有足够节点的恶意角色便能够
调整它的节点欢/不喜欢的交易来强迫网络保持在分裂(或无法达成共识)的状态下。有了全
域随机数值的话,便能够消除这样的可能性,在规则一致的同时,使对手无法进行预测
- 这让网络在一定时间后永远无法保持在分裂状态下,而且这些随机数值仅会在网络初期分
裂状态时才会有影响,而不会造成网络共识的冲击
在经过数轮投票后,如果节点都没有变更意见的话,那这样的意见便能视为最终确认的,且
不必再进行投票。至于是几轮则是依据网络能够达成的事的情况,通常都会是非常高能达成
共识。
评论:好大一个,还没完全看懂@[email protected]
作者: camellala (茸硬抬名器)   2019-06-05 08:59:00
IOTA 是踏实的好东西,推
作者: Rasin (雷森)   2019-06-05 09:25:00
告诉我会不会登月就好 告诉我会不会登月就好
楼主: lolo0856 (lolot)   2019-06-05 09:27:00
就算这些都做到了 和iota本身价格还是两回事吧@[email protected]
作者: mithuang (阿明)   2019-06-05 09:54:00
告诉我会不会发大财就好
作者: camellala (茸硬抬名器)   2019-06-05 11:00:00
告诉我会不会征服宇宙就好
作者: DarkerDuck (達克鴨)   2019-06-05 15:08:00
其实还是讲太多了,之前V神讲得比较精简https://tinyurl.com/yylu3gv3
作者: Ymiao (勿忘初衷:p)   2019-06-05 15:27:00
IOTA凸了木
作者: DarkerDuck (達克鴨)   2019-06-05 15:35:00
晚点我一起解释IOTA的Coordicide和BCH的Avalanche这两者的基本上是相同的机制BCH的Avalanche真的是很猛的东西可以在不妨碍PoW的共识下,将预确认时间缩到数秒现在也有其他币来"致敬"了
作者: john371911 (醬廖)   2019-06-05 17:49:00
期待黑鸭的文章。
楼主: lolo0856 (lolot)   2019-06-05 17:50:00
坐等quq
作者: Sarnux (保罗Paul)   2019-06-06 00:22:00
推推 iota跟黑鸭大
作者: justben (BEN)   2019-06-06 04:06:00
太复杂了吧 一个问题N个解法 难度倍增 = =
作者: desion30 (五亿)   2019-06-06 08:18:00
Iota开发者对于复制avalanche的回复https://link.medium.com/cA7kvrxKhX战了一阵子,不过似乎不太一样
作者: DarkerDuck (達克鴨)   2019-06-06 13:51:00
当然是不能说完全clone,但很多核心概念是相通的Avalanche有用到DAG的概念Coordicide又用到Avalanche的概念大家互相致敬,开放原始码软件本来就开放大家参考

Links booklink

Contact Us: admin [ a t ] ucptt.com