Author

Topic: 熊市学习之 - 什么是侧链(sidechain) (Read 192 times)

newbie
Activity: 151
Merit: 0
full member
Activity: 181
Merit: 101
能总结成三句话吗?
比特币一直只有一条区块链也就是主链在安全运行,但是主链的容量小,交易的速度慢。所以有人建议在主链上开发侧脸,就像大树从侧面发新枝一样,既可以保证其根源的安全性,又可以扩充新的功能、开发新的用途。
如果从这个角度来说,很有用啊,主链有他的局限性,从侧面来发展其他的特性,但是主链保证安全性,所以侧链有存在的价值
newbie
Activity: 116
Merit: 0
我一直有疑问,侧链真的有必要么。
第一个出侧链的想法的是哪个币呀?
jr. member
Activity: 182
Merit: 1
感谢楼主用心分享,这篇文章值得顶一顶,受教了。总结来说是不是像5楼的楼主做的总结呢?
full member
Activity: 348
Merit: 100
对于新人来说这个新技术名词还是比较难懂的,韭菜嘛就想知道怎么做赚钱快!
jr. member
Activity: 173
Merit: 2
能总结成三句话吗?
比特币一直只有一条区块链也就是主链在安全运行,但是主链的容量小,交易的速度慢。所以有人建议在主链上开发侧脸,就像大树从侧面发新枝一样,既可以保证其根源的安全性,又可以扩充新的功能、开发新的用途。
jr. member
Activity: 74
Merit: 1
能总结成三句话吗?
我试一下吧, 比较难
jr. member
Activity: 131
Merit: 4
能总结成三句话吗?
jr. member
Activity: 74
Merit: 1
这个学习笔记是我在各大网站摘录在一起的,加了一点自己的想法,大家有想法一起分享! Smiley Smiley
jr. member
Activity: 74
Merit: 1
注意,以下定义全部是人为的,并没有技术上的必然性,但这些定义有利于理解技术本身的逻辑。

侧链(sidechain)的正式定义应该是“缠绕链”,负责缠绕对接“应用链”和“结算链”。这三者的关系是分层的,类似IP、TCP、HTTP,这是三种不同的协议、不同的报文格式,只有小部分功能特征相似,但主要功能是分层次松耦合度的,各自为政,各自可以对各自透明。TCP的80端口可以对接HTTP,也可以对接其他应用。同理,这三种链也可以做到各自对各自透明,但是又可以对接协同工作。

比特币是典型“结算链”,实现的功能包括:不可逆记账、去中心化安全共识。犹如IP地址满足全球互联网地址可路由的基础需求,比特币作为区块链的第一种应用,打造了一个结算链的协议基准,这个基准,通过了数学、传输、性能、可持续扩展等多个方面的论证,Ok没有问题。大部分的结算链沿用的是比特币的协议基准,还有其他的一些协议基准改变比较大,但是缺乏持续的安全性论证,某些号称去中心化的区块链协议,每秒可以百万级别吞吐量,其实就是像微信支付搞几台服务器,这种搞法并没有通过时间和技术验证。这并不是说中心化的区块链没有价值,而是我们在讨论这个问题的时候,有这么一个前提是必须明确的,即基于去中心化和去信任化的区块链网络,在这个问题的研究范围之内,脱离了这个底层原则,可能以后应该另外开设问题讨论。“结算链”是一种最基础的链,比特币就是这种链的典型,这种链要求节点多、充分离散化分布、协议可迭代而不会造成兼容问题、高安全壁垒;能够持续保证这个效果,就可以承担结算链条的功能。互联网的应用目前还在不断进化,但是我们用的IP协议,可以做到五十年不变,从电脑到手机到可穿戴智能设备,统统还是可以由最古老的IP协议来承载通信。二十年前的“All over IP”是一个新潮的口号,现在已经很稀松平常。结算链作为区块链架构里面的底层基准代表,目前已经锁定了一系列的事实上的标准,我相信近期不会有变动的需要,长期也可以做到稳定不变,灵活性、扩展性、功能性将会由侧链(缠绕链)、应用链来实现。这类似于IP的所有“不足”,在TCP和HTTP层面得到充分即解决。在IP协议同时代的“竞争协议”,虽然在功能性、扩展性、吞吐性能、可管理性等各方面都有亮点,但无不因为技术耦合度太高,而被淘汰。这里面包括,ISO国际化标准组织钦定的网络层协议标准是CLNS(IP协议并没有得到标准钦定,但却是事实标准),几大通信巨头组建的ATM协议论坛,均没有存活下来,更不用说苹果公司的独家Appletalk协议(没错,苹果也干过这样的事情),IBM的SNA协议,微软的Netbeui协议,这些协议并不是歪瓜裂枣,都经过精心雕琢,只是分层性不好。在技术创新领域,分层次,松耦合的协议标准开发更能够激发生态活力,有利于技术分工和协作,这也是市场自然选择的结果,结算链的底层事实标准很快会被锁定,以不变应万变,留下的所有的缺陷也好不足也好,统统让位给侧链、应用链去处理。

以上是阐述侧链(缠绕链)产生的原因和趋势必然性,是生态竞争自然平衡调节的结果。从技术上来看,IP、TCP、HTTP的功能可以由一种协议一网打尽,比如ATM协议全栈覆盖,从物理层开始打通到应用层,技术绝对高大上,但是被市场淘汰。这是一种生态竞争造成的自然选择,技术最终还是进行了分层划分,违背这个规律的下场都比较悲催,比如Sun公司(从CPU开始研发,到终端、PC、工作站、服务器、小型机、操作系统、数据库,甚至连鼠标键盘都不放过,研发战线无限拉长),Intel公司有一个承诺就是永不生产电脑整机,其实就是要找准自己的市场定位。今天重度垂直非常成功只有苹果公司,它也只限于消费终端市场,硬件部分研发聚焦在集成设计很短的战线内,应用靠外围生态,操作系统则是早年的遗产,就这样,这家公司以前还差点玩呜呼了,在砍掉杂七杂八的东西后咸鱼翻身。

接下来讲侧链所做的事情,在技术上讲,就是缠绕结算链和应用链,使应用链数据和结算链数据无缝对接,承上启下。侧链主要功能有:结算链离链交易(类似微信及支付宝钱包之于银行账户,即闪电网络)、应用链的基础用户数据(包括用户账号、权限、代币账本)、应用链的运行承载(智能合约虚拟机、运行平台)。具有这三项功能的1项到3项,都可以称为侧链(缠绕链)。写下这篇回答的时候,区块链的应用存在一些不可协调的矛盾,这些矛盾背后的逻辑也是比较搞笑的:

其一:应用数据和结算数据在一个区块链上并存。你能想象出印在人民币上面跑的应用吗?。很多应用啥app没有,或者惨不忍睹,然后CEO主要推动力是先卖一通“币”。你能想象腾讯公司和人民银行是二合一的同一家公司吗?下载王者荣耀根本玩不起来,先让你充值买一堆币吗?买完十八个月后游戏都跑不起来。

其二:多种应用数据在一个区块链上的混合并存。以太坊和它的一队竞争对手,就是用一种链条覆盖结算链、侧链、应用链的全部功能。你能想象本来只是想用手机记事本写个备忘,但先要把所有养猫养狗的数据也全套下载下来吗?

其三:应用规模不足以保障区块链数据安全。现在很多区块链应用,几个人开发完,架设了三台服务器节点,就开始跑应用,除了微信这种杀手级应用,大部分的“长尾”应用,可能就是几个人在用,你说他没价值也不对,有一个人用那也是有价值的。但是这就导致了节点少,对于区块链的应用来说,不够安全。不需要去信任化安全的应用,其实更适合用微信小程序实现。

其四:任何应用运算都需要交等额手续费。你能想象在微信上面看朋友圈、发红包、发一条消息、添加好友,都要交一次相同的手续费吗?这个就是以太坊的烧“油”逻辑,任何操作的手续费其实是无差异的,因为平台不知道应用里面哪个应用的操作权重和价值。这就像微信发个五毛钱的红包,要交两块钱的银行最低转账费一样。烧油这个逻辑其实有合理性(油尽灯枯,避免无限循环的程序),但缺少分层调节权限。

