区块链关键机制分析

2023-11-03


区块链中主要有三大关键机制:密码学原理、数据存储结构、共识机制,详细介绍如下。

密码算法

1、Hash算法

  1. 概念
    哈希函数:Hash(原始信息)=摘要信息
    哈希函数(Hash Function),也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(Hash Value)、杂凑值或者消息摘要(Message Digest)。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。
    它的函数表达式为:h=H(m)
  2. 特点:
    易压缩:对于任意大小的输入x,函数H产生的Hash值其长度是固定的。
    易计算:对于任意给定的消息,计算其Hash值比较容易。而且,同样的原始信息用同一个哈希函数总能得到相同的摘要信息。
    单向性:从摘要信息无法逆向推算出原始信息,对于给定的Hash值,要找到原始信息在计算上是不可行的,即从哈希输出无法倒推输入的原始数值。这是哈希函数安全性的基础。
    抗碰撞性:碰撞性,即两个不同的原始信息,产生同样的hash值,理想的Hash函数是无碰撞的,但在实际算法的设计中很难做到这一点。有两种抗碰撞性:一种是弱抗碰撞性,即对于给定的消息,要发现另一个消息,满足在计算上是不可行的;另一种是强抗碰撞性,即对于任意一对不同的消息,使得在计算上也是不可行的。
    高灵敏性:这是从比特位角度出发的,指的是1比特位的输入变化会造成1/2的比特位发生变化。消息M的任何改变都会导致哈希值H(M)发生改变。即如果输入有微小不同,哈希运算后的输出一定不同。

2、非对称加密算法

非对称加密是指加密和解密使用不同密钥的加密算法,也称为公私钥加密。区块链网络中,每个节点都拥有唯一的一对私钥和公钥。公钥是密钥对中公开的部分,就像银行的账户可以被公开,私钥是非公开的部分,就像账户密码。使用这个密钥对时,如果用其中一个密钥加密一段数据,则必须用另一个密钥解密。

  • 优点:解决了密钥传输中的安全问题。
  • 常用算法:RSA、ECC(椭圆曲线加密算法)。
  • 使用场景:SSH安全验证等。
  • 缺点:解决了信息传送的问题,但是无法验证发送方是正确的,可能被伪造成发送方。

3、数字签名

数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。通过数字签名技术既可以保证收到的文件没有被篡改,也可以保证发送者的身份,因为私钥生产数字签名且私钥不公开。
数字签名实现流程:

  1. 被发送文件用密码散列函数(MD5,SHA,SM3)产生的摘要;
  2. 发送方用自己的私用密钥对摘要再加密,这就形成了数字签名;
  3. 将原文和加密的摘要同时传给对方;
  4. 对方用发送方的公共密钥对摘要验签,获取发送方生成的摘要,同时对收到的文件用SHA编码加密产生又一摘要;
  5. 将解密后的摘要和收到的文件在接收方重新加密产生的摘要相互对比。如两者一致,则说明传送过程中信息没有被破坏或篡改过。否则不然。

存储结构

从数据结构上讲,区块链技术就是将一系列区块信息按照时间戳顺序依次链接起来的一种块链式数据结构。通过特定的哈希算法和Merkle树数据结构,区块链网络中的每个分布式节点都可以将在一段时间内接收到的交易数据封装到一个带有时间戳的数据区块中,并将该区块在目前的最长链储存起来,成为链上最新的区块。
 区块链的块链式结构
默克尔树(Merkle Tree)实际上是一种数据结构。这种树状数据结构在快速归纳和检验大规模数据完整性方面效率很高。在比特币网络中,默克尔树被用来归纳一个区块中的所有交易,其树根就是整个交易集合的哈希值,最底层的叶子节点是数据块的哈希值,非叶节点是其对应子节点串联字符串的哈希。我们只需要记住根节点哈希,只要树中的任何一个节点被篡改,根节点哈希就不会匹配,从而可以达到校验目的。
区块链中每个区块都会有一个Merkle树,它从叶子节点(树的底部)开始,一个叶子节点就是一个交易哈希。叶子节点的数量必须是双数,但是并非每个块都包含了双数的交易。如果一个块里面的交易数为单数,那么就将最后一个叶子节点(也就是Merkle树的最后一个交易,不是区块的最后一笔交易)复制一份凑成双数。从下往上,两两成对,连接两个节点哈希,将组合哈希作为新的哈希。新的哈希就成为新的树节点。重复该过程,直到仅有一个节点,也就是树根。根哈希然后就会当做是整个块交易的唯一标示,将它保存到区块头,然后用于工作量证明。

使用场景:

  1. 一致性检验:也被称为“一致性证明”,你可以用它验证两份日志的版本是否一致。
  2. 数据校验:也被称为“审计证明”,这是因为它可以让你知道某一条具体的记录是否存在于日志当中。
  3. 数据同步:Merkle树在分布式数据存储中的数据同步中发挥着重要的作用,这是因为它允许分布式系统中的每个节点可以迅速高效地识别已经更改的记录而无需将发送所有的数据来进行比对。

共识机制

简单来说,共识机制是区块链节点就区块信息达成全网一致共识的机制,可以保证最新区块被准确添加至区块链、节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击。实践中要达到这样的效果需要满足两方面条件:一是选择一个独特的节点来产生一个区块,二是使分布式数据记录不可逆。
当前主流的共识机制包括:工作量证明/POW(Proof of Work)、权益证明/POS(Proof of Stake)、工作量证明与权益证明混合(POS+POW)、股份授权证明/DPOS(Delegated Proof-of-Stake)、实用拜占庭容错(PBFT)、瑞波共识协议等。

1. 工作量证明/POW

工作量证明机制的基本步骤如下:

  1. 节点监听全网数据记录,通过基本合法性验证的数据记录将进行暂存;
  2. 节点消耗自身算力尝试不同的随机数(nonce),进行指定的哈希计算,并不断重复该过程直到找到合理的随机数,这一过程也被称为“挖矿”;
  3. 找到合理的随机数后,生成区块信息(块头+块身);
  4. 节点对外部广播出新产生的区块,其他节点验证通过后,连接至区块链中,主链高度加一,然后所有节点切换至新区块后继续进行下一轮挖矿。

比特币区块链就是通过足够大的工作量来求解数学难题来就“谁有权记账”达成共识。“矿工”在挖矿过程中会得到两种类型的奖励:创建新区块的新币奖励,以及区块中所包含交易的交易费用(交易双方为了交易被区块链尽早记录会提供给矿工一笔交易费用作为激励)。这种算法的竞争机制以及获胜者有权在区块链上进行交易记录的机制实际上分别解决了分布式记账以及记账权归属的问题。
此外,比特币中适用夫人工作量证明还解决了矿工作恶的问题,网络中的每个节点都会独立校验新区块,其中最重要的就是校验新区块中每一笔交易是否合法。如果没有通过验证,那么这个新区块将被拒绝,该矿工也就白白浪费了所有的电力和努力。

2. 权益证明/POS

在工作量证明/POW机制中,所有参与POW竞赛的节点都将付出不小的经济成本(硬件、电力、维护等),而且每次只有一个节点“胜出”,也意味着其他节点的大量资源将被浪费。为了解决资源浪费问题,权益证明机制/POS在2013年被提出并最早在Peercoin系统中被实现。
权益证明类似现实生活中的股东机制,持有更多币(以及相应的时间)的矿工将获得更多的投票权。

3. 股份授权证明/DPOS

在这种系统中,每个币就等于一张选票,持有币的人可以根据自己持有币的数量来投出自己信任的受托人,而受托人不一定需要拥有最多的系统资源。股份授权证明机制模仿了公司的董事会制度,能够让数字货币持有者将维护系统记账和安全的工作交给有能力有时间的人来专职从事该项工作。受托人也可以通过记账来获得新币的奖励。相对于权益证明机制,股份授权证明的优势在于记账人数量大大缩小,并且轮流记账,可以提高系统的整体效率,理想环境下,DPOS能够实现每秒数十万笔的交易数量。
共识机制的选择对区块链性能(资源占用、处理速度等)有着较大的影响,同时也会决定区块链“去中心化”的程度。一般来说,区块链去中心化程度越高,其性能越弱。去中心化程度和效率在多数情况下难以兼顾。

POW、POS、DPOS的对比如下:

工作量证明/POW 权益证明/POS 股份委托证明/DPOS
简介 比特币中通过挖矿来证明,通过与或运算,计算出一个满足规则的哈希值,即可获得本次记账权;发出本轮需要记录的数据,全网其他节点验证后一起存储。 POW的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快寻找随机数的速度。 类似于董事会投票,持币者投票决定出一定数量的节点,代理它们进行验证和记账。
优点 完全去中心化,节点自由进出。 在一定程度上缩短了共识达成的时间。 大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
缺点 目前比特币已经吸引了全球大部分的算力,其他再用POW共识机制的区块链应用很难获得相同的算力来保障自身安全;挖矿造成大量的资源浪费;共识达成的周期较长,不适合商业应用。 还是需要挖矿,本质上没有解决商业应用的痛点。 整个共识机制还是依赖于代币,很多商业应用不需要代币存在的。

4. 实用拜占庭容错/PBFT

PBFT意为实用拜占庭容错算法,这个算法是卡斯特罗和利斯科夫在1999年提出来的。解决了原始拜占庭容错算法效率不高的问题,将算法复杂度有指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。
PBFT是一种状态机制副本复制算法,即服务作为状态机进行建模。状态及在分布式系统不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示。使用0到R-1的整数表示每一个副本。为了描述方便,假设R=3f+1。这里的f是有可能失效的副本的最大个数。尽管可能存在多于3f+1个副本。但是额外的副本出来降低性能之外不能提高可靠性。
PBFT的算法流程如下:
首先,客户端向主节点发送请求调用服务操作;然后主节点通过广播将请求发送的其他副本;所有副本都执行请求并将结果发回客户端;客户端需要等待f+1个不同副本节点返回相同的结果,作为整个操作的最终结果。
与所有的状态及副本复制技术一样,PBFT对每个副本节点提出了两个限定条件,所有节点必须是确定性的。也就是说,在给定状态和参数相同的情况下操作执行的结果必须相同。其次的话,所有节点必须从相同的状态开始执行。在这两个限定条件下,即使有失效的副本节点存在,PBFT算法对所有非失效副本节点的请求执行总顺序达成一致,从而保证安全性。
PBFT的优点是系统运转可以脱离币的存在。PBFT算法共识各个节点由业务的参与方或者监督方组成。安全性与稳定性由业务相关方保证。
缺点是都有1/3以上记账人停止工作,系统将无法提供服务。等有1/3以上记账人联合做恶,而且其他所有的其他记账人被恰好分割为两个网络孤岛时,恶意其他人可以使系统出现分叉。但是会留下密码学证据,去中心化程度不如公有链上的共识机制。更适合有多方参与的多中心商业模式。

5. Raft算法

在这些分布式系统的实用场景下,其假设条件不需要考虑拜占庭故障,而只是处理一般的死机故障。在这种情况下,采用Paxos等协议会更加高效。Paxos是Lamport设计的保持分布式系统一致性的协议。但由于Paxos非常复杂,比较难以理解,因此后来出现了各种不同的实现和变种。Raft是由Stanford提出的一种更易理解的一致性算法,意在取代目前广为使用的Paxos算法。
Raft最初是一个用于管理复制日志的共识算法,它是一个为真实世界应用建立的协议,主要注重协议的落地性和可理解性。Raft是在非拜占庭故障下达成共识的强一致协议。
在区块链系统中,使用Raft实现记账共识的过程可以描述如下:首先选举一个leader,接着赋予leader完全的权力管理记账。leader从客户端接收记账请求,完成记账操作,生成区块,并复制到其他记账节点。有了leader简化了记账操作的管理。例如,leader能够决定是否接受新的交易记录项而无需考虑其他的记账节点,leader可能失效或与其他节点失去联系,这时,系统就会选出新的leader。
在Raft中,每个节点会处于下面三种状态中的一种:

  • follower:所有节点都以follower的状态开始。如果没收到leader消息则会变成candidate状态;
  • candidate:会向其他节点“拉选票”,如果得到大部分的票则成为leader。这个过程就叫做Leader选举(Leader Election);
  • leader:所有对系统的修改都会先经过leader。每个修改都会写一条日志(log entry)。leader收到修改请求后的过程叫做日志复制(Log Replication)。

Raft阶段主要分为两个,首先是leader选举过程,然后在选举出来的leader基础上进行正常操作,比如日志复制、记账等。
1.Leader Election
当follower在选举超时时间内未收到leader的心跳消息,则转换为candidate状态。为了避免选举冲突,这个超时时间是一个150~300ms之间的随机数。
一般而言,在Raft系统中:

  1. 任何一个服务器都可以成为一个候选者candidate,它向其他服务器follower发出要求选举自己的请求。
  2. 其他服务器同意了,发出OK。注意,如果在这个过程中,有一个follower宕机,没有收到请求选举的要求,此时候选者可以自己选自己,只要达到N/2+1的大多数票,候选人还是可以成为leader的。
  3. 这样这个候选者就成为了leader领导人,它可以向选民也就是follower发出指令,比如进行记账。
  4. 以后通过心跳进行记账的通知。
  5. 一旦这个leader崩溃了,那么follower中有一个成为候选者,并发出邀票选举。
  6. follower同意后,其成为leader,继续承担记账等指导工作。

2.Log Replication

Raft的记账过程按以下步骤完成:

  1. 假设leader领导人已经选出,这时客户端发出增加一个日志的要求;
  2. leader要求follower遵从他的指令,都将这个新的日志内容追加到他们各自日志中;
  3. 大多数follower服务器将交易记录写入账本后,确认追加成功,发出确认成功信息;
  4. 在下一个心跳中,leader会通知所有follower更新确认的项目。

对于每个新的交易记录,重复上述过程。
在这一过程中,若发生网络通信故障,使得leader不能访问大多数follower了,那么leader只能正常更新它能访问的那些follower服务器。而大多数的服务器follower因为没有了leader,他们将重新选举一个候选者作为leader,然后这个leader作为代表与外界打交道,如果外界要求其添加新的交易记录,这个新的leader就按上述步骤通知大多数follower。当网络通信恢复,原先的leader就变成follower,在失联阶段,这个老leader的任何更新都不能算确认,必须全部回滚,接收新的leader的新的更新。

6. Ripple共识算法

Ripple(瑞波)是一种基于互联网的开源支付协议,可以实现去中心化的货币兑换、支付与清算功能。在Ripple的网络中,交易由客户端(应用)发起,经过追踪节点(tracking node)或验证节点(validating node)把交易广播到整个网络中。追踪节点的主要功能是分发交易信息以及响应客户端的账本请求。验证节点除包含追踪节点的所有功能外,还能够通过共识协议,在账本中增加新的账本实例数据。
Ripple的共识达成发生在验证节点之间,每个验证节点都预先配置了一份可信任节点名单,称为UNL(Unique Node List)。在名单上的节点可对交易达成进行投票。每隔几秒,Ripple网络将进行如下共识过程:

  1. 每个验证节点会不断收到从网络发送过来的交易,通过与本地账本数据验证后,不合法的交易直接丢弃,合法的交易将汇总成交易候选集(candidate set)。交易候选集里面还包括之前共识过程无法确认而遗留下来的交易。
  2. 每个验证节点把自己的交易候选集作为提案发送给其他验证节点。
  3. 验证节点在收到其他节点发来的提案后,如果不是来自UNL上的节点,则忽略该提案;如果是来自UNL上的节点,就会对比提案中的交易和本地的交易候选集,如果有相同的交易,该交易就获得一票。在一定时间内,当交易获得超过50%的票数时,则该交易进入下一轮。没有超过50%的交易,将留待下一次共识过程去确认。
  4. 验证节点把超过50%票数的交易作为提案发给其他节点,同时提高所需票数的阈值到60%,重复步骤3)、步骤4),直到阈值达到80%。
  5. 验证节点把经过80%UNL节点确认的交易正式写入本地的账本数据中,称为最后关闭账本(Last Closed Ledger),即账本最后(最新)的状态。

在Ripple的共识算法中,参与投票节点的身份是事先知道的,因此,算法的效率比PoW等匿名共识算法要高效,交易的确认时间只需几秒钟。当然,这点也决定了该共识算法只适合于权限链(Permissioned chain)的场景。Ripple共识算法的拜占庭容错(BFT)能力为(n-1)/5,即可以容忍整个网络中20%的节点出现拜占庭错误而不影响正确的共识。

跨链技术

在区块链所面临的诸多问题中,区块链之间互通性极大程度的限制了区块链的应用空间。不论对于公有链还是私有链来看,跨链技术就是实现价值互联网的关键,它是把区块链从分散的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。
随着区块链技术的持续发展和创新,支付结算、产品溯源、身份认证等领域出现了具有不同特点、适应不同场景需求的大量区块链网络,形成了诸多价值孤岛。区块链跨链技术是实现链间互联互通和价值转移的重要技术手段。
目前主流的跨链技术包括以下四种:

  1. 公证人机制(Notary schemes)
  2. 侧链/中继(Sidechains/relays)
  3. 哈希锁定(Hash-locking)
  4. 分布式私钥控制(Distributed Private Key Control)

1. 公证技术:瑞波Interledger协议

当跨不同链的交易双方互不信任且信息不对称时,最简单的方法是寻找双方都信任的中介。公证人机制也称见证人机制,是通过选举一个或一组可信节点作为公证人,对区块链Y上是否发生了特定事件进行验证,并向区块链X上的节点进行证明。公证人群体通过特定的共识算法对事件是否发生达成共识。公证人模式是目前应用最广泛的一种模式,最大的单一公证人就是交易所。公证人机制是实现区块链之间互操作性的方案中较易实现的一种,无需进行复杂的工作量证明或权益证明,易于对接现有的区块链系统。
早在2012年,瑞波实验室提出Interledger协议旨在连接不同账本并实现它们之间的协同。Interledger协议适用于所有记账系统、能够包容所有记账系统的差异性,该协议的目标是要打造全球统一支付标准,创建统一的网络金融传输的协议。
Interledger协议使两个不同的记账系统可以通过第三方“连接器”或“验证器”互相自由地传输货币。记账系统无需信任“连接器”,因为该协议采用密码算法用连接器为这两个记账系统创建资金托管,当所有参与方对交易达成共识时,便可相互交易。该协议移除了交易参与者所需的信任,连接器不会丢失或窃取资金,这意味着,这种交易无需得到法律合同的保护和过多的审核,大大降低了门槛。同时,只有参与其中的记账系统才可以跟踪交易,交易的详情可隐藏起来,“验证器”是通过加密算法来运行,因此不会直接看到交易的详情。理论上,该协议可以兼容任何在线记账系统,而银行现有的记账系统只需小小的改变就能使用该协议。从而使银行之间可以无需中央对手方或代理银行就可直接交易。

2. 侧链技术:BTC Relay

侧链是以锚定某种原链上的代币为基础的新型区块链,正如美金锚定到黄金。侧链是连接各种链,其它区块链则可以独立存在。但是,现在侧链很难做到在其上建立跨链智能合约,所以很难实现各种金融功能,这正是现有区块链在股票、债券、衍生品等领域尚未取得进展的原因。
BTC Relay是在以太坊基金会支持之下诞生并成长起来的,它被认为是区块链上的第一个侧链。BTC Relay把以太坊网络与比特币网络通过使用以太坊的智能合约连接起来,可以使用户在以太坊上验证比特币交易。它通过以太坊智能合约创建一种小型版本的比特币区块链,但智能合约需要获取比特币网络数据,这还比较难实现去中心化。BTC Relay进行了跨区块链通信的有意义的尝试,打开了不同区块链交流的通道。

3. 中继技术:Polkadot和COSMOS

Polkadot是由原以太坊主要核心开发者推出的公有链。它旨在解决当今两大阻止区块链技术传播和接受的难题:即拓展性和延伸性。Polkadot计划将私有链/联盟链融入到公有链的共识网络中,同时又能保有私有链/联盟链的原有的数据隐私和许可使用的特性。它可以将多个区块链互相连接。
在Polkadot看来,其它区块链都是平行链,Polkadot为通过中继链(relay-chain)技术能够将原有链上的代币转入类似多重签名控制的原链地址中,对其进行暂时锁定,在中继链上的交易结果将由这些签名人投票决定其是否生效。它还引入了钓鱼人角色对交易进行举报监督。通过Polkadot可以将比特币、以太币等都链接到Polkadot上,从而实现跨链通信。Polkadot目前还是以以太坊为主,实现其与私链的互连,并以其他公有链网络为升级目标,最终让以太坊直接与任何链进行通讯。
Cosmos是tendermint团队推出的一个支持跨链交互的异构网络。Cosmos采用的Tendermint共识算法,是一个类似实用拜占庭容错共识引擎,具有高性能、一致性等特点,而且在其严格的分叉责任制保证下,能够防止怀有恶意的参与者做出不当操作。
Cosmos上的第一个空间叫做“Cosmos Hub”。Cosmos Hub中心是一种多资产权益证明加密货币网络,它通过简单的管理机制来实现网络的改动与更新,还可以通过连接其他空间来实现扩展。
Cosmos网络的中心及各个空间可以通过区块链间通信(IBC)协议进行沟通,这种协议是针对区块链网络的,类似UDP或TCP网络协议。代币可以安全快速地从一个空间传递到另一个空间,两者之间无需体现汇兑流动性。相反,空间内部所有代币的转移都会通过Cosmos 中心,它会记录每个空间所持有的代币总量。这个中心会将每个空间与其他故障空间隔离开。因为每个人都可以将新空间连接到Cosmos中心,所以Cosmos也可以兼容未来新的区块链。
这一架构解决了当今区块链领域面临的许多问题,包括应用程序互操作性、可扩展性、以及无缝更新性。比如,从Bitcoind、Go-Ethereum、ZCash或其他区块链系统中衍生出来的空间,都可以接入Cosmos中心。这些空间允许Cosmos实现无限扩展,从而满足全球交易的需求。

4. 哈希锁定技术:Lighting network

Lightning network闪电网络提供了一个可扩展的bitcoin微支付通道网络,它极大提升了比特币网络链外的交易处理能力。交易双方若在区块链上预先设有支付通道,就可以多次、高频、双向地实现快速确认的微支付;双方若无直接的点对点支付通道,只要网络中存在一条连通双方的、由多个支付通道构成的支付路径,闪电网络也可以利用这条支付路径实现资金在双方之间的可靠转移。
闪电网络的关键技术是HTLC哈希锁定技术,基本原理如下:Alice和Bob可以达成这样一个协议:协议将锁定Alice的0.1 BTC,在时刻T到来之前(T以未来的某个区块链高度表述),如果Bob能够向Alice出示一个适当的R(称为秘密),使得R的哈希值等于事先约定的值H®,Bob就能获得这0.1 BTC;如果直到时刻T过去Bob仍然未能提供一个正确的R,这0.1 BTC将自动解冻并归还Alice,如下图。
在这里插入图片描述

闪电网络并不试图解决单次支付的问题,其假设是单次支付的金额足够小,即使一方违约另一方的损失也非常小,风险可以承受。因此使用时必须注意“微支付”这个前提。

5. 分布式私钥控制技术:WanChain和FUSION

分布式私钥控制通过分布式节点控制各种资产的私钥,并将原链资产映射至跨链中,确保各种资产在区块链系统中实现互联互通。分布式私钥控制的核心在于分布式控制权管理,即将资产的所有权和使用权分离,将原链上数字资产的控制权安全地转移至非中心化系统中。
以区块链项目WanChain为例:
WanChain万维链也支持主流公有链间的跨链交易,但首先需要完成在万维链上的注册,确保万维链能够对该链进行唯一识别。对于跨链交易,万维链利用多方计算和门限密钥共享方案。当一种未注册资产由原有链转移到万维链上时,万维链节点会使用一个基于协议的内置资产模板,根据跨链交易信息部署新的智能合约创建新的资产。当一种已注册资产由原有链转移到万维链上时,万维链节点会为用户在已有合约中发放相应等值代币,确保了原有链资产在万维链上仍然可以相互交易流通。
万维链通过分布式的方式完成不同区块链账本的连接及价值交换。它采用通用的跨链协议以及记录跨链交易、链内交易的分布式账本,公有链、私有链还是联盟链,均能接入万维链,实现不同区块链账本的连接及资产的跨账本转移。
但是,实现各种链映射到一条链上只是完成了第一步,如果上面的智能合约还是像现在的仅为交易触发,智能合约没办法实现分布式运算和多触发机制,那多币种智能合约能实现仍然是相当有限的功能。
以区块链项目FUSION为例:
各种加密资产可以通过分布式私钥生成与控制技术被映射到FUSION公有链上。多种被映射的加密资产可以在其公有链上进行自由交互。实现和解除分布式控制权管理的操作称为:锁入(Lock-in)和解锁(Lock-out)。锁入是对所有通过密钥控制的数字资产实现分布式控制权管理和资产映射的过程。解锁是锁入的逆向操作,将数字资产的控制权交还给所有者。
由于各种资产映射到FUISON上,其原链上的功能丧失了,其主要属性是金融价值。所以FUSION要做的是价值互联网时代的金融,即加密金融。之所以叫加密金融是因为,各种加密金融的资产都是由私钥控制的。
FUSION (fusion.org)协议支持各种代币之间的价值转移的同时,在并行运算和多触发机制方面进行了极大的革新,从而实现了高效率的、面向多币种和多种触发机制的增强型智能合约。
FUSION通过多层共识机制和记账节点分组,实现了一定的并行计算。多层机制使合约计算与计算结果的记账分步完成,记账节点分组使不同的智能合约由不同的记账节点分组完成。
FUSION想要做的加密金融合约还必须有多种触发机制才能完成完整的金融功能。针对这一问题,FUSION引入了“先知”的功能。虽然这一功能已经被多次提出,但一直没有很好的实现手段,这是由于智能合约每次加载相当浪费资源,也不现实。FUSION创造性的使用了“Calling list”机制将各种触发条件与智能合约分开储备,记账节点只要加载触发条件的列表即可,被触发时才加载智能合约,这使各种交易触发、时间触发和事件触发(包括链外数据触发)可以写到触发列表里。
价值互联网如何能够称为“网”,而不是一组平行线,就需要各种跨链技术。但跨链交易只是对跨链最粗浅的要求,多币种合约才是跨链的本质。另外,跨链使各种原链上的代币被转化为金融资产,而产生加密金融应用。但是要实现完事的金融功能,还需要对智能合约进行增强,并使用并行计算提高智能合约的效率,从而使加密金融能够完成完整的金融功能,这是跨链技术的未来方向。

在这里插入图片描述
上表列出了各种跨链技术的基本区别,早期跨链技术包括以瑞波和BTC Relay为代表,它们更多关注的是资产转移;现有跨链技术以Polkadot和Cosmos为代表更多关注的是跨链基础设施;新出现的FUSION实现了多币种智能合约,是一种很有应用价值的公有链,在其上可以产生丰富的的跨链金融应用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区块链关键机制分析 的相关文章

  • js实现图片压缩上传

    javascript 处理图片压缩 剪切 模糊和上传 最近在研究H5前端图片处理相关技术 方向有图片压缩 裁切 旋转 模糊等 现在已经整理成对应的demo 上传至github 一 js脚本实现图片压缩 CompressImageUtiles
  • JVM(8)--垃圾回收算法与垃圾回收器

    一 概述 深入理解java虚拟机中写到 Java与C 之间有一堵由内存动态分配和垃圾收集技术所围成的高墙 墙外面的人想进去 墙里面的人却想出来 Java在动态内存分配与回收上已经是自动化的 但是当需要排查各种内存溢出 内存泄漏问题时 当垃圾
  • 字符串变形 C++

    目录 题目描述 思路分析 AC代码 题目描述 对于一个长度为 n 字符串 我们需要对它做一些变形 首先这个字符串中包含着一些空格 就像 Hello World 一样 然后我们要做的是把这个字符串中由空格隔开的单词反序 同时反转每个字符的大小

随机推荐

  • GDAL空间数据处理100讲[02]:用GDAL切图/裁剪(GeoTiff格式)

    GDAL空间数据处理100讲 02 用GDAL切图 裁剪 GeoTiff格式 作者 胡佳辉 2018年11月14日 概述 前面给大家介绍了怎么把GDAL的环境搭建起来 就有朋友迫不及待地问各种开发问题 后续将陆续给大家分享 这一期先介绍怎么
  • VS2010提示asp.net v4.0 尚未在web服务器上注册

    使用VS2010打开Asp net MVC项目时 提示 asp net v4 0 尚未在web服务器上注册 遇到这种情况的话 一般只要把 net 4 0 注册到IIS上就可以了 方法如下 1 以管理员身份运行cmd 2 windir Mic
  • python自动化笔记(四)列表

    my list 定义一个空列表 my list1 a b c my list2 list abc mylist1和mylist2效果一致 i 0 while i lt len my list1 循环输出list print my list1
  • yolov5加入分割头,多任务头

    Yolov5同时进行目标检测和分割分割 MidasKing的博客 CSDN博客 yolov5分割 用YOLOv5ds训练自己的数据集 注意点 用猪头过日子 的博客 CSDN博客 基于pytorch用yolov5算法实现目标检测与分割 无损检
  • js数学对象(Math)

    Math ceil 12 3 13 返回的是大于该数字的最小整数 Math floor 12 7 12 返回的是小于该数的最大整数 Math round 12 6 13 将数字进行四舍五入 Math max 12 30 15 100 求最大
  • 【设计模式】单例模式(懒汉和饿汉模式详解)

    目录 1 设计模式是什么 2 单例模式 1 概念 2 如何设计一个单例 1 口头约定 不靠谱 2 使用编程语言的特性来处理 3 使用 饿汉模式 设计单例 1 详细步骤 2 完整代码 4 使用 饿汉模式 设计单例 1 详细步骤 2 完整代码
  • mongodb持久化原理

    mongodb与mysql不同 mysql的每一次更新操作都会直接写入硬盘 但是mongo不会 做为内存型数据库 数据操作会先写入内存 然后再会持久化到硬盘中去 那么mongo是如何持久化的呢 mongodb在启动时 专门初始化一个线程不断
  • Spring概念:容器、Ioc、DI

    目录 什么是容器 什么是 IoC 传统程序的开发 理解 Spring IoC DI 总结 我们通常所说的 Spring 指的是 Spring Framework Spring 框架 它是 个开源框架 有着活跃 庞 的社区 这就是它之所以能
  • 前端知识点总结(一):从输入URL到页面展示的详细过程

    这里只是简单地概括一下大致流程 输入网址 DNS解析 建立tcp连接 客户端发送HTPP请求 服务器处理请求 服务器响应请求 浏览器展示HTML 浏览器发送请求获取其他在HTML中的资源 1 输入地址 当我们开始在浏览器中输入网址的时候 浏
  • 在页面中输入上下居中点号(·)

    随便打开一个聊天窗口输入汉字 点 在弹出的选项框中选择 号即可
  • dz安装好后css js位置错误,Discuz!X3.2安装后无法加载CSS/Js文件

    今天在服务器上安装了Discuz X3 2 数据库等填写正确 下一步很快就新建了291张表完成安装 没有任何报错出现 完成后访问前台和后台却无法加载CSS Js文件 F12查看它直接访问的网站根目录下边 这CSS Js文件明明不在根目录啊
  • AcWing 1293. 夏洛克和他的女朋友 二分图

    题 是一个二分图染色 质数不是质数的质因子 因为质数不会有因子 所以质数全是颜色1 合数不是合数的质因子 因为合数不 质 所以合数全都是颜色2 n小于3的时候只有1种颜色 其他都是2种颜色 include
  • 计算机网络教程_复习整理第一章

    计算机网络教程 复习整理第一章 第一章 概述 第二章 物理层 第三章 数据链路层 文章目录 计算机网络教程 复习整理第一章 1 因特网 因特网的标准制定流程 2 电路交换 报文交换 分组交换 区分三者 3 计算机网络的性能指标 lt 速率
  • d3dcompiler_43.dll缺失怎么修复

    有网友在玩游戏时出现 无法启动程序 因为计算机中丢失d3dcompiler 43 dll 尝试重新安装该程序以解决问题 的提示 那么是什么原因造成丢失d3dcompiler 43 dll呢 缺少d3dcompiler 43 dll文件怎么办
  • GLUE数据集介绍:RTE、MRPC、SST-2、QNLI、MNLI、QQP

    自然语言处理 NLP 主要包括自然语言理解 NLU 和自然语言生成 NLG 为了让NLU任务发挥最大的作用 来自纽约大学 华盛顿大学等机构创建了一个多任务的自然语言理解基准和分析平台 也就是GLUE General Language Und
  • SpringBoot注解

    使用注解的优势 1 采用纯java代码 不在需要配置繁杂的xml文件 2 在配置中也可享受面向对象带来的好处 3 类型安全对重构可以提供良好的支持 4 减少复杂配置文件的同时亦能享受到springIoC容器提供的功能 一 注解详解 配备了完
  • HIve中的查询语句

    文章目录 Hive中的查询语句 1 基础语法 2 基本查询 Select From 2 1 数据准备 0 原始数据 1 创建部门表 2 创建员工表 3 导入数据 2 2 全表和特定列查询 1 全表查询 2 选择特定列查询 2 3 列别名 1
  • kafka相关操作命令

    kafka相关操作命令 原文链接 https blog csdn net wf3612581 article details 81842574 1 开启zookeeper集群 startzk sh 2 开启kafka集群 start kaf
  • 【修电脑】VMware 从GHO文件备份恢复Win10/Win7系统

    修电脑 VMware 从GHO文件备份恢复Win10 Win7系统 注意 参考 硬盘知识 一 硬盘接口的分类 二 硬盘的分类 按照硬盘材质分为两大类 按照接口类型区分 boot启动知识 Legacy BIOS引导 uefi引导启动流程 查看
  • 区块链关键机制分析

    区块链中三大关键机制 密码算法 1 Hash算法 2 非对称加密算法 3 数字签名 存储结构 共识机制 1 工作量证明 POW 2 权益证明 POS 3 股份授权证明 DPOS 4 实用拜占庭容错 PBFT 5 Raft算法 6 Rippl