白话比原链跨链技术

本贴最后更新于 1874 天前,其中的信息可能已经水流花落

随着 Bystack 的主侧链架构的推出,主侧链之间的跨链问题也成为比原链团队的主要攻克工程难题,当前比原链已经推出了两种跨链的机制,各有不同的侧重点,可能因为本身的跨链技术比较晦涩,本篇想以较为通俗的方式向社区介绍比原链最新的跨链技术。

一些预备知识

跨链简单的来说就是解决如何让一条链上的 token 转移到另一条链上,本质是将一条链上的价值转移到另一条链,跨链需要保证以下几点:

1. 确保已跨链的资产的妥善保管,不能在原链上能够继续流通,要防止被窃取或者挪用;

2. 确保两条链上转移的资产是等同的,不能 A 链上减少了 100 价值的资产,而 B 链上只增加了 50 价值的资产;

3. 转移的资产能够安全的再转移回原链上,不能价值只是单向转移,或者转移过去无法转移回来;

基于这些要求,诞生出很多不同的跨链方案,主要是公证人机制,侧链/中继和哈希时间锁等方案,除此之外还有分布式私钥,和公证人机制 + 侧链混合技术。这里不对这些技术进行展开,如果有兴趣的朋友,可以推荐阅读 V 神给 R3 写的关于跨链的文章《Chain Interoperability》。

比原链的跨链选型

比原链的跨链模型也脱离不了上面叙述的跨链模型,当前主要使用的是公证人机制和哈希时间锁的模式。

因为侧链 Vapor 本身是没有资产的,所以我们使用公证人机制将主链的资产转移到侧链上(实际上是在主链锁定资产,在 Vapor 侧链创造资产),同时因为公证人机制需要一定的时间进行签名审核,所以我们再使用哈希时间锁的机制做补充,可以快速的交换主侧链之间的资产(但哈希时间锁机制不会创造资产,只是对现有的主侧链资产进行跨链互换)。

公证人(网关)机制

但凡是参与过比原侧链超级节点投票对于跨链转移 BTM 一定不会陌生,在 Bycoin 中通过切换到侧链钱包,可以实现一键跨链,如图所示:

通过一键跨链就可以将 BTM 或者其他资产跨到侧链上,从而在侧链上进行资产交换。那么公证人机制背后的原理是怎么样的呢?忽略其中的技术细节,核心就是价值生成和销毁,资产托管和主侧链的接口通信,如下图所示:

每当从主链转移到侧链,就需要在侧链上创造相应的资产,而如果要从侧链上转回主链,则需要销毁侧链上相应的资产,这就是价值的生成和销毁。当主链的资产跨链到侧链上,就需要对主链的资产进行托管,出于安全的考虑,一般都会采用多签的方式,还有对大额资产进行冷热分离。

先介绍几个概念:

1. 验证人:侧链的出块人,就是当前的正式出块的超级节点方(前十的超级节点)。

2. 收集人:监控主链锁定在联邦合约地址的交易,收集主链的交易并在侧链上创建等额的资产,监控侧链跨链请求,销毁侧链的资产并释放等额资产到主链上。验证人和收集人都是系统中的角色,并不是指代实际的人,但其中可能会需要人进行参与。

3. 联邦地址:由多名联邦成员公钥生成的多签地址。

当用户点击一键跨链之后,发生了什么事情?

如果是从主链到侧链:

1. 收集人监测到主链的联邦地址接受到了一笔转账;

2. 收集人等待主链打包,当到达一定确认数后这笔交易将不能被逆转;

3. 收集人在侧链上创建等额的资产,通过多签进行审核确认,并打入到用户的侧链地址;

4. 用户的侧链上获得可以流通的资产;

如果是从侧链到主链:

1. 收集人监测到一笔侧链销毁资产的交易(这里用户并不需要将自己的侧链资产打到联邦地址上,而是自己发起一笔销毁侧链资产的交易);

2. 收集人等待侧链打包,当到达一定确认数后这笔交易将不能被逆转;

3. 收集人将联邦地址中等额的资产,通过多签进行审核确认,并打入到用户的主链地址;

4. 用户在主链上获得可以流通的资产;

