跳到主要内容
专题

如何在 ArcBlock 上构建去中心化市场?

Robert
ARCBlockchainDIDArchitecture

在 ArcBlock 上构建去中心化市场,不必从复制一家交易所开始。链已经具备交换资产的基本协议;如果再把持续在线的个人空间、可运行的应用和自己的 AI agent 放在一起,我们就有机会让用户自己发布意愿、寻找对手、谈妥条件,再到链上完成交换。

在最近的一次讨论里,我说过,把 DEX 或 token vending machine 做成任何人都能部署、配置、拥有和运行的 Blocklet,可能比 ArcBlock 自己开一家交易所更符合我们的方向。Blocklet 是可部署的应用单元。它可以成为一个人的交易终端,也可以成为开发者提供给别人运行的软件。

这背后有一个比“要不要做 DEX”更有意思的问题:我们已经把交换资产的结算放到了链上,结算之前的市场,能不能也更多地交还给参与者?

ArcBlock 的链有原生 Exchange 交易;DID 提供可验证身份;ARC 是承载应用、资源和通信的计算环境;ArcSpace 则可以在这套设想中承载用户持久的个人状态与在线端点。把这些与用户自己的 AI agent 组合起来,我们可以探索的就不只是又一个 swap 页面。这是一条值得构建的架构方向,还不是一套已经可以安装使用的完整市场产品。

链已经会交换,市场还要有人组织

想象 Alice 想用资产 A 换 B,Bob 正好相反。真正需要解决的事至少有两件:他们怎么找到彼此并谈妥条件,以及怎样让双方同时履约。后一个问题可以由恰当的同链原子交易解决:要么双方资产按约定一起变化,要么这笔交换不成立。前一个问题却不会因为链支持交换就自动消失。

从链 1.0 开始,Exchange 就是我们的基本交易协议之一。它不是最近为了讨论 DEX 才补上的功能。2019 年的 DApps Workshop已经把 ExchangeTx 列为开发者可以练习的交易类型;后来协议继续演进,才有今天的 ExchangeV2。交换应当成为链的基础能力,这一直是我们的设计判断。

ArcBlock 的 ExchangeV2 协议把双方资产包直接作为交易对象。一边可以给出 token、另一边给出资产,也可以在支持的资产规则下交换组合。它的意义,是常见交换不必由每个应用从头实现一份结算合约;它没有替应用找到买家、决定报价或者经营订单簿。

Ethereum 已经很擅长 trustless settlement,Solana 也可以通过程序完成相应的原子状态更新。Uniswap 的贡献更不止结算:AMM 让流动性提供者预先放入资产,用池和定价规则回应买家的需求,绕过“此时恰好有人愿意反向交易”的困难。0x 把链下订单与链上交割分开,现代 solver 则竞争怎样满足用户的交易条件。我们应当利用这些进展,而不是假装只有自己的链想到了交换。Uniswap 白皮书、0x 订单说明

但一笔交易从愿望变成签名,还要经过发布、发现、询价、比较与选择。谁让我看到这几个报价?谁决定走哪条路径?我愿意等多久,愿意为隐私付出什么代价?这些判断常常仍发生在别人经营的界面、索引和路由服务里。不同协议的开放程度不同,不能一概说成“只是结算去中心化”;问题是每一层的控制权能否被看见、替换和选择。

这件事对我们也不只是纸上的判断。2018 年,我们以投资者的身份参与孵化过一个计划使用 ArcBlock 平台和链技术的去中心化交易所。那是一个 stealth 项目,没有正式上线,只发布过一个移动应用。团队有丰富的证券交易经验,做过相当大的证券交易平台;我们也投入了资金、精力和技术支持。

结果并不成功。项目最终关闭,我们的投资和投入的精力没有收回来。按我的记忆,团队当时已经对去中心化交易的前景感到失望。回头看,一个方向后来变得重要,并不保证当时投入其中的创业公司能够活下来。比我们有更多人、更多资金和交易经验,也没有消除创业的风险。这是教训,不是可以包装成成功的故事。

