首页 动态 正文

存储共识范式:下一代区块链不必是区块链

 2024-01-09  

设想一种公链扩容方案,具有以下特性:

 

1. 速度媲美传统Web2应用或交易所,远超过任何公链、L2、rollup、侧链等。

 

2. 无Gas费用,使用成本为零。

 

3. 高资金安全性,超越中心化设施如交易所,稍逊于Rollup但等同于侧链。

 

4. 与Web2相同的用户体验,无需对区块链的公私钥、钱包、基础设施等有任何认知。

 

这种方案令人兴奋,一方面在扩容方面已经取得了极大成功,另一方面在Web3的大规模应用方面也奠定了坚实基础,几乎消除了Web2与Web3使用体验之间的差距。

 

目前,我们很难找到一个方案能够做到如此全面,因为相关的讨论和实践相对较少。本文将引入一种超前和卓越的下一代Web3计算平台设计范式——存储共识范式(SCP,Storage-based Consensus Paradigm)。

 

SCP基础组件和工作原理:

 

1. 数据可用性层:选择一条经受考验的公链或永久存储设施,如以太坊、Arweave等。

 

2. 执行层:一台服务器用于接收用户交易并执行,将用户签名后的交易原始数据批量提交到数据可用性层上。与Rollup的排序器相似,但不一定需要区块链的数据结构,也不需要EVM兼容性。

 

3. 共识确认层:由一群节点组成,拉取执行层提交到数据可用性层的原始数据,并用执行层相同的算法对这些数据进行运算,以确认执行层的结果输出。

 

4. 结算层:由一群节点与其他链上的合约或地址组成,用于用户充值进入SCP和提现离开SCP。节点需要运行执行层相同的算法,并通过多签合约或基于TSS的地址控制充值地址的提现功能。

 

everPay是SCP的先行者,已经构建了自己的产品,主要包括充值、转账、提现、swap等功能,可扩展成各种Web3和Web2功能。

 

协调者(Coordinator)即执行层,用户将交易提交至协调者,协调者执行运算并将用户的原始输入数据批量提交至数据可用性层。

 

检测者(Detector)从Arweave上拉取协调者提交的交易原始数据,验证数据和结果,确保执行层没有欺诈。检测者的客户端是开源的。

 

守望者(Watchmen)是提现系统多签的一组检测者,验证和放行提现请求。守望者还负责签署提案。

 

整个系统实现了全部链下共识,摆脱了区块链节点间的共识系统,实现了高TPS和经济性。这是SCP的精髓,将Rollup的概念抽象并提高,从扩容专属的用例变为新一代Web3计算平台的设计范式。

 

SCP的执行层至关重要,决定了整个系统的吞吐量和运算,以及系统上可以运行的应用。执行层可以根据项目的定位采取不同形态,例如交易所、支付网络、虚拟机/区块链等,实现了无限可能的执行环境。

 

用户在SCP中无需区块链形态的钱包,与服务器直接交互,实现了与传统互联网应用一致的用户体验,同时保持了去中心化。SCP的设计使得成熟的Web2用例可以直接应用于SCP,构建下一代区块链不必是区块链的可能性。

 

透明性与非对称性

 

前文提到了账户系统,对于敏感的读者而言,他们可能已经察觉到SCP虽然可以利用Web2的账户体系,但直接照搬似乎存在问题。

 

这是因为整个系统是完全透明的!直接使用用户与服务器之间的交互模型可能导致严重的安全性问题,使整个系统毫无保障。让我们先回顾一下传统的服务器-用户模型的工作方式:

 

1. 账号注册:用户在应用程序的注册页面输入用户名和密码。为了保护用户的密码,服务器会通过哈希函数对密码进行处理。为增加哈希的复杂性以抵御彩虹表攻击,通常会为每个用户的密码连接一个随机生成的字符串(称为“盐”),然后进行哈希处理。用户名、盐、哈希结果以明文形式存储在服务提供商的数据库中,不对外公开。然而,即便如此,仍然需要进行加盐和其他安全处理,以防止内部威胁和外部攻击。

 

2. 用户登录:用户在登录表单上输入其用户名和密码。系统比对处理后的密码哈希值与数据库中存储的哈希值。如果两个哈希值匹配,表明用户提供了正确的密码,登录进程继续。

 

3. 操作认证:登录验证通过后,系统为用户创建一个会话。通常情况下,会话信息被存储在服务器上,并且服务器向用户的浏览器或应用发送一个标识(例如cookie或token)。用户在接下来的操作中无需重复输入用户名和密码,浏览器或应用会保存标识并在每个请求中附带该标识。

 

现在,我们再来看一下典型的Web3区块链-用户交互体系:

 

1. 账户注册:实际上,没有账户注册的过程,也没有用户名-密码体系。账户(地址)无需注册,天然存在,由掌握私钥的用户控制。私钥由钱包在本地随机生成,无需联网过程。

 

2. 用户登录:区块链的使用不需要登录,大多数dApp没有登录过程,而是与钱包连接。某些dApp在连接钱包后可能要求用户对连接的钱包身份进行签名验证,确保用户真的持有该钱包的私钥,而不仅仅是传递了一个钱包地址给前端。

 

3. 操作认证:用户直接向节点提交签名后的数据,节点验证后向整个区块链网络广播该交易。在满足区块链网络共识后,用户的操作即被确认。

 

这两种模式的差异主要来源于对称性和非对称性。在服务器-用户架构中,双方共享相同的秘密。而在区块链-用户架构中,只有用户掌握秘密。虽然SCP的执行层可以不是区块链,但所有的数据仍然需要同步到公开可见的DA层上,因此SCP所使用的登录和操作验证方式必须是非对称的。然而,考虑到用户不愿意管理私钥或使用钱包等可能带来大规模应用采用的障碍和用户体验下降,SCP上构建的应用对传统的ID密码或OAuth三方认证登录的需求也很强烈。那么如何结合这两者呢?

 

鉴于非对称密码学和零知识证明的特性,我设想了两种可能的方案:

 

1. 对于希望使用ID-密码体系的情况,可以将保存密码的模块排除在SCP之外,使其对其他人不可见。SCP执行层内部仍然使用区块链的公私钥账户和操作逻辑,无需注册或登录。用户的ID实际上对应一个私钥,但这个私钥不应该存储在项目方。一个可行的方案是利用2-3的MPC(多方计算)来解决中心化存储的问题,同时减轻用户管理私钥的负担。

 

2. 对于OAuth登录,可以利用JWT(Json Web Token)作为身份认证的方式。虽然这种方式相对来说略显中心化,因为它本质上需要依赖Web2大厂提供的第三方登录服务作为身份认证。在第一次使用第三方登录时,将JWT中表征用户身份和服务商身份的字段注册到系统内。在用户的后续操作中,将操作指令作为公共输入,而JWT整体作为一个秘密见证,使用零知识证明验证每笔用户的交易。由于每个JWT都有过期时限,用户下次登录时会申请新的JWT,因此无需保存。此外,系统内还需要依赖JWK(JSON Web Key),可理解为大厂提供用于验证JWK的公钥。至于如何去中心化地输入JWK到系统内以及应对私钥轮替的方法,这也是值得探讨的问题。

 

无论选择哪种方式,与传统方式相比,这样的设计在开发和运行成本上更高一些,但这也是实现去中心化所必须付出的代价。当然,如果项目方认为实现极致的去中心化并非必须,或者在不同开发阶段有不同的里程碑,也可以不采用这些设计。

 

去中心化并非非黑即白,而是存在灰色区域。

 

隐私性

 

前文提到的透明性问题不仅对用户的交互方式产生影响,也会影响用户数据的隐私。用户的数据都是直接暴露的。虽然在区块链中可能不是问题,但在某些应用中是不太可接受的。因此,开发者还可以构建隐私交易系统。

 

收费

 

执行层的收费方式是另一个需要关注的重要方面。因为向DA层提交数据也需要成本,包括自身服务器的运行成本等。传统区块链向用户收取gas费的首要目的是防止用户刷大量重复的交易破坏交易网络,其次才是通过gas来排序交易。Web2没有类似的担忧,因此只需要考虑基本的防洪和DDoS等概念。

 

执行层可以自定义各种收费策略,例如完全免费或部分收费,也可以从其他行为(如MEV在排序器中已经非常成熟)和市场活动中获利。

 

抗审查性

 

执行层并不具备抗审查性,理论上可以无限制地拒绝用户的交易。在Rollup中,抗审查性可以通过L1合约的强制归集功能来保证,但侧链或公链是完整的分布式区块链网络,难以实现审查抗性。

 

目前还没有明确的解决方案来解决这一问题,这是SCP范式中需要解决的一个问题。

 

共识确认层

 

该层由松散的节点组成,这些节点并不主动形成任何网络,因此不是真正的共识层,仅用于向外界(如用户)确认当前执行层的状态。例如,如果对everPay的运行状态有疑虑,用户可以下载其检测者客户端,其中将运行与协调者相同的STF。

 

与Rollup类似,由于数据是批量提交的,执行层给用户返回的状态总是比DA层上的更新的。这引发了软硬最终性的问题。执行层给用户提供的是软最终性,因为数据还未提交到DA层;而共识确认层提供的是硬最终性。用户可能对此并不特别在意,但对于跨链桥等应用,必须遵循硬最终性。例如,交易所的充值提现系统不会依赖Rollup序列器的瞬时最终性。

 

除了用于确认结果外,共识确认层还有一个重要作用,即作为执行层的防灾冗余。如果执行层永久罢工或严重作恶,理论上任意的共识确认层都可以接手执行层的工作,接收用户的请求。如果发生如此严重的情况,社区可能会选择稳定可靠的节点来作为执行层的服务器。

 

结算层

 

由于SCP不是Rollup,因此无法像Rollup的提现结算层那样完全基于数学和智能合约代码的免信任提现。其安全性与侧链或跨链桥的跨链机制相同,需要依赖有权限的观察者放行资产,我们称之为见证人模式。

 

使见证人桥尽可能去中心化是许多跨链桥研究的议题。由于篇幅所限,这里就不具体展开。对于设计良好的SCP平台,实践中必须有信誉良好的去中心化桥的多签合作方,例如everPay与MPC服务提供商Safeheron进行了深度合作。

 

或许有人会问,为什么SCP不使用具有智能合约的链作为DA层?这样可以实现给予合约的、完全免信任的结算层。

 

从长远来看,只要克服一些技术难题,如果将DA层放到具有智能合约的链上并构建相应的用于验证的合约,SCP也可以获得与Rollup相同的结算安全性,而无需使用多签。

 

然而,在实践中,这未必是最优选择:

 

1. 以太坊并不专注于数据存储,其价格相对于专注于数据存储的纯区块链来说较高。对于SCP范式而言,低廉或固定的存储成本至关重要。

 

2. 智能合约系统的开发非常困难,因为SCP不仅可以模拟EVM,还可以实现任何逻辑。例如,Optimism等团队目前仍未上线欺诈证明,而zkEVM的开发难度也相当大。从这可以想象,在以太坊上实现各种系统的证明是一项极具挑战性的工作。

 

此外,更为关键的是,所谓与Rollup相同的结算安全性仅适用于具有智能合约的DA层链本身,例如以太坊。对于其他链而言,无法享受相同的安全性,因为它们上面没有任何数据。如果要跨越到其他链,仍然只能使用见证人模式的跨链桥。

 

因此,Rollup方案只在特定视角下具有更优越的结算安全性,即将一条链视为母链的情况下。然而,SCP并非旨在成为某种公链的扩容方案,而是一种更广泛的Web3计算平台架构。因此,并不一定需要从某条链中心主义的视角来执行。将结算层建立在智能合约上,除非特定情况下将某一链视为母链,否则无法确保其他链的结算安全性,这在实际中显得不太合理。

 

总结

 

SCP是一种全新的Web3计算平台范式,具有与传统Web2交易应用相媲美的速度、极低的交易成本,并能够构建出无限可能的应用。其安全性与主流方案保持一致。当前,SCP范式已经涌现出一批应用,如everPay、PermaSwap、Mind Network等,基于其卓越的设计理念,有望在当前和未来市场上迎来爆发式增长。


  •  标签: