主页 > 比特派和imtoken哪个安全 > 侧链的跨链梳理及OneLedger简述

侧链的跨链梳理及OneLedger简述

比特派和imtoken哪个安全 2023-04-04 05:35:54

侧链

关于侧链,历史上有过不同的定义。 目前最被接受的定义集中在“2-way pegging”,即一条区块链可以从另一条链读取数据。 在两条链之间转移资产的能力。 以BTC和RSK为例,双向锚定可以理解为:

允许比特币从比特币区块链转移到其他区块链的机制,反之亦然。 RSK 实现的是与比特币(该代币称为 SBTC,智能比特币)的一对一双向挂钩。 这里所说的“转账”并不是真的把比特币转移到它的侧链上(比特币不能转账),而是采用了一种“锁定”和“解锁”的策略。 方法是:在比特币主链上暂时锁定比特币(BTC),同时在RSK链上释放等量的等价代币(SBTC),完成价值转移。 相反的操作是将 SBTC 锁定在 RSK 区块链上,释放比特币主链上的 BTC。

这告诉我们两件事:

理论上,主链和侧链的关系其实是等价的,也就是说,侧链是主链的侧链,主链也是侧链的侧链…… (有些人这是他妈的似曾相识的感觉)

饶是彼此平等,主链和侧链还是有区别的,因为两条链传递的是同一个资产,所以一定有一条“主链”才是资产真正的“归宿” . ”,而另一条“侧链”上的资产则完全锚定在“主链”上的资产上,侧链不能凭空发行资产,只能通过出块或预铸币的方式。

其实没必要小看侧链。 可以在侧链上添加和实现更多的功能。 例如,可以在 RSK 链上实现智能合约来完成主链无法完成的事情。

回到双向锚定,双向锚定可以通过不同的方式实现,例如:

单一保管人

多重签名联盟

侧链协议

传动链

以及结合了多种先前方法的混合解决方案(Hybrid)

这些方法在《RSK简述》中都有讲解,这里不再赘述。 唯一要提的是,这里的“侧链协议”也被很多人直接称为侧链。 为了避免混淆,本文为其保留“协议”一词。 请注意,能够满足双向锚定的两条链是彼此的侧链,实现双向锚定的具体实现方式可以是侧链协议。

侧链协议

侧链协议作为一套解锁和锁定资产的标准,侧重于“主链”和“侧链”之间的相互理解,以及读取和验证对方链上的事件和状态的能力,因此它可以自动和强制执行资产锁定和解锁的能力,所有这些都不需要第三方进一步参与。

云比特是比特币分支?_比特币侧链是什么_808比特币创始人颜万卫 炮制比特币风险大

具体来说,它支持SPV(Simple Payment Verification,简单支付验证),能够验证区块头(Header)和默克尔树(Merkle tree)信息。

顺便普及一下默克尔树。 区块链的单个区块中可能有数百甚至数千笔交易。 我们可以把这些交易的哈希值放在底层(作为叶子节点),两两一起做哈希运算,等等。 可以生成哈希二叉树,即除叶子节点外,其他每个节点包括根节点的值都是左右子节点的哈希值合并计算出的哈希值。 之所以费力地构建这样一棵二叉树,是为了查询效率。 学过数据结构或算法的人都知道,查询一棵二叉树的时间复杂度是log N,这是相当理想的。 要证明一个特定的交易存在于一个区块中,只需要组成Merkle路径的log N个节点的哈希值。 btw,学计算机的,log默认以2为底数。

上述 Merkle 树用于支持 SPV。 SPV 也是中本聪提出的用于验证某笔交易是否真实存在以及收到了多少确认的巧妙策略之一。 BTC白皮书中提到:

无需运行全节点即可验证支付,用户只需保存所有区块头(Block Header)即可。 虽然用户不能自己验证这笔交易,但如果他能在区块链的某个地方(最长链中的一个区块)找到匹配的交易,他就可以知道网络已经批准了这笔交易并得到了网络的多次确认。

在 BTC 中,每个区块都有自己的 Merkle 树,存储在区块中,Mokle 树的根节点存储在区块头中。 这样做的好处是轻节点可以下载所有区块链的完整数据,只需要下载区块头即可。 并且BTC还支持布隆过滤器(Bloom filter),进一步缩小需要下载的区块头范围。

