特别感谢Enclave团队对本文的撰写提供的信息梳理支持。特别感谢Victor Costan和Srinivas Devadas在《Intel SGX技术阐释》论文中对Intel SGX内部运行机制的详细论述。免责声明:本文仅供教育用途,不包含任何承诺、担保或保证。本文未获Enclave Markets Inc.及其任何子公司或附属公司的资助,且不构成任何投资建议。
新一代交易所,路在何方?
加密货币交易所近来压力重重,内部人员的耸人听闻的不法行为推翻了第一张多米诺骨牌,引发了机构破产、客户退出等一系列连锁反应。而其中对整个行业危害最大的,莫过于关键基础设施的信任流失。面对种种问题,我们不由开始思考:未来,我们能否将用户资金和交易执行的控制权从交易所运营方移交给代码,从根本上杜绝内部失控,从而拥有足够安全的交易设施呢?
最近,Buterin等在《安全的中心化交易所:偿付能力的证明与超越》一文中论述了中心化交易所通过哪些关键步骤实现了“信任”的建立。文章用大部分篇幅讨论了建立“资金证明”的不同方法。作为讨论的起点,这些方法有一定合理性,但还有很多问题它们没有提供解答。首先,这些解决方案都存在性能和实用性上的问题,尤其是那些使用昂贵加密电路的解决方案。其次,这些讨论没有覆盖交易执行中立性等关键维度。目前,无论是中心化交易所(CEX)还是去中心化交易所(DEX)都面临着同样的问题,DEX饱受矿工可提取价值(MEV)的困扰。最后,也是很可能最重要的一点:未经进一步验证,我们无法确定文中提出的解决方案是否有效。
编者注:MEV 是指区块链矿工可以通过重新排序、审查或插入交易而无需许可地提取的总价值。简而言之就是矿工对其所在区块的一切交易的顺序有控制权,能够随意控制交易的顺序,并以此来进行获取利益。
当我们构思下一代交易所——能杜绝不良行为的下一代交易所的时候,我们不妨进行一次思想试验 :假设现在有一台万能计算机,能运行最理想的交易所,那么这台计算机需要满足以下条件:
有了满足这些条件的万能计算机,我们就能建立一个充分确保(1) 所有交易的公正性,(2) 保密性,和(3)抵御安全攻击的合理的稳健性。在这种情况下,开发人员完全没有在代码中设置后门、挪用客户资金或为部分交易者“行方便”的空间。这样我们就能拥有一个“完美”的交易所,无需担心任何恶意行为。
事实上,这样的技术正在快速成为现实,而它的雏形就是所谓的“安全飞地”(secure enclave)。 简单来说,大部分高端计算机内的最新一代芯片都配备了一个特殊的硬件,它发挥着“主CPU内的加密黑匣子CPU”的作用。安全飞地早期存在大量漏洞,在多次迭代中经历了巨大的生长痛,但是最新一代产品已经迅速缩小了从“实验性”到“实用性”的差距。密码学家及安全技术专家Matthew Green也曾发推表示:受信任硬件(安全飞地)即将发展到他十年前认为不可能实现的水平。
那么,怎样才能利用安全飞地建立我们理想的全加密交易所(FEX)呢?本文将在下一章中详细论述如何通过Enclave Markets(现货交易市场预计今年上线)的实现,落地FEX的构想。同时,各位可以通过以下坐标系来大致理解交易所的信任模式。请注意,虽然此图无法呈现FEX的全部优势(例如认证),但它做了一个大致的划分。此外,请注意,FEX需在设计上具备强大的稳健性,具备抵御零日硬件攻击的能力。换句话说,即使遇到了安全飞地被黑的极端情况,FEX也只会退回到CEX的水平,绝对不会陷入崩溃。
何为全加密交易所(FEX)
FEX的架构(例如Enclave Markets的架构)分为两个主要部分,它们共同实现客户资金的去中心化托管,确保交易所的公正性和交易的保密性。这两个部分是Intel SGX应用程序(市场上也有其他安全飞地可供使用,如苹果云)和第三方Attestor网络。
Intel SGX应用程序
Enclave Markets使用Intel SGX,它包括在安全飞地内运行的受信任的、安全隔离的代码库,以及在安全飞地外运行的非信任的代码库。在产品制造没有瑕疵的前提下,安全飞地提供基于硬件的内存加密,保护系统不受篡改,避免其他进程和操作系统的不当访问,详见下图(注意,图中模型有别于完善的FEX模型)
上述模式与安全飞地模式的关键区别在于,软件供应商和基础设施所有方的关键操作组件都是去中心化的,这种去中心化是通过多方使用的Attestor网络实现的。FEX在安全飞地内运行关键的架构组件,由此确保保密性。这些组件包括:交易所单体、交易所钱包系统、区块链节点支持、余额转移引擎、用户订单以及其他许多功能组件。现有交易所基础设施易发生信息泄露,为内部人员提供可乘之机,安全飞地环境对此进行了重要的改进。在FEX架构内,安全飞地能确保市场结构的公正性得到维护。
安全飞地外的非信任代码库负责初始化并启动飞地,以及运行远程认证服务器。虽然非信任系统建立在安全飞地之上,但它无法从根本上改变飞地内的输出或运行的服务。因此,任何人都无法利用安全飞地内的数据进行抢跑或以其他方式开展恶意利用客户信息的交易。
为验证飞地及其中的交易所代码库的公正性,Attestor(认证者)需参与远程认证,即第三方向远程实体证明代码库的可信性,并与该实体建立经身份认证的通信渠道。在这一认证过程中,安全飞地需证明以下内容:
安全飞地的身份
源代码未经篡改
软件运行在已安装最新安全更新的真正的SGX平台上
当Attestor网络处于稳定状态时,每个Attestor都将在启动时执行认证,并将认证报告发布到公开的JSON文件中。安全飞地通过与Attestor直接通信来获知链上事件并发送签名交易。认证过程中SGX箱子内的信息传输如下图所示:
出自《intel SGX技术阐释》
上述认证流程也适用于Enclave Markets的所有代码库升级。交易所在进行任何软件更新前都必须通过Attestor网络的审查,任何修改或变更都必须通过多数独立Attestor的审计,并获得其许可。未经审计和Attestor的明确确认,交易所无法更新。
最终,远程认证证明:代码库是公正的,运行中的软件没有遭到任何交易所运营人员、内部人员或不良分子的篡改或破坏。
Attestor网络
经过上文的介绍,相信读者会注意到其中部分关键组件是中心化的。为解决这一问题,完善的FEX会对密钥进行完全分发,即使是代码升级也可以在无需担心单点故障的情况下进行管理。这是通过Attestor完成的,Attestor是独立的第三方,提供特殊的密钥分发功能。Attestor还将进行额外的验证,确保包括交易所运营商在内的任何人都无法单方面控制客户资金或修改代码库。
Attestor网络具体的运作机制是怎样的呢?每个Attestor都运行一批独立的节点,其成本类似于运行区块链的完整节点。假设一个FEX同时利用以太坊和Avalanche进行资产结算,那么它会包括三个主要组件:用于索引以太坊和Avalanche(或其他任何区块链)交易并与安全飞地通信的服务器、Ethereum Geth节点和AvalancheGo节点。Attestor具备下列职责:
验证代码库:每个Attestor都能通过远程认证,验证安全飞地的二进制代码的哈希值。Attestor不仅能访问完整的代码库,而且能对照代码的每处变更验证哈希值。飞地内代码每进行一次更新,Attestor伙伴都必须批准新的哈希值,并将其添加至Attestor服务器上的本地配置文件。代码库一旦遭到篡改或破坏,便无法通过Attestor网络的验证。
存储密钥分片:安全飞地首次初始化后,每位Attestor均将收到一个密钥分片。密钥分片达到指定阈值后,可以重新生成安全飞地的“主密钥”。一旦飞地重新启动,它将获取各Attestor的密钥分片,重新计算主密钥值。安全飞地使用的所有密钥都确定地由主密钥产生。
索引支持的区块链:安全飞地需能向Attestor查询发送到每个区块链网络的特定地址的交易。Geth节点没有支持这一API的数据库索引。但是,每个Attestor都通过向Geth节点和AvalancheGo节点查询各个区块以及在交易中迭代,在自己的数据库里构建索引。
处理交易并跟踪请求的处理情况:Attestor负责跟踪安全飞地处理的入金和出金。飞地将在收到Attestor对特定交易的共识后,开启分为两阶段的提交流程。第一阶段,加密的签名交易将发送至各Attestor,Attestor将交易信息储存至其数据库进行备份。确认加密交易已成功储存后,安全飞地会将未加密交易发送至各Attestor进行处理。收到签名交易后,Attestor会将其广播至Avalanche或以太坊节点。收到交易确认,或收到已包含交易nonce值的通知后,Attestor会将交易标记为“处理成功”。
托管公开信息:安全飞地负责配置和维护信息,包括但不限于手续费、最低转账要求及所支持的ERC20资产。由于安全飞地不提供公开访问,Attestor需要公开托管这些信息。此外,Attestor负责托管认证报告,向公众开放查询。Attestor需将此类信息发布到一个可以公开访问的S3文件里,该文件可用于独立验证。
Attestor网络构成了关键的安全层。最重要的是,这些独立的Attestor能消除长期以来困扰中心化实体的单点故障。举例来说,如果恶意软件攻击导致某一个Attestor节点发生了任何变化,该Attestor将无法继续验证SGX安全飞地的公正性,并将失去提交或批准代码变更的资格。这将一举杜绝恶意软件或中间人攻击的可乘之机。
在传统CEX,用户只能被动地相信交易所的代码库是安全的,恶意行为者没有的不法的权限或后门,客户资金能得到妥善保护。在FEX中,代码库接受独立审查和加密验证,确保交易所的中立性和公平性。此外,客户资金接受去中心化托管。未经多数Attestor批准,交易所运营方无法单方面移动客户资金,从而有效保障资金安全。
结论
目前市场上有两种主流的加密货币交易所:中心化交易所(CEX)和去中性化交易所(DEX)。CEX虽然具备性能高、效率高的优势,但资金的管理和控制及交易所的运行都由单一机构执掌,因此很容易受到不良行为者的侵害。另一方面,虽然DEX旨在消除资金由单一机构控制的情况,但DEX性能低、成本高,且依然容易遭到链上MEV的操纵。
作为第三代交易所,全加密交易所(FEX)旨在解决上述所有问题。FEX既能防止内部人员操纵代码库、设置后门,也能防范抢跑等不良行为,充分保密客户信息(系统管理员也没有权限),避免单一机构托管。FEX需要克服的最大问题仍然是硬件实现的质量。虽然Intel是最早的安全飞地提供商,但苹果等企业也提供类似的产品,且攻击向量似乎更少。