主页 > 怎么把imtoken转到平台 > 0x:基于以太坊区块链的去中心化交易协议

0x:基于以太坊区块链的去中心化交易协议

怎么把imtoken转到平台 2023-06-27 08:25:27

转自Blue Fox Notes 0x:基于以太坊区块链的去中心化交易协议,仅供自学

1.什么是0x

0X 是一种基于以太坊区块链的去中心化交易的开源协议。该协议是通过以太坊的智能合约创建的,它的伟大之处在于它允许任何人打开和运行去中心化交易所。

也就是说,如果你想组织一个团队来运营一个去中心化交易所,你可以用0x协议来做,大大降低了运营数字资产和代币交易所的难度。

现在每天的数字资产交易量达到数十亿美元,其中交易所佣金收入达到数百万,随着未来数以千计的数字资产上线,尤其是基于以太坊的代币的诞生,对去中心化交易所的需求正在增长.

此外,未来的世界很可能会被代币化。它将成为未来公司或其他组织的经济模式。现在,它只是区块链公司早期融资的代币,但未来所有资产都可以代币化,包括所有公司股票、汽车、房屋等资产。可以上链。通证化会使资产膨胀上千倍,交易需求旺盛。

最终,0x 想成为赋能的驱动者,给大家一个更好的方式来创建去中心化的交易所,让 ERC20 代币之间的交易可以在没有任何第三方的情况下完成。例如,Augur 代币和 Omisgeo 代币不通过任何第三方直接交换。

2.与各种交易所相比,0x 有何独特之处?

1)相比中心化交易所,更安全

中心化交易所很容易理解。目前基本上所有参与过数字货币交易的人都用过,比如火币、okcoin、云币、币安等。购买各种数字货币时,需要用法币购买比特币、以太坊等各种数字货币货币。从用户习惯来看,中心化交易所更符合用户习惯,使用方便,交易速度快。这是它的独特优势。另外,对于很多普通用户来说,中心化交易所的托管服务也比较省心。

但是,中心化交易所也有致命的缺点:一是容易被黑客攻击,代币被盗;二是经营者带钱跑路。最后,它也可能因政策原因被监管关闭。 Mt.Gox、Bitfinex等中心化交易所出现安全问题,导致用户损失大量资金,部分交易所如poloniex、coinbase等遭受DDOS攻击。

这个结果导致了一些去中心化交易所的诞生,比如etherdelta等。这些交易所不需要将资金存入运营商进行交易,也不用担心黑客,运营商带钱跑路,并被关闭。但是去中心化交易所也存在交易速度慢、交易规模小、手续费高(即使取消订单也会产生费用)等问题,体验比中心化交易所差。

从目前的情况来看,中心化交易所占据绝对优势,去中心化交易所还处于起步阶段。长期以来,两者都有自己的空间。然而,从长远来看,去中心化交易所正在解决这个问题。解决了速度慢的问题后,可能会逐渐扭转局面,逐渐获得优势。

2)其次,与去中心化交易所相比,交易体验更好

目前的去中心化交易所普遍存在速度慢、交易量小、费用高的问题。去中心化交易所的每一笔订单,无论是买入、卖出、挂单,还是取消订单,都会进入区块链,交易取决于出块时间。不仅如此,每次操作都会产生网络交易费用。这就是目前去中心化交易所的短板,这也是为什么门头沟比特币被盗事件发生后,交易者依然偏爱中心化交易所的原因。如果您曾经与 etherdelta 进行过交易,您就会知道在关键时刻等待是多么痛苦。

0x 协议的目标之一就是解决去中心化交易的这些问题。它将交易订单在结算过程中移出区块链并移入链中,从而提高了交易效率,降低了交易成本。同时,0x不收取任何使用协议的费用,每个去中心化交易所的创建者自行决定收费方式。

0x 使每个人都可以交易 ERC-20 代币并通过创建基于以太坊的标准协议来运营去中心化交易所。基于 0x 协议的运营商相当于 0x 中继器,他们托管订单并可以向代币交易商收取服务费用。

除了为中继者提供标准协议服务外,0x还有直接面向消费者的产品,比如基于0x的OTC,允许双方在没有中继者交易所存在的情况下直接交易以太坊ERC20代币。 (另外:0x的OTC已经开始在以太坊测试网运行,用户可以创建和广播订单,只需发送一个链接给对方,链接可以通过任何方式发送,如电子邮件、微博等社交媒体)

3.0x的解决方案

0x 是基本的创建块,可以作为 Dapps 的共享基础设施。从长远来看,它是一种开源技术标准,比封闭架构更具优势。

正如 0x 的白皮书中所述,自动化做市商智能合约是链上订单簿的替代方案。它使用价格调整模型。它的好处是易于集成外部智能合约。价格调整模型使它们对市场流动性非常敏感,自动做市商对供给曲线施加人为约束。如果价格调整模型过于敏感,小额交易也会产生较大的当前价格波动。如果调价模型不敏感,自动做市商资金将很快被套利者消耗。

此外,状态通道被视为扩展以太坊区块链并降低不同应用程序费用的一种方式。状态通道的参与者来回传递加密签名信息以累积中间状态更改而不将其发布到规范链,并且许多中间状态更改可以在链下累积,直到在链上完成结算。国家行为者必须实时在线以挑战不诚实的各方,因此容易受到 DDOS 攻击。

为了解决这个问题,0x提出的解决方案是:链下订单中继,链上最终结算。它将状态通道效率与链上订单簿的快速结算相结合。加密签名的订单在链下广播,这些订单被发送到链上智能合约以进行去信任的执行。这样,对于做市商(maker发起者)来说,交易摩擦成本很低。

1)链下订单中继和链上结算的基本步骤

经过Maker批准后,去中心化交易所的智能合约获取代币(比如说A)中要交易的账户余额

Maker创建订单,使用token A兑换目标token(比如说B),确定具体的汇率、期限等,并用私钥对订单进行加密签名

Maker 可以通过任何媒体(推特、电子邮件、博客、论坛等)广播订单

Taker 接受订单并决定接受它

Taker同意后,去中心化交易所的智能合约获得代币B的余额

Taker 将 Maker 签署的订单提交给去中心化交易所合约

去中心化兑换合约验证Maker签名,确认订单未过期,确认订单未成交,然后按照确定的汇率兑换代币。

每个订单都是一个数据包,包括订单参数和加密签名。订单参数通过 Keccak SHA3 函数链接并散列到 32 个字节。 maker 使用私钥对订单哈希进行签名,生成 ECDSA 签名

订单包大小为数百字节,可以通过电子邮件、社交网络、即时消息等任何媒介发送。订单只接收特定接受者的地址,窃听者或外部第三方无法接收派对。

2)订单广播

为了让买卖双方进行交易,需要有一个流动的市场,可以在其中发布订单以形成订单簿。对于大多数项目团队来说,创建和运营交易所需要花费大量资金。 0x 协议允许项目团队以较低的成本维护交易所并自定义交易费用。托管和维护订单簿的主体是中继器。普通的中心化交易所创建和运营管理交易和处理用户资金所需的基础设施。中继者只是通过托管和传播订单簿来推动市场交易。在这个过程中,Relayer 不代表交易者执行交易,Taker 必须自己执行交易。

广播订单的信息格式也比较灵活。首先,广播订单不需要接受者地址,任何人都可以接收订单;其次,可以设置订单的成本值等参数。中继者托管和维护一个链下订单簿,当交易被清算时,交易费用从制造者或接受者(可能两者)转移到中继者。其中:

中继者创建费用表并设置收取交易费用的地址

maker创建订单,设置满足relayer费用表的fee A(token)和fee B(token)值,设置fee接收者的地址,用私钥签署订单

制造商将签署的订单转移到中继器

中继者收到订单,检查订单的有效性并收取费用。如果订单无效,或不符合relayer要求,订单将被拒绝。如果条件满足,relayer将其发布到订单簿

Taker 收到订单簿,其中包括 maker 的订单簿

taker 接受 maker 的订单并将其提交给交易所的智能合约

这里,虽然 maker 设置了交易费用,但最终还是由中继者控制进入订单簿的订单。因此,这里有一个平衡。 maker 如果要下单到订单簿,需要满足relayer。 Relayer 还可以设置收费计划,可以是固定收费、按比例收费、交易量收费或分级收费等模式。但是,中继者一旦收到订单并进入订单簿,就无法更改。

传统的交易服务是由交易所设立,以匹配买卖双方,双方必须信任交易所提供最优惠的价格。在 0x 中,所有交易都是去中心化的,这意味着中继者不能像传统交易所那样代表制造商和接受者进行交易。 Relayers智能推荐,最终taker决定签署交易并将交易发送到区块链。

3)智能合约

兑换协议在以太坊智能合约上实现,开放免费使用,不会向用户收取除gas费(执行智能合约的必要费用)以外的任何费用。它是用solidity语言编写的,包括两个相对简单的功能:deal和cancel。整个合约大约100行代码,完成订单大约需要90k gas。

4)签名确认

交易所智能合约能够使用 ecrecover 函数验证发起者的签名,该函数将哈希和签名哈希作为参数,并返回产生签名的公钥。如果ecrecover返回的公钥等于发起者的地址,则签名是真实的。

Addresspublickey=ecrecover(hash,signature(hash));

如果(publickey!=maker)throw;

5)已完成并部分关闭

交易所智能合约存储之前每笔交易的记录,防止单笔订单多次交易。此引用记录存储在映射中,映射是一种将 32 字节数据映射到 256 位无符号整数的数据结构。将与订单关联的参数传递给 keccak SHA3 函数会生成唯一的 32 字节哈希,可用于唯一确认的订单(哈希冲突的概率,用一个哈希找到两个不同的订单,实际上不可能),每次交易订单,暗指订单哈希,累计交易价值。

在调用交易所智能合约交易函数时,taker通过指定附加参数实现部分交易。只要部分成交的总和不超过总订单配额,就可以对单个订单执行多方部分成交。尝试执行订单时,Taker 必须提供额外的参数。

6)截止日期

订单的截止日期由制造商指定。最后期限是一个无符号整数值,表示距 unix 纪元的绝对秒数。签名后无法更改该值。以太坊虚拟机的时间是由区块时间戳给出的,新区块被挖出的时候就出来了。因此,订单的截止状态不取决于接受者广播其交易意图,它取决于矿工在 EVM 上执行交易后的时间状态。

7)取消交易

相关厂商可以通过交易所智能合约的取消功能取消未成交或过期的订单。取消函数映射订单的哈希,对应订单的最大值(valueA),防止后续交易。取消订单需要gas。这种方法可能会出现尴尬的情况:maker 尝试取消交易,同时 taker 尝试接受订单。考虑到交易挖掘顺序的不确定性,会导致意想不到的结果。如果以太坊区块链有大量订单需要处理,则不确定性会增加。

8)ZRX 代币

与其他代币一样,0x 的 ZRX 代币也是为了推动代理网络的形成。它希望通过协议成为一个开源标准,协调所有参与者,并在中央治理下通过激励措施促进代币的大规模采用。自运行网络。

0x 代币主要用于支付中继者的交易服务费,另一个用于 0x 协议升级时的去中心化治理。根据ZRX代币的归属,在协议升级方面有相应的影响。

9)去中心化治理

一旦将以太坊智能合约部署到区块链上,其内部逻辑就无法更改。因此,升级协议必须部署一个全新的智能合约,要么分叉网络,要么升级用户并处理,直到选择最新版本。在交易场景中比以太坊区块链更好的,协议升级可能会使所有未结订单无效,并要求每个市场参与者批准新的智能合约以访问他们的交易余额。或者,该协议分为两个版本的操作。虽然智能合约可以在不中断更高层流程的情况下不断集成升级到协议中,但这样的升级机制可能会给最终用户带来重大的安全风险。 (最坏的情况是,攻击者可以获取用户资金。)

协议代币可用于驱动去中心化升级机制,允许将升级持续集成到协议中,同时保护协议用户和持有者。

一开始会使用一个简单的多重签名合约进行去中心化治理,最终会创建一个复杂的 DAO。 0x 协议及其原生代币不会向用户收取不必要的费用,也不会向中继者收取费用。

股东提出并选择协议改进计划,通过 DAO 使用全新的智能合约执行。 DAO 通过将新的智能合约添加到代理协议的白名单中来批准新的智能合约来获取用户的代币,并最终退出已弃用的协议版本。

10)令牌注册

命令由十六进制字节码组成,机器可读,不适合普通用户阅读。代币注册合约将用于存储 ERC20 代币列表,每个代币都有关联的元数据:名称、符号、合约地址、代表代币最小单位所需的小数(需要确​​定汇率)。注册将用于官方链上参考比以太坊区块链更好的,参与者可以在执行交易前独立确认代币地址和汇率。代币注册表将用作可信赖的信息来源,需要进行监管,包括从注册表中添加、修改或删除代币。 0x 利益相关者将提供监督。

未来协议的订单形式可能会进行修改,以方便用户阅读。代币在代币注册表上显示为 3 个字母,而不是代币合约地址。以太坊名称服务 (ENS) 可用于识别制造者、接受者、中继者,这些都是要转换为人类可读名称的名称,例如“theDunkle.eth”,而不是帐户或合约地址。

4.结论

一般来说,0x 是一种基于以太坊区块链的 p2p ERC20 代币交换协议。它具有标准的开源协议、通用创建块以及分布式应用程序中事务功能的互操作性。基于 0x 协议的去中心化应用可以进入公共流动性池,也可以创建自己的流动性池,并收取一定的费用。根据白皮书,主要特点如下:

链下订单中继+链上结算=做市商(发起者)低摩擦成本+快速结算

任何 Dapp 都可以使用的开放且可访问的智能合约

中继者可以创建自己的流动资金池,并根据交易量收取交易费用

标准化+解耦=共享协议层

提供 dapp 之间的互操作性

创造流动性的网络效应,让每个人都受益

降低市场参与者的进入门槛和成本

消除冗余,改善用户体验和智能合约安全

去中心化升级机制,允许升级改进持续且安全地集成到协议中,而不会干扰 dapp 或用户。

简而言之,0x 协议试图将信息从应用层传递到协议层,以实现 dApp 之间的互操作性。但是,0x 也有它的弱点。例如,taker 必须在线匹配明确的订单,实时匹配较差。另外,OTC方式暂时无法显示复杂的订单撮合。

上图显示了当前的运行状态。 2017年10月22日,单日交易额已突破2万美元。与很多还在规划中的项目相比,0x 已经开始了自己的工作。