引介 | R1 协议:基于以太坊的去中心化交易协议

Ajian   |     |   2553 次阅读

一. 简介

R1 协议是 ONEROOT 提出的基于以太坊的去中心化交易协议。R1 协议具有去中心化交易协议的基本特性,实现了链下订单中继、链上结算、交易记录可审计、去中心化资产托管。此外,R1 协议还实现了基于委托的链上资产结算机制和订单的链上撮合功能,为基于 R1协议的交易所带来更好的交易体验。

R1协议的链下部分由 Relayer 实现。Relayer 即订单中继,是指接入了 R1 协议的交易所,负责收集用户订单、初步撮合后提交到链上进行结算。当前,接入R1协议的 Relayer 为 ROOTREX 交易所,由 ONEROOT 团队负责实现。

二. 功能

(一)去中心化的链上资产托管

用户资产存放在智能合约中,不受任何第三方控制。即使交易所被攻击,用户资产也是安全的。用户可以通过交易所提取资产,也可以调用合约接口自行提取。

(二)基于委托授权的订单上链

不同于 0x、以德、Kyber 等协议的交易模型,即订单由用户(taker)直接提交到链上结算。R1 协议使用了新的交易模型,用户对委托订单签名,授权 Relayer 在撮合成功后提交到链上完成资产结算,以获得性能提升和更好的用户体验。

(三)订单链上撮合

R1 协议包含了对双方订单的撮合,协议会根据双方订单意图进行价格匹配,满足条件后再结算。在链下,用户将委托订单提交给 Relayer, Relayer 发现订单匹配
后,将双方订单提交到链上,由 R1 协议对双方订单意图做最终的匹配和结算。

(四)共建者计划

OneRoot 共建者计划的目标是建立适配于区块链行业的经济模型,链接生态内外的所有资源。为此,需要打造系列的基础设施,而 R1 协议正是其中最重要的一环。作为基于以太坊的去中心化交易协议,R1 允许各种 ERC20 标准的数字资产在链上自由流通,为生态内各种资源的交互奠定了基础。通过独特的机制设计 R1 协议能够将交易产生的摩擦费用反哺至共建者计划基金会,用于促进生态的良性发育。在 R1 协议的基础上,ONEROOT 团队开发包含钱包、交易接入等功能的模块化配套工具产品,方便流量主更加便捷的使用协议,从而吸引更多资源进入生态。

三. 实现方式

(一)去中心化的链上资产托管

去中心化资产托管是指用户将资产(如 ETH 和 ERC-20Token )存入 R1 智能合约后,依然保持对资产的控制权,能够自由提取,Relayer 不能随意操作用户的资产。

在资产的管理上,0x 协议采用了不同的方案:用户不需要将资产存入智能台约。该方案看似带来了一定便捷性,但是用户使用 0x 交易前还是需要授权 0x 智能合约转账 Token(不授权的情况下0x合约无法转移用户的 Token),这令便捷性大打折扣。此外,如果用户未取消订单却将资产从钱包转出,可能带来交易失效的问题。这使得 Relayer 无法很好的控制订单簿,从而令交易体验大打折扣。

ONEROOT 认为,用户虽然将资产存入了 R1 智能合约,但是依然拥有对资产的百分百控制权。只要用户没有未成交的委托订单,可以随意提取自己的资产,不受第三方限制。R1 协议的去中心化资产托管方案在保证安全性的前提下,能够提升用户的交易体验。

(二)链下订单委托

链下订单需要由 Relayer 收集订单并撮合。用户的挂单不会立即提交到链上,而是先由 Relayer 的撮合引擎进行订单匹配,找到符合条件的对手单后再提交到链上交易。这样做的好处是,用户的挂单可以立即被 Relayer 放入订单簿,避免了订单提交上链的区块等待时间,能够提供近似中心化交易所的体验。

为了防止恶意挂单,Relayer 需要限制挂单的最小额度。如 ROOTREX 交易所规定用户的挂单额度至少为 0.05 ETH。R1 协议禁止挂市价单,只支持限价单交易。因为市价单提交到链上是十分危险的,会出现恶意低价吃单问题。这样可以最大限度保障用户的利益。

为了保证用户订单的真实有效不可伪造、且具有唯一性,用户提交的订单经过了 ECDSA 数字签名, 一旦签名就不可篡改

(三)基于委托授权的订单上链

Relayer 聚集了用户的委托订单, 一旦发现可以成交的订单就提交到链上结算。将交易订单提交到链上结算的动作是由 Relayer 完成的。Relayer 必须具有 R1 协议授予的管理员权限,才可以提交交易订单。通过 ONEROOT 审核的交易所才能成为管理员。

这种方式不同于0x、以德、Kyber等协议的交易模型。在以 0x 为代表的交易模型中,订单由 Taker(吃单的方)直接提交到链上结算。这种方式的好处显而易见,不需要第三方提交交易订单到链上。但是这样会发生“并发抢单失效”的问题。并发抢单失效是指,有两个用户同时吃同个挂单的时候,其中一方会失败,导致用户 Gas 浪费。

为了防止“并发抢单失效”问题,R1 协议规定交易订单由经过授权的 Relayer 来提交。由于订单需要使用用户的私钥签名,保证了唯一性和不可伪造,因此用户的订单是安全可靠的。Relayer 能做的是找出匹配的对手订单,提交到链上结算。为了激励 Relayer 撮合链下订单, Relayer 可以获得部分交易手续费。R1 协议对手续费设置了上限,不超过订单金额的 1%,以防止过高的手续费损害用户利益。

(四)订单链上撮合

R1 协议“基于委托授权的订单上链”的机制要求:Relayer 提交到链上结算的交易订单(Maker 和 Taker 的订单)必须经过用户私钥签名。

在以 0x 为代表的交易模型中,Taker 提交的交易订单只包含了 Maker 的订单信息和自己的意愿成交数量,而在 R1 的交易模型中,Relayer 提交的交易订单包含 Maker 的订单信息和 Taker 的订单信息,如下图所示。

不同于 0x 等协议的交易模型,R1 协议接收到的是 Maker 和 Taker 的订单意图,实际能否成交、成交多少需要 R1 协议来撮合。R1 协议引入的“订单链上撮合”和“基于委托授权的链上资产结算”,保证了 Relayer 可以像中心化交易所样自动撮合订单,并且实现资产的链上结算,以达到最佳的交易体验。

(五)交易记录审计

相比中心化交易所,R1 协议公开透明,避免了暗箱操作、虚假交易、数据回滚等弊端。经过 R1 协议的每笔交易都是可查询、可追溯的,一旦交易提交到链上,它就是真实可靠且不可篡改的。此外,用户的交易、存款、提现都可以在链上追踪到,不受第三方控制,最大限度保证了交易的真实性。

附:R1 协议与其它去中心化交换协议的对比

R1 协议 0x 协议 Etherdelta Idex
资产去中心化
资产无需存取
交易可审计
订单自动撮合
撮合效率高
无抢单问题
订单数据共享
是否开源
避免 Gas 恶意竞争

作者:OneRoot 团队


你可能还会喜欢:

干货 | 运行在区块链上的交易所
观点 | 去中心化交易所——交易者的避风港
引介 | 对去中心化交易所交易活动的分析

 
0 人喜欢