区块链
什么是路印协议Loopring?
路印协议Loopring是新一代区块链资产交易协议和交易所。它采用去中心化技术,提供零风险的代币交易所模式,并允许多家交易所通过竞争,对同样的订单进行链外撮合及链上清结算。Loopring将彻底解决现有中心化交易所模式的一些固有风险。
协议设计
图 1: Loopring 协议:图中示例一个三边交易的撮合
我们用上图中的三边交易,简要讲解下采用 Loopring 协议的撮合交易过程。该过 程如下:
1. 用户甲、乙、丙分别对 Loopring 撮合智能合约(Loopring Matching Contract)授 权,授权后该合约可对用户指定代币账号做不超过一定额度的转出操作1。在上面 实例中,合约可最多从用户甲的账号转出 1000 个 A 代币,从用户乙账户转出 9 个 B 代币,从用户丙账户转出 100 个 C 代币;
2. 用户甲、乙、丙分别生成自己的订单,并用私钥对其进行数字签名。订单不再区 分买单和卖单,所有订单都被视为交换单 — 甲的订单声明:甲愿意卖出不多于 1000 个 A 代币,买到尽可能多但不少于 10 个 B 代币;如果是部分成交,那么 A 到 B 的兑换率不得低于 1000/10 = 100.0(卖出代币数量除以买入代币数量)。订 单中还可以包含其它参数,我们在章节 3.7中会对订单参数进行说明;
3. 甲、乙、丙分别将自己的订单通过适当的方式发送到一个或多个交易所;
4. 交易所收到上述三个订单,将它们分别放到三个对应的订单表(orderbook)中,并 实时通过区块链数据更新计算每个订单的状态,同时不断努力寻找能够撮合的一 组订单 — 我们后续称之为交易环路或者撮合环路。一旦确定三个订单的当前状态 可以撮合成功,且收益满足预期,即决定实施这个撮合;
5. 交易所对撮合交易签名后发送到 Loopring 撮合智能合约地址;
6. 撮合智能合约验证四方签名,之后验证三个订单(的最新状态)是否可以真正成 交。若无法成交,合约终止(交易所依然要消耗一定的油费);否则智能合约分别 计算出甲、乙、丙三方各自需要支出的金额,以及交易所该收取的费用,并且实 时将甲、乙、丙账号中的资产进行互转,并完成对交易所的费用支付 — 如下图 所示。在交易过程中,撮合智能合约还会调用 Loopring 注册智能合约(Loopring Registration Contract)来计算交易所应该给予该笔交易的费用折扣;在交易完成 前,还会调用 Loopring 统计智能合约(Loopring Stats Contract)对交易所以及 代币相关的统计数据做更新。
图 2: Loopring 协议:交易环路结算
7. 交易所监听新的区块和链下新的交易数据,并根据这些数据更新订单表,然后不 断进行新的撮合。
智能合约
Loopring 协议协议可能包含多个智能合约,包括但不限于:
撮合合约负责计算并确认交易环路中每个订单的状态,计算成交金额和成交量,对 交易进行清算转账。该合约还会与其它合约交互,是 Loopring 协议的入口合约;
订单合约负责更新订单状态以及对取消订单提供支持;
交易所注册合约负责维护和更新一系列支持 Loopring 协议的交易所,为交易所代 币抵押和预设参数默认值提供支持;
统计合约计算任何两个币种之间的成交量,成交价,以及不同交易所的贡献度等 指标,以及这些指标的某些滑动平均值。这些指标是订单发起者授权撮合的重要 参考依据,同时也可以作为某些预测市场的输入,并且为以后可能的协议拓展(比 如对条件单的支持)提供输入(Oracle)。
这里,不排除将上述合约进一步拆解或合并的可能。同时值得指出:Loopring 协议 中的智能合约是完全开放的,这意味着它们可以被任何的 dApp 直接或者间接调用。因 此整个协议即使一个完善的整体,又是个开放的,单独可用的组件的集合。
Loopring 协议适用于任何支持类 ERC20 代币发行机制和智能合约的区块链平台。 我们将选择以太坊和 EOS 部署第一个版本的 Loopring 协议。具体研发计划详见附录。 我们会继续深入研究 Loopring 协议的细节,完善概念证明的开发;同时我们将筹 建非营利性的 Loopring 基金会,通过基金会在开源社区进行众筹和代币发行。
全部0条评论
快来发表一下你的评论吧 !