美文网首页区块链研习社简书三体组织区块链实践专题
【跨链实力派PalletOne】PalletOne打造高性能跨链

【跨链实力派PalletOne】PalletOne打造高性能跨链

作者: 晚夜星辰 | 来源:发表于2019-07-31 16:30 被阅读37次

      我见到PalletOne时,第一反应就把名字拆成两个单词“Pallet”和“One”,其中Pallet可翻译为调色板。由于PalletOne是一种跨链平台,所以猜测可能把不同的公链类比为各种颜色,而这个PalletOne可能是指Pallet In One,将所有公链调和在一起,提供一个统一的抽象。

    猜测归猜测,技术实现还是要看看白皮书和黄皮书的,其中黄皮书中的关于技术的内容最为详尽,可能是广大程序员所喜欢的。

1、PalletOne的高性能架构

    2018年被称为公链元年,这一年有很多公链上线,但是公链与公链之间无法做到交互,只能在各自的领域内开发和使用通证。为了促进公链之间的交流,跨链技术应运而生,跨链技术可以将各个公链连接起来,从而实现价值的流转。

    PalletOne就是在这种背景下诞生的,PalletOne旨在构件区块链世界的IP协议,通过为各种公链提供不同的适配器,从而将不同的公链抽象为统一的接口,从而提供支持多种编程语言的智能合约运行环境,将底层公链和智能合约完全解耦,实现跨链的图灵完备的智能合约通用区块链平台。

    PalletOne不仅是要简单的实现跨链的图灵完备的智能合约通用区块链平台,更要打造高性能的跨链平台。为了提高跨链性能,PalletOne采用了哪些方法呢?主要可以分为下图所示的四个部分。

2、PalletOne虚拟机

    虚拟机的概念由来已久,虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的,最常见的用处就是为用户屏蔽底层硬件细节,向上层提供统一的抽象接口。

    PalletOne虚拟机也有同样的功能,只不过PalletOne虚拟机屏蔽的是底层公链的各种实现细节和不通的实现接口,通过为不通编程语言提供不通的SDK,进而使得合约开发人员可以选择自己擅长的编程语言编写跨链的区块链应用,而不需要关心区块链底层的细节,进而使同一个应用可以同时在多个链上运行。

    PalletOne 支持图灵完备的智能合约,该项目并没有开发一套独立的编程语言,而是采用世界上最流行的编程语言(比如:Java、C/C++、JS 等)作为智能合约的开发语言,PalletOne的虚拟机为不同的语言提供了主机安全的沙盒环境,以执行智能合约,这大大降低了智能合约开发人员的学习曲线和开发难度,使得开发人员可以使用自己最熟悉的语言进行智能合约的开发。

3、PalletOne内核

    为了向上层的虚拟机提供高性能支撑,PalletOne采用四大核心技术来完成对于底层公链复杂细节的屏蔽:Token抽象、P2P网络通信、陪审团共识和调停中介。

    调停中介(Mediator)负责PalletOne网络的整体安全,是整个网络的核心,可以类比成EOS的超级节点,Mediator需要保证所有的决定都是正确的可信的。Mediator使用代理权益证明(Delegated Proof of Stake,DPoS)来选举产生,而在Mediator内部多个节点之间采用拜占庭容错共识。为了防止Mediator成为PalletOne的瓶颈,PalletOne提出了陪审团机制,大部分工作由陪审团来完成。

    陪审团(Jury)是维护PalletOne安全性和完整性的基础单位,是运行智能合约和管理多重签名账户的实体。为了实现安全和去中心化的设计,陪审团被设计为由众多参与者组成,这些参与者被称为陪审员。每位陪审员支付保证金以担保信用,陪审团内部采用VRF+BFT共识的算法来达成共识。

    P2P网络是PalletOne的硬件基础设施,其中由矿工节点和用户节点两种类型的节点通过P2P网络相互连接而成。矿工节点指缴纳保证金后,加入了候选陪审员列表的节点,这种节点又可进一步分为Mediator节点和Jury节点。矿工节点都是全节点,保留了全部的账本数据,需要运行合约,能够完成共识等操作。矿工节点必须保证长时间在线和良好的硬件和网络环境。而用户节点是浏览和发起交易的终端节点,用户节点不需要保证全账本,允许更长时间的延迟,可以随时加入和离开。

    Token抽象是PalletOne的特色之一,其中通证的发行类似于彩色币的原理,发行的通证与PalletOne Token在同一个层次,用户可以像操作PalletOne Token 一样操作其他通证。在分布式数据存储中,通证数据与合约的状态数据是隔离存储的,而不是像以太坊那样简单的将通证数据作为状态数据来进行存储。

4、公链适配器

    适配器(Adapter)是PalletOne与不同的公链交互的媒介,需要为不通的链设计不通类型的适配器,需要针对不同链的接口规范,设计相关的封装程序,从而实现统一接口的PalletOne的合约调用。合约调用一般分为以下四个阶段:

    ​(1)准备阶段:该阶段用于创建对应的公链所需的准备工作。在比特币的适配器中,该阶段主要是创建多签地址,而在以太坊适配器中,该阶段主要是部署智能合约。

    (2)校验阶段:该阶段是双方混合校验阶段,需要PalletOne合约与适配器接口的公链以互操作的形式,实现双方的验证机制。在比特币的适配器中,该阶段主要是做多重签名,而在以太坊适配器中,该阶段主要是合约验证函数调用。

    (3)支付阶段:该阶段是适配器上下双方对应链的输出阶段,校验完成以后,请求支付方调用合约时去检查合约逻辑,并依照合约结果完成支付请求。

    (4)终止阶段:该阶段表示合约已经完成或是双方无法达成协议后失效时调用,在以太坊适配器中,该阶段主要是调用终止合约。

5、分布式存储

    PalletOne为了打造高性能的底层存储,采用了有向无环图(Directed Acyclic Graph,DAG)的形式对数据进行存储。在DAG中所有数据并不打包成区块链,而是将每个用户的数据打包成数据单元,数据单元可以包含很多内容,比如交易、消息等。数据单元间通过引用关系链接起来由此构成DAG图。

DAG的特点是将数据单元的写入操作异步化,从而使得大量节点在写入数据的过程中,避免了同步操作,因此可以自主地把交易数据写入DAG,保持良好的高性能。

    传统的区块链里,所有交易都需要加入交易池中,矿工从交易池中挑选交易,并根据共识算法打包为区块,最后放到链中。这相当于进行全网的同步操作,无法并行完成,PalletOne通过DAG形式的数据单元链接,有效解决了传统区块链中只有一条主链,无法并行执行的问题。从而具有不可逆性、可追溯性和并行处理等特点,能够有效降低交易成本,实现具有更强表达力的智能合约,具有更加广泛的应用场景,具有更强的安全性和隐私保护特性。

6、写在最后

    PalletOne旨在构件区块链世界的类似于传统互联网IP协议的一种轻量级高性能跨链协议。通过统一抽象不同区块链的接口,为应用开发者提供多种编程语言支持的SDK。通过PalletOne虚拟机、PalletOne内核、公链适配器和分布式存储等核心技术实现对于智能合约的高性能支撑。

    在PalletOne中底层区块链公链、合约开发语言和智能合约执行平台都是解耦合的,允许用户使用各自擅长的开发语言,依据PalletOne的虚拟机规范,开发的智能合约将可以在不同的公链上部署运行,从而使基于智能合约的应用突破底层公链的限制,达到一次开发,多链部署的效果。

相关文章

网友评论

    本文标题:【跨链实力派PalletOne】PalletOne打造高性能跨链

    本文链接:https://www.haomeiwen.com/subject/agetdctx.html