http://www.umut.cn

利用雪崩算法主动协调交易本地状态

· 提供一个可以事情的预共鸣系统,以答允任何节点都可以插手参加个中,用于尝试和收集信息。
  accumulateVotes(votes)
安详参数
投票有三个选项值:no(0),yes(1),可能弃权(2)。通过将它们放入Snowball投票累加器来处理惩罚,该累加器保持最后K张选票,接管状态,以及雪崩白皮书里描写的对该状态的可信度。参数选择为k=8, 要害词: 雪崩算法  共鸣机制  

while items= getItemsToSample():

每个客户端在看到的一个未完成的项目时,城市维护一个基于雪球(Snowball-based)投票累加器。一旦看到一个项目,就会建设一个累加器,并开始投票确定最终状态的进程。只要有未办理的斗嘴集,客户端就会随机选择一个对等节点,询问它对这个项目标投票,并将这些投票输入投票累加器。一旦项目标接管信任度到达阈值,则斗嘴办理;这个项目被全网接管,而且拒绝所有斗嘴项目。这个进程会一连事情,直到所有斗嘴集都被办理为止。

客户端应利用以下处事位来暗示他们领略协议:
利用一组利用币金额乘于区块年数的UTXO信息,我们称之为“币块”,才气向其他节点提倡查询处事,通过该机制可实现抗女巫进攻。假如索要查询处事的节点发出的动静不包括足够的币块阈值,该动静为犯科的,而且该节点会被克制,不能插手Snowglobe内存池中。


2.假如动静是正当的,则将其节点插手到相助内存参加者之列。


要验证一个毗连动静的真伪,及其对应下注的客户端的身份,必需通过将动静的签名移除,并生陈类型的序列化。然后验证措施要查抄身份签名的正确性。接下来,要在提取公钥的同时,比较匹配输出点。最后,加载每个提交的UTXO,查抄它们的范例,查抄匹配的公钥是否正确,并确保币块足够大。(这段太巨大了,看不懂,原文是:To validate a Join message and its stake a client must firstgenerate the canonical serialized message by removing the signatures. Then itshould check that the Identity signature correctly signs the canonical message.Next it needs to verify each outpoint signature against its matching committedoutpoint, while simultaneously extracting the public key. Finally it load eachof the committed UTXOs, check their type, check that the matching public key iscorrect, and ensure that Coin Blocks is sufficient.)


未来大概支持以下范例:
 

我们但愿在协议上告竣如下方针:

 

  peer = getRandomPeer()
· 低延迟:实现秒级告竣决定

· 一个生意业务的斗嘴集是所有利用沟通UTXO耗费的生意业务

· 可扩展的资源:我们需要将系统扩展到全球现金系统程度。

一笔生意业务会从每一个父生意业务哪里都形成一条边。
1.假如动静是犯科的,则克制其节点
具体法则
· 元不变性:参加者主动参加事情,并将系统状态朝着单一偏向坍缩,而且能抵挡状态回撤。
握手
· 挖掘更多需要研究的,或潜在的问题。
每一个客户端都应该一连为未完成的项举办轮回采样,每次轮回最多可以到达4096个请求。每次反复采样,客户端们应该随机选择要查询的节点,发送一个项目请求,而且通过投票累加器来返回投票功效。通过伪代码来描写如下:
验证
办理方案是利用链中已经存在的所有自然形成的工具边,而不是工钱再生成新的。我们通过界说给定极点,来形成新的边,详细范例取决于如下:
 

一个块,会从它的父块里形成一条边,以及从每一笔被该区块理睬的生意业务哪里形成一条边。
建设信号
本文描写一种在中本聪共鸣机制网络下的节点之间的流传协议,在该协议中节点之间努力地协调各自的当地状态。它使得节点可以或许对互相举办采样,以确定一个相斗嘴的会合哪个选项是在当前大大都节点的选择,而且将沟通的选择推向大大都节点。本协议是基于雪崩共鸣算法改造而来,提供了协议的异步性、亚不变性和静态终结性。

操作雪崩算法主动协调生意业务当地状态


· 无须许可:任何人都可以提供或索要采样
办理斗嘴集的进程是最终接管一个项的进程,同时意味着拒绝了所有其他项


另外,协议必需具有以部属性:
· 可扩展的成员体系:我们但愿任何有乐趣的人都能插手
方针
区块中每一笔存在于斗嘴集的生意业务,都要基于互斥解除点。这些要点如下:

我们的算法也回收雪崩算法白皮书描写的安详参数,如下:

轮回采样

和验证下注动静的身份信息。下注行动是通过下注者利用公钥签署一个包括身份的信息插手毗连动静。动静是通过ECDSA签署,利用构成币块的UTXO的公钥和私钥签署。(这一段看不懂,原文如下:Queryable nodes must all maintain an secp256k1 key pair whichis used by queriers to authenticate messages against a stake. Staking is doneby crafting and signing a Joinmessage containingthe Identity public key a list of outpoints controlled by the staker. Thismessage is signed using ECDSA by the Identity private key and by the public keythat controls each UTXO represented by the committed outpoint.)


斗嘴集
· 拜占庭式容错:我们不假设所有参加者都是厚道的,系统能抗恶意行为。
基于互斥点(based on points of mutual exclusion)我们认为每个区块和生意业务都是1个或多个斗嘴集的成员,好比耗费沟通的UTXO。我们利用雪崩算法,将每一个斗嘴集准确地解析为单个项目,而且参加者利用其当地状态参加办理网络斗嘴集,从而为所有参加节点提供共享的当地状态。




 
  votes = query(peer, items)
中本聪共鸣是但愿任何节点可以无须信任地参加告竣共鸣,它通过利用事情量证明赋于每个状态一个真实世界权重。不幸的是,这对系统提出了一些不抱负的要求,如同步性,决心的工钱延迟,和永久性地需要维护共鸣。好比,一个状态无法100%地确定。

 
此刻只支持如下UTXO:

· 安静:一旦做出抉择,就不行逆,并且最终状态将不再需要特另外事情。
 
· 多重签名

当节点但愿提供其采样状态时,它们应该利用适当的处事位给其他节点发送一个毗连动静。吸收到该动静的客户端应该验证该动静,而且:
投票累加器
· 证明预共鸣系统在比特币现金上是可行的。



摘要
· P2PKH
 

初始的币块值设为1440,但需要进一步研究,是否有更符合的值。

雪崩算法有效性的焦点是DAG(有向无环图),它答允我们通过单个Snowball实例,来接管或拒绝整个链的状态。DAG图的毗连性越强,完成所有状态最终确定所需要的Snowball实例就越少,不外,假如DAG图过于巨大,会导致体统效率城市挥霍在结构图的边上。
DAG名目

提供查询处事的节点,都必需维护一个secp256k1密钥对,该密钥用于授权
NODE_SNOWGLOBE= (1 << 26)
利用身份和下注(stake)发信号及验证
· P2PK(Pay-to-Pubkey)

通过将内存池里所有被拒绝的项,替换为被接管的项,网络中的参加者就可以拥有险些沟通的当地状态。团结再有的类型排序法则,这些客户端就可以看到险些一致的区块。

协议概述

 
我们意识到,由挖矿节点组成的大型节点,和大量的付出基本设施始终在线但不参加告竣共鸣,我们可以设计一个协议,答允他们快速告竣共享的网络状态,尽量这是主观的。矿工可以继承完成他们的事情,并最终将他们的当地状态固化为全局状态,从而使新插手的节点可以无须信任地插手共鸣。该协议试图利用预共鸣技能,以告竣更快、更具扩展性和更安详的比特币现金。


利用币龄抗女巫进攻
· 经心界说的P2SH剧本。

低落比特币在多网络节点之间的熵的长处被遍及接头,个中包罗将执行本钱高的事情移出要害路径来提高可扩展性、更快的生意业务确认/双花掩护,和更强的拜占庭反抗中短期期链重组进攻。

发信号支持

· 一个区块的斗嘴集是所有沟通高度的区块,包括了沟通生意业务,可能包括了相斗嘴的生意业务
本文档不会深入接头在雪崩算法白皮书中描写的细节和常识点,这些是需要读者本身去阅读原白皮书。同时,本文还要求读者已司领略了中本聪共鸣机制。
念头

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。