一文了解Volition:探索数据可用性的设计空间

以太坊爱好者 view 139 2020-6-19 15:05
share to
Scan QR code with WeChat

太长不看

数据可用性并非只有 链上/链下 之分,而是一段频谱。StarkEx 的部署方案将覆盖整个频谱。目前,StarkEx 实例既可以是 Rollup(二层交易数据会上链),也可以是 Validium(交易数据放在链下)。首个 StarkEx 实例是 Validium 方案。

我们将介绍一种新的设计 Volition 。Volition 是一种混合 链上/链下数据 的解决方案,可以让用户动态地选择数据的存储位置。StarkEx 即将支持 Volition 。

背景

我们最近在以太坊主网首次上线了 StarkEx 。这一版的 StarkEX 作为后端支持着 DeversiFi 去中心化交易所。而 DeversFi 所选的数据可用性方案是通过数据可用性委员会(DAC)将交易数据存储在链下。DeversiFi V1.0 之所以选择这种方案,是因为它不能将客户(专业交易者)的交易历史记录到链上,以免将客户的交易策略透露给竞争者。DeversiFi 在数据可用性方案的选择上充分考虑到了客户的需求,同时尽可能免去他们对 DAC 的信任。需要注意的是,DeversiFi 选择链下数据方案的另一个原因是可扩展性:可扩展性可以带来流动性,对于一家新兴去中心化交易所来说至关重要。

StarkEx 的上线引发了一场关于如何合理命名不同可扩展性方案的讨论,因为它们的数据可用性方案毕竟不同。我们建议对定义进行如下改进。

一文了解Volition:探索数据可用性的设计空间

根据上述定义,DeversiFi V1.0 的技术方案应该叫 “Validium”。

动因

我们相信数据可用性是可扩展性方案的一大重要维度。我们知道不同的应用、用户、运营者都有各自独特的需求,从而影响到它们对数据可用性方案的选择。开发可扩展性方案的公司需要提供不同的产品,来满足其 客户/用户 的多样化需求。

过去一年来,我们在数据可用性方案的设计上投入了大量研究。这是一个丰富的多维度领域,并且随着区块链的发展,整个生态系统对区块链的理解也将得到发展。我们希望解释现有的权衡关系,并研究出改进方案。具体来说,我们致力于设计出具有亚线性可扩展性(在可扩展性上优于 ZK-Rollup)的数据可用性方案;随着以太坊上的拥堵加剧,这类方案就愈发重要。如果以太坊成为了理想中的通用公共基础设施,势必会对可扩展性提出更高的要求。

Volition

我们的价值主张很简单:让用户在进行个人交易时,可以随时自由选择任意程度的数据可用性偏好,不受资产类型的限制。假设有一家交易公司的 风险/回报 预测反映了用户对安全存储资金以及较低交易费的偏好。在这样一家公司,交易日开始时,资金会转移到交易者的链下数据(OFFD)账户中。出于安全性原因,在交易日结束时,所有资金都会被转移到链上数据(OND)账户中。

从概念上来说,StarkEx 中的每个账户都会被定义为 OFFD 或 OND 。用户可以控制多个账户,然后根据需要在这些账户之间转移资金。StarkEx 会为每一批交易生成一个证明。如果某批交易中包含了 OND 用户的交易,则相应的证明必须这些 OND 账户的余额(即此前批次的处理结果)作为公共输入(调用数据)。

因此,上图应该更新成这样:

一文了解Volition:探索数据可用性的设计空间

我们正在实现这一设计,具体的部署细节很快就会发布。

隐私性

目前,市面上可用的解决方案都存在隐私性问题。如上文所述,正是隐私性方面的担忧促使 DeversiFi V1.0 选择了 StarkEx 。将零知识证明(ZKP)与加密技术相结合的系统可以实现数据隐私性。这类系统可以应用于 OND(Rollup)和 OFFD(Validium),为用户带来更好的隐私性。

OND :我们有一种可以让加密数据上链的设计。这可以让交易者既享受 Rollup 的安全性,又不用担心会损害隐私性并暴露自己的交易策略。

OFFD :隐私性能够确保 DAC 成员无法滥用职权:他们依然可以证明数据可用性,但是无法获知交易或余额的具体细节。因此,StarkEx 的 DAC 成员人数可以扩大 10 倍(目前是 6 人)。DAC 扩大之后,签署每批交易所需的人数也会增加。

此外,DAC 成员的职责也会减少到只需签署由 StarkEx 处理的每批交易即可;数据可以公开—— DAC 成员不再承担数据保密的责任。总之,无论选择什么配置,被赋予了隐私性的 StarkEx 会成为更加完善、安全的产品。

接下来,我们将更深入地介绍我们设计的两个数据可用性增强功能。我们的目的是分享有用的设计,并凸显数据可用性的设计空间。

最小可行性回滚(MVR)

在考虑 OFFD 解决方案时,我们的一个担忧是数据不可用攻击:在运营者和 DAC 均遭到攻击的情况下,攻击者可以在不公布所需数据的情况下(即,创建一个数据不可用状态)将系统转换成一个新的状态。

最小可行性回滚(MVR)可以将一个数据不可用状态回滚到一个数据可用状态,从而解决这一问题。与此同时,MVR 可以确保系统在回滚到新状态(state_new)之后仍具有偿付能力,从而防止双花。在一个 MVR 系统中,每次取款都需要将(最后 k 批交易中的)所有与该账户相关的存款交易提交上链。state_new 基于一个数据可用的最近状态(state_recent),但它并非单纯地复制了这个状态。state_new 是一个 “具有偿付能力的” 状态,包含了(最后 k 批交易中)所有流入和流出 StarkEx 的交易(以取款交易告终)。因此,用户可以从处于新状态的系统中取款。

这种 MVR 设计可以防止双花攻击,即,攻击者先在 state_recent 后取款,然将系统转变成数据不可用状态;一旦系统回滚到 state_recent ,攻击者就可以重新获得之前已经取走的资金。

有了 MVR ,只要双花攻击在 k 批交易内被发现,系统就可以回滚到 state_new ,因为这几批交易期间提交的证明中所包含的信息足以用来构建一个具有偿付能力的状态。

就可扩展性而言,一些数据会被发送至链上,但是在通常情况下,需要上链的数据少于 Rollup (在最糟糕的情况下,与 Rollup 一样多)。该系统在设计上合理利用了快速取款机制,因此不像 Validium 那样需要额外的公共输入。

点击此处,了解 MVR 的详细说明,包括如何计算 state_new 。

免信任型链下数据可用性(TODA)

在免信任型链下数据可用性模型中,用户可以选择成为权力用户(PU),以完全免信任的方式运营。PU 始终将资金掌控在自己手中:通常情况下,PU 会像 DAC 成员那样,为每个证明提供签名。PU 可以通过签名来证实他们有权访问自己的 OFFD 。即使 DAC 成员没有按规定公布所有数据,PU 也可以在紧急情况下激活 “逃生舱(Escape Hatch)”。在没有及时签名的情况下,PU 的资金会自动从链上退回应用智能合约 —— 这属于保护性取款,在 TODA 改进后的免信任性中起到核心作用。

不想成为 PU 的用户可以选择信任链下实体,不再仅限于信任 DAC 成员 —— 他们可以选择信任任何愿意成为瞭望塔的 PU (需要授权该 PU )。我们之后会发文详细介绍该协议。

结论

对于任何具有可扩展性的区块链系统来说,数据可用性都是至关重要的一部分。区块链生态系统,尤其是 StarkWare ,都在努力探索这方面的设计空间。本文介绍了我们想到的一些比较优秀的设计,包括 Volition 。通过 Volition ,用户每次交易时都可以自由选择是将数据放在链上还是链下。

(完)

btcfans公众号

Scan QR code with WeChat

Disclaimer:

Previous: Eth2 更新速览,No.12 Next: 中国人民银行法迎修订为发行数字货币提供法律依据

Related