另一个留下公开记录的尝试,是把 Uniswap 前端做成可部署的 Blocklet。2020 年的平台更新就列出了 Uniswap 部署 Blocklet。用户可以运行自己的界面,底下仍然连接相应的 Uniswap 合约;部署前端不等于复制它的流动性池,也不等于经营了整个协议。这种把界面交给用户的思路,和今天讨论个人市场有连续性。旧 Blocklet 的部署方式也不能直接当作今天 ARC 的安装教程。

2022 年 11 月,我又把这条思路写进了公开演讲稿 New Architecture for A Future Decentralized Exchange。那份稿子明确标着 WIP 和 DRAFT。第 5 页提出每个人拥有只向自己负责的 agent,第 6 页把订单簿看成可由多方实现的协议,第 8 页把已匹配交易交给链上原子执行,第 9 页讨论 DID、VC 与隐私。这些是当时已经提出的问题,不是今天回头补上的故事。

但当年的稿子也不成熟。那里的 agent 主要是代用户运行的软件,不能直接等同于今天的 AI agent;对传统链结算能力的描述偏保守,对合规由参与者决定的表述又过于简化。今天要把它们说得更准确:Ethereum 可以做原子结算,软件和参与者也必须面对实际适用的法律。延续的是用户拥有代理和市场入口的方向,不是旧稿中的每一句判断。

历史上已经有过不同的尝试,解决的也不是同一个问题。

一种做法它解决了什么留下了什么问题
CEX 与白标交易所集中账户、流动性、撮合与服务,降低使用成本谁保管资产、控制入口、承担经营风险
Bisq 的个人客户端用户节点传播报价,用 Bitcoin 与争议机制组织交易客户端在线、法币付款与操作成本
OpenBazaar 的个人店铺商家自己发布商品,搜索可以由不同服务提供商品是否持续可达、结果是否新鲜、谁处理争议
AMM 与现代报价网络用库存池或专业报价降低找对手的难度流动性成本、路由选择、信息暴露与执行约束

把市场拆开,并不意味着否认中介的价值;它让我们有机会重新选择,哪些事交给谁。

钱包之外,每个人还需要一个持续在线的位置

我们过去很自然地想到 wallet。所有权和签名权本来就属于用户,钱包当然适合代表用户完成交换。在已知对手、面对面商量好条件的场景中,这个直觉尤其直接。

困难在于,钱包并不天然 always-on,也不自带全球搜索。Alice 关掉手机后,她的交易意愿还在哪里?Bob 如何找到她?如果把私钥交给一台一直在线的服务器来解决,又可能把刚取回的控制权交出去。

我更感兴趣的分工是:在线接待与资金授权分开。ArcSpace 保存用户自己的规则、状态与联系端点,ARC 上运行的服务负责发布必要信息、发现候选和通信。钱包保留最终授权。自己的 agent 在两者之间处理那些过去必须由人盯着屏幕做的工作。

ArcSpace、ARC、个人代理、钱包与结算链的拟议分工

例如,Alice 可以让公开网络知道她想交换某类资产、接受哪些结算链,却不公开全部余额或底价。自己的 agent 去问 Bob、Carol、做市商、OTC desk,也比较 AMM 与 solver 的可执行报价;拿到的方案先经过规则检查,再交给 Alice 和钱包确认。最后才把双方同意的交易送到链上。

这一层市场能力比单个交换合约覆盖的事情更多,但并不要求取代智能合约。市场可以把 Ethereum、Solana 或 ArcBlock 当作结算选择。不同链有不同资产和流动性,一次普通原子交易仍要尊重同链的边界;跨链不是换一个选项就自动解决。

ArcSpace 的持续可达性也需要实际的托管、备份和恢复,ARC 也不会自动提供全球订单搜索。报价格式、发现协议、反垃圾和状态同步,仍是开发者要完成的工作。架构的价值在于给这些工作一个可以由用户拥有的落点。

Your agent works for you

经纪人、交易所和做市商之所以存在,很大程度上是因为寻找信息、协调对手和谈判都很贵。一个人不可能持续向几百个潜在对手询价,更不可能同时跟踪报价有效期、资产条件、费用和等待时间。把这些事交给专业机构,过去往往是最合理的选择。

这有点像一位经常买卖房产的投资者,愿意花精力取得相应的经纪执照,让自己处理交易时多一些直接参与的能力。他不一定想开一家经纪公司,也仍然可以购买专业服务。个人市场工具的动机相似:如果使用成本足够低,我可以拥有自己的代理和交易终端,而不是每次都从别人的入口和默认规则开始。用户篇展开了这个类比,也讨论哪些人可能并不需要这样做。

AI 可能改变其中一部分成本。自己的 agent 可以异步询价,按自己的规则比较方案,并与别人的 agent 协商。意义不是“AI 让 DEX 更聪明”,而是用户开始有机会拥有原本只有中介才有能力维护的工具。

谁定义 best execution,应该由用户决定。 有人优先看净接收量,有人更看重确定完成的时间,也有人宁愿等待以减少身份和交易意图暴露。价格、滑点、速度、对手凭证和拆单条件,都可以成为用户自己的偏好,而不只是交易平台预设的排序。

这不会消灭中介。做市商提供库存,broker 提供专业网络,solver 找到更好的组合,索引服务维护可靠搜索,都值得获得报酬。变化是他们要在可比较的条件下提供价值。用户不应该仅仅因为某一家掌握入口,就只能接受那一家对“最好”的定义。

AI 同样不该拿到无边界的花钱权。来自对手的消息不能修改我的预算,模型说“这笔很好”不能替代资产地址、数量和接收者检查。把发现与谈判放在链外或选择性传播,也可能减少部分公开意图暴露及抢跑机会,但不会消灭 MEV:最终的排序权、信息泄露和执行者行为仍然重要。

我们提供建造市场的能力,谁经营必须说清楚

“让任何人能开一家交易所”和“让每个人拥有自己的市场工具”,不是同一个目标。白标软件可以降低开设交易所的门槛;如果每个品牌仍共用一个不可替换的托管与撮合后端,用户的处境未必改变。个人市场节点则可以只是我的私人终端,不必是向公众开放的网站。

现阶段,我更倾向于让 ArcBlock 把精力放在软件、协议与基础设施上,让开发者实现不同的交易方式,让使用者选择自己运行什么。这是当前更值得投入的角色,不是对所有未来商业选择的永久承诺。如果将来参与具体市场的经营,那就要重新面对托管、执行、收费与合规责任,不能沿用“我们只是提供工具”的说法。

这份分工有法律上的实际意义,但不是把责任转给“去中心化”四个字。开发者发布工具、用户为自己交易、经营者替别人持续组织交易,是不同事实;个人部署也不自动意味着无需注册、牌照或合规措施。身份凭证可以帮助参与者在少披露个人资料的前提下判断资格,却不能替代真实义务。作为主阅读路径一部分的法律篇讨论这些边界,而不是给任何模式发一张免责证明。

对开发者,接下来的问题是怎样把这些原语组成一个可运行的市场:从有明确对手的交换开始,逐步加入意图发布、自己的代理和可替换的发现服务。对不写代码的用户,问题则是运行自己的 Blocklet,究竟意味着拥有什么:保留规则、数据和授权,安装别人写好的软件,而不是先成为交易所工程师。

还有一篇完整交易场景,把挂单、跨市场比较、agent 协商和双方授权接起来:一次 FT 交换怎样完成,换成 NFT 或业务权益又会多出哪些条件。法律篇则与这些构建和使用场景一起读,因为谁承担什么责任,应当从设计之初就明确。

我想给出的答案因此不是“ArcBlock 没有 DEX 的想法”。我们想得更具体:链负责验证和交割,个人基础设施保存状态,自己的 agent 代表自己的利益,开发者把这些组合成可供选择的软件。眼下更值得我们做的,是让这些能力能被不同的人组合和运行。一个市场是否足够去中心化,要看参与者实际拥有什么、能选择什么,以及能否带着自己的状态和授权离开。