Py学习  »  区块链

PalletOne:连通区块链的世界

蓝狐笔记 • 5 年前 • 220 次点击  

 (篮子里的苹果,梵高)


目前区块链世界不同的网络之间都是割裂的,每个网络有自己的共识机制,有自己的交易数据,但对于不同链上的交易,互不相通。区块链都是孤岛。

 

这样的局面,对于区块链世界的发展肯定是不利的。但,对于创造者来说,这也机会。随着不同的链越来越多,不同的网络越来越多,尤其是,后续基于不同链上的应用也越来越多,跨链的需求会越来越强。

 

在区块链的世界,不可能只有一个世界大同的账本。比特币做不到、以太坊做不到,未来的可预见的时间里,没有任何一个链能做到。目前比特币在区块链世界的资产比例已经低于50%,以太坊地址虽多,也只有3000多万。

 

几乎每天都有层出不穷的新链出来,不同的链流通的都是价值,上面还有用户、应用和生态,这些不同链之间,如何实现价值的互通,信息和功能的互通?如何实现互操作?

 

未来区块链的世界一定是相互连通的,而不是孤立的。从投资赛道的角度,蓝狐笔记一直都在关注跨链,包括之前的Cosmos、Polkadot、万维链等。

 

跨链的需求很大,也很重要,但跨链并不是简单的传输信息那么简单,如果是简单传输信息,那么通过TCP/IP这样的信息传输协议就可以搞定,但区块链本质上账本,账本记录的是价值,价值不能重复,不能双花,所有账本必须保持一致。

 

在单个账本中,为了保证账本的一致性,在传统模式下,是通过中心化记账方式来达成,比如商业银行、央行、支付机构等,都会确保账本的准确。而在去中心化的模式下,账本的安全和准确无须通过任何中心化机构即可达成,比如btc,通过PoW的挖矿机制,实现去中心化的货币发行和记账,同时能够防止双重支付。

 

为了能够实现去中心化的方式来实现安全记账,单个链记账安全实现已属不易,像比特币,需要巨大的算力来保证。跨链的资产流通,跨链的记账,就更加不容易了。因为不同链之间是异构的,有自己的记账机制、共识机制,都是分布式网络,也没有达成协议的主体,要通过传统方式来达成跨链协议几乎是不可能的。

 

因此,通过跨链方式达成记账的准确性非常不容易,而且也不容有失,所有的资产不像是信息的传输,信息传输错误、传输缺失可以重来,但资产的价值传输是不能发生错误的,资产多了或少了,都会给用户造成直接的损失。

 

虽然,跨链技术实现不容易,但它对于区块链世界来说,实在是太重要了。跨链一定会有解决的办法。

 

目前跨链的主要模式包括中继模式(Relay)和侧链模式(Sidechain)。其中,Relay中继模式,以BTC-Relay简单来说,在以太坊上部署Relay合约,第三方提交btc区块头,区块头包含btc交易数据,Relay合约则校验区块头合法性。该模式的一个主要问题之一就是第三方提交区块头会涉及到大量手续费,加入调用Relay交易无法覆盖该手续费,从成本角度,很难持续。

 

侧链模式(Sidechain)提出了双向锚定方案:为将母链代币转移为子链代币,母链代币会被发送到母链上的一个地址,且代币被锁定,该地址代币只能由侧链上的一个SPV(最小交易证明)证明来解锁。SPV包含了交易所在的区块头和交易本身的密码信息。侧链面临的问题在于SPV验证的复杂性高,且涉及到链协议的更改,甚至联合挖矿。这在落地上会面临较大困难。

 

蓝狐笔记最近关注到了PalletOne,看到它的陪审团共识机制、调停中介、不同链的适配器、通证抽象层、VM虚拟机等,看到了它的不同的特点。

 

PalletOne为区块链世界的互通而生

 

目前的区块链缺乏互操作性,PalletOne试图通过分布式跨链协议来解决区块链互通问题。Pallet是英文Protocol for Abstract-Level LedgerEcosystem缩写,简言之,是指构建抽象层账本生态系统的协议。分布式跨链协议是PalletOne达成目标的方式,它要实现一个畅通无阻的区块链世界,在这个区块链世界中,不同的链,不同的网络之前都不会有价值流通的烦恼。

 

PalletOne也试图同时解决可扩展性的问题、用户友好度问题以及应用在不同链中的迁移问题。不过,PalletOne最核心解决的问题还是跨链互通的问题。这也是蓝狐笔记对PalletOne重点关注的地方。

 

PalletOne最终来说,想成为区块链世界的“IP协议”,就像互联网时代的IP协议一样,它让互联网的上层应用不用考虑底层的物理层、数据链路层等,有了IP协议,不同的应用之间实现信息的自由流通。PalletOne也试图让不同链之间的应用可以实现价值互通、信息互通、功能互通。

 

PalletOne如何联通区块链世界?

 

要想理解PalletOne,最好从整体视角来看,下面是它的整体架构图:

 


从它的全结构图可以看到,PalletOne向我们展示了整体的技术解决思路和方案:

把智能合约跟底层区块链完全解耦,它通过陪审团共识协议、调停中介,达成共识和安全,通过适配器提供接口和库函数,最终实现跨链的价值流通。同时,PalletOne VM是智能合约编译和执行的核心工具,可以支持多平台和多语言。它还抽象定义了通证的定义集和操作集。

 

来看看PalletOne实现联通区块链世界的几个核心点:

 

1. 陪审团机制

 

首先PalletOne的陪审团(Jury)是指一组选定的智能合约验证者,负责执行和验证在PalletOne上运行的合约。而陪审员是指合约验证者,负责陪审团中的合约执行。

 

为什么需要陪审团?陪审团主要是为达成安全性和完整性目的。陪审团需要运行智能合约和管理多重签名账户。它有多名陪审员组成,陪审员需要支付保证金,陪审团达成共识的方式是BFT算法。

 

陪审团数量不作限制,一个节点可以同时参与多个陪审团。陪审团节点可对不同链进行查询和操作。陪审员可自建其他链的全节点服务器,PalletOne需要跨链时,直接连接自建的API服务,也可以调用第三方的链操作API,比如比特币的blockchain.info。

 

陪审团还有锁定模式和非锁定模式。锁定模式是说合约创建时同时创建陪审团,产生绑定关系,成员固定不变,适合短期合约。非锁定模式则是在合约创建时选定大于陪审员实际需要的陪审员池,每次合约调用,都需要从合约对应的陪审员池中,按照随机选择方式,确定陪审团,它适合不需要多签和长期的合约。

 

2. 调停中介(Mediator)

 

调停中介是PalletOne网络的核心部分,它负责网络的安全,由21个节点组成,,通过DPoS共识算法由用户选举产生。调停中介多个节点之间通过BFT达成共识。

 

调停中介对于PalletOne网络来说是运转的核心,它涉及到了几个关键部分:保证金管理、智能合约模版的部署、随机选择陪审员组建陪审团、给多签名钱包提供签名、为分布式存储中DAG单元提供见证。

 

为了保证安全,防止作恶,想要成为调停中介和陪审团的节点都需要交纳一定数量的PalletOnetoken做为保证金,支付保证金之后才能进入调停中介和陪审团候选人池。候选人池中保证金是一个固化在PalletOne内核中的智能合约,可实现保证金交付、退还及没收功能。

   

我们知道,PalletOne中的智能合约的执行是由陪审团来执行的,但PalletOne上运行的智能合约都是需要先部署合约模版的。开发者把合约模版部署到PalletOne网络上,需要由调停中介进行合约模版的验证和确认。

 

调停中介还有一个重要的任务是随机选择陪审员创建陪审团。用户发送创建合约请求,调停中介轮值节点对陪审员通过随机选择算法选出陪审员列表,把合约执行结果和签名发送到超级节点的P2P网络。所有调停中介节点对陪审员进行验证,把数据单元存储进入DAG中。

 

调停中介为跨链多签名操作提供稳定签名。一般当陪审团作出多签共识,调停中介直接相信陪审团的共识,提供自己的签名。

 

DAG单元的见证也是调停中介需要负责的工作之一。见证单元包括了交易确认单元、合约创建认证单元、合约调用认证单元。

 

3.通证抽象层

 

PalletOne通证的抽象层可以简化智能合约编写难度、复杂度,降低发生错误可能性。这对于数字资产安全来说,尤为重要。

 

PalletOne内置了通证抽象模型:全预挖通证、挖矿通证、固定面额通证、非同质化通证。

 

其中全预挖通证跟以太坊ERC20发行通证类似,用户发行时确定总额、精度、名称、缩写等,通证可一次性创建出来,不可增发。挖矿通证跟比特币类似,发行时并不预挖或不完全预挖,通证根据时间和出块高度逐步发行。

 

固定面额通证类似于现实中的法币,可以定义固定数量面额的通证,比如10元,100元等。一次性发行,不可分割。PalletOne非同质通证类似于以太坊ERC721,用来表达独一无二的事物,比如加密猫游戏的加密猫、现实中的艺术品等独一无二的事物。

 

4.DAG分布式存储

 

PalletOne使用了DAG有向无环图作为分布式存储。DAG相对于链式存储,交易可以实时并行写入全账本,交易确认速度快。同时,通过确定主链,各交易达到有序状态,解决双花问题。由于DAG的交易之间是通过彼此引用的关系来确认,随着参与节点越多,交易量越多,交易确认的速度不仅没有变慢,而且更快。这些都是比传统区块链的链式存储更有优势的地方。

 

PalletOne会存储交易信息、合约ID、合约代码、合约状态、合约对应的陪审员列表、陪审团在执行合约过程中处理的状态信息。

 

5.适配器

 

适配器(Adapter)是PalletOne跟不同链交互用的沟通媒介。针对不同的链做对应的接口,供PalletOne合约进行调用。

 

PalletOne的适配器将操作定义了四个阶段:准备、验证、支付、终止。准备阶段主要是创建相应准备工作,不同链不一样。比如比特币是创建多签地址;以太坊是部署合约。验证阶段需要PalletOne合约与适配器互操作双方的验证机制。比特币是做多重签名;以太坊是为合约验证函数调用及公证人验证/投票。支付阶段是完成验证后,请求支付方调用合约时在检查合约逻辑后依照合约结果去输出完成支付的请求。终止阶段表示合约完成或无法达成后终止。

 

比如比特币的适配器,大概的步骤:要创建多签地址的创建方收集多方的公钥后产生一个多签地址,资金转入多签地址;PalletOne合约运行结果决定握有私钥的陪审员是否执行签名动作;PalletOne合约判定需要支付,签名交易返回主陪审员,广播交易信息,完成支付。

 

6.跟不同模块的交互

 

PalletOne跟智能合约VM、分布式存储、区块链适配器都有交互。

 

PalletOne定义了虚拟机操作的接口,对虚拟机层来说只需实现该接口,对内核来说也无需关心用什么方式实现的虚拟机,方便支持更多的虚拟机实现。内核为虚拟机运行提供跨链访问接口,接口调用传给适配器,由适配器执行。

 

PalletOne也定义了分布式存储操作的抽象接口,内核也是通过接口来操作分布式存储中的数据,不用关心具体实现。PalletOne不仅可以支持DAG,未来也可以支持IPFS或其他分布式数据库,支持常用的交易数据操作和合约状态及通证UTXO查询等。

 

PalletOne针对不同区块链特性,设计了三种操作接口,包括数字货币适配接口、基于UTXO模型的适配器接口、智能合约适配器接口。比如智能合约适配器在通用抽象适配器接口的基础上提出合约相关的接口函数,包括了合约的部署、初始化、调用、销毁。智能合约通过SDK提供接口,实现跨链操作。

 

了解了以上几个关键点之后, 我们可以看看PalletOne的服务。在PalletOne,服务都是通过合约来创建。这里涉及到了合约部署、调用、查询和终止。

 

PalletOne上的合约创建必须基于模版进行,如没有合约模版,需要先创建对应的模版。如果合约发行人希望部署合约,一般有四步:一是合约发行人将合约模版代码的哈希值和合约初始参数发送给调停中介(Mediator)。二是调停中介根据合约参数从候选陪审员中通过随机算法选择陪审员,形成陪审员列表。三是陪审员组成合约的陪审团。调停中介把初始参数发送给陪审团,陪审团从分布式存储中提取相应的合约模版代码。最后是陪审团成员收到初始化参数和合约模版代码后形成新合约,独立进行验证和执行。此后,合约状态、合约ID以及指定的陪审员列表会保存在分布式存储中。合约分为锁定陪审团和不锁定陪审团两种情况。

 

一旦合约部署,合约就可以被参与者调用。调用者根据合约ID进行查询,从分布式存储中返回合约执行文件。如果是锁定陪审团,则同时返回负责执行合约的陪审员列表;如不是,则由调停中介选出新的陪审团。陪审员们收到合约执行请求,各自独立执行合约,在正常情况下,大家的执行结果一致,合同状态转入下一个。如果是跨链交易被触发,陪审团成员根据合约的选择在相应的区块链上签署一个交易。

 

除了合约部署和调用之外,用户还可以调用合约的查询接口,查询合约的状态。合约执行完毕之后,合约发行人可以申请终止合约。具体来说,首先是合约发行人向调停中介提出申请终止。然后调停中介根据合约ID查询并获取合约对应的陪审员成员列表。如果陪审团是非锁定模式,调停中介需要重新选出陪审团。调停中介向陪审团发送终止合约指令。陪审团根据合约ID获取合约的执行文件、合约状态等信息,然后检查合约的终止条件,如果满足,则执行合约的终止逻辑。最后将终止状态记录到分布式存储中,同时把消息返回给调停中介。调停中介验证合约的终止状态,验证通过后解散陪审团。

 

7.通证经济保证网络安全

 

最后是PalletOne通证经济模式。PalletOne通证经济主要是为了保证网络的正常安全运行。陪审员通过执行合约可以获得token的奖励。但为了保证系统安全,陪审员也需要支付保证金来防止其欺诈行为。

 

保证金数额根据合约价值、陪审团成员数、陪审员信用度、合约设计等来确定。要成为陪审员需要有比较好的主机环境和网络环境,这样能够保证高效快速执行合约。多次共识失败,比如陪审员出现通讯超时或离线情况,陪审员会被处罚保证金并移除陪审员资格。

 

除了执行智能合约获得交易费之外,陪审员还会得到由调停中介基于智能合约给予的PalletOne 通证奖励,每年的共识奖励产生的token上限会基于通胀因子进行确定。

 

PalletOne跨链技术架构的特色

 

从PalletOne的技术架构中,我们可以看到一个相对宏观的跨链互通的架构。它有几个突出的特点:

 

1. 从通用的角度来考虑问题

 

PalletOne是要成为区块链世界的“IP协议”,可以让价值在不同的区块链中自由流通。在互联网时代,有IP协议,可以让上层的互联网应用获得了方便的发展,而不用考虑物理层、数据链路层的技术演化。这对于整个互联网的发展起到了极其重大的作用。

 

PalletOne也有同样的理想,它试图让基于区块链的去中心化应用可以在各种不同链上部署,不用考虑底层链的限制。

 

PalletOne也在设计中,处处从这个角度考虑问题,比如抽象出通证的抽象模型,让用户可以快速创建属于自己的通证。

 

正是这样的设计,可以让PalletOne智能合约支持多链,通过陪审团共识、适配器等,PalletOne智能合约可以现实在不同区块链上运行。用户在不同的区块链上调用PalletOne智能合约进行通证交易。

 

不仅仅支持多链,还支持多任务多语言多平台。不同的智能合约由不同的陪审团以多任务方式执行,减少网络拥堵。PalletOne还支持主流的开发语言(Java、C++、JS等)。PalleOne VM和底层操作系统完全解耦,它的智能合约适用于Windows、Linux、Mac等多平台。

 

2. 考虑解决扩展性瓶颈

 

比特币和以太坊的区块链受制于串行存储和串行计算模式、PoW共识算法等,很难解决扩展性问题,PalletOne采用DAG存储模式,通过并行写入解决数据存储瓶颈。同时,PalletOne采用了陪审团和调停中介的共识机制,提高了确认速度。这些解决方案让PalletOne有机会形成高性能的分布式账本。

 

3. 从生态角度考虑问题

 

PalletOne要最终形成一个生态,需要考虑开发者、用户、矿工的利益。

 

在PalletOne上面,我们从它的技术架构上看,它为智能合约提供了主流开发语言的支持,这样开发者的进入门槛就变得低了,不用专门学习新的合约开发语言。这样的设计,可以让更多开发者顺利进入区块链的世界。

 

此外,PalletOne有一个合约商店,开发者开发的智能合约都可以在商店中进行售卖,开发者可以对智能合约自由定价,而用户通过支付费用获得合约使用权。

 

开发者是PalletOne生态的重要参与者,通过降低开发门槛和提供合约交易市场,可以极大促进开发者的积极性。

 

从用户的角度,PalletOne上有各种智能合约,可以购买开发者提供的智能合约满足自己的各种需求,比如代币交易等。

 

而矿工们,通过成为陪审员,为智能合约运行提供基础服务,也可以获得交易手续费和奖励。另外,PalletOne采用了DPoS共识和陪审团共识,无需进行激烈的矿机和能源竞争。

 

结语

 

随着区块链越来越多,区块链之间价值、信息、功能都需要互通,这是一个区块链世界非常重要的需求和发展趋势。谁能率先落地解决这个问题,谁就有机会成为区块链世界的举足轻重的项目。

 

PalletOne是跨链协议,它通过抽象接口,在适配器层中为不同的链提供接口的实现和库函数,智能合约面向抽象接口,而不是面向具体的链,实现智能合约跟区块链底层的解耦。这样,通过PalletOne适配层即实现与不同区块链的信息和价值的交互,与此同时,还不用改变底层区块链。

 

PalletOne还关注高性能和通用性。它有陪审团机制、DAG数据存储、调停中介见证人机制,可以让它具备并行处理能力,在保证安全同时,有更好的扩展性。

 

开发者开发的去中心化应用要大规模走向主流人群,他们应该优先考虑用户的需求,用户的使用场景,而不是底层的技术,不是不同的链之间的割裂问题。通过PalletOne可以让应用同时运行在多个链上,满足跨链价值交互需求。

 

PalletOne致力于实现不同链的网络之间信息、价值、功能互通,形成一个真正“链网”。PalletOne可以支持不同链之间的跨链支付,比如比特币网络的用户要购买以太坊游戏应用上的道具,不用通过交易所进行代币的兑换,而是可以直接使用PalletOne跨链功能用比特币实现快速支付,可以极大简化操作流程。用户在PalletOne上开发部署的DApp,可以支持各种通证,包括btc、eth或其他。

 

PalletOne如能落地,可以实现跨链交互,成为区块链世界的“IP协议”,又能解决性能等问题,那么,它会对区块链世界产生重要的影响。不同链之间的价值、信息、功能的互通所释放出来的能量一定是巨大的,期待爆发的那一天尽快到来!



------

风险警示:蓝狐所有文章都不构成投资推荐,投资有风险,建议对项目进行深入考察,慎重做好自己的投资决策。


想要深入了解区块链,长按下面二维码关注“蓝狐笔记”区块链公众号:lanhubiji 或加入知识星球:https://t.zsxq.com/iaQNnIq


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/LGAZbNLfvS
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/21040
 
220 次点击