Solana 最初的目标是构建一个速度快、成本低的区块链,以便在其上运行中央限价订单簿。为了实现这个目标,Solana 需要从根本上重新设计共识机制,以创建一个具有必要功能的去中心化网络,与纽约证券交易所竞争。文章提出了通过引入多个并发领导者、交易元数据syscall等实现更灵活的交易排序方式,从而优化链上市场微观结构,收紧交易价差,最终提供比传统交易所更好的价格。
Solana 最初的成立目标是构建一个区块链,它足够快速和廉价,以至于你可以在其上放置一个可用的中央限价订单簿。Solana 主网 beta 版于 2020 年 3 月推出——我们现在已经走过了五年,尽管我们取得了一切成就,但越来越清楚的是,我们尚未实现该目标。
区块链作为今天存在的基础构建块并非为交易而设计。如果我们想实现 Solana 最初的使命,我们必须回到绘图板,从第一性原理出发,从根本上重新设计共识,最终目标是生成一个具有必要功能的去中心化网络,以与纽约证券交易所竞争。
当我们说与纽约证券交易所竞争时,我们的意思是 Solana 上的交易所需要能够提供比其中心化同行更好的价格。在市场世界中,我们根据价差定义价格:某人愿意购买资产的最高价格与某人愿意出售资产的最低价格之间的差异。
价差越小,交易者获得的价格越好,市场效率越高。
价差的公式很简单。价差的设置使得做市商通过与不知情的交易者交易获得的预期收入等于他们通过与知情交易者交易而造成的预期损失。当做市商拥有的信息多于其交易对手时,他们就会赚钱,而当他们拥有的信息少于其交易对手时,他们就会赔钱。做市商通常在每次与散户的交易中赚取少量资金,但在(希望不经常发生的)价格跳动之后损失大量资金,因为他们措手不及。这就是短语“做市商捡起几分钱,损失几美元”的由来。
为了更好地理解逆向选择,我们需要了解做市商正在玩的游戏。做市商对一个公平价格(fair)有一个概念,这个价格会随着时间随机变化。当公平价格在买卖价差范围内时,做市商的报价是安全的,因为交易者无法通过跨越价差来挑选它们而获利。一旦公平价格移出买卖价差范围,一场竞赛就开始了。做市商试图尽快取消其订单,而交易者试图在做市商取消订单之前狙击过时的订单。成功的交易者在预期中赚取公平价格和过时报价之间的差额。降低逆向选择摩擦的一个重要部分是确保做市商尽可能多地赢得这场竞赛。
来自中心化交易所的数据显示,在价格跳动之后,做市商赢得取消竞赛的几率仅为 13%。
中心化交易所的做市商赢得取消竞赛的几率并不高,但 Solana 上的做市商赢得取消竞赛的几率甚至更低。Jito 拍卖是一种症状,即拥有一个控制在一段时间内访问状态的单一提议者,这使得做市商几乎不可能赢得取消报价的竞赛。即使做市商速度更快,但真正决定谁赢得取消竞赛的是谁在 Jito 拍卖中支付最高的投标。这使得做市商陷入了两难境地。他们要么花很多钱取消他们的报价,要么他们可以让其他人花很多钱来狙击他们。无论哪种方式,他们都在赔钱,因此他们必须扩大价差。
在实践中,今天的链上市场微观结构相当于让交易者在竞赛中抢先一步,至少在对做市商施加的逆向选择方面是这样。要解决这个问题,我们需要让应用程序在如何排序交易方面拥有更大的灵活性。如果我们想要缩小价差,应用程序需要能够在取消竞赛中让做市商抢先一步。实现此目的的一种方法是引入“取消先于成交”的排序策略。我们查看区块,并在所有成交之前处理所有取消。
我们今天可以在 Solana 上推行这样的策略,只需将重放排序从领导者决定的方式更改为优先考虑取消的不同策略即可。但这并不能解决问题。如果我们仍然有一个领导者,那么该领导者可以决定忽略取消,我们将回到起点,即做市商在取消竞赛中处于明显的劣势。
避免这种情况的唯一方法是引入多个领导者。这样,如果一个领导者审查取消,你总是可以提交给不同的领导者。
人们似乎对多个并发领导者提出的最大问题是,当存在冲突时,我们如何将交易区块合并在一起。答案出奇地简单。我们将有两种类型的费用:包含费用和排序费用。包含费用支付给包含交易的验证者,排序费用支付给协议(销毁)。当我们想要将来自不同领导者的区块合并在一起时,我们只需获取特定 slot 中所有区块中所有交易的并集,根据其排序费用对其进行排序并执行它们。
仅仅这样还不足以提供我们想要的所有属性。我们追求的是让应用程序能够更灵活地控制其排序。还有一个要素:系统调用 get_transaction_metadata,允许程序读取与其交互的交易的排序费用,这为应用程序提供了一个强大的工具来控制排序 (Robinson and White 2024)。
我们希望从我们的共识实现中获得以下几个属性:
绑定和隐藏:并发领导者不能在其自己的区块中包含来自其他领导者的区块的信息(例如,夹击私人交易),或者基于另一个领导者的区块的内容取消其区块(例如,当你观察到其他投标人的投标时取消投标)。
挂钟公平性:并发领导者必须在大致相同的挂钟时间提交其区块。
该方案概述了我们迄今为止开发的最有效的方案,与 a16z Research 的 Pranav Garimidi 和 Joachim Neu 合作开发。
每个领导者将其区块转换为纠删码分片。一旦恢复了足够多的分片(超过编码率),就可以恢复该区块。无法进行部分恢复。
领导者将他们的分片发送到 turbine 树的第一层中继。每个领导者将其第一个分片发送到中继 1,其第二个分片发送到中继 2,依此类推。如果一切顺利,每个中继都会收到来自每个领导者的分片。
在超时后,中继将签名的 IHAVE 消息发送到包含有关他们收到的分片信息的单个共识领导者。
然后,共识领导者使用这些 IHAVE 消息构建一个区块;他必须包含足够大比例的 IHAVE 消息,否则该区块将无效。
共识领导者将此区块广播给验证者,验证者开始达成区块共识的过程。
该方案(以高概率)满足绑定和隐藏属性。它具有良好的挂钟公平性属性,尽管最终可能会想出具有更好挂钟公平性的方案。
Solana 的创建是为了超越 Nasdaq。为了超越 Nasdaq,我们需要提供比 Nasdaq 更好的价格。为了提供比 Nasdaq 更好的价格,我们需要让应用程序更灵活地在成交之前对取消进行排序。为了让应用程序具有这种灵活性,我们需要确保领导者没有单方面审查订单的权力。为了确保领导者没有这种权力,我们需要部署多个并发领导者。
- 原文链接: anza.xyz/blog/the-path-t...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!