# 如何建立你自己的SCP应用程序：下一代无区块链DEXs的原形

By [W3.Hitchhiker](https://paragraph.com/@w3hitchhiker) · 2022-01-14

---

原文链接：

[https://mirror.xyz/0xDc19464589c1cfdD10AEdcC1d09336622b282652/3SvLbA4Q6t-1lOMO7dPQggi8kXpEYI\_RgCXuzC3MQXY](https://mirror.xyz/0xDc19464589c1cfdD10AEdcC1d09336622b282652/3SvLbA4Q6t-1lOMO7dPQggi8kXpEYI_RgCXuzC3MQXY)

译者：Evelyn｜W3.Hitchhiker

**去中心化的应用程序不一定要建立在像以太坊这样的公共区块链上。**

当我们在谈论DEXs时，我们一般指的是像Uniswap这样在以太坊上运行的智能合约程序。这篇文章将会描述一种新的建立DEX的方式，并且结合了Uniswap的自动做市功能和与区块链相同的安全属性。更妙的是，新的DEX模式提供了几乎无限的可扩展性（scalability），而且没有MEV的风险。

Uniswap的工作原理
------------

自动做市（automated market making）的概念起源于Uniswap。因此，新型的DEXs不能脱离Uniswap背后的设计理念而建立，即使用最简单的算法与区块链相结合，让每个用户都成为做市商，以取代专门机构。

![](https://storage.googleapis.com/papyrus_images/227ed1956b2bc270de6229ac068051553a2e383610c9eb5c14363aaaeda2eced.png)

Uniswap v3的整体架构如上图所示。Uniswap v3的智能合约在EVM中执行，由每个geth节点运行。因此，v3的计算过程是由成千上万的节点执行的，它们通过PoW机制达成共识。

仔细看看Uniswap v3的智能合约。 Uniswap v3本质上做的是通过使用路由器（Router）来聚合NFTs。每个NFT的背后是一个由个人用户提供的流动性池，该用户为做市商设定了一个特定的粘合曲线（bonding curve）和价格范围。当用户向v3智能合约发送报价请求时，路由器（Router）将通过执行聚合计算生成当前的最佳价格。用户将以该价格签署一笔交易，并将其发送给Uniswap合约来执行。该交易将导致多个NFT的同步更新，确保Uniswap的交换功能对用户来说是安全和可靠的。

下一代DEX的原型
---------

在创建原型之前，你需要了解everPay及其bundle交易。 everPay是一个基于区块链的金融基础设施，并且结合了Arweave和SCP。通过提供实时转账和可验证的账本，everPay允许用户和开发者进行实时代币结算。

![](https://storage.googleapis.com/papyrus_images/60b73369f422b777abc1c9969a4b10e754a69f506f74c3dc88282fef4f14e9ed.png)

在EverPay中，bundle交易是一种操opAction的类型。它允许一个多对多的转移，需要所有转移方的签名。如果一个bundle交易中的任何一个子交易失败，整个捆绑交易将被回滚（rolled back）。一般来说，bundle交易是一种多对多的交易性转移功能。

现在你已经了解了Uniswap v3的工作原理，你可以在SCP基础知识和everPay的bundle交易之上建立新一代的DEX。

![](https://storage.googleapis.com/papyrus_images/c99356accfb5574deba9fd7d06d2ecdbe3d692f5f167cc8aaad4b34c025ac83f.png)

首先，Uniswap v3中的Router合同可以由路由器（router）节点取代。路由器节点是一个路由网关节点，任何人都可以部署它来收集流动性提供者（LPs）的信息。与V3中的路由器类似，路由器节点在收到报价请求时，可以通过执行聚合计算来获得最佳价格和交换路径。

其次，Uniswap v3中的NFT可以被LP节点取代，LP节点控制着一个私钥和一个自动签名程序。LP节点程序将根据用户定义的曲线和价格范围进行报价并签署bundle交易。当一个LP节点启动时，它将与路由器节点连接并向它们提交报价信息。路由器节点将向LP节点发送有效的bundle交易，LP节点将签署符合其自身做市规则的交易。成功签署的交易将被送回路由器节点。

### 交易过程：

1.  用户向路由器节点发送一个报价请求。
    
2.  路由器节点利用从多个流动性提供者那里收集的信息来生成最佳报价和交换路径。
    

a. bundle swap路径的一个实例：用户A将代币A转给lpB，lpB将代币B转给lpC，lpC将代币C转给用户A。

1.  如果用户同意该报价，他将签署该交易。然后路由节点将要求所有参与的LP节点签署。该报价也需要得到LP节点的确认。
    
2.  路由器节点在收集到所有需要的签名后，将把bundle交易提交给everPay执行。
    

### 下一代DEX的好处：

1.  一个完全去中心化的P2P网络，不能被破坏或关闭。任何人都可以在网络中部署一个路由器节点或一个LP节点。
    
2.  无限的可扩展性：每个路由器节点可以与数百个LP节点连接，并为数以万计的用户提供聚合服务。在网络中可以部署无限数量的路由器节点。
    
3.  没有MEV，用户将得到与他签署bundle交易时完全相同的价格。只要有任一LP节点未能支付相应的代币，整个bundle交易将被回滚，这也就意味着它根本就没有发生过。
    
4.  超高的资产安全性。由于LP节点有自己的私钥和资产在手，黑客必须一个一个地攻击他们以窃取他们的资产，这意味着攻击载体这一行为是高度去中心化的。
    

这样的网络提供了一个最佳的用户体验，你只需要访问连接到路由器节点的用户界面，然后按照路由器节点提供的价格来签署你的交易。由于路由器节点通过使用websocket与所有连接到它的LP节点进行通信，所以交易可以在几秒钟内签署，然后由everPay实时执行。除了高速交易处理，你还可以从无滑点中受益，因为你提供的报价就是你最终得到的。这样一来，你就不需要担心闪电侠进行的任何MEV提取，这在以太坊上是很常见的。

唯一的缺点是，成为LP需要运行一个节点，但也有变通的办法。例如，你的手机钱包可以成为一个LP节点。只要你在手机上设置一个价格区间并选择一个做市商曲线，你就可以利用你钱包里的闲置资产进行自动套利。你可以像玩网络游戏一样参与DEX的互换网络，而你手机上的程序将保持在线，并根据你的自定义规则进行自动做市。

结论
--

正如上面的原型所示，我们可以以极低的成本建立一个没有任何链上智能合约的去中心化应用。这样的开发模式符合Web2开发者的思维方式。我们可以预期，Web3时代的兴起将超越区块链和EVM，并且带来更多构建Web3应用程序的模式。事实证明，SCP是Web3开发的一个很好的选择，它为应用程序提供了区块链的不可篡改性（immutability）和可追溯性（traceability），以及大规模系统的可扩展性。

---

*Originally published on [W3.Hitchhiker](https://paragraph.com/@w3hitchhiker/scp-dexs)*