我其实观察过一串区块链应用,凡是普遍存在以上矛盾没有解决的,都没有研究的必要,很多项目创始人喊着张小龙雷军的口号,但是长得很像张小雷。侧链犹如TCP,把IP和HTTP切开,为以上矛盾的解决提供了分层架构。

接下来讲具体实现机制,首先侧链怎么实现对结算链的缠绕,建立类似于支付宝、微信钱包与银行帐号之间的关系。具体的技术实现方式有若干种办法,核心思路并不复杂,就是将结算链的密钥保存于侧链,通过多重签名、矿工和公证人投票等机制,实现结算链帐号充值到侧链上面,然后侧链以一个快速结算的网络(闪电网络)为用户提供服务。比如我是用户,我有一个银行卡的帐号密码(私钥),充值进微信钱包的时候要使用银行卡密码(确保没有人可以代替我充值),同时我有一个微信钱包的密码(确保没有人可以代替我进行提现),跟微信钱包不同的是,区块链侧链平台方不是一个集中化的组织(腾讯),而是一个去中心化的公共网络,平台方拥有的密钥由网络自主选举出来的公证人或矿工持有,平台密钥和我个人持有私钥同时工作(多重签名),完成提现,这样确保用户的充值、提现操作,不会被人为干预。这是侧链的基本功能,即面向结算链的充值和提现,提供离链的交易结算。在技术上,这类操作统一称为2WP,双向锚定,即充值进来一块钱,就可以提现一块钱,一聪分钱不会多,一聪分钱不会少,技术上没有作弊,也没有任何人为操作。

这里面有一个基础前提,就是这个结算链、侧链网络架构是安全的,这是区块链的底层原则,为什么说很多区块链应用都要搞一种“币”,做结算链,但其实就是三台孤零零的服务器节点,其实并没有可靠的底层保证。主链和侧链的二层结算关系,要求结算链本身是安全、侧链本身也是安全的(银行帐号是安全的、微信钱包也是安全的)。【唯一的互联网就是互联网】,在这个世界上有成千上万的采用IP协议建设的私有网络(内网、专网),但是这些网络都不会成为Internet(互联网),上面说过,多种因素导致某种技术成为事实上的标准,包括易于分层耦合、先发优势、网络聚集效应等,即使这个技术并非完美的,一旦占据住卡位优势,它所能发挥出来的价值因为网络效应会被不断放大,而其所对应的技术问题都会变得不是问题。比如IP协议因为没有自带QoS(服务质量)功能而被诟病,智能手机的兴起促进了WIFI等无线网技术的一系列进化,智能手机并没有因为没有网络有线接口而被淘汰,苹果公司的笔记本把USB接口取消、手机的音频耳机等一干外部接口取消,反而促进蓝牙之类技术的应用,包括无线鼠标、网络无线投影,中国有句老话,没了张屠户还会吃不了脱毛猪?这就是卡位优势,将兼容压力向上传递或者向下传递,绝不会自己作死打散聚集效应,这就是为什么比特币网络现在硬分叉概率越来越低,只做软分叉升级的原因。

使用某项技术,跟发挥某项技术的最大价值是两码事,我家里有两台电脑,使用IP协议搭建了一个“互联网”,跟全世界人民共用一个全球互联网,对于IP协议而言,最大的价值体现其实是后者,而不是前者,所以搞三台服务器,用区块链的技术,搭建了一个“区块链的网络”。区块链技术和应用的最大价值,在于最终构建一张全球共用的无信任化需求的数据验证网络,支撑一切无信任化需求的应用的运行。这种网络结构跟互联网是一样的,互联网本身作为区块链的底层存在。

这样的网络不需要很多个,只要有一个就够了,因为“只有一个互联网是互联网”,记住这句话。每一个应用都要去构建一张独立的区块链网络,是没有必要的,犹如发布应用到互联网,不需要建立一张独立的几百万个节点的网络,发布应用到区块链,不应该每一个应用都要重复铺设上万个区块链的节点。结算链、侧链、应用链,应该是各自独立工作,共享一个公共的底层区块链网络,正因为是公共,反而提供了最大化的安全、可用性、容错能力、吞吐性能、兼容能力、接入能力,犹如我们使用一张公共的互联网,整个网络使用效能才得到了最大化,而不是成百上千个分离的小互联网。明白这一点,就能够理解,侧链的存在意义,在于缠绕各种主链,通过技术手段,实现区块链应用的互联互通,分层不是为了分裂,而是极大地提高了扩展性、互通性、兼容性。

侧链网络的具体实现,通过与主链共用底层分布式算力,实现现有网络节点的复用,这项技术其实很早就有了,第一个区块链应用是比特币,比特币铺开了一张分散的算力节点网络(目前全球节点超过1万个),而第二个区块链应用NMC(去中心化域名解析)采取的是与比特币联合挖矿的方式,矿工每挖出一个BTC,也会挖出来一个NMC。这种方式是很合理的,因为NMC的用户群体相对小,它独立建立小型的算力网络,安全是一个问号,跟现在很多三台服务器的区块链“应用”是一个意思。通过联合挖矿,NMC的网络“寄生”于比特币网络,只要比特币这张大网络是安全的,它就是安全的,它不需要扩展很多节点,只要安心发展推广应用本身即可。另外的例子还包括狗币和LTC的联合挖矿。联合挖矿的技术是很简单的,但为什么绝大部分的区块链“应用”之前都走建设独立网络,其实是因为这些应用都是“币圈”应用,联合挖矿的效果就是一次挖矿运算,会产出两种币,那么第二种币会相当于“零成本获得”,对币价不利,所以一切“币圈”应用,都排斥联合挖矿,宁可搞三台服务器。

侧链不是“币圈”应用,所以没有这个顾忌,通过联合挖矿对拥有大型算力网络的主链(结算链)进行缠绕,瞬间解决底层网络分布安全和算力安全。比如RSK根链(侧链)对比特币(主链)的联合挖矿,侧链虽然不一定自己有“币”,但是可以通过“手续费”对矿工进行激励,RSK的侧链通过双向锚定(2WP)烧比特币的油(等同于以太坊烧以太币的油),矿工联合挖矿是有收益的,因为联合挖矿对矿工而言是“零成本”,所以这个手续费只要有一分钱,都会吸引大量矿工参与,早年NMC只有几分钱,比特币矿工一样参与联合挖矿,把NMC给挖出来。所以这个逻辑上和实践上都是走得通的。

侧链对结算链(算力链)的缠绕核心技术实现就两项,也就是是双向锚定(2WP)和联合挖矿。实现的效果是建立公共安全的底层区块链网络,下一个阶段的技术进化趋势,分散的区块链网络应用通过侧链链接起来,让所有应用可以共享底层区块链公共网络的安全环境、算力环境、结算环境、分布式去中心化环境、运行环境。

接着讲侧链对应用链的承载功能,包括两项,智能合约的运算平台,基础数据库保存。其实这两项功能就是以太坊和它的一队竞争队友的基本功能,但如上所说,垂直实现的结果就是一千种应用在一条链上运算,一千种应用数据保存于一条链上,这会导致严重的性能扩展的问题,数据量同步负担过重也会造成安全问题。以太坊建设成为一台共享大型的虚拟机的目标,也许能够实现,但是区块链只有一台计算机无疑太单一了。

通过将运算平台分离和应用数据数据分离,解决性能和数据治理的扩展性问题。直白一点说,应用里面关键的基础数据,比如账号、权限、索引、验证信息,可以保存在侧链上,但是其他的应用内容本身,可以单独用独立应用链保管,比如某个应用只有三五个用户,它这三五个节点自行保管应用链内容即可,那么即使这样的长尾应用千千万万,也不会对主链造成沉重的数据负担。在这种结构下,应用链仍然可以发行代币激励矿工或者节点运行者,以提供必要的网络性能和节点规模,但理想的情况是应用链开发者不用操心这个问题,利用侧链的底层架构做支撑,只需要专注于应用本身的开发,让应用回归到应用。

未来真正有价值的区块链应用是没有“币”的区块链应用,这些应用公司可能会成为google、facebook、twitter、腾讯,踏踏实实地创造应用价值,持续地赚美元、人民币,或者比特币。这是侧链技术给我最大的认知启示。
Jump to: