热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

看明白这两种情况,才敢说自己懂跨链!|喵懂区块链24期

写在文前:视频版本和文字版本略有不同,想要看我深情并茂演绎请看视频版本,思维逻辑怪请看文案加长长长版。我是,不靠颜值靠才华的


640?wx_fmt=gif



写在文前:视频版本和文字版本略有不同,想要看我深情并茂演绎请看视频版本,思维逻辑怪请看文案加长长长版。我是,不靠颜值靠才华的胖小喵~


But as a concept, federation surely represents the future of networks, so that they become not as islands of digital power, but overlapping ‘networks of networks’. It is happening already. 


------John Dunn


在过往的《喵懂区块链》系列科普中,我们已经介绍了诸多区块链目前面临的问题。说到问题,其中越不过去的一个坎就是“跨链&侧链”问题,这是区块链想要瓦解数据孤岛,实现“价值互联网”的核心。因而,本文就先带大家了解一下侧链---Sidechain。


侧链这个概念,原生于比特币社区。我们知道如果想要在比特币网络上增加新功能,则需要社区达成高度共识,所以一直以来进度比较缓慢。为了迅速迭代加密货币的功能,人们的第一直觉是去创造一种新的加密货币,这样造成的结果就是:大家反复复制比特币代码,再叠加一点新功能,新项目就热腾腾出炉了。这不仅会导致加密货币种类泛滥,还会造成社区力量的涣散。


所以当时社区的小伙伴就在想有没有办法将所有的力量都汇聚在比特币上,将其他比特币实现不了的功能,通过侧链的形式附加到比特币网络上去。2012年前后,比特币社区中出现了一种“有去无回”式的one-way peg单向锚定技术,可以实现比特币的销毁和侧链代币的1:1释放。


有One-Way Peg,自然就会有two-way peg,也就是说要实现代币从主链转移到侧链,同时再从侧链回到主链。


2014 年10月22日,Adam Back[ Adam Back,哈希现金(Hash Cash)创始人,详情可见《喵懂区块链第七期|比特币诞生前,加密货币“死”了多少回?》]和他的小伙伴们Matt Corallo,Luke Dashjr,Mark Friedenbach,Gregory Maxwell[ Matt Corallo,Luke Dashjr,Mark Friedenbach,Gregory Maxwell均为比特币核心开发者。]等,发布了侧链技术白皮书 《Enabling Blockchain Innovations with Pegged Sidechains》,提倡大家通过创建侧链的形式来进行创新,初步展开了Two-Way Peg双向锚定形式的探索。



那么到底什么是侧链呢?



首先,侧链并不是指具体的哪条链,而是一个协议,能让代币从主链“转移”到其他区块链,并且也能安全的从其他链返回到主链的协议就叫侧链协议。其次,我们所谓的“代币转移”并不是真的把币从一条链流通到另一条链,而是在一条链上锁定主链币,在另一条链上释放侧链币的过程。要实现这种双向转移(Two-Way Peg)的形式有多种,常见的包括Single Custodian(单一托管模式),Federated peg(多签联盟模式),SPV Proof(SPV证明模式),Drivechain(驱动链模式),Hybrid Models(混合模式),本文主要分析前三种类型。


1.Single Custodian(单一托管模式)


最简单得实现主链与侧链双向转移的方法就是将主链上的数字资产发送到一个托管方,类似于交易所的形式,当托管方收到相关信息后,就往侧链转移等价值的侧链币,反之亦然。这种形式相当简单粗暴,缺点也相当明显---中心化问题严重。

640?wx_fmt=jpeg


2.Federated peg(多签联盟模式)


多签联盟模式和单一托管模式的区别就是,中间的托管方不是一个,而是多个,每一笔交易需要M-of-N 多重签名确认(M-of-N解释:比如这个联盟是30个成员,一笔跨链的成功执行需要25个以上的确认,那就是25-of-30,这根据场景不同,规则不同)。这就避免单个公证人有一票否决权,削弱了权力的中心化(相对于第一种方案而言),反之亦然。


640?wx_fmt=jpeg


3.SPV Proof(SPV证明模式)


这种模式是Adam Back侧链白皮书中着重探讨的方式(也是大家理想中的样子),我们举个例子讲一讲~


比如小A想要用1个比特币和小B兑换1个侧链代币,因为他要跨到遥远的另一条链上去,所以他的交易输出必须跟正常交易不一样,我们称之为“特殊的SPV输出”(SPV Lock Output),等这笔交易通过了Confirmation Period(确认阶段),被确认之后,矿工就会检测到这笔交易不一样,并把这笔交易的SPV Proof(SPV证明)[ SPV Proof,即Simple Payment Verification,简称SPV。


SPV的目标是为了验证某个交易支付是否存在,以及得到比特币网络多少个确认(多少个区块)。]广播到侧链当中去,SPV Proof就是代表着:“hey,我们已经乖乖完成了主链上的扣款操作了,你抓紧在侧链上把相应的代币释放出来哦”


侧链矿工接受到该信息之后,就会在侧链上释放相应的代币,并将交易写入区块当中,经过reorganization period(重构阶段)之后,从主链到侧链的交易就正式完成了。


关于Confirmation Period以及Reorganization Period,我们这里还可以扩展解释一下:比特币在交易经过一次确认之后,也就是当部分节点收到了打包了这个交易的区块之后,还不能保证交易的最终安全,因为在此之后,其他的分支可能会成为最长链,于是造成区块链的重新组织,造成打包了之前交易的那个区块成为孤块,之前确认的交易可能失效。为了防止以上可能性,于是我们要度过Confirmation Period以及Reorganization Period之后,才能保证交易的安全。


反过来,从侧链到主链的过程,也是一样的。



640?wx_fmt=jpeg


虽然第三种方案看起来是最完美的trustless方案,但是Adam Back在侧链白皮书中也谈到:“One of the challenges in deploying pegged sidechains is that Bitcoin script is currently not expressive enough to encode the verification rules for an SPV proof.” 


简而言之就是部署检验SPV proof的规则是一个巨大挑战,这需要比特币实施软分叉,需要改动比特币的代码(比如增加一个OP_SPVProofverify操作码,但目前比特币代码中还未出现部署相关操作https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki#2-way-pegged-sidechains,这里需要提一句的是我们前文提到的“特殊的SPV输出”,就是特殊在这里,由于目前还没有具体案例,所以没法直接点出具体特殊的情况如何),而改动比特币代码而不是随随便便的事情,需要整个社区的高度共识,所以目前虽然我们在侧链上已经有了非常多的尝试,比如比特币的智能合约侧链RSK,Blockstream发布的比特币商用侧链Liquid等等都还是采用Federated peg(多签联盟模式)。


例子详情:


1.RootStock RSK 的更新版的白皮书上上也可以看到,目前 RSK 也是使用了联合楔入的形式。(https://www.rsk.co/wp-content/uploads/2019/02/RSK-White-Paper-Updated.pdf

)640?wx_fmt=png


2.Liquid也是采用Feratedpeg形式,其联盟包括Bitbank、Bitfinex、BitMEX、OKCoin等在内的23家数字货币行业知名公司组成的。


以上是关于侧链的一些基础概念和状况描述,如果有任何问题欢迎留言跟我们探讨~


备注:本期科普内容由喵懂智囊团&巴比特专栏作家---Peter王广忠提供技术支持


巴比特专栏作者@Peter 王广忠   Github@happypeter


参考:

https://blockstream.com/sidechains.pdf

https://www.rsk.co/noticia/sidechains-drivechains-and-rsk-2-way-peg-design/

https://blockstream.com/strong-federations.pdf

https://www.youtube.com/watch?v=rzLhw7XI1uo

https://blockstream.com/strong-federations.pdf

https://www.8btc.com/article/290394

https://www.8btc.com/article/290635



* 申请转载请联系原作者,优秀稿件发布请联系微信btczs001(课代表)


﹏﹏﹏﹏

推荐阅读


比特币到底有没有庄家?

比特币就是一种赌博么?

从时间上算,我和李笑来是同一批人

巴比特成立商学院,打造全球首个数字经济领袖班!



更多关键词:矿工 | 51%攻击 | 奥本聪 | 李笑来

燃点 | 孟岩 | 白硕 | 肖风

长铗 | 李国权 | 蚂蚁金服 | 来学嘉


640?wx_fmt=jpeg


推荐阅读
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • 由于同源策略的限制,满足同源的脚本才可以获取资源。虽然这样有助于保障网络安全,但另一方面也限制了资源的使用。那么如何实现跨域呢,以下是实现跨域的一些方法。 ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • 痞子衡嵌入式:对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异...
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异。近 ... [详细]
  • 前面刚有AWS开战MongoDB,双方“隔空互呛”,这厢又曝出2亿+简历信息泄露——MongoDB的这场开年似乎“充实”得过分了些。长期以来,作为“最受欢迎的NoSQL数据库”,M ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • Ansem 最新雄文:软着陆后,加密市场下阶段趋势与核心叙事
    市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ... [详细]
  • PyTorch框架中有一个非常重要且好用的包:torchvision,该包主要由3个子包组成,分别是:torchvision.datasets、torchvision.models、torchv ... [详细]
author-avatar
情调
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有