必读!未来月薪10万的五大利器(二)

640?wx_fmt=gif

640?wx_fmt=jpeg

来源 | 《区块链与产业创新》

作者 | 井底望天、蒋晓军、相里朋

责编 | 乔治

出品 | 区块链大本营(blockchain_camp)


当前,区块链技术已经由1.0版本过渡到2.0版本,并逐步向3.0版本发展。新一代区块链技术发展的主要方向侧重于基础设施建设,即区块链底层技术的研发以及一些具体应用的落地。区块链3.0技术发展的目的在于提高区块链的整体运行性能,包括通过各种方式提高区块链系统的交易容量、交易速度以及系统的可扩展性等。


在提高性能的解决思路方面,社区试图通过区块扩容、隔离见证等一系列技术提升交易处理能力。


本文接上文,重点介绍如何利用侧链和子链提高区块链系统性能。



侧链


侧链技术原理


侧链(SideChain)的概念和实施方案源于侧链“白皮书”《用与比特币挂钩的侧链来提供区块链创新》。侧链协议本质上是一种跨区块链的解决方案,这种解决方案可以实现数字资产从第一个区块链到第二个区块链的转移,又可以在稍后的时间点从第二个区块链安全返回到第一个区块链。其中,第一个区块链通常被称为主区块链或主链,第二个区块链则被称为侧链。


放在区块链系统中来看,侧链是指与主链相平行且独立的一条区块链,它和主链之间可以通过规定的协议进行通信。侧链只在特定的时间点才会和主链进行状态同步;而在其他时间内,主链与侧链各自进行自己的工作,互不干扰。


实现侧链的技术基础是双向锚定(Two-way Peg)。通过该技术,系统可以暂时将数字资产在主链中锁定,同时将等价的数字资产在侧链中释放。同样,当等价的数字资产在侧链中被锁定时,主链的数字资产也可以被释放。主链—侧链系统中,主链与侧链双向锚定一般分为以下几个阶段。


(1)用户发送锁定交易,将需要锁定的通证锁定在主链上。该步骤一般由通证持有者操作,通过发送一个特殊交易请求,把通证锁定在区块链上。


(2)用户发送锁定请求后,系统会要求用户等待一个确认周期。确认期的作用是等待锁定交易被更多区块确认,可防止假冒锁定交易和拒绝服务攻击,典型的等待时间是1~2天。


(3)系统确认期结束后,用户将在侧链上创建一个交易,并且提供一个SPV(Simplified Payment Verification Proof)工作量证明,将对应的通证输出到用户在侧链上的地址中。该交易称为赎回交易。


(4)系统要求用户等待一个竞争期。竞争期的作用是防止交易双花。在此期间,赎回交易不会被打包到区块,新传输到侧链的通证将不能使用。而且,如果有工作量更大的工作证明出现,即该赎回交易包括主链更大难度的SPV证明,则上一个赎回交易将被替换。竞争期结束后,该赎回交易将被打包到区块中,用户可以使用他的通证。


侧链技术存在的问题也是显而易见的。为了做到实时状态同步,侧链对共识机制就有一定的要求。例如,侧链A和侧链B,链内交换比较容易,甚至侧链A和主链之间的共识都可以解决,但是侧链A和侧链B之间交易的共识机制如何解决就成了最大的问题。尤其当侧链A和侧链B是不同质的区块链系统时,该问题将变得非常棘手。进一步讲,如果整个区块链网络存在多个侧链,而且交易都发生在一个侧链到另一个侧链之间,这时同步问题就有可能成为制约系统性能的瓶颈。


闪电网络和雷电网络


比特币方面的约瑟夫·朴恩(Joseph Poon)为比特币系统做的侧链叫闪电网络。以太坊的创始人维塔利克·布特林(Vitalik Buterin)在以太坊上做的侧链被称为雷电网络。他们提高交易容量的解决方法,就是把频率高、金额小的交易甩到链外,然后在固定时间段将交易的净额更新到链上。这个方法主要用于处理本地的用户交易。


a)闪电网络


闪电网络的设计思想最早是由约瑟夫·朴恩于2015年2月在论文《比特币闪电网络:可扩展的链下即时支付》中提出,主要由两个核心概念组成,一个是RSMC(Recoverable Sequence Maturity Contract),另一个是HTLC(Hashed Time Lock Contract)。其实质上是基于多重签名地址建立微支付通道。RSMC利用多重签名地址解决了链下交易的确认问题,而HTLC则利用限时转账先冻结一笔钱,建立资金池,解决了微支付通道的问题。


那么,交易双方的每笔交易都会在链下经由双方签名认证,共同确认。当需要提现时,只需要提现方提供最新的双方签名资金分配方案,将交易结果写入链上区块中,最终确认即可。

所以,只要交易双方在区块链上预先设有微支付通道(资金池),就可以实现多次、高频、双向通过轧差方式确认的微支付。当然,交易双方如果在区块链上没有直接的点对点支付通道,但只要存在一条连通双方的、由多个支付通道构成的支付路径,那么闪电网络也可以利用这条支付路径实现资金在双方之间的可靠转移。


b)雷电网络


雷电网络的原理和闪电网络一样,只是不同于闪电网络利用多重签名建立微支付通道,雷电网络的支付通道建立是通过智能合约来实现的。因为以太坊能够支持智能合约,而且能够支持更多的条件判断。



子链


1、子链技术原理


a)子链的定义


区块链2.0技术下,商业应用的落地依旧困难重重。例如,用户有一个新的想法,希望用区块链先期进行可行性实验,通常的做法是用户需要搭建一条私有链来验证,这在目前的区块链2.0技术框架下实现起来是有很大难度的。


为了解决这个难题,墨客团队率先提出了子链的概念。子链是指在母链的平台上派生出来的、具有独立功能的区块链。这个设计思路借鉴了互联网的解决方案,即在公共区块链上搭建一个逻辑区块链。该逻辑区块链被称为子链。


在互联网上搭建私人网络,通常的做法是搭建虚拟专用网络(Virtual Private Network,VPN)。简而言之,就是在互联网的基础上搭建一个虚拟的私人网络,这个网络不是物理的,而是逻辑的,基本原理就是加密。在物理的网络交换器上也有虚拟网的概念,即虚拟局域网(Virtual Local Area Network,VLAN)。


子链是一种逻辑上的划分,而不是物理上的划分。所以,通过区块链的分层架构和逻辑分片,可以在主物理链上生成多个逻辑子区块链。这些逻辑子区块链可以选择不同的共识算法。而且,不同子链里面的状态可以和主物理链里面的状态保持同步。


当然,子链是在母链的平台上派生出来的、具有独立功能的区块链,它不能单独存在,必须通过主链提供的基础设施才能运行,但可以免费获得主链的全部用户。


b)子链和侧链的区别


子链和侧链是两个不同的概念。


侧链本身是和主链平行运行的区块链系统,并且能够不依赖主链而独立运行。从本质上讲,侧链其实是存在于主链之外的独立区块链系统。侧链网络中的节点是点对点相互连接的。目前的侧链都是中心化的系统,这是因为与主链算力相比,去中心化的侧链系统的网络算力将会非常小;同时,全网用以维持侧链运行的矿工的收益,远远小于黑客攻击侧链而拿走主链锁定到侧链的通证的收益。因此,去中心化的侧链系统比较容易受到攻击,也无法解决安全性的问题。


子链的安全性就完全不同。以墨客子链为例,墨客子链需要依赖主链的基础设施才能运行。具体而言,子链之间的每一个节点之间是不能直接互相通信的,它需要以对应的下层验证节点作为通信中介进行通信。所以,如果要攻击一个单独的子链,就必须攻击整个主链,而主链有成千上万个节点并使用经过时间检验的PoW共识机制。因此,墨客子链的安全性和主链是同一个级别的。


2、以太坊子链


2017年8月,以太坊创始人维塔利克·布特林和闪电网络创始人约瑟夫·朴恩在“白皮书”《Plasma:可扩展的自主智能合约》(Plasma:Autonomous Smart Contracts)中提出了一种以太坊缩放解决方案——Plasma,涉及主区块链上的第二层智能合约。与分片类似,该方法意味着网络不必验证和广播每个合同事务。智能合约交易在子链上完成,以减少主区块链的流量。


Plasma解决方案的亮点在于其系统将子链和链上应用结合起来。而且,子链不是采取链式结构,而是采取树状结构,这样系统就可以用MapReduce架构的方式来实现区块链的功能计算。


Plasma子链由以下两个关键部分组成:


(1)将所有区块链计算重新构建为一组MapReduce函数;

(2)在现有的以太坊区块链之上建立一个使用权益证明机制进行共识验证的子链。


从概念上讲,Plasma与比特币核心开发团队的扩展解决方案隔离见证非常相似,因为它消除了智能合约中不必要的数据,并且只把梅克尔树(Merkle tree)的处理结果向公共的以太坊区块链广播。


综上所述,Plasma的核心思想在于通过减少传递给以太坊根区块链的信息量和交易规模,使以太坊区块链系统能够以更低的成本来处理智能合约和交易。


3、墨客子链


墨客子链技术是在墨客区块链的分层结构中通过建立不同的区块子链来并行处理交易的技术方式。在墨客区块链系统中,子链(上层区块链)可处理交易,拥有分片处理和存储能力,并在交易层中有使用不同共识机制的交易节点组合。进行交易时,子链可选择合适的共识机制进行验证,系统要求子链固定周期与主链(底层区块链)进行数据同步,以此保证区块链系统的一致性。具体地说,墨客子链技术具有以下几个创新点。


a)良好的系统可扩展性


墨客子链实现了区块链系统的可扩展性,提供了一种解决区块链分片的确实可行的方案。在单一的区块链上解决分片问题是非常困难的,墨客区块链采用逻辑分片的设计,有效地解决了这个难题。对于一个智能合约来讲,墨客区块链系统引入了一个智能合约即子链的概念,即当系统部署一个智能合约时,系统会将该智能合约部署成物理主链下的一个子链。


这样的好处在于,智能合约的状态只需要保存在子链内部的区块链系统中,而不需要将与智能合约相关的一些状态信息同步保存在母链上。可以想象,当应用数量达到一定规模时,每个应用都需要保存自己的信息。在墨客区块链的架构下,子链只需要保存自己智能合约内的信息,而不需要把这些信息同步到母链上,这样就大大缓解了母链承受的压力。


另外,子链通常只需要选取少量的节点,如100~200个节点。根据统计数据,它们所能达到的安全性和选取所有节点的处理是一样的,可以通过子链选取少量的节点来实现相同级别的安全性。


那么,区块链系统的可扩展性就能够通过增加子链的并行度来实现,这个并行度可以是100、1000,甚至上万,取决于所能提供服务的节点数的多少。


b)可定义的共识机制


对于区块链而言,部署完成后的共识机制是固定的。例如,比特币的共识机制是PoW,在比特币系统上部署应用时就不能选择其他共识机制。如果项目方想要用快速的PoS共识机制来实现应用落地,考虑到底层的比特币系统是固定的PoW共识机制,项目方因而只能妥协或放弃。


但是,墨客区块链的子链功能可以根据项目方的应用需求来选择不同的共识模块。考虑到不同应用的要求是不一样的,墨客区块链系统会提供一个基本的共识机制,并且支持用户自己编写共识机制。


c)快速的部署能力


墨客主链的生态环境能够快速地部署具有新功能的子链,而不需要维护单独区块链所需要的节点,以及支付吸引新的用户参与要付出的成本。这使部署子链的复杂度大大降低,只需要编写子链的共识及执行模块即可。


例如,某用户想创建一个共享空气质量监测信息的区块链,所需要的仅仅是编写一个墨客子链的共识插件及提供一个相配套的硬件,或者将传感器硬件与共识插件集成到一个硬件盒子中。一个硬件盒子对应一个SCS节点。这样,多个具备空气监测能力的SCS节点注册后构成了一个子链。在这个子链中,每个SCS节点作为矿工,通过共识来维护子链。同时,用户通过分享空气质量信息而获得系统给予的奖励。


d)丰富的子链功能库


应用构建在一个子链上是完全可行的,但子链不应仅仅当作一个应用的私有链。抽象地看,子链完全可以是一个公共服务,即带有服务性质的子链。在这种前提下,子链就可以为其他子链或去中心化应用提供特定的服务。这些服务可以是去中心化的文件存储,或者是一个随机数字生成子链,或者是一些具有专业处理能力的子链,例如,具备人工智能深度学习功能的子链。


在多样的子链服务的支撑下,系统可以构建功能非常强大的去中心化应用,甚至去中心化云服务,这样的应用将很有可能改变现在的云运营方式。


老铁们,关于侧链、子链你全部了解了吗?那么跨链技术呢?继续看下一篇吧smiley_12.png


640?wx_fmt=jpeg


 640?wx_fmt=gif

开课啦!以太坊Dapp高薪实战

10周核心学习 | 挑战高薪区块链工程师

640?wx_fmt=jpeg

推荐阅读:


猛戳"阅读原文"有惊喜哟!


老铁在看了吗??

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值