合约是区块链交易所的核心组成部分,其运作机制决定了交易所的安全性、效率和可扩展性。区块链交易所合约是如何运作的?
本文主要讲解:
资产托管、订单簿、订单撮合、交易结算
这几个关键环节,分析在产品设计时需要注意的要点。
(1) 资产托管:
用户将资产(如比特币、以太坊等)转入交易所提供的区块链地址。这些地址由交易所的热钱包和冷钱包管理,热钱包连接互联网便于用户充值提现,冷钱包离线存储大部分资金以保证安全性。交易所在链上通过多签机制控制这些钱包。
(2)订单簿:
用户下单后,订单信息被记录在交易所的中心化订单簿中。不同于去中心化交易所使用链上订单簿。中心化订单簿可以提供更快的订单匹配速度,但需要用户信任交易所。
(3)订单撮合:
交易引擎监听订单簿,寻找匹配的买卖订单。一旦出现符合条件的买卖双方,交易引擎就通知智能合约进行交易结算。这个过程在链下完成,可以在保证一定安全性的前提下最大限度地提高撮合效率。
(4)交易结算:
智能合约收到交易引擎的结算请求后,验证买卖双方资产余额是否充足、订单信息是否匹配等。验证通过后,合约将根据订单进行资产转移,完成交易。结算过程在链上进行,确保交易的最终性和不可篡改性。
(5)清结算:
交易完成后对用户账户进行资金变动,更新账本余额,完成清算。所有的清结算记录都通过事件的形式记录在区块链上,可供审计。
资产由智能合约托管,交易所不能直接挪用,提高了用户资金安全性。
订单撮合在链下进行,基本不影响公链性能,可实现高频交易。
资产托管是交易所最基础也是最核心的功能。用户需要充分信任平台,愿意将资产交给你保管。因此,产品设计要体现安全、透明、可审计的原则。具体来说:
(1)要让用户明白资产存储的机制。比如,可以在充值页面展示热钱包和冷钱包的地址,并说明大部分资金会存储在多签冷钱包中,让用户直观感受到安全性。
(2)要给用户直观的反馈。当用户进行充值、提现操作时,要有明确的状态提示,告知用户当前进度,预计完成时间等。
(3)要设置合理的额度限制。对新用户,可以先设置较低的单笔提现额度,随着用户信任度的提升再逐步放开。这样可以降低被盗资金的损失。
(4)要提供多种充提渠道。除了主流的区块链,也要考虑接入稳定币、跨链桥、法币入金等,方便不同需求的用户。
案例:
Coinbase的资产托管做得比较好。它会在用户初次充值时给出非常详细的指引,包括地址格式、安全提示等;资金到账时有邮件通知;提现时也可以直观看到进度。此外,Coinbase还接入了多家银行,支持法币直充,降低了用户的使用门槛。
订单簿是交易系统的核心数据结构,记录了所有用户的交易意愿。传统交易所使用中心化的订单簿,而去中心化交易所的订单簿是由智能合约维护的。我们要做的是在保证订单簿功能的前提下,最大限度地提升交互体验。
(1)展示的信息要丰富,但不能太复杂。除了基本的价格、数量信息,还可以提供一些辅助指标,比如买卖盘压力、订单总数、价格分布等。同时也要注意,过于复杂的交互会带来负担。
(2)刷新频率要合理。频繁的订单簿更新固然能提供实时的行情感受,但也可能产生视觉疲劳。可以给用户一个选择权,自主设置刷新间隔。
(3)要支持灵活的筛选和排序功能。随着交易对的增加,原始的订单簿可能会非常庞大。允许用户按照自己的偏好筛选显示数据,能节省他们的认知资源。
案例:
BitMEX的订单簿设计就比较有特点。它在传统的价格-数量视图之外,还提供了价格-成交量视图,可以看到每个价位的历史成交量分布。专业交易者凭此能发现一些隐藏的交易机会。
订单撮合是交易所的核心引擎,它需要在快速、公平、稳定几个维度上达到平衡。从用户的角度,"下单-成交"的过程应该是无缝、透明的。
(1)撮合逻辑要尽可能简单清晰。复杂的规则可能带来操作空间,但也会引起用户的疑虑。相比之下,价格优先、时间优先的原则更容易被接受。
(2)异常情况要给出及时提示。比如下单失败、深度不足、自成交等,都应该通过弹窗或状态标记来告知用户。
(3)特殊订单要有引导。像 FOK、IOC 这类订单,对新手来说可能比较陌生。在下单时给出解释说明,能避免误操作。
案例:
Uniswap 作为去中心化交易所的代表,它的撮合逻辑完全由智能合约主导,用户可以随时在链上验证交易的公平性。同时,它的界面设计也尽量简洁,将用户的注意力引导到核心的交易操作上。
交易结算环节对用户来说是半透明的,主要发生在交易所系统内部。但结算的速度和准确性,直接决定了用户的资金安全和体验满意度。所以,产品经理要格外关注这部分。
(1)结算的及时性。传统的 T+1 结算周期对于数字资产交易来说已经过长了。用户付出资金,就希望能立即看到账户余额的变化。需要在设计时尽量压缩清结算的时间。
(2)冲突的处理机制。自成交、双花等异常情况在实际交易中是不可避免的。产品逻辑中要嵌入冲突检测和处理的流程,确保问题能被及时发现和解决。
(3)通知的时效性。交易完成后,要通过站内信、邮件、消息推送等多种渠道通知用户,并提供账单查询的入口,方便用户了解自己的交易历史。
案例:
Binance 的交易体验一直是用户称道的,其中一个重要原因就是快速的结算。订单成交后,用户的账户余额几乎是实时更新的。此外,Binance 还提供了非常详尽的交易记录查询功能,让用户可以追溯每一笔交易的来龙去脉。