风险提示:理性看待区块链,提高风险意识!
R1协议(R1 protocol):基于以太坊的去中心化交易协议
首页 > 币界资讯 > 竞争币新闻 2019-02-27 20:17:19

R1协议是ONEROOT提出的基于以太坊的去中心化交易协议。R1协议具有去中心化交易协议的基本特性,实现了链下订单中继、链上结算、交易记录可审计、去中心化资产托管。此外,R1协议还实现了基于委托的链上资产结算机制和订单的链上撮合功能,为基于R1协议的交易所带来更好的交易体验。R1协议的链下部分由Relayer实现。Relayer即订单中继,是指接入了R1协议的交易所,负责收集用户订单、初步撮合后提交到链上进行结算。当前,接入R1协议的Relayer为ROOTREX交易所,由ONEROOT团队负责实现。

优势

去中心化的链上资产托管用户资产存放在智能合约中,不受任何第三方控制。即使交易所被攻击,用户资产也是安全的。用户可以通过交易所提取资产,也可以调用合约接口自行提取。基于委托授权的订单上链不同于0x、以德、kyber等协议的交易模型,即订单由用户(taker)直接提交到链上结算。R1协议使用了新的交易模型,用户对委托订单签名,授权Relayer在撮合成功后提交到链上完成资产结算,以获得性能提升和更好的用户体验。订单链上撮合R1协议包含了对双方订单的撮合,协议会根据双方订单意图进行价格匹配,满足条件后再结算。在链下,用户将委托订单提交给Relayer,Relayer发现订单匹配后,将双方订单提交到链上,由R1协议对双方订单意图做最终的匹配和结算。

oneroot项目

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

如何工作

去中心化资产托管去中心化资产托管是指用户将资产(如ETH和ERC-20 Token)存入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协议

1. 架构

R1协议的架构包含三部分。作为去中心化的媒介,R1智能合约部署在以太坊区块链上,可以存储用户的资产、交易记录,达到资产去中心化、交易记录可审计的目标。Relayer是订单中继系统,与R1智能合约交互,主要负责订单撮合与提交上链。Relayer对外提供OpenAPI,允许第三方交易所提交订单到撮合引擎。第三方交易所的主要职责是收集用户的订单数据,并将签名后的订单提交给Relayer。通过R1协议,不同交易所可以成为分布式商业系统的一部分,共享订单数据和流动性,为用户带来更好的交易深度和体验。2. 订单交易

2.1订单交易流程订单交易处理流程描述了从用户提交订单开始,到Relayer报合订单,再到将交易数据提交到区块链上的过程。如图所示:

1. 用户输人订单信息。用户以一定价格和数量买入或者卖出token, 客户端将数据转换成约定的订单数据格式。2.用户使用私钥对订单签名。私钥由用户保管,任何交易所以及Relayer不存储用户的私钥。放入后台订单池。签名完成后,客户端将订单信息发送给Relayer, Relayer对订单信 息进行合法性校验后,放入订单池进行撮合。3.后台撮合成功。Relayer的撮合引擎对来自不同交易所的所有订单进行统一撮合。4.后台提交到链上交易。撮合成功后,Relayer会将匹配的两个订单信息及交易额提交到区块链上进行最终的结算。以上为订单交易的基本流程,下面详细说明每个过程的技术细节,包含:· 订单的数据格式;· 订单签名算法;· Relayer职责;· 链上结算逻辑。2.2 订单订单数据格式在交易所中,用户的订单信息体现为:交易对+交易价格+交易数量。而在R1智能合约中,订单的数据格式如下:tokenBuy + amountBuy + tokenSell + amountSell + base Token + expires + nonce + fee Token参数说明如下:·tokenBuy:用户希望购买的token合约地址·amountBuy:用户希 望购买的token数量·tokensell:用希望卖出的token合约地址·amountSel:用户希望卖出的token数量·baseToken:交 易对锚定的基础token。默认填0,表示对ETH的交易对。如果是对RNT的交易对,此处填RNT的合约地址· expires:订单过期区块数。默认设置一个比较大的值,表示永不过期· nonce:随机数。用来保证订单唯一性,目前的方案是nonce值为时间截· feeToken:手续费支付方式。如果为0,按传统方法支付,即手续费从用户获得的token中扣除。如果为token合约地址,则使用该种Token支付手续费,前提是用户存入了该token到R1智能合约中订单签名为了让用户的订单能够在网络中安全的传播并且不被篡改,需要用户的私钥对订单数据进行签名。订单数据的签名过程为:

其中· (v,r,s)签名后的数据· m:签名前的原始订单数据· m = tokenBuy + amountBuy + tokenSell + amountSell + base Token + expires + nonce + fee Token,· key :用户的私钥· KEC :哈希函数,采用kecaak256算法对订单数据进行Hash· SECP :签名函数。采用椭圆曲线算法secp256k1进行签名客户端将订单数据签名完成后,会将订单原始数据、订单哈希值和订单签名一-起发 生到Relayer。Relayer会对这些数据进行合法性校验,主要校验订单哈希值是否一致、订单签名是否正确,以防止订单数据被篡改。需要强调的一一点是,对于Relayer来说,在接收到用户的订单信息之前,无法知道这个用户是maker还是taker。Relayer会 根据订单信息到达的时间先后和当前订单池的数据,来决定这个用户是taker还是maker。如果订单池中有对应的订单匹配价格,则最新提交订单的用户成为taker,另一方则成为maker。所以,每个用户提交的订单都应该包含订单原始数据、订单哈希值和订单签名,对于Relayer来说每 个用户都是对等的。2.3 Relayer撮合Relayer主要负责订单撮合、钱包余额维护、提交上链等。Relayer内部各系统组成如下图所示:

· OpenAPI: Relayer对外提供API, 第三方可以通过OpenAPI提交订单、查询交易状态、订单深度以及钱包余额· Valiator:对订单数据合法性进行校验,对账户余额进行校验· AccountSystem: 负责维护钱包余额· BlockSyncing: 负责区块信息同步,同步区块链余额信息等· MatchingEngine: 撮合引擎,负责撮合订单· MessageQueue: 消息系统。负责系统间通信· Store: 存储模块。负责存储信息,临时数据缓存等。Relayer处理逻辑Relayer收到订单数据后的内部处理流程如下:1. 对订单数据进行校验。 这里主要校验订单的哈希值是否匹配,防止订单数据被篡改;校验用户签名是否正确,保证订单数据确实由某个拥有正确私钥的账号发起;校验余额是否充足;这里任何一步交 易不通过都会引发订单提交的失败2. 订单撮合。订单数据校验成功后,订单被放入撮合引擎进行撮合,同时订单数据记录到数据库中。撮合引擎会根据订单提交时间和价格高低来匹配订单,一旦撮合成功,会标记订单成交。并且会将匹配的两个订单放入消息队列,等待提交到链上结算。3. 提交上链。提交到链上结算调用合约的batchTrade或trade方法,并且只有admin账号进行提交。admin账号是由合约owner设置的账号,有权限调用trade方法。为了提高并发,Relayer可以用多个admin账号调用trade方法gasPrice为了保证公平的交易,Relayer调用trade方法时设置的gasPrice对每 个用户来说都是统- -的。以太坊的gasPrice会由于网络的拥堵情况不同而有所差距,使用的人越多,网络越拥堵,gasPrice的费用越高。为了让交易能够尽快在链上被矿工打包,Relayer会根据当前网络情况调整gasPrice。交易手续费由于调用trade方法的是admin账号,因此gas费用是从admin账号中扣除的。Relayer 需要保证admin账号有足够的ETH额度,否则可能由于额度不足以支付gas费用而无法提交上链。这笔gas费用会由admin事先垫付,但是最终还是需要由交易双方来共同承担。目前的做法是maker和taker各承担gas费用的50%。所以,用户的手续费包含两部分:交易额的0.1%+gas费用的50%。Relayer会 根据这个原则算出需要扣除的token数量,传入trade方法作为参数,trade方法会扣除相应的费用。对于用户来说,用户实际得到的token数量会比交易计算得到的数量少-一些, 少的部分即为扣除的费用。2.4 链上结算链上结算的逻辑主要在R1智能合约的trade方法中实现。trade方法主要对maker 和taker的订单进行校验,以及做资产的链上交割。以下说明trade方法的具体实现细节输入参数trade方法的输入参数包含以下几部分:1. maker的订单数据(见订单数据格式一节说明)2. taker的订单数据(见订单数据格式一节说明)3 maker的签名信息(u,r,s)4 taker的签名信息(u,r,s)5 交易额Relayer根据撮合结果设置本次交易额)6 maker和taker的应收手续费 (由Relayer设置)7 接收手续费的账号 (由Relayer设置)其中1、2、3、4这四部分的信息由用户提供,其他人都不可篡改;而5、6、7三项数据由Relayer设置,输入参数校验在进行最终的资产交割前,需要校验输入的参数是否合法,以保证交易能够按照用户的意图进行成交。需要校验的步骤包含:· 必须是admin账号调用trade方法· feeAccount (手续费接收账号)必须合法。也就是说feeAccount必须是合约owner授权过的· 交易双方的订单必须是同一交易对。合约中的代码片段:

其中:x1 =makerOrder amountSell,X2 =takerOrder amountSell,V1 =makerOrder amountBuy,y 2 =takerOrder amountBuy合约中代码片段如下:

· 余额充足。需要保证订单交易的时候有足够的额度,不会超过用户希望交易的额度,以上所有条件校验通过,才能进行最终的资产交割。交割成功,该笔交易会完整的记录在区块链上。3. 充值与提现R1协议的充值提现与中心化交易所的流程基本一致,不同的是使用R1协议的用户将资金存入智能合约中,不受任何第三方控制,即使交易所被黑客攻击,用户的资金也是安全的,做到了资产的去中心化。需要注意的是,只有私钥的所有者才能操作转入R1智能合约的资产,用户需要妥善保管自己的私钥。3.1充值R1智能合约中用户通过两个方法进行充值:· deposit ()· dcpositTokcndeposit方法允许用户将eth充入R1智能合约中。该方法会在区块链上登记用户的资产余额,同时抛出一个Deposit充值事件; Relayer通过监听该事件感知用户的充值。depositToken方法允许用户将token充入R1智能合约中。与充值eth的不同之处在于,根据ERC-20 Token的标准,用户充值前需要调用tcken合约的approve 方法,授权R1智能合约转账token。只有完成这一步操作, 月户/能成功将token充入智能合约中。为了减少arprove操作次数,接入R1协议的交易所可以在用户第次充值token时让用户 授权个比较大的额度。这样,用户再次充值该token时,不需要进行额外的approve换作,消耗gas费用。3.2 提现用户可以随时取出自己的资金,不需要人工审核。R1智能合约的月户提现有以下几科方法:· adminWithdraw· withdraw· withdrawNoLimitadminWithdraw是比较常用的提现方法。它的原理是,用户将提现的操作委托给Relayer,Rclayer根据用户的提现请求调用R1合约的adminWithdraw ,将资金转账给用广的钱包。由于提现请水需要用户的私钥签名,任何第三方(包括Relayer )都不能篡改用户的数据,保证了提现的安全可靠。该方法的意义在于,提现请求最先由Relayer感知,Ralayer可以快速及时的更新订单池,提供更好的交易体验。withdraw适用于懂得如何调用智能合约的用户。如果用户不希望将提现数据委托给Relayer,那么他可以选择调用合约的withdraw方法。但是在调用该方法前,用户需要经历一个两阶段提现的过程。即用户需要先调用applyWithdraw方法申请提现,在满足以下两个条件的情况下,用户才能调用withdraw方法成功提现。这两个条件是:1. Relayer调用了approveWithdraw 方法,同意用户的提现请求,2. 申请超过了一定的等待期后;等待期由合约的owner设置,当前设置的等待期为7天。合约owner会视不同情况调整等待期,如1天甚至1小时,但不能超过7天。withdrawNoLimit允许用户方便的提现。只需要调用该方法即可提现,前提是合约的owner开启该方法的开关。一般情况下该方法是关闭的,只有在特殊情况如Relayer由于某些原因不能及时响应用户的提现申请时,该方法才会打开,方便用户提现。4. R1合约的治理作为以太坊区块链上的一份智能合约,R1 由ONEROOT团队创建并部署,即RI智能合约的owner为ONEROOT团队。为了保证R1协议安全稳定的运行,RI 智能合约的owner拥有一一些特殊的权限,包含:· 设置admin管理员账号。admin账号负责调用trade、 adminWithdraw、 approveWithdraw等方法,保证Relayer维持正常的交易功能。· 设置手续费账号。只有经过授权的账号才能接受用户支付的手续费。· 调整提现等待时间。R1 智能合约的owner可以根据情况调整提现等待时间,方便用户提现。· 开启便挑提现开关。在特殊情况下,如Relayer无法提供提现服务时,R1合约的owner需要开启该开关,方便用户快速地提现。adminWithdraw是比较常用的提现方法。它的原理是,用户将提现的操作委托给Relayer,Relayer根据用户的提现请求调用R1合约的adminWithdraw ,将资金转账给用户的钱包。由于提现请求需要用户的私钥签名,任何第三方(包括Relayer )都不能篡改用户的数据,保证了提现的安全可靠。该方法的意义在于,提现请求最先由Relayer感知,Relayer可以快速及时地更新订单池,提供更好的交易体验。关于更多

R1协议

信息:https://www.r1protocol.com/

风险提示:区块链投资具有极大的风险,项目披露可能不完整或有欺骗。请在尝试投资前确定自己承受以上风险的能力。区块网只做项目介绍,项目真假和价值并未做任何审核!

上一篇: Tchain高性能去中心化商业操作系统
下一篇: 哈希未来(HashFuture):下一代数字资产区块链平台
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥267,916.95
37,538.63 USDT
+5.68%
ETH以太坊
¥14,653.39
2,053.13 USDT
+4.22%
USDT泰达币
¥7.24
1.01 USDT
+0.2%
BNB币安币
¥1,805.75
253.01 USDT
+3.56%
XRP瑞波币
¥4.61
0.64620 USDT
+3.1%
SOLSolana
¥473.69
66.37 USDT
+16.8%
USDC
¥7.14
0.99980 USDT
-0.02%
OKBOK币
¥425.96
59.68 USDT
+2.6%
ADA艾达币
¥2.72
0.38160 USDT
+7.74%
DOGE狗狗币
¥0.54850
0.07686 USDT
+5.81%
热搜币种
更多
币种
价格
24H涨跌幅
dYdX
¥30.23
4.1719 USDT
+10.27%
Filecoin
¥38.66
5.3346 USDT
+10.62%
FTX Token
¥26.76
3.6921 USDT
+2.5%
PancakeSwap
¥19.44
2.6829 USDT
+5.84%
Solana
¥480.98
66.371 USDT
+16.8%
奇亚
¥197.66
27.2758 USDT
+3.32%
Yield Guild Games
¥3.08
0.4246 USDT
+4.43%
Conflux
¥1.24
0.1711 USDT
+7.47%
火必积分
¥21.87
3.0173 USDT
+5.06%
Terra Classic
¥0.00
8.293E-5 USDT
+3.33%
阿童木
¥71.74
9.8992 USDT
+9.92%
比特币
¥272,034.94
37538.63 USDT
+5.68%
最新快讯
更多
币安合约将于12月15日停用WebSocket旧域名
2023-11-16 12:05:45
金色午报|11月16日午间重要动态一览
2023-11-16 12:00:55
SoraVentures联创:台湾对任何交易所都没有任何限制
2023-11-16 11:57:40
SoraVentures联创:如果在香港或新加坡运营加密货币基金,投资或言论会受到限制
2023-11-16 11:57:40
SoraVentures联创:如果在香港或新加坡运营加密货币基金,那么的投资或言论会受到限制
2023-11-16 11:57:40
SoraVentures联创:如果在香港或新加坡获得法律许可,那么的投资或言论就会受到很多限制
2023-11-16 11:57:40
比特币网络常规交易手续费升至186sats/字节
2023-11-16 11:56:15
下载币界网APP