网关(公证人)机制则是一个被实际场景检验过的高效可实用机制,网关起到了建立跨链信任背书、统一跨链通信协议、协调主侧链交易确认的重要作用。但在实际场景里,跨链网关会面临中心化运营的弊端,导致跨链协作无法完全去信任,互操作性不高。后续的开放式联邦网关管理框架 OFMF 就是为了解决中心化的问题,这块后续会专门写文探讨,这里不做赘述。

同时因为需要人工多签的原因,跨链需要用户较长的等待时间,所以又推出了基于哈希时间锁的跨链资产原子互换机制,和公证人机制进行一个互补。

哈希时间锁跨链机制

哈希锁定模式是指用户在规定的时间段对于哈希值的原值进行猜测来支付的一种机制。简单讲,就是在智能合约的基础上,双方先锁定资产,如果都在有限的时间内输入正确哈希值的原值,即可完成交易。

通过公证人机制,可以将比原主链的资产迁移到侧链上去,那么通过哈希时间锁,则可以将比原主链和侧链的资产直接进行交换。

比如你在主链上有 BTC,我在侧链上有 ETH,如果使用公证人机制,我需要首先将 BTC 跨到侧链上去,或者将 ETH 跨到主链上来,这样才能进行互换;而有了哈希时间锁的机制,就可以直接把我主链上的资产打给你,而你将侧链上的资产打给我,并能保证整个过程的原子性和资产安全。

哈希时间锁的大概模式如下图所示:

这个图是简化的流程,为了保证主侧链资产交易的原子性,其中涉及比较多的流程,大致流程描述如下:

1. 用户 A 想用主链上的 BTC 换取用户 B 侧链上的 ETH;

2. A 开通一个主链上的智能合约,并设置一个能够解开该合约的谜语(哈希锁 H),设置一个可以猜谜的时间(时间锁 T),超过这个猜谜时间 A 可以拿回他自己的 BTC;

3. A 将谜面(哈希锁 H)给用户 B,用户 B 用同样的谜语(哈希)在侧链上开通一个智能合约,也设置一个猜谜时间(时间锁 t);

4. A,B 双方互相检查各自的合约(检查是否用统一的哈希锁,检查是否接收地址是对方的);

5. 确认智能合约无误后,A 在时间 t 内使用谜底(哈希原值)去解锁 B 的侧链智能合约,并获得侧链的 ETH;

6. 一旦 A 成功解锁 B 的智能合约,那么谜底(哈希原值)就会暴露,B 获得了谜底(哈希原值),在时间 T 内,去解锁 A 的主链上的智能合约,并获得主链上的 BTC;

7. 双方的资产互换完成;

哈希时间锁完全使用合约来进行跨链资产的交换,所以无需担心中心化的风险,但哈希时间锁机制只能互换主侧链已有的资产,而不能将资产价值转移到另一条链上。当前的比原的哈希时间锁机制并没有集成到界面上,所以普通用户使用还比较困难,需要产品的进一步提升。

跨链的展望

比原链 Bystack 的跨链技术正在如火如荼的完善中,通过跨链技术,我们可以很好的发挥侧链的高性能优势,让各类资产在侧链上流通起来并形成各种各样的应用。

除此之外,跨链技术的成熟,除了可以利用在我们自己的主侧链之外,我们还可以将这套技术用在比原链跟其他区块链的跨链上,将其他区块链资产都跨到比原链上来,从而实现比原链多样性资产的目标。

  • 比原链
    20 引用 • 2 回帖
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 4 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
bytom
一种多样性比特资产的区块链交互协议 杭州

推荐标签 标签

  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖 • 1 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    221 引用 • 473 回帖
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 248 关注
  • gRpc
    11 引用 • 9 回帖 • 60 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 2 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    346 引用 • 1801 回帖 • 3 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 725 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 625 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 465 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 181 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 1 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • 工具

    子曰:“工欲善其事,必先利其器。”

    285 引用 • 728 回帖
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 632 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 606 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    30 引用 • 123 回帖 • 1 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 657 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 619 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 127 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 338 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    942 引用 • 1459 回帖 • 31 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 257 关注