在侧链协议中,SPV用于证明区块链中确实发生了一笔交易,称为SPV证明(SPV Proof)。 SPV 证明由两部分组成:区块头列表,代表工作量证明; 以及块中存在特定输出的加密证明。 这里的输出可以简单理解为交易产生的资金,可以由收款人配置,UTXO在以后梳理闪电网络的时候会专门介绍。

以BTC为例,侧链协议的实际运行步骤为:

提交锁定交易:比特币持有者在BTC主链上发送特殊交易,将比特币锁定在BTC链上。

等待确认:等待锁定的交易被BTC链上更多的区块确认,防止锁定的交易为假。

解锁交易:锁定交易确认后,用户在侧链上创建解锁交易(也称为赎回交易)以花费锁定交易的产出,并提供SPV工作量证明(即区块的工作量)解锁交易所在的证明),并将赎回交易的输出导入到自己在侧链上的地址中。

等待竞争期:竞争期也称为可修改期,其作用是防止双花。 而在这期间,

解锁交易不会打包成区块

新转入侧链的比特币还不能使用

如果解锁交易包含比特币主链更高难度的SPV证明,则之前的解锁交易将被替换。

比赛期结束后,解锁交易将被打包进区块比特币侧链是什么,用户可以使用自己的比特币(实际上是侧链上对应的代币)。

808比特币创始人颜万卫 炮制比特币风险大_比特币侧链是什么_云比特是比特币分支?

使用侧链技术的好项目还是挺多的,著名的项目也不少,以后会一一梳理。

今天就简单点评一下最近的新项目OneLedger,也是时候看看业界最新的侧链项目都做了些什么。 从这个项目的名字就可以看出它是和交叉账本相关的。 不过,这个项目并没有打算打造一个“至尊魔链”,只是给它取了这么一个名字。

一个分类帐

当然万界还是会有自己独立的区块链,但基本上都是以“侧链”的形式存在。 这里的“侧链”是通过联盟模式+驱动链的混合模式,同步底层公链主网和万界中对应“侧链”的资产和信息。 上文提到,联盟模型和驱动链是比较常见的实现主侧链双向锚定的技术方案。

联盟模式是通过公证人联盟的多重签名来确认侧链的资产流向。 好处是可以在不改变主链侧的情况下进行资产转移,但是安全性还是会受到公证人联盟诚信度的限制。

驱动链模型是将锁定在主链上的资产的监管权交给矿工,由矿工投票决定何时解锁主链上的资产以及将解锁后的资产发送到哪里。 矿工可以使用区块中的某些字段(例如 Coinbase)来实现投票。 参与投票的诚实矿工越多,安全性越高。 但是,需要主链的软分叉。

除了提到上述两种侧链技术方案外,OneLedger并未透露侧链实现的其他细节,但确实在路线图中写到以太坊和比特币的侧链将在2018年陆续上线。

这样,一套“曲线救国”的跨链功能就形成了,即将公链主网之间的跨链转账转化为万界内部相应侧链之间的操作。 因此,一方面,万界作为底层开发者,承担了大量的技术细节,让用户可以更统一、更方便地执行和管理跨链操作; 转移到 OneLedger 网络的头部有点类似于建立一个更通用的链式闪电网络。 万界内部链之间的跨链是通过建立第三方侧链来实现的,而不是使用HTLC(可以参考《跨链Combing Hash Locking and IOV Brief Review》回顾HTLC是如何实现跨链原子性互换的)。

翻阅白皮书,万界显然渴望提供一个平台,帮助传统企业顺利、快速地过渡甚至拥抱区块链和跨账本技术,并依托这个平台实现与其他跨链的区别项目竞赛。 作为传统企业中心化系统与区块链系统之间的桥梁,万界平台允许企业或个人(更多企业)在平台上方便快捷地创建适合自身业务的公有链、许可链或私有链,并且许多功能是专为企业许可链添加身份管理系统、个人信任等级、角色控制等管理数据读写权限和共识模式。

因此白皮书除了对底层跨链和共识的介绍外,白皮书很大一部分介绍了上层各种便捷的系统和工具。 着眼于企业级用户和应用的出发点,可以稍微习惯这种安排。 但是看惯了基础的公链项目,比如Hashgraph,Algorand等,回过头来看OneLedger,会发现OneLedger确实想做很多事情,而且一时看不完一次,我必须读几遍……

另外,我想投诉一下。 一方面,OneLedger 的白皮书可能写得过于简洁和晦涩。 另一方面,它结合了公链、侧链和HyperLedger联盟链的复杂概念,野心勃勃要做很多事情,让普通人很难看懂OneLedger的白皮书。 即使粗略猜出大方向,也很难根据白皮书验证技术细节和可行性。 码农在网上搜索了一下,市面上大部分的中英文评论基本都是照搬原文和白皮书的翻译,或者进行简单的删减,或者描述粗浅的理解,原文中基本没有太多细节做深入的挖掘和验证,恐怕能够准确理解万界白皮书背后的思想和技术细节的人屈指可数,码农更是勉强算得上一个。 换句话说,万界如果能在白皮书中加上具体的例子,或许能帮助读者理解,所以这篇简评中的很多内容都是码农先画出来,然后找万界团队确认的。 所以团队老大们被我烦了大概好几天了,谢谢你们的时间和耐心。

上图是万界的架构图:

万界共识协议层(OneLedger Consensus Protocol)处于中心位置。

共识协议层之上是上面提到的上层系统和工具,方便企业进入平台构建自己的区块链应用,包括业务中心、身份管理系统等。

共识协议层下是万界网络中运行的区块链层,可以是锚定各大主流公链的侧链,也可以是对应不同业务场景需求的区块链(这些在白皮书中也称为侧链,但我认为直接叫万界区块链或内链可能更容易理解)。 也就是说,OneLedger选择了一条内置的侧链来适配其他公链,再加上一条专用于跨链交易的中间链,双向锚定代表交易双方的内部链,使得底层区块链无关和跨链Cross ledger。 此外,补充一个有趣的见解是,这些存在于区块链层的内部链并不是实际的物理链,而更像是动态的虚拟链或虚拟网络,当需要进行交互操作并达成共识时,节点会被选中完成链的区块生成,该区块将存储在所有参与共识的相应节点中。 有点类似于《Pallet Brief Review》中提到的陪审团共识制度,但更加动态和复杂。 具体细节将在后面详细描述。

比特币侧链是什么_808比特币创始人颜万卫 炮制比特币风险大_云比特是比特币分支?

1、上层应用

1.1 商务中心

“业务中心”作为一个工具入口,主要目的是让用户能够快速构建适合自己行业和业务场景的区块链应用,这里使用了一个抽象的概念,即给出了区块链底层的细节构建到Hidden,用户只需要关注业务模型本身,比如定义数字资产(金融、产品或内容资产)、角色控制、业务逻辑等。其功能可以简单理解为类似于一些提供工具的工具在以太坊中快速创建ERC20 Tokens,除了业务中心包含更多元素,输出(如合约)也是更通用的合约,并且可以支持多个底层区块链。 此外,业务中心将提供各种可视化工具,降低开发难度。

它还介绍了软件开发中一个常见的最佳实践是“模块化”,即可以通过集成现成的模块来构建产品或应用程序,这样模块就可以由不同的独立开发人员开发。 同时也催生了一个连接雇主和开发者的模块市场(OneLedger Marketplace,可以是一个独立的产品)。 最终目标是通过正在开发的SDK和API,系统可以自动将广义的业务模型定义转换为真正可以在不同公链上运行的链码(Chain code)。

商业中心的想法和落脚点是非常可取的,但实施起来未必容易,需要认真研究。

1.2 身份管理系统

系统为每个身份(即最终用户)分配一组主公钥密钥对(master key-pair),任何公钥都可以通过用私钥对消息进行数字签名来绑定到一个身份. 具体来说,可以将主私钥迁移到OneLedger一站式钱包(另一款类似于车联网万能钱包的竞品)。 由于万界内置各种侧链,钱包理论上可以支持各种数字钱包。 币种资产,在转移资产时,钱包可以使用主私钥对交易进行签名,这样其他节点就可以通过公开的主公钥来验证交易中的其他链资产地址是否属于这个身份。

此外,身份可以将可信度评级分配给其他身份,有点像声誉管理系统。

1.3 万界智能引擎

该系统没有专门的文字介绍,只在图中出现,这里略过。 感觉也可以是一个相对独立的产物。

2.万界共识协议栈

万界的核心是一套共识协议,使万界能够有效地整合不同的区块链产品。 感觉这里说的协议并不是传统意义上的具体的共识协议算法,而是介绍了一系列的概念和应用场景。

2.1 业务初始化层

该层承接来自业务中心的业务模型、模块和身份角色信息。 该层有两个功能:

