| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 解析:跨链技术及应用全景图 -> 正文阅读 |
|
[区块链]解析:跨链技术及应用全景图 |
引言 跨链技术是区块链领域的圣杯,区块链技术蓬勃发展,形成了许许多多的公链和联盟链,但是长期以来,区块链之间彼此互不连接,形成了用户、数据、资源、资产的数据孤岛。如同TCP/IP协议一样,跨链技术让一条条孤立的链连接成一个完整的大陆。满足用户的多样化需求,突破区块链扩展性的限制。 1 跨链究竟要跨什么? 1.1价值的交换 每条区块链都存在自己原生的通证,这些通证往往与某种权益绑定在一起形成了资产,在同一个链内通证可以自由的交换,一旦离开原来的链,通证就如同废纸,毫无价值。 一个十分经典的问题,A想要用手上的BTC交换B手上的ETH怎么办?中心化的解决方案是A将BTC充值到交易所,换成ETH,再转到钱包。可是人们不满足中心化的解决方案,想在链上完成相同的事情,可是如何确保B拿到BTC之后不会食言呢?基于哈希时间锁的原子交换解决了这一问题,这使得两笔交易同时进行,完成撮合。 1.2价值的传递 有了交换之后人们有了新的想法,“我能不能把A链的资产拿到B链上去用呢?”。每一种通证需要依附于原生链,脱离了原生链,通证不再具备价值,这一点上面已经提到,为了满足人性的需求,我们需要在B对于A链的资产价值生成一种B链的原生通证,这就是跨链需要解决的问题。所以价值传递就是价值交换的超集。 1.3信息传递 如果说价值传递是价值交换的超集,那么信息传递就是二者的超集。完全意义上的信息传递是,任何信息都可以通过跨链的方式在链与链之间自由流通,我们不妨将通证跨链的步骤进行拆解,我们可以发现,跨链包含两个部分: 源链锁仓,生成证明,发送信息给目标链; 目标链接受信息,映射生成对应通证,将信息返回到源链。 通过跨链,我们可以传递任何信息,可以组成跨链借贷、跨链众筹、跨链支付和跨链衍生品。 2.跨链技术概览 目前,大部分跨链技术只能实现通证的交换,例如哈希时间锁和跨链DEX,由于每一条链都是一个独立的个体,链与链之间的信息传递需要搭建桥梁,常见的几种解决方法分别是,基于哈希时间锁的原子交换,见证人,轻节点侧链,中继链,共享验证人。 2.1哈希时间锁的原子交换 哈希时间锁是一种基于密码学的方法,具体操作如下。 用户A生成随机密码Q , 并计算出 r 的哈希值 m=hash(Q) ,将m值发给用户B; 与此同时,用户A发起一笔交易,向用户B转1 BTC,该交易的成功是有条件的,需用户B出示密码Q才能成功,否则超过预设的时间,交易将自动失败; 用户B看到A发起的交易之后,也发起一笔交易,向用户A转移10个ETH,该交易的成功也是有条件的,需要用户A出示Q才能成功,超过预设时间,交易也将自动失败。这里的关键是,用户B创建这样一个以出示Q值为成功条件的交易,并不需要拿到密码Q的值,只需要知道m值即可创建,而我们知道,哈希运算是不可逆的,即使知道m,也无法推算出Q; 用户A看到B发起的交易之后,出示Q值,使得B发起的交易成功,获得B转账的10个ETH,r值被披露; 用户B在上个步骤中也拿到了A出示的r值,使得A发起的交易成功,获得A转账的1个BTC。 通过上面的案例,我们不难发现这个方法存在三个问题。 交易双方必须同时在线,按照步骤严格操作,如果一方离线,另一方必须等待; 操作流程十分复杂,需要创建哈希时间锁,在底层分为两笔交易完成,在现实情况下还需要对交易进行上链,支付高额的手续费,这样的方式并不友好; 现实情况下,由于汇率问题,交易双方不会马上交易,特别在大额交易时,哈希时间锁的实用性大幅降低。哈希时间锁只能进行小额的交易,根本无法实现信息传递。 2.2见证人 见证人也叫做公证人(Notary),见证人的产生方式有两种,超额抵押和资产托管。 见证人可以是一个个体,也可以是一个主体,大部分情况下见证人是多个主体,见证人通过超额抵押的方式产生,也就是说,见证人必须抵押超过托管资产的金额才能成为见证人,托管账户一旦发生亏损,亏损金额由见证人赔偿,见证人需要承担高额的手续费,而见证人能为其他用户提供低廉的手续费,所以吸引了大量的用户。 账户托管主要涉及两种方式,多重签名与私钥分片。多重签名,是由多个私钥共同控制一个账户的技术,多签技术可以实现一个地址必须由M-of-N个签名人签名才能转账,1≤M≤N。这种方式在操作的便捷性上不如私钥分片那么便捷。 私钥分片利用多方安全算法和门限技术实现了更为便捷可操作的托管方式,将私钥的分片分发给不同的管理人,分片会定期刷新,这就意味着如果管理人想要获得账户里的资产,必须获得一定时间内其他管理人的分片。这样的方式不仅更加可靠,并且使用起来更加便捷。 2.3轻节点式侧链 所谓轻节点,是指一个体积较小的,只存储区块头信息的节点。轻节点并不存储链上的全部交易,但是可以通过区块头信息,验证某个交易是否存在于链上。 当原链A请求传递一笔跨链交易信息给目标链B时,交易发起者将该交易的明细内容、区块高度、以及该交易SPV证明(指该交易的Mekre路径)一并提交到B链; 部署在B链上的A链轻节点合约,通过SPV证明,重新计算该交易所在区块的区块头哈希值; 得到的哈希值与轻节点中对应的区块头哈希值进行比较,如果一致,则表明该交易确实发生在该区块中,若不一致,则说明该交易并不存在于该区块。 轻节点式侧脸与见证人相比更加注重验证,利用密码学的方法,确保跨链的成功。需要注意的是,侧链与子链是完全不同的两种链,侧链好比我们一个完整的个体,而子链则是我们的手和脚。我们可以与其他个体完成交易,但是我的手脚不能独立完成交易,子链的出现是为了扩容,子链不必具备共识机制和算力,只是为了缓解主链的压力而存在。 2.4中继链 大多数情况下,我们需要多条链的连接。如果每连接一条链都需要制定“标准”,那么我们的成本将指数级的攀升,这个时候有人想到了中继链,就像家里的路由器一样,我们可以使用电脑、手机、电视接入,并且成本极低。 中继链是侧链的一个变种,是一种全新的解决方案,需要注意区别的是,中继链和中继者的区别,,中继者可以可以独立承担中继服务,我们把这样的中继者称为链接桥。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:37:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |