JURA在过去几年见证了区块链技术的飞速发展,并致力于构建下一代底层公链技术。恶意的网络攻击日益猖狂,这对分布式网络在可扩展性、最终性和可靠性等方而提出了更高的要求。尽管目前已经出现了各种各样的解决方案,但受制于每秒处理交易数、网络安全性和可拓展性圆乏等,区块链技术大规模应用依旧无从谈起。有鉴于此,我们将在本文中为你详细介绍由JURA团队创立的项月一JURA.它包括Fusus (一种基于区块链技术和DAG结合的数据结构) . PoU (自主调节的分布式网络的共识机制),PoVRT模块(可随机时间反欺诈验证),可扩展的分片技术,以及人工智能的安全謔层。我们相信,JURA将为去中心化应用的将及铺平道路,并打破当前的市场格局开辟新航路。
JURA 协议
JURA协议与其他协议的不同之处在于,提出了一整套 完善的解决方案。JURA的核心是Fusus数据结构。PoVRT取代了PoW,它是一种反垃圾邮件工具。每个账户都有自己的Fusus链。然后,效用证明共识机制(PoU)起到了整个系统监督者(守夜人)的作用。
1.Fusus
(JURA项目的)有关区块链技术的革命性设计之一,它以区块链作为数据结构的基础,(在交 易过程中)进行加密并将后一段交易附加到前一段交易。 这些交易在Merkle树中归类整理,可以把Merkle树的根放入到区块的头部。这种设计为验证和检查交易完整性提供了便利。而且这种设计还便于简单支付验证(SPV),简单支付验证使用布隆过滤器(BF) 和HyperLogLog (HLL) ,以实现快速交易。这一论述表明,数据结构在塑造系统中所有其他部分起着基础性作用。实际上,我们竭力希望找到新的数据结构。特别是有向无环图(DAG),作为强有力的替代者,从传统区块链技术中脱额而出。的一项强有力的技术。
1.1 DAG
有向无环图(DAG)作为一种通用图形结构已被广泛应用于许多领域,例如调度、数据处理网络,因果结构、数据压缩等。这种有向无环图(DAG)也作为基础被应用加密货币领域。
例如,塞尔吉奥勒纳于2012 年首次尝试在DAG的基础上创建一种区块链免费的加密货币——DagCoin,不过仅仅停留在概念层面。随后,IOTA、Byteball 和NANO都提出了他们自己的DAG变体,以在各自协议中发挥作用。特别是,由IOTA设计的DAG -Tangle (缠结)把额外的概念引入到了DAG中,例如深度、重量、累积重量和提示,这些概念-起应用于以马尔可夫链蒙特卡罗(MCMC)随机采样算法为基础的提示选择算法中。遗憾的是这些算法过于复杂,并且单个DAG的使用并不能很好地随系统一起扩展, 使得脆弱点容易受到恶意攻击。字节雪球引入了见证者模式以便构建主链。这实质上引入了-种类似于现实世界信誉的机制以及一个统-管理机构来管理们们的去中心化系统。分布式系统中任何形式的集权化都有可能使其受到攻击和控制。在理想环境中,这个系统当然会正常运行,但从长远来看,由于白身存在弱点,系统崩溃的可能性很大。NANO通过使用区块点阵DAG数据结构而作为一个特殊的框架脱额而出。在这种结构中,每个账户(或用户)都有自己的区块链,并且在发送和接收交易之间进行了区分,使得账户维护简单,完成交易速度加快。可以在每个节点上跟踪每个账户中的余额。这种方式在搜索所有UTXO (未使用的交易输出)时可以节约大量时间以便在每次交易前计算出当前余额,这就像在当前的比特币区块链系统中-样。当交易最较大、交易历史较长且对快速检索的要求较高时,这种特殊框架的优势更为明显。此外,区块链在NANO公平处理、发送和接收交易方面的线性结构,以及把PoW用作为主要的反垃圾邮件策略,这都会导致交易速度变慢,且安全性不足。
通过这些观察研究,我们发现目前需要一种新型数据结构来克服当前区块链技术固有的局限性。在下一节中,我们将为你介绍JURA区块链技术的基础一Fusus。
1.2 Fusus
Fusus作为一种灵活实用且有效的数据结构,是区块链、区块点阵和DAG的多重继承,可同时实现可扩展性、快速交易、轻量化和即时确认。
账户
账户是加密签名密钥对的公钥部分。从公钥获得的地址可以和整个P2P网络共享,而私钥只有账户持有人掌握。传统上,一个账户可以一-次创建文易并可以把交易发送到目标地址。该账户并不会加密存储它过往的交易记录。在Fusus中,允许每个账户持有、存储和跟踪自己的交易。无论是比特币的区块链,还是IOTA的Tangle (维结),每次交易时,系统都需要搜索整个历史來计算账户的余额。当历史记录被快照(一种删除早期部分历史记录的技术)精简时,由于随机密钥生成和余额搜索机制,许多账户余额将变为0。因此,跟踪每个账户中的余额不仅可以实现快速离线检索,还可以降低余额出错的可能性。
每个账户都使用具有非零余领的创始区块来启动。这是为了免受女巫攻击(有关女巫攻击的内容我们将在后续章节中为你详细介绍)所采用的重要手段。对每个账户,上的Fusus进行任何更改都需要该账户的私钥,从而满足速度和便利性的同时再加上一层“安全膜”。
交易
交易是把价值从一个地址转移到另一个地址。JURA与传统区块链技术的区别在于JURA将发送和接收交易进行了分离。在传统的区块链技术中,交易是从整个系统层面来看的,并被简单地视为从A到B的单一动作。但从账户的角度来看,每个账户都有发送交易(ST)或接收交易(RT)。考虑到不同的处理时间要求,两者应该分开处理:发送交易确实存在固有的时间紧迫性,核心前提是账户中必须有足够的余额来实现发送交易。另一方面,接收交易(RT)不存在时间紧迫性,因此相对被动。同时,让许多接收交易传入是可能的,而传入的发送交易过多可能会对系统造成压力。交易对账户余额没有要求(除非有特别需要),可以缓慢地更新账户。这一观点可以通过对现有加密货币的使用信息进行数据分析来提供支持。
Fusus数据结构
Fusus数据结构本质上是一个DAG点阵。也就是说,账户的交易历史记录构成点阵,而每个账户的历史记录由DAG构建。交易较低时,DAG可有效缩减到一个区块链结构。对于相关示例,请参见图1。业务量较高时,接收交易会构成一个DAG,每个发送交易起到了新创始区块的作用。
对于相关说明,请参见图2。Fusus始于创始区块,而接收交易则会构成DAG。新交易涉及到k≥1,以前的接收交易取决于业务情况。交易量较高时,新交易可以充分利用DAG的潜力尽快地并尽可能多地吸纳交易。每当出现发送交易时,Fusus 就会成为创始区块或先前发送交易之间所有接收交易的验证器,如果尚未确认发送交易的话,Fusus 则会用作当前发送交易的验证器。
1.记录初始余额的创始区块。
2.接收区块高低交易量模式出现,并产生窄/宽的Fusus。
3.每个发送区块参考所有确认的接收区块,将Fusus缩小到单个节点,并在对接收区块中的余额做出结算后确认净余额。
4.发送区块将作为新的创始区块插入接收DAG中,并且现有接收区块的确认数量保持不变。
5.未确认的接收区块将继续增加DAG。
6.允许精简以减少历史记录。
交易时间
通过对交易过程的分析可以了解完成交易所需的时间。
· 将交易从发送地址发送到接收地址的通信时间: t1
· 从接收地址至发送地址广播的接收交易通信时间: t1
· 用于发出发送交易、PoVRT和散列时问等的处理时间; t2
· 用于确认接收交易、添加到DAG、广播到网络等的处理时间: t3
· 总时间约为: to=2*t1+t2+t3
在该公式中,t1通常是固定的,t2 是随机的,它具体取决于PoVRT共识机制(这种PoVRT共识机制将在下一节中解释) Fusus可以显著减少t2和t3,这是我们认为Fusus在处理速度方面将优于单个DAG或区块点阵网络。考虑到IOTA和NANO的零交易费,乃至反垃圾邮件PoW,两者都因无法处理境圾邮件攻击而饱受诟病。拥有大多数算力就可以轻松发起数百万次的交易,突破PoW并发起攻击。JURA也免除交易费用,但Fusus通过引入以下机制来从而在设计上避免上述攻击。
PoVRT
通过观察比特币生成区块所需的时间,我们可以得出一个重要的结论,工作最证明本质上是一种分配随机强制等待时间的机制。由于现代超级计算机的处理速度快,净效应不一定要通过解决复杂数学难题来实现(这种难题就是留有一个正在受攻击的漏洞)。相反,我们提出了-“种可随机时旬反垃圾信息验证(PoVRT)机制的验证方法,从而通过可验证随机函数(VRF)模块叼生成可验证随机时间。该模块可以创建一一个认证,任意节点都可以使用该认证来验证发送节点是否以正确方式以等待合适的随机时间。
需要注意的是,PoVRT不仅仅是PoW的技术替代方案,而且实际,上可以防止上述恶意攻击。无论掌握算力有多强大,系统自始至终都会强制在一个随机等待时间内。
因此,普通用户不会感觉到存在强加的等待时间,但是恶意用户会感觉在一定时间段内进行的交易会越来越困难。
广播和验证算法
每个用户都有自己的Fusus交易历史记录。如前所述,发送交易起到新创世区块的作用。每当创建新的发送交易时,就会向整个网络广播前一个发送交易、新发送交易和所有中间接收交易进行确认。出于工程设计目的,接收交易被添加在一个DAG结构中,以实现更大的可扩展性。然而,就验证和计算而言,精确的图解结构并不重要。我们将广播数据简化成了一个以卜结构。对于固定账户A,Dk是第k个广播数据:
2. 效用证明
2.1 背景
口前普遍采用的共识机制是比特币和以太坊网络中所使用的工作量证明(PoW) 。众所周知,工作量证明在将算力转化为有价值的输出方,这既费精力,又不可扩展。因此,为了克服这些弊端,人们又提出了权益证明(PoS)机制。
在PoS共识机制中,验证者随机轮流地在下一个区块进行提议和表决,权重取决于权益大小以及为获得表决权而持有的加密货币数量。
然后,在该系统内公以权重大小来决定在某个间隔内(例如每10秒)选择某一节点验证下一个区块的概率。这种机制在一定程度上克服了POS的弊端,但由于其以个人权益为基础,因此仍不可避免地遭受恶意攻击,并且很难惩罚不诚实的行为。
委托权益证明(DPoS)在PoS机制中引入了委托人的概念,以克服PoS机制的缺点。在该机制中,使用委托实质上是在节点项部安排一层具有可信实体的集中化管理,以实现某种形式上的技术民主。BitShares、NANO和Steem都是日前使用DPoS的共识机制,然而,人们普遍抱怨DPoS带来了的中心化的问题,引起了普遍担忧。按照设计,委托人应随机挑选,以确保实现网络的安全性, 然而在实践中,在一个去中心化的网络中找到可信赖的非官方委托人是一-项巨大的挑战。因而,设计者们必须亲自挑选值得信赖的委托人,而他们则往往成为共识中的主导力量。这就意味着中心化的出现。例如,在NANO网络中,(截至白皮书成稿前),52%的权益牢牢掌握在以NANO核心开发者为代表的官方团队手中。此外,人们发现用户钱包中的所有的默认设置都直指该项目的某位官方代表。这种中心化赋予了开发团队至高无上的权力,同时这也会导致他们的地位岌岌可危, 因被恶意活动的所控制甚至取而代之。
我们认为,将中心化和现实世界的信任体系引入到一个分布式系统中只是实现全面去中心化的特定阶段的中间步骤,换句话说,一种鼓励人人参与的设计才是真正意义上实现去中心化共识的基础。
2.2 共识机制
在P2P网络中的理想情况是,共识机制既能为按照协议正常运行的诚实节点给予奖励,又可防止不诚实节点的恶意攻击。从经济角度来看,该系统的激励机制足够完善,恶意攻击的机会成本足够高。
因此,在受到由Peercoin同提出的货币制度概念的启发下,JURA的效用证明(PoU)机制主要有两大基本内容:第一种是通过效用来管理表决,第二种是惩罚不诚实行为。效用是通过一组指标的函数而获得的,该指标用于测量对系统正常运行的贡献,而惩罚机制现阶段正在研究中,以用于下一个PoS协议,即通过以太坊提出的Cashere协议。
时间是PoS系统的一个重要信息。白此之后,时间是指可以从交易和权益中记录的时间戳中直接获得的任何信息。这些基于时间的指标可以与物理世界中的指标相关联,例如对调节人们行为具有重大影响的信用评分。然而,在一个参与者置名且侧重于隐私保护的分布式系统中,并不存在像信用评分之类的指标。JURA的希望通过时间信息来深入了解各个节点的“信誉”,并将规则创建到相关协议之中从而使系统以应激的方式来运行。
从理论上讲,权益的大小可以被视为表决的效用,效用也被广泛应用于研究人们的经济行为。而在这里效用指维持系统正常的影响力、贡献度和善意。效用较高的权益应当具有更强的主观能动性来促进系统的稳健运行,反之亦然。
在数学上,将权益大小设定为一个随机变量S∈(0,∞),让效用成为可以表示为U (S) ; R*→R+的S函数,,那么在当前的PoS系统中,权益的效用就是它的大小,即U(S) =S。权益大小和表决权之间的线性关系很容易导致出现垄断问题。
在仔细研究现有的分布式系统内容后,我们认为,通过将时间信息考虑在内,效用两数能够防止出现PoS系统存在的弊端,并使权益变得更加智能化从而维持系统的稳健性。效用证明(PoU)共识机制可根据这一原理来构建。
2.3 PoU
至少早在2010年,中本聪便已知晓使用币龄的这种概念,并将其用于比特币中来帮助确定交易的优先级,不过它在比特币的安全模式中并未发挥出关键作用。币龄是指加密货币金额和持有期间的乘积。例如,如果Bob从Alice那里收到了10 个货币,并持有该货币90天时间,那么Bob所积累的币龄为900天。Peercoin、 Vericoin 19]和Reddcoin中也存在类似的概念。年龄与权益大小的倍增可能会导致“史前巨鲸”在表决时会突然产生巨大的冲击力。Vericoin 提出了一个非线性加权函数来限制年龄,但这显然只是一种“权宜之计”,而不是“长久之道”。
我们的将该概念置于效用框架中,货币年龄的效用便是U(S, T) =S*T,其中T为持有期的随机变量。但币龄并不是使用时间信息的唯一方式。
在JURA中,时间信息被转换成三个指标指标: - 一个是可表示为随机变量Tc∈(0,∞)的累积权益时间(CST)或权益年龄,;第二个是平均投注间时间(AIST) T.∈(0,∞) ;第三个是最后投注间时间(LIST) Ti∈(O,∞)。
这三个组成部分发挥着三种不同的作用: CST表示资历,AIST 表示积极参与率,LIST 表示最近的积极参与率。这三个变量可以很容易地从交易和系统信息中导出,并且是效用函数的额外输入变量。新的效用函数将采取(S, Tc, Ta, Ti)的形式。请注意,Tc与上文提到的持有期相同,但Tc和S之间的交互将会不同,效用函数中引入了两个额外指标。确切形式将在进一步 讨论后给出。
我们通过相对性来考虑效用的确切形式。任何描述队列特征的数字量只有在放入其分布时才有意义。例如,在相当活跃的系统中,一天可能很长,而在不活跃的系统中,一.天可能很短。这意味着需要将基础随机变量的系统级视图放入效用函数中。
JURA协议通过一个具有四个指标的系统级视图来实施效用函数。首先检查每个指标,并将它们放在-一起,以获得效用函数的形式。
CST
一方面,CST的标准化可确保任何一个单独权益均无法仅因为存在时间长来支配整个系统。另-方面,直接跳过系统的权益并不会产生影响,因为CST将接近于零,权重几乎忽略不计,从而防止突然的恶意攻击。
随着权益越来越大,权重会逐渐增加,从而产生更高水平的影响。权益从零上升到任何重要权重所需的时间可视为发起攻击的机会成本。
权益与币龄交互的概念也与民主选举制度(虽然每个人都有一张票)产生了很好的共鸣:更专业的资深成员和更强大的网络往往具有更大的影响力。
在实施阶段,我们以离散方式对叠后时间进行追踪。我们并不需要确保(网络)时间戳的准确性。我们的方案是,通过对使用了叠后的投票轮数进行了跟踪,然后该轮数会显示模拟时间和易于保持网络的一致性。
数值计算
尽管我们系统的精确CDF并非是现成的,但我们预计系统会生成大量数据,我们能够获得经验累积密度函数(ECDF)。即使在系统的早期阶段,来自其他PoS系统的数据也可用来为我们的网络提供与ECDF有关的粗略估算。
需要注意的是,分布模型其实并未被参数化。鉴于当前的算力,通过黑客攻击或使用人工智能的方式来推断在这种情况下的参数其实并不可取。此外,由于时间戳不可变,即使了解这些分布模型也无法增加权益的权重。而且,效用函数将使任何试图钻空子的行为变得徒劳无力。
抽样问题计算权重的时间与PoS的数量级相同,但是,使用PoU系统的一个巨大优势是可以获得通过设置效用值阈值来过滤掉不合格权益的标准和方法,例如,只有高于0.6的效用才有资格进行下一轮抽样,这大大减小了抽样空间。100 万权益的样本可以减少到仅仅需5万权益用于抽样,抽样速度会显著提高。在PoS系统中,根本不存在这种优势,因为权益大小不受抽样周期的限制且与其不一致。计算效用和被选中的概率的时间需忽略不计。一旦获得每个权益的被选概率,随机抽样步骤就会变得很简单。更新频率根据稳定性和必要性,可以通过累积法或窗口运行的方式,按天、按周或按月使用JURA系统中的流量来更新ECDF。可以连续不断地通过系统级多变量Kolmogorov-Smirmnov拟合优度检验来监测ECDF的稳定性。更新选在低交易量时进行以免对系统产生影响,这非常类似于比特币网络定期难度调整的方式。
场景分析
对于我们的基本场景,我们使用0- 10来表示每个指标的可能取值,并且可以通过效用函数U (S, Te,Ta,T)中这些数值的组合来表示对投注场景进行定性分析。默认选项下,对于新权益,将AIST和LIST设置为10。
1.∪(10, 0,10,10) :系统中大最的新购权益。虽然权益大小有可能达到最高,但其他三个指标均处于不利的价值。该权益的效用实际上为0,因此,该权益不具有任何表决权。
2.U (5,5,5,5) :具有正常历史记录长度的正常权益、正常AIST和正常LIST。该权益没有任何可疑之处,且效用应具有很高的价值,尽管这些价值都只是平均值。
3.U(5,10,10,10) ;系统中存在时间最长的正常权益,但几乎没有任何参与的历史记录。如果立即给子很高的权重,则该权益可能具有风险。因此,效用的价值也应该很低。
4.U(5,10,2,10) :存在时间长、历史上正常活跃的权益,但长期不活跃。为安全起见,为该权益设置了缓冲效应。也就是说,权重相当小,一旦权益有了一定程度的参与,效用将迅速上升到一个高价值。
5.U(5, 10,8,2) :存在时间长的正常权益,这些权益在历史上是不活跃的,但最近却很活跃。该权益有可能产生影响,但建立起历史记录需要假以时日。效用最初只发生在后半部分,然后迅速发展到上半部分。
6.U(1,5,1,1) :少量平均币龄权益,历史和近期参与率都非常高。尽管权益的规模很小,但高参与率可以弥补规模小的不足。因此,虽然效用不会很高,但不会低到按权益的规模计算的边际位置。
3. 共识模型
本节通过结合Fusus数据结构和效用证明共识机制(PoU)展现在网络上达成共识的细节。步骤和关键项将依次给出。
执行
1. 可验证的随机函数
为了替换节点中的反垃圾邮件的PoW模块,我们选择了一个可验证的随机函数来生成随机等待时间的PoVRT机制。等待指定随机时间的证明后续将由分布式系统中的其他节点来加以验证。这种具有随机分散性、唯一确定性、非交互性的友好型“分布式密钥生成(DKG) "签名方案源自BLS。
叶甫根尼·杜迪斯和阿勒克桑德.亚姆波尔斯基提出了一种有效且实用的可验证随机函数。VRF(Virtual Routing and Forwarding,虚拟路由转发)的机制如下所示:
尽管相互发送指令的时间间隔是随机的,但都可以进行跨网验证。它提供了一个可控、可验证和行之有效的签名方案,使得发送指令都可以通过系统的自主调节。
2. 开户费
对群体攻击的另一个防护是要求一定数量的开户费用,换言之,只有当余额触及到阈值时,地址才能被有效激活并进行正常交易。对于普通用户来说,这种费用几乎可以忽略不计。但要想创建数百万个账户并发送交易冲击网络,代价将会非常昂贵。
3. 分布式系统中的时间
网络时间的准确性和一致性使得评估分布式系统中的时间这一重要的概念成为了可能。网络时间协议(NTP)是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议。自1985年前投入使用至今,NTP是目前仍在使用的最古老的互联网协议之一。NTP由特拉华大学的DavidL. Mills设计,提供了一个评估系统成分的时间相关性框架。
4. 智能合约
智能合约是一种规范合约的特殊协议,也是构架、验证或促进协商以及执行合约条款的特殊协议。智能合约允许在没有第三方(担保)的情况下进行可信交易,这些交易是可追踪和不可逆转的。智能合约包含有关合约条款的所有信息,并自动执行所有设想的操作。计算机科学家和密码学家尼克萨博早在1994年就提出了这一个概念。
其主要原理可以与自动售货机的工作类似,它们都只自动执行所接收到的指令。首先,资产和合约条款被编码并放入区块链,智能合约在平台的节点之间被同步传送。合约生效后,将按照合约条款执行智能合约,而程序将自动检查这些合约的执行情况。
智能合约通常有以下部分组成:
· 合约主体:程序必须能够访问合约项下的产品或服务,才能自动锁定和解锁它们。
· 数字签名:所有参与方必须通过私钥验i证才能启动合约。
· 合约条款:智能合约的条款采取了一系列精确操作的形式。所有参与方必须签署这些条款。
· 去中心化平台:智能合约被部署至该区块链平台上,并分布在各个节点之间。
在JURA中,智能合约的执行是简单自然的。与其他DAG结构不同,可在Fusus数据中轻松地整理相关交易的顺序。每次账户创建智能合约时,Fusus 都会创建一个自治账户,让其充当智能合约。我们将来自外部账户的合约呼叫或消息呼叫视为来自这些账户的“发送交易”。智能合约将这些交易识别为“接收交易”。同样,智能合约将该合约响应视为发送交易,并形成了发送链。如果智能合约对接收交易的顺序无要求,接收交易将简单地附加到其发送链。否则,对于带有顺序的“接收交易”,每次智能合约监测到“接收交易”时,就会立即发送给自己。因此,该顺序属性被保存在具有总体顺序的发送链中。
WebAssembly (WASM)虚拟机
我们将使用WebAssembly (WASM)虚拟机来启用JURA。WASM被广泛认为是一一种比EVM (以太坊虚拟机)更快、更全面的解决方案,甚至连以太坊也在致力于WASM的实施,以太坊目前使用的是一款被称为“以太坊虚拟机(EVM)”的专有虚拟机。以太坊的其他竞争对手(诸如EOS和Dfinity)也将会使用WASM来启用JURA。WASM具有以下优点:
· 速度和性能提升
· 支持C、C++和Rust, 而用于其他语言的编译器也正在开发中
这意味着已经具有这些语言经验的开发人员可以快速开始构建JURA,而不必学习像Solidity这样的新语言来创建dApp和智能合约。此外,这也意味着开发人员在JURA上构建时可以利用已经为这些语言构建出的各种工具和软件库。最后,使用WASM将提供优越的优化和调试工具。所有这些特性将有助于加速和简化开发流程。
动态监控与分布式分片(DMDS)
DMDS是一种通用型数据库分区,它将大型数据库分成更小、更快、更便于管理的数据碎片。Fusus 分片的概念也与之类似。由于空间存储问题,我们希望将单个Fusus分成多个子部分,而它们被称为Fusus分片。每个分片包含不同的子Fusus,它们通常并行运转,主要原因有二:
1. 随着系统的完善,将会有越来越多的客户参与进来。随着信息量的日益庞大,Fusus 图中的每个节点将很难存储所有交易历史记录。
2. 随着流量的增加,压缩频率和新源代码的产生将显著增加,这将导致高昂的时间成本和维护成本。
1 . 路由器层
我们构建了一个包含m台路由器的路由器层。当收到请求时,我们将进行循环调度,以选择一台路由器将此请求重定向到相应分片。每个路由器包含两个相同的哈希图,如下图所示:
特殊客户端分片映射的关键是特殊客户端分片密钥,其值为真实分片地址。当收到请求时,我们检查此请求的客户端分片密钥是否在此映射中。如果它在此映射中,我们将该请求直接路由至分片。否则,该请求将被传递给一般客户端分片映射。一般客户端分片映射的关键是分片索引,其值为真实分片地址。
shardindex= hash (分片密钥) *mod (分片数)
分片密钥可以识别交易请求所属。分片密钥有多种选择,例如:“交易ID"或“地址”。
当我们使用交易ID进行分片时,我们将交易ID的散列空间划分为多个范围,并将每个范围映射到某个分片。这样,每个分片中的节点将只包含nx/nshd,其中nu是交易数量,nshd是分片数量。然而,本例的主要问题是双花。随着流量的增长,如果冲突发生在不同的分片中,该分片中的节点必须接触所有分片方可确认过于高昂的交易。
为了确保双花检测能够行之有效,我们可以将自己的地址作为分片密钥。这样,来自同一地址散列范围的所有交易将落入同一分片中。因此,我们无需接触其他分片。所有双花检测将在分片内部正常进行。
2. 验证缓存层和交易泛滥防护器
一个请求通过路由器层后,将进入验证缓存层。每个分片都有一个验证器来校验请求中是否包含正确的信息,以避免错误的请求。
然而,偶尔会发生交易泛濫冲击,即攻击者可能会发送尽可能多的有效交易以使网络饱和。通常,攻击者会将交易发送到他们控制的其他账户,这样交易就可以无限期持续下去。普通验证器无法识别有效交易的意图。因此,我们向每个验证器添加一个缓存模块。当请求中的地址散列位于缓存中时,我们将拒绝这个请求,香则我们将把它定向到分片。
我们使用一个LRU (稍早使用)算法来设计每个缓存。在这个过程中,我们会保持一个队列,该队列将包含时间窗口T (最近T秒)中的所有交易请求。该队列中的每个节点都是成对的(地址散列,使用相同地址散列发出请求的最后一个时间戳访问该验证服务器)。然后,我们每秒检查-一次该队列的头指针,并删除最近使用次数最少的节点(如果其已经过期)(即使用相同地址的最后--个时间戳请求已经访问了这个验证器,且位于当前时间戳-时间窗口T之前)。
当新请求传入时,我们将检查该地址散列是否已经在队列中。如果不是,我们将创建一一个仅包含该“对”的新节点,:并将其添加到队列尾部。如果地址散列已经在队列中,我们将把它移到尾部,并更新该对中的时间戳。例如,如果我们的时间窗T是3秒:
很多请求可能公同时到达验证器,但是由于我们只保留非常小的地址散列和时间戳,该队列仍可存储于缓存或系统空间。
这个LRU缓存将能够处理交易泛滥冲击的问题。当这种攻击发生时,只有第一个请求会被接受,其他请求会被拒绝并等待T秒。
3. 监控层
监控层包含多个监控器,每个监控器被定义为同一分片中的一组协调器节点。每个监控器将监督该分片的一般信息。有时,即使我们将地址用作分片密钥来处理分片交易请求,但单个节点使用的存储空间和CPU仍然不足, 因为这些请求很难被完全分离。有些地址由于其固有属性而比其他地址更加活跃。对此,我们将添加监控层来解决这个问题。需要压缩常规节点以将其选为协调器,而协调器根据整个分片组的买入价获得奖励。每个监控服务器分为三种型号:
存储空间和CPU检测模型将检查当前用于节点的分片存储空间和CPU资源。如果其超过阀值,我们将触发压缩过程并构建新的源代码,并找到最活跃客户端的地址。然后,系统会将他们的地址添加到路由器层中的特殊客户端分片映射中,用于路由器更新。更新完路由器层后,这些特殊客户瑞将被路由到流量更少、账户地址更少的新备用分片中。由于这个分片中的流量和用户远远少于正常分片,我们可以通过每次定期压缩来节省存储空间,以便承受那些备用分片中的Penny - spend攻击。
4. 实际问题
在网络中使用分片的实践中可能会出现几个关键问题:跨分片通信、完整节点选择和分片数量不平衡。我们将在下面的小节中逐一讨论。
跨分片通信
即使来自发送地址的交易总是被定向到同一分片,接收端的目的地也不一定在同一分片中。这需要路由器层找到接收者账户的分片,向接收者账户发送接收请求,并在另一个分片上更新接收者账户。如果更新成功,然后同步到发送人账户。否则,就将错误返回给用户,并要求用户稍后重试。
全节点选择
全节点选择一开始就要固定,由监控层控制。当监控层发现有一-些全节点关闭时,就会自动将新的全节点添加到该分片中。
分片数量
分片数量一开始就要固定,并由监控层控制。当逾半的全节点发现流量超过了他们能承受的限制时,我们可以创建一个新分片,通过把原分片的散列范围对半分,将一半的请求重定问到新分片中。
人工智能
人工智能不是一个新概念,早在20世纪90年代就已被广泛讨论,最近由于新的互联网设备(如手机和特定网站)产生的海量数据而再度成为热门话题。人工智能在JURA中有主要有两方面应用:
1. 交易过滤:通过离线学习的方式研究和学习交易特征,并在收到交易后将交易特征将作为第一层发布。基于交易数据特征的模式识别技术,如时间戳、余额等,可以用来推断交易的异常性。如果交易可疑,将会发布该地址的软锁,并向发送人地址发出通知。如果通知被确认,软锁就会打开,否则,就会变成硬锁,并采取更严格的调查行动。
2.恶意节点检测。系统级节点级信息可以被记录下来,并用离线方式对其进行再次研究。这可以进一步研究看似为异常值或极端值的节点,以防止其悲意攻击。
通证经济
对于普通用户来说,像JURA这样的免类系统应尽最避免交易摩擦的同时能够品著提高交易效率。为了更好地向更多人普及这项应用,它还通过降低3 %- 5 %的交易费用的方式为小商户分享由网络带来的收益。
对于提供资源维持系统运行的节点,有两层激励:一层是隐性的和隐藏的,另- -层是明确的,要求节点向系统提供某些功能。
含蓄地说,基于该技术的业务运营就是运行全节点支持网络并满足商业需求。运行全节点的成本低,每月大约3美元,但使用传统付费方式(Visa, Mastercard, Amex)的小型企业将要按照所有销售额的3% - 5%进行支付,这一费用远高于运行一个JURA的全节点。
明确地说,奖励的直接来源可以从投注系统的罚款中获得,也就是说如果投注过程中的参与者没有做好投票工作,那么权益将被收回并作为奖励分配给全节点。此外,更多奖励只对全节点的运营者开放,他们至少可以担任三个主要角色中的其中一个:审判者,存储器和协调器。我们将在以下小节中介绍每个角色的详细信息。
1. 审判者
审判者是PoU系统为了验证交易和解决冲突所充当的一个角色。定期选择少数利益相关者组成委员会,来解决像交易冲突、协议变更等者如此类的问题。他们会因为做出正确的决策而获得奖励,也会因为以权谋私而受到惩罚。
PoU系统每隔1小时就会选择一些高效权益者充当审判者,委员会的规模应该是一个相对较大的奇数,比如101。其基本原理是保护委员会免受拜占庭式错误的影响,使投票结果更加稳定。
鉴于PoU机制的性质,我们希望挑选出来的101名审判者首先是善意的。像101这样的数字应该足以维持系统的一致性。
每隔1小时,这些审判者就会得到相应报酬。PoU机制确保了本身不是一个让“让富人更富”的系统,而是一个“因高效而更富”的系统。
这种机制为参与投注的所有用户创造了强大的动力。
2. 存储器
存储器是指可以存储大型非结构化数据(图像、音频、视频)的存储实体。存储器川以帮助降低网页和物联网应用程序存储内容的成本和复杂性。与FileCoin不同的是,JURA可以在没有潜在诱导因素的情况下快速存储和检索数据,这是Filecoin为实现复制完整性而做出的努力。此外,我们不并会为检索市场服务,我们希望执行像函数之类的CDN (内容传递网络)。而与家庭存储设备相比,我们的存储器组通常由一组选定的具有高网络带宽连通性的全节点组成。我们网络上的存储器会根据每.周期添In的数据量获得相应通正奖励。数据均匀分布在存储器中。
3. 协调器
在之前介绍的分片架构监控层中,全节点将通过定期计算、通信和偶尔警报的方式来持续监控碎片信息。提供这种功能的节点称之为协调器。他们还将定期根据对协调器所做的全碎片贡献来评估应获奖励。
4. 奖励池
奖励池将随着时间的推移而逐渐减少,因为通胀协议规定了一段时间内发放的通证数量。随着应用程序数量的增加,奖励池将更多地应用于审判者、存储器、协调器。这种方式可能会提升奖励的通胀率。为了网络和矿工的共同利益,通胀协议将根据激励实体的出价率来设定回报大小,且该比率可以每天随通证的变化而变化。
结论
本文提出了一种具有超高TPS和免费的去中心化的对等网络系统。JURA协议围绕一种 新的数据结构Fusus而展开,从而莫定了坚实的处理基础设施,并随PoU系统一起获得了进-一步的增强,这种PoU系统使可靠的白调整共识成为可能。此外,人工智能增加了一层额外的防护,分片提供了范围更大的可伸缩性。因此,该网络在结构清晰性和统计管理模式方面极其稳健。我们也深信,JURA协议的技术先进性将使其在各个领域里得到广泛的应用。
关于更多JURA信息:https://jura.network/
更多区块链信息:http://www.qukuaiwang.com.cn/news/
风险提示:区块链投资具有极大的风险,项目披露可能不完整或有欺骗。请在尝试投资前确定自己承受以上风险的能力。区块网只做项目介绍,项目真假和价值并未做任何审核!