一种是将定义业务逻辑的通用合约编译成适用于不同底层区块链的合约(如以太坊的Solity智能合约),有点类似于一键向各个广告平台发送广告功能、公司和开发者只需要关心业务逻辑本身,剩下的由平台来做,包括实际合约在不同底层公链上的生成和部署。 实现方式是 OneLedger 会保存一个主智能合约(master smart contract),它是用指定的语言编写的,然后在部署到不同的平台时可以翻译(Transpile)成适用的语言(另外,为了跨平台)语言翻译,可以点此链接感受)。

比特币侧链是什么_云比特是比特币分支?_808比特币创始人颜万卫 炮制比特币风险大

第二是使基于角色的共识定义变得可行。 除了定义行为之外,合约还可以定义有权访问许可链并触发这些链中交易的角色。 每个身份都可以与某个角色相关联,一个角色可以被授权访问某个链。 好像公司里每个人都会有一个IT部门,给每个人设置相应的系统访问权限。 个人身份是第一层认证,分配的角色作为第二层认证。

在进行基于角色的共识时,允许参与交易的角色组成一个多重签名环。 而且一般只有发生在许可链上的交易才需要使用角色定义,所以只会选择一些符合一定标准的节点参与这个共识。 白皮书中的某些陈述表明角色将与网络中的节点一一链接(每个角色链接到参与共识的独立节点;业务逻辑将决定每个角色如何馈入节点数据。),之后跟团队确认不是这样的,角色和节点没有直接联系(码农还是傻了,试图理解这个[捂脸])。

如果不需要角色控制,对应万界网络中的所有节点将一起参与共识。 当然,这会导致最差的共识效率。 OneLedger 可能需要一种类似代理的机制来提高共识效率。

因此,角色控制一方面为许可链引入了准入验证机制,另一方面使得参与共识的范围更小(反正本来就是许可链),从而使得共识过程快点。 并且通过配置角色控制的能力,企业可以灵活地在共识性能和共识可靠性之间找到平衡点。

业务中心有很多概念,文中并没有具体阐明它们之间的关系,也没有详细说明如何将这些概念在这一层转化为区块链元素。 现在组织如下:

业务模型:现实世界的业务,例如汽车公司。

模块:模块代表复杂的业务逻辑,是在业务模型中构建和支撑实际业务运行的通用化或定制化的业务集成单元。 一个商业模式可以配备制造、仓储、销售、会计等多个模块。 同时,每个模块也可以看作是一个单独的万界链,可以在模块上定义角色,负责访问权限的验证和限制。

过程(Workflow/Process):一个模块可以通过多个过程来实现。 每个进程都是最小的逻辑单元,映射到区块链上就是一个可执行的智能合约。 比如零部件入库,整车批发给合作经销商等等。 可以在智能合约中进一步定义有权调用合约的角色。

数字资产:现实生活中各种实体的数字表示,如货币、物品、内容等。万界的区块链中可以维护多种数字资产。

2.2 通道共识层(Channel consensus)

这里的通道共识只是指一个用来在不同角色之间进行交易或业务交互的概念。 上一节提到,在处理配置了角色控制的交易或交互(即合约)时,需要选择一些符合条件的节点,将它们聚集在一起形成一个通道(Channel),相当于形成一个“虚拟链”或者“虚拟子网(subnet)”,这里有点HyperLedger的感觉。

OneLedger基于pBFT(Practical Byzantine Fault Tolerance)的称为Sidechain Consensus Algorithm的共识步骤将在所有参与节点中使用,只要超过2/3的参与节点达成共识,则为一块。 算法的具体步骤在2.3中介绍。 有两个主要步骤,Pre-consensus 和 Commit。 该层的共识算法与2.3中的公链共识层的区别在于,它只用于万界链上和链间的交互共识。 步骤之间)。

一个渠道最多可以跨越一种或两种商业模式(其实用模块代替商业模式更合适)。 换句话说,通道中的角色可以来自一个模块(链内)或最多两个模块(跨链)。 后者需要将两种商业模式中的角色分开进行共识,也就是说需要获得2/3以上的选票才能通过。

这里提到的链内交易很容易理解,但是跨链交易在白皮书中并没有写清楚,所以程序员和团队反复讨论了这一点。 其实这里的意思是,如果要做跨链交易,需要额外创建一个新的模块来启动一条中间链,而这条链相当于交易双方链的侧链。 这个新模块所代表的链是一条独立的虚拟链,保存双方的交易结果,然后通过双向锚定将交换的资产移​​回原链。 特别地,如果交易双方都是私有链或许可链,那么交易双方都可以选择将机密内容存储在自己的链上并在自己信任的节点上运行,只使用可以公开的内容(比如用于交互的数字资产)被提取出来放在侧链上,侧链可以是联盟链也可以是公链。

抛开实现的难度不谈,这个技术思路应该算是OneLedger独有的比较亮眼的创新之一(虽然我认为没有人能从白皮书中看出其中的含义)。 HTLC之所以不用于内部链之间的跨链,而使用第三条中间链的原因是为了交易数据存储的冗余。 HTLC虽然可以跨链传输,但交易数据只存在于交易双方各自的链中。 OneLedger 的做法使第三方链或通道能够存储双方交易数据的完整备份。 出发点可能是处理相对脆弱的企业级用户。 从这个角度来看,OneLedger 将其内部链称为侧链并没有错。 毕竟,任何一条链想要与整个生态进行沟通,都必须使用侧链技术,成为某条链的侧链。

比特币侧链是什么_808比特币创始人颜万卫 炮制比特币风险大_云比特是比特币分支?

一旦节点达成共识,新生成的区块将只广播给通道中的所有参与节点(本地广播)并由这些节点保存。 如果任何一个节点有异议,可以发起仲裁,然后将该块放入全网所有节点进行共识(这里可能需要多商量,如果设置了角色控制的权限链模式,则使用整个网络节点做共识是否会泄露隐私是个问题)。

此外,如果在模块或流程中没有指定角色,那么共识将在整个万界的节点之间进行。

由于每个节点可能会动态分配到不同的通道参与共识操作,区块数据根据通道保存在节点上,每个节点上的区块高度可能不同。 OneLedger 引入了弹性分布式块(RDB)的概念,它通过 Merkle 树连接块。

本文开头介绍了默克尔树。 弹性分布式区块的概念是将 Merkle 树应用于区块本身,而不是区块内的交易。 从而可以记录每个节点上保存的区块之间的关系和结构,可以快速查询该节点是否有某个区块。 示意图如下:

2.3 公链共识层(Public chain consensus)

该层主要用于对应通过万界网络发起的公链主网间的原子转账。

完整的侧链共识算法(Sidechain Consensus Algorithm)分两步使用:

Round based Pre-consensus:用于获得超过2/3参与者同意的共识提案。 这里的“回合”由时间限制相同的三个小步骤组成:

选定某个节点A负责新区块的提议

所有收到提议区块的节点都执行相应的合约并对区块进行预投票(Pre-vote)。 预投票的结果在参与节点之间广播和收集。

一旦任何节点获得超过 2/3 的预投票比特币侧链是什么,就会执行提案块的预提交(Pre-commit)。 如果在超时之前没有节点没有收到那么多的预投票,则将进行新一轮的共识,并延长新一轮每一步所需的时限,直到收到预提交申请。

Commit:此时,提议区块已经成为预共识区块(Pre-consensus Block),只有当提议涉及到两条公链(如以太坊和比特币)之间的跨链交易,那么这个提议才会被追加驱动到公链上,接受公链上验证者的验证和投票决定资产是否可以锁定或解锁。 一旦提案同时被两条公链接受,新区块将正式“提交”到万界网络,一旦超过2/3的参与者完成提交,区块将最终确定。

下图说明了侧链共识算法的完整步骤。

其实在我看来,这一层所描述的应用场景并不是一个强烈的需求,因为OneLedger的主要重点是通过内置的BTC端将主链上以及主链之间的很多交易移动到这些侧链上链和ETH侧链,所以更常见的交易场景应该是用户在OneLedeger的两条侧链中完成BTC和ETH的价值交换,然后用户可以选择合适的时间从侧链中移动每一个资产回到主链,没有同步的原子交换。 当然,OneLedger 试图通过这一层告诉读者,他们可以实现主链之间的原子互换。 另外,这里终于用上了我们熟悉的HTLC,但它主要是用来保证不同性能和出块速度的主链之间交易的可靠性,更像是一把纯粹的“锁”。

3.万界区块链层

万界实际运行的虚拟链包括万界将陆续提供的以太坊侧链和比特币侧链,以及企业和个人针对自身业务场景设计的内部区块链。 其中,万界提供的侧链可以与对应的公链主网同步数据状态(毕竟是侧链)。

综上所述,OneLedger有着远大的抱负和远大的理想,但现实中还有很多困难需要克服。