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

640?wx_fmt=gif

必读!未来月薪10万的五大利器(三)_第1张图片

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

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

责编 | 乔治

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


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


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


本文接上文,重点介绍如何利用跨链技术提高区块链系统性能。


1、跨链的缘由


目前产生数字资产的来源主要有以下几个:

(1)智能合约产生数字资产;

(2)各种私有链和联盟链产生数字资产;

(3)公有链产生数字资产。


目前各类区块链项目大多是在自己的孤岛上单独存在,而跨链(Cross-chain Atomic Exchange)技术可以把这些孤岛连接起来。因此,跨链将是区块链的下一个杀手级应用。


连接各个孤岛的桥梁就是各种数字资产兑换的交易平台。当前两个区块链数字资产之间的兑换有两种方式。一种是采用线下的方式,找到一个可信的有相反需求的其他买家,甲把A数字资产转给乙,乙把对应的B数字资产转给甲。这种方式比较低效,很难找到可信的对家,执行的风险也很大。另一种就是普遍采用的中心化交易所,用户把各自的数字资产充值到交易所,交易所在它的系统里记录每个人的余额,然后在交易所的平台上进行兑换,直到买家从交易所取出相应的数字资产。中心化交易所存在的问题是显而易见的。在监管缺失的情况下,中心化交易所可能存在内幕交易、伪造交易、资金挪用等。而且,中心化交易所很容易受到主权机构的控制。


2、Polkadot的跨链技术


Polkadot是一个可伸缩的异构多链系统,其本身被设计成不提供任何内在功能应用。


Polkadot将其他的所有区块链都定义为平行链(Parachains)。跨链交易通过中继链(Relay-Chain)技术,将原有区块链(某平行链)上的通证转入类似多重签名控制的原有区块链地址中,并对其进行暂时锁定。跨链交易结果通过中继链传递,交易结果的有效性将由中继链上的验证人投票决定。同时,中继链还引入了钓鱼人(Fishermen)角色对交易进行举报监督。其具体原理如下图所示。

必读!未来月薪10万的五大利器(三)_第2张图片

Polkadot的跨链原理


从交易协议来看,Polkadot的跨链交易和目前标准的外部交易没有区别。这些交易都会有交易发起方字段,用于辨别平行链的身份。但是,Polkadot跨链交易需支付的手续费并不像目前的比特币或以太坊系统那样,而是必须通过交易发起方平行链和交易目标方平行链的谈判逻辑来管理。其具体实现机制是通过一个简单的队列来解决,这个队列用梅克尔树来保证数据真实。这些队列在中继链上管理,允许各平行链相互决定它们的饱和度大小。如果目标方平行链达到饱和状态后,发起方平行链再向停滞的目标链发送交易,中继链就可以同步报告错误。


在Polkadot系统中,中继链的任务是把从发起方平行链的出口队列转移到目标方平行链的入口队列。已转发的交易会在中继链上被引用,而不是中继链自身的交易。


为了预防一条平行链向另一条平行链发送垃圾交易,系统规定发起方平行链发送每一个交易时,目标方平行链的入口队列不能太大。如果区块处理完后入口队列太大,那么目标方平行链会被系统判定为饱和状态,系统在接下来的几个区块里就不会再传递交易给该目标方平行链,直到该目标方平行链的入口队列降到临界值以下。


目前,Polkadot还是以以太坊为主,实现其与私链的互联,并以其他公有链网络为升级目标,最终让以太坊直接与任何链进行通信。


3、0x协议跨链技术


0x协议的诞生,是希望通过制定一系列通用的智能合约来解决ERC20标准用户通证间的互换问题。由于以太坊智能合约的存在,用户可以通过自行编写智能合约发行基于ERC20的用户通证。但是,以太坊区块链系统本身是单通证系统,与银关发行的通证1不同,通过以太坊智能合约发行的ERC20用户通证之间是无法互换的。要使不同的ERC20用户通证可以做到一对一的互换,那么系统必须对每一对交易建立一个新的智能合约,其代价将会使用于交易对的智能合约数量呈指数级增长,因而大大降低了系统的性能。


在0x协议上开发的去中心化交易平台,有制定0x协议的团队做的0xOTC项目,也有其他团队基于0x协议而开发的路印(Loopring)项目,其本质都是基于以太坊区块链系统而建立的去中心化交易平台。


多通证系统下,银关发行的A、B和C等通证是自带互换功能的。


4、COSMOS


COSMOS是一个涵盖众多独立区块链的网络,其中的每个区块链被称为空间(Zone)。COSMOS旨在解决区块链交互操作和可扩展性的问题,其区块链间通信协议(IBC)可以实现区块链的互联,支持不同区块链之间的资产转移。


空间在Tendermint Core1的支持下运行。Tendermint Core是一个类似PBFT的安全共识引擎,兼具高性能、一致性等特点,而且在严格的分叉责任制保证下,能够防止怀有恶意的参与者做出不当操作。因此,Tendermint Core的拜占庭容错共识算法非常适合用来扩展权益证明机制下的公共区块链。


COSMOS上的第一个空间叫作COSMOS中心(COSMOSHub)。COSMOS中心是一种多资产权益证明“加密货币”网络,它通过简单的管理机制来实现网络的改动与更新。此外,COSMOS中心还可以通过连接其他空间来实现扩展。


COSMOS网络的中心及各个空间可以通过区块链间通信协议进行沟通,这种协议就是针对区块链的虚拟用户数据报协议(UDP)或传输控制协议(TCP)。COSMOS网络中的通证可以安全、快速地从一个空间传递到另一个空间,两者之间无需体现汇兑流动性。相反,空间内部所有通证的转移都会通过COSMOS中心来记录。


另外,COSMOS中心会将每个空间与其他故障空间隔离开,以此避免潜在的系统安全隐患。系统要求每个用户都将新空间连接到COSMOS中心,以保证COSMOS网络今后可以兼容新的区块链技术。


Tendermint是一种能够为多台机器安全和保证数据一致性复制应用程序的软件,该软件的通用应用接口共识引擎被称为Tendermint Core。


5、墨客跨链技术


在Polkadot项目的“白皮书”里,加文·伍德(Gavin Wood)博士提到目前的各类区块链无法扩展,主要是因为现有的区块链系统无法将一致性和有效性做到很好的隔离,其根本原因在于区块链的状态转移机制和共识机制捆绑过紧。不论是采用PoW机制的比特币和以太坊,还是采用PoS机制的比特股,都存在上述问题。


墨客在系统扩展方面独创性地提出了分层机制,将状态转移和共识机制脱钩,并且引入了异步智能合约调用机制,以此来解决系统扩展性不足的问题。


对于墨客而言,通过异步调用智能合约的功能,系统可以将智能合约的执行跨过几个不同的区块;当这种功能被运用到不同的区块链上时,系统就实现了不同区块链之间的跨链功能。这是因为不同的区块链系统产生区块的时间不尽相同。以墨客和以太坊之间的跨链交易为例。如果用户在墨客上设定一个购买以太坊ERC20用户通证的合同,那么该合同可以在5秒间隔后跨出墨客当时的区块;该合同通过链外通信,等待以太坊的区块完成对应交易;再在第N+2个墨客区块完成墨客区块链上的交易。


墨客具体的跨链实现方式如下图。

必读!未来月薪10万的五大利器(三)_第3张图片

墨客的跨链通信


(1)用户甲向用户乙发起交易请求。该交易合约被制定为:甲在墨客区块链系统中从地址Am发送m个MOAC到地址Bm,乙在另一个区块链系统(如以太坊)中从地址Be发n个ETH到地址Ae。

(2)在墨客网络中,系统基于甲的交易请求创建一个哈希锁的系统定时触发交易T。甲同时会把m个MOAC发送到系统合约作为预备金,并由系统计算哈希值(T)。

(3)乙收到系统定时触发交易T后,执行以太坊网络中的交易合约,同时将哈希值(T)放入数据段。

(4)乙在以太坊的交易确认后,监控子链将以太坊的交易信息作为参数调用系统合约,解开哈希锁。

(5)系统定时触发交易将在k个区块后执行该交易。如果交易执行成功,地址Bm将获得m个MOAC;如果交易失败,系统会将所有MOAC退回给地址Am。成功与否依赖于哈希锁是否被解锁,即是否有可验证的以太坊交易及哈希值(T)标识。


值得一提的是,在墨客跨链流程中,墨客区块链通过其他区块链的确认交易信息解锁墨客交易,以实现原子操作。这一步操作对其他区块链没有新的要求,只需要交易能附加数据信息即可(现有的区块链系统大多有此功能)。因此,墨客的跨链机制可以实现与现有区块链的跨链操作,而不需要对现有区块链做相应改造,大大提高了系统的扩展性。


以上案例中的跨链交易被称为原子交易。不同于目前各种跨链中存在的第三方角色,原子交易不需要通过建立一个中间托管账户来完成交易。在合约中,用户还可以定义等待多个确认区块后再执行完成交易。而缺乏异步调用合同功能的区块链系统是无法进行跨链原子交易的。


关于区块链性能优化五大利器,老铁们有什么想说的?欢迎在留言区畅所欲言哈!


640?wx_fmt=jpeg


 640?wx_fmt=gif

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

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

640?wx_fmt=jpeg

推荐阅读:

  • 10分钟狂赚800枚比特币? 这个边玩游戏边赚钱的涂鸦少年做到了!

  • “V神给了我1000个ETH, 我用来招了两个程序员” 独立开发者做到极限就是Paul Hauner | 人物志

  • 中本聪的足球队,香吗?

  • 中国区块链职业发展现状: 30岁前不做开发; 平均薪资仅38.4万; 跳槽薪资涨三成

  • JavaScript 力压 Java 成最受欢迎编程语言,TypeScript 大涨!

  • NLP泰斗董振东老师与他的知网 | 纪念

  • 细说说傲腾与哈娜的那些事儿

  • 曝光!月薪 5 万的程序员面试题:73% 人都做错,你敢试吗?


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


老铁在看了吗??

你可能感兴趣的:(必读!未来月薪10万的五大利器(三))