Crust 实现了去中心化存储的激励层协议,适配包括 IPFS 在内的多种存储层协议,并对应用层提供支持。同时 Crust
的架构也有能力对去中心化计算层提供支持,构建分布式云生态。
5月28日,分布式云 Crust 邀请到嘉宾 Phala 创始人佟林以及主持人《金色深核》栏目策划人王航做客 Crust Show 第2期,Crust 产品总监 Dean 与佟林就项目的安全性方案如何实现、项目中 TEE 承担的角色以及对代币进度和生态发展的配合等话题进行了深度探讨。
以下为 Crust Show 分享整理。
先请两位简单介绍下自己和自己的团队、项目,如何进入区块链行业,开始现在的项目的?那么就从 Dean 先开始吧。
Dean:Crust 团队的成员,包括我大多来自于微软、思科等外企。外企有个特点,就是很自由,公司会提供足够的时间和资源给我们探索感兴趣的领域和技术,这点我想 Phala 团队的尹航应该深有体会。
Crust 项目成立是在去年,当时我们的考量是 BTC 挖矿本质上是算力的竞争,同时每年消耗大量的电力。那么是否能够把无意义的哈希计算变成有意义的服务呢?
通过研究了当时很多项目的技术和生态布局,比如 Sia、Storj 包括 Filecoin、IPFS 等,我们开启了结合了 TEE 的去中心化存储探索之旅。
佟林:简单说来,我们团队在高中时代就互相比较熟悉,打计算机比赛,当然作为学渣的我没有走这条路。毕业之后,我通过校招在腾讯做产品经理,后来去了滴滴。
在腾讯的离职宴上,了解到了以太坊和 EOS,后来一直作为业余爱好在研究,也在 EOS 上做了个简单实用的小 Dapp。而尹航这边,在谷歌时参与了比特币分叉大战:BitcoinGold 脱颖而出。
所以其实我们不是新项目,Phala 团队成立于 18 年中旬,当时我们发现 Web3.0 生态的智能合约,虽然可以实现去信任化,但付出的代价就是所有数据必须公开透明,这显然是一个很大的障碍,让很多应用没办法“去中心化”。
我们想要解决这个问题,所以 Phala 团队成立的目的,就是研发可以保密的智能合约。
大家应该对两位目前所处的项目有些了解了,接下来请两位介绍 Phala 和 Crust 各自要解决什么问题?如何来解决?切入的市场有多大?这次先请佟林开始。
佟林:我们想解决的现实问题:智能合约因为数据公开导致很多现实需求的逻辑实现不了,区块链因为数据全公开导致真正需要去信任化的隐私问题反而无法被解决。
这类现实问题,经过抽象之后,其实就是姚期智院士在 1982 年提出了的一个设想,叫做 “百万富翁” 设想。就是:两个百万富翁在街上相遇,他们都想知道谁更富有,但又不愿意让对方知道自己拥有的真正财富。如何在没有第三方的情况下,让对方知道谁更有钱?
在密码学领域,这个问题可以描述成 “一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下的协同计算问题”。也正是在提出 “百万富翁” 设想的同时,姚期智发布了一个名为“多方安全计算”(Secure Multi-Party Computation,简称 MPC)的理论框架。
解决这类问题,目前有两个主流方法:一个是用纯密码学的方法来解决,听上去是最理想的方法,但实际上现在的计算能力还达不到这个方法的代价;另一个方法是使用硬件设计,实现一个硬件的可信第三方(trusted third party, TTP),它能够接收来自多方的隐私数据输入,诚实的执行既定逻辑,再反馈结果。这个硬件方案已经被成千上万的设备所拥有了,这就是 CPU 的 TEE(可信执行环境)。
目前链上的隐私相对成熟一些,只不过目前全世界的数据,可以说接近 100% 都在链下,所以很明显,这是一个潜力巨大的市场,不会有人放弃。
Dean:这个问题很实在,我们认为项目的落脚点始终应该在解决实际问题上。
大家都用过各种云存储应用,这些中心化存储应用目前有一些问题,比如:数据中心不够分布、存储资源利用率难以灵活调整、数据中心带宽成本高、以及数据隐私和主权问题。
简单来说,在中心化的存储下,用户的数据存在被删、被偷、下载带宽受限的情况,并且在 5G 和边缘计算时代,现有的中心化存储对边缘计算的场景以及一些数据量骤增、骤减的黑天鹅事件支撑乏力。
去中心化存储,通过数据主权、数据物理存储的去中心化可以很好地解决以上问题。但为了实现去中心化存储,我们又需要解决三个技术问题:对节点存储工作的监督和量化、对节点的激励以及将节点提供的存储资源服务于各种实际应用。
Crust 通过 MPoW 机制解决了监督和量化的问题,通过 GPoS 共识实现了高效的节点激励,从 Crust 到落地应用的 “最后一公里“ 就是 Crust 现阶段聚焦的点。
目前人类每年产生 ZB 级别的数据,大家有限手机空间装不下的,照片需要云的辅助,大家看的在线视频、下载的游戏也需要云的加速。这是一个充满可能性的市场,会帮助企业降本增效、帮助用户保护隐私,Crust 的身影将会无处不在。
Phala 和 Crust 都采用了 TEE 技术,那什么是 TEE?在两个项目中 TEE 承担的角色是什么?
Dean:TEE 可信执行环境技术,本质是提供一种保证数据和代码执行的安全空间。这个空间里的代码和数据,不受常规操作系统的影响,可以有效的保证数据机密性和完整性。
在 Crust 里,TEE 像一个诚实的监督员。周期性的检查节点是不是正常工作,有没有错存漏存用户数据,这就是 Crust 的 MPoW 机制,大家可以关注 Crust 公众号(ID:hellocrust),里面有对 MPoW 细节的描述。
同时,TEE 还承担了 “保险柜“ 的功能。对于用户的敏感数据,TEE 的加密可以让存储节点自己也无法对用户的隐私进行读取。就像金库出租者自己也打不开客户的金库一样。
佟林:其实每个人的手上可能都有这样的可信硬件。比如 iPhone 的指纹功能。iPhone 有一个芯片专门做指纹验证和存储。从外部完全无法干涉整个验证流程,或者读取任何验证数据。
芯片只会告诉 App 开发者一个 “yes” 或者 ”no”。而开发者只要能证明这个验证环境是完整的,便可相信指纹验证的结果。
这套东西和区块链有什么关系呢?
大家可能可以看到,现在区块链的智能合约都是公开透明可验证的,在很多信任危机场景下,智能合约起到了非常好的作用。
但是,假设我希望能够跑一个不被人一眼看透的智能合约,比如我们有些企业机密数据想在区块链上去实现,怎么做呢?现在还没有成熟的方法。因此,我们希望能够利用大家都有的可信中介来实现能够保护秘密的智能合约!
两个项目是否有合作共赢的机会?如何互补?
佟林:Phala 的去信任化通过可信硬件保证,让硬件充当一个不可作恶的第三方,不仅可以实现去信任化,更实现了数据的保密。因此从技术上讲,Phala 的节点本质是 “非拜占庭的”,无需通过昂贵的共识算法就可以保证合约的安全执行。
由于 Phala 矿工是非拜占庭的,就得到了一些非常实用的特性。
第一是合约级的并行,因为非拜占庭,我们不用通过每个节点共识一次实现去信任化,因此每一个合约只需要运行在最少一个矿工上,每个矿工仅负责运行自己的合约,不同的合约在全网并行执行。因而网络的计算性能随着矿工的增加线性增长,可以实现极高的性能。
第二个是天生支持跨链,Phala 的合约是并行执行的,因此我们利用区块链与 TEE 互补,设计了一套合约之间的互操作协议,而这个互操作协议兼容 Polkadot 的 XCMP,因此跨链调用与合约调用一样简单。波卡生态很大的一个特点就是项目方之间是互补,而不是竞争。
举个例子,Phala Network 要想实现自己的业务愿景,即为 Web2.0 世界更换掉更好的数据体系,需要:
Phala 本身的隐私协议和算力
需要以太坊、Libra、EOS 等其他公链开发者使用。这一步需要以太坊桥、Libra 桥(我们自己做了),EOS 桥(Bifrost 彩虹桥)实现,以及原生智能合约链,比如达尔文、Plasm、Edgeware
需要数据存储。Filecoin 桥,或其他第三方数据协议(Crust 团队)
为了使用第三方协议,还需要交钱,这就需要稳定币和Defi设施(Acala)
所以可以看到,任何一个业务都需要其他业务的帮助,这也是为什么波卡能实现、其他链不行。为什么 Phala 一直不遗余力的联合其他项目搞活动、做合作,因为如果你要成功靠自己是决计不行的。
Dean:我们首先从需求层面观察,云存储是个刚需。如果有人做过 Web 后端开发可以发现,不管怎么抽象,几乎所有的后端框架都离不开数据层/存储层。
云存储赛道,有无数细分领域,比如共享数据存储和隐私数据的存储。谁能在某个细分领域提供靠谱的服务,谁就能成为一个最优选项。Crust 的 TEE 存储架构,天然的支持数据的隐私保护,这也会是 Crust 的一大差异化服务。
然后是技术面,Crust 和 Phala 的交集有两个:波卡平行链以及 TEE 架构。平行链机制可以让两个链上资源更轻松的流转交换;而 TEE 的双重支持则可以扩大数据安全存储的生命周期,对 Crust 来说,增加了隐私数据的计算功能;对 Phala 来说,完善了数据存储的隐私保护。
两个项目分别都有对标项目,例如 Phala 主攻的技术是 TEE + 零知识证明 + 平行链,这样的技术和主要利用 TEE + 区块链混合架构的 Oasis 相比,优势在哪里?Crust 是云存储项目,采用了 TEE+类 PoS + 类 PoW,这相比于 Filecoin 的IPFS+PoST+Por,有何优势?
佟林:Phala 最终采用了 TEE-区块链混合架构。我们把状态数据加密存储在链上,任何人无需许可就可以下载,利用共识算法,每个节点都能得到一致的状态。
最典型的 TEE -区块链混合架构就是 Oasis Labs 的 Ekiden。但在我们早期调研时发现 Ekiden 缺少可组合性的基础——互操作。
可组合性在实际的区块链应用必不可少,是实现规模化网络效应的基础。在以太坊排名前 10 的合约中 80% 都用到了合约间的组合与交互。同样地,Phala 上的数据交易协议也需要与链上应用和服务,包括去中心化存储、DeFi 等基础设施相互组合。
为了实现可组合性,Phala Network 引入了独特的分层与事件溯源机制,简单而言,Phala 把合约的读写两类操作分离,读操作在链上排序,从而杜绝了 Race Condition,同时实现了 TEE 间的共享安全性。允许合约之间、甚至是与外部区块链之间得以互操作。
另外就是通过平行链+中继链的设计,可以让 Phala 使用到外部资源和能力,也可以轻易的分享能力给第三方使用,这一点在其他类似生态中很难实现。
Dean:我们不会对比量杯和直尺两个工具哪个更好用,因为他们会被用在不同地方。就像 Filecoin 和 Crust。
在回答这个问题之前,我想带大家深入了解一下,不同类型的数据场景:公有数据和私有数据。区分这两种数据以及相关场景,对我们挖掘用户的深层次需求至关重要。
公有数据是指,全人类享有的价值数据,比如气象、生物基因、珍贵书籍等对数据。维护这种数据最好的办法就是去中心化共享,通过 P2P 文件协议(IPFS 是目前最优秀的文件共享机制之一)去中心化的让这些数据被全球节点存储并共享。
Filecoin 设计的初衷,就是对 IPFS 节点进行激励。我们也可以看到近期上线的 Filecoin Discover 项目在全人类珍贵数据上做出的巨大努力。
私有数据一般指的是企业的业务数据以及个人的私人数据等,数据主权属于某个特定的人或组织。维护私有数据最好的办法是隐私存储,这就是前面提到的,TEE发挥的作用。
除了隐私外,为了满足企业和个人用户的需求,加快产品化落地,Crust 提出了 MPoW 和 GPoS 机制。
MPoW 就是节点的工作量证明机制,像 PoW 一样其核心是“多劳多得“,体现的是公平性,但跟 PoW 的本质区别是,MPoW 是 Meaningful Proof of Work,节点的工作量是有意义的。
为了支撑各种应用场景,Crust 又参考了 PoS 和 Kusama 的 NPoS 共识设计了 GPoS 共识算法,为的是达到更高的性能。
因此 Crust 兼具 PoW 的公平和 PoS 的高效,同时还有TEE的隐私数据处理能力。
从 Phala 和 Crust 的两个项目设计上看,可组合性很强,都天然具备跨链能力,在这一点上两个项目创始时是如何思考的?如果我们看以太坊等这些项目,一个网络通过不同类型的共识节点维护网络,一旦一方出错,其他网络也可以支撑。两个项目对这一点是如何思考的?
佟林:如果关注波卡官方,会发现他们一直在反复提“共享安全性”这个概念,这是一个非常非常重要的功能,可以说没有共享安全性,跨链的意义会大打折扣。
波卡允许平行链之间相互调用,比如我的链上发的 Token,可以被另一个 DEX 链使用。
大家都用过交易所,充提币需要等待几个区块确认,这是为了保证转账的安全。如果不等待,交易还没有结算,那么链一旦出现回滚等问题,交易所就会丢钱。而波卡的设计就解决了这个问题,所有链的交易同步执行,由波卡验证人统一验证。
这种安全跨链能力是我们选择波卡的主要原因,目前波卡平行链已经开源,即将上线,详细跨链通信也会很快推出。
Dean:波卡和以太坊在网络的安全上都有很深刻的探索,前面佟总也对“跨链安全“进行了详细阐述。在这里我想分享一下一些我们选择波卡的理由。
首先,创新的 NPoS 以及 BABE/GRANDPA 共识,在保证安全的基础上,足够简单高效。其次,正如佟总提到的,一个优秀的跨链机制,对项目方之间的价值增量是一加一大于二的,这一点可以说是英雄所见略同。最后,波卡的 Substrate 对我们开发有着很强的加速作用。
虽然 TEE 占据了一定物理优势,但两个项目都有除了 TEE 外的部分,那两个项目的安全性方案是如何实现的?似乎 Crust 相比 Phala 来说,安全性范围要更广一些?
Dean:首先,Crust 计划支持 Multi-TEE 解决方案,通过双 TEE 机制(CPU + 软件 TEE)实现工作量的双重校验以及反作弊预警,TEE 的异常行为将被实时反映在 Crust 网络(Crust 官方公众号后续将发布 Multi-TEE 的相关介绍)。
其次,Crust 的战略合作伙伴 TEEX 是在 TEE 领域十分顶尖的团队,在 SGX 的漏洞发现和攻击抵御有很深的研究,Crust 可以及时进行软件更新,补丁配合 Substrate 的无分叉升级机制,可以有效增加 Crust 网路的健壮性。
我认为安全性不存在 “范围” 这一说,所有项目都是在百密和一疏之间跟自己较量。安全性更广,可能受攻击面也更大。我们安全做的再完备,只要还存在攻击面没有被防御到,很可能就会带来巨大的影响。
这也是 Crust 和 Phala 团队的另一层合作——技术的合作带来的优势。相互取长补短,“防范百密一疏,争取万无一失”。
佟林:我对 Crust 的软件 TEE 比较感兴趣,希望 Dean 可以多讲讲。至于 Phala,在威胁模型构建、TEE硬件研究和复旦大学安全领域的实验室合作之外,也对 SGX 远程认证、补丁更新有完整地抽象。Phala 在协议底层就预期了未来兼容多种 TEE 协议,并不只有英特尔。
另外在合约分发、经济机制中也充分考虑到了 SGX 的多种安全风险,比如计算任务分发是一套复杂的共识依赖-隐私计算需求收集-TEE 矿工选择-派单-抵押机制的管控的流程。
Phala 的矿工未来不会都是一个安全级别的,随着网络的健全、需求立体,我们会用 Substrate 升级功能不断丰富 TEE 矿工的服务丰富度,提供比传统 SGX 更安全的 TEE 设备。
Phala 和 Crust 都可以涉及隐私计算或数据隐私保护,如果使用两位的项目对企业数据进行隐私保护,请两位提供一个可行性方案?
佟林:Phala 可以通过企业级定制的 SDK 和接口,帮助第三方企业做可信数据托管。托管的核心秘诀是企业要像原来一样能方便的调用,只不过多方企业、企业内部可以达成比较好的信任关系。
比如现在大公司的内部,数据在各部门之间都是通过权限 + SQL 数据超市来流转的,这依赖一个极度被信任的中台。而这个中台其实是极度权力集中的,不仅容易出内鬼,而且无法复制到企业外部使用。
Phala 的隐私计算协议可以作为一个去信任化的中介,替代和优化这个已经存在于市场的需求。
Dean:毫无疑问,Crust 可以负责数据的存储,而隐私数据的云存储将成为新突破。
企业可以直接使用 Crust Pan 客户端(Crust 云盘),或在企业数据平台兼容 Crust SDK(S3-like 接口)。
SDK 会将节点选择、冗余备份、检索加速、元数据管理等功能进行封装,企业只需要根据业务需要进行简单的配置即可。如果配置了隐私,隐私数据的存取将会全程加密,这也会使得更多企业将业务数据上云。
最后一个问题我们聊聊生态自治,加密货币网络都会存在“激励”部分,但激励就要用到代币,代币会涉及投资价值与交易市场,在市场中,我们见到了太多把代币和生态融合过于密切而因为行情影响发展的例子,请两位聊聊对代币进度和生态发展的配合?
Dean:对代币的设计,Crust 和多方充分的讨论然后设计了我们的代币模型。目前完整的经济模型没有对外发布。这里提前给大家介绍一下。
Crust 网络中的原生代币主要有 6 大功能:
代币的价值和 Crust 网络的规模相关,当 Crust 网络被大量的用户使用时,CRU 的需求相应的会上涨。
Crust 的代币分配方案中,60% 的比例分配给上线后的资源节点的“挖矿”工作,16% 左右会投放给项目的关注社区,8% 左右用于孵化生态应用。其余部分转让给一些早期投资人和项目团队。
目前,Crust 的代币长期通胀率设定为 1.8%,通过手续费的销毁机制,代币通胀率极低,甚至是可能出现通缩的。
Crust 的代币和生态结合很紧密,代币受益于生态的发展,但代币的行情并不会影响项目发展。比如说我们的服务市场交易可以接受像稳定币这种用户友好的计价币,交易手续费也是类似 ETH 的 Gas 机制。生态内的应用都市场定价,遵循市场机制。
佟林:Phala 的经济模型已经公布了 2 个月,在测试网开发中。我们之前在 BTG 吸取了过度去中心化的教训,也充分学习了这两年的很多项目的经济、治理模式。
Phala 底层是 NPoS 机制,和波卡很像,但是通胀很低,最高通胀是 5%。而初始代币分发又很 PoW,70% 的代币是 TEE 矿工和其他角色挖出来的,9% 是抵押空投的,1% 是测试网做活动的激励,团队只有 5% 的激励、募资全部是 15%。通过这种分配,我们希望能在可持续性基础上实现尽可能的理想化。
目前 Phala 那 9% 的空投的第一波已经启动了,大概分发 2.7% 的 PHA 给波卡社区的 KSM 持有者,目前已经有超过 90 万 KSM 在我们的抵押列表中,希望大家也可以多多参与。
另外就是 Phala 的测试网即将上线 NPOS 机制,TEE 设备矿工可以来做 Gatekeeper 节点了,在 1 个月左右我们将在测试网上线 TEE 挖矿功能。一切顺利的话,主网预期在 2 个月左右时间启动。