欢迎您光临本站,如有问题请及时联系我们。

秒速快3

人类社会已经进入到“数据和智能商业时代”。越来越多的商业服务开始在线化,业务变得数据化,同时引入 AI 分析数据,优化和执行决策,商业的循环将演化地更加高效,数据 + 智能毫无疑问会是驱动人类生产力爆发的下一对双轮。

但伴随着数据爆炸和 AI 能力的突飞猛进,层出不穷的数据泄密、隐私侵犯等恶性事件不断出现,公民的“数据权”意识逐渐觉醒,各国政府也不断加强数据隐私的保护,对企业在数据的应用上施以高压,压缩了数据的商业化空间。“数据隐私权”和“数据商业效率”的平衡,可谓数据经济时代最大的难题之一,本文为解决这个关键问题提出了解决思路和技术方案。

在本文中,我们提出了可信计算协议(Trusted Computing Protocol,简称 TCP),这是一个结合区块链和可信执行环境来解决上述隐私保护问题的系统。TCP 是一种新型的架构,将共识与计算解耦。实现高效的 TEE(Trusted Execution Environment)支撑的可信计算和高可扩展性,我们重新设计了状态模型,并且在 Tendermint 共识算法中增加公平的随机数,力图达到更高的网络吞吐量以及体现去中心化治理的价值。另外,我们设计了一套去中心化的密钥管理系统,可以动态更新密钥,将达到更高的隐私保护安全性。

最后,TCP 是一个 Layer 2 扩容方案,遵循 Plasma 协议,可以为任何区块链项目提供可信计算和复杂运算。TCP 最终实现在保护数据隐私的前提下进行复杂计算,有效地降低了企业敏感数据的法律风险,提升了数据变现能力,助力深度学习和人工智能等行业的发展。

1. 简介

随着云计算的不断发展,为了实现更高效的数据流通和数据计算,集中化的数据管理方式被广泛采用,同时产生了众多因数据管理不当而导致的隐私泄露问题。在没有行之有效的隐私保护技术方案出现之前,各国纷纷颁布了数据隐私保护条例,通过法律来约束对数据的使用。

可信计算的诞生,是为了通过各种密码学技术,在保护数据隐私的同时,使得数据得以大规模应用。本文提出的 TCP,是一种以区块链技术作为信任基石,结合链下计算和 TEE 的隐私保护计算方案。该方案使得企业和个人可以把数据处理模型部署在区块链上,在链下可信执行环境中处理隐私数据,最终把可验证结果存储到链上并更新状态,整个过程通过密码学和 TEE 等手段来保证数据的隐私和安全。


1.1 驱动因素

人类文明诞生以来,集中化成为一个主要的竞争优势。社会化和集中化的政府能发展出更多先进的技术,累积更多的资源,推进社会的快速发展。在过去的十年中,网络的惊人增长与集中化的趋势相结合,使一些大公司拥有了网络的关键节点,并因此在网络上积累和拥有了大量数据。而缺乏透明度和相关法律法规产生了数据集中化的消极影响:操纵 [1],监视 和频繁的数据泄露。我们努力寻找一种新的模式,通过集中化实现最大化的产出和效率,并运用去中心化的治理机制,减少传统的集中化数据处理模式中存在的问题。

比特币和其他区块链 向大众承诺一个美好未来。如今可以使用分布式架构构建应用程序,在其中没有任何一方拥有绝对的权力和掌控力。区块链的公共性质保证了应用程序工作方式的透明,并留下了不可篡改的活动记录,为诚实行为提供了强有力的激励。比特币是第一个这样的应用程序,开启了一个新的网络范例。

现代应用程序使用大量数据并对其进行分析,然而区块链的强烈验证和公开性限制了潜在的使用案例,这个限制意味着只有受信代码可以在区块链上运行。问题是,现代应用程序中许多最敏感的部分需要对隐私数据进行大量处理,而区块链的公开透明和全节点验证,数据将流经区块链上的每个全节点, 使其无法很好的处理隐私数据。

这种模式有一个自相矛盾之处:最敏感的隐私数据只能在集中、不透明和安全未知的模型中存储和处理。我们已经看到这种模式导致了灾难性的数据泄漏,以及我们目前在网络生活中不得不承受的系统性隐私保护缺失。另一方面,区块链全网同步验证和执行的机制使其不适合处理复杂的计算。

1.2 前人工作

可信计算在区块链的背景下发挥重要作用,围绕着这个主题,我们分别介绍在近年来在 TEE、
区块链扩容和共识算法领域取得的最新进展。

首先,在 TEE 领域,最近有一些项目尝试在英特尔 SGX 中执行区块链应用程序、智能合约和机器学习。微软发布的 Coco 框架 ,它提供了一组基于英特尔 SGX 的构建模块,可用于保护区块链系统数据隐私。R3 Corda 分布式账本平台宣布了使用 SGX 的隐私功能 。Teechain 是一种在比特币之上进行离线支付的系统,它利用 SGX 在不信任方之间建立有状态的支付渠道。

Zhongshu Gu 等 开发了 DeepEnclave 划分深度学习模型,利用 SGX 来缓解推理通道中的敏感信息泄漏问题。Roland Kunkel 等提出 TensorSCONE,一种基于 TensorFlow 的通用且安全的机器学习框架,支持在不受信任的基础架构上(SGX)上安全执行现有应用程序。T. Hunt 等设计了基于 SGX 安全区实现的 Chiron,一个用于保护隐私的机器学习即服务的系统。

其次,在公链扩容领域,主要分为链上 Layer 1 和链下 Layer 2 扩容。著名的 Layer 1 方案,早期是比特币的隔离验证(SegWit),近来是以太坊的分片(Sharding),它将在Casper 中实施;与此同时,Layer 2 方案受到越来越多的关注,全球团队主要采用状态通道(State Channel)和侧链(Side Chain)两种解决方案。著名的状态通道有基于比特币的闪电网络(Lightning Network)和基于以太坊的雷电网络(Raiden Network),后者为 ERC20 和 ERC223 标
准代币专门设置的状态通道;侧链方案中,Cosmos 在多方跨链通信方面做了非常充实的工作,其共识算法具备良好的性能;Plasma 是 Vitalik Buterin 等提出的,目标是将很多智能合约计算移到侧链而非主链上执行,目前已经有数个可实施版本。

最后,在共识算法领域,比特币和以太坊的工作量证明(PoW)已经稳定运行多年,在权益证明 PoS 提出之后,近两年来涌现出很多 PoS 的变种以及 BFT 的改进版本。Algorand采用的BA* 是一种优化的 BFT 算法,采用可验证随机函数(Verifiable Random Function,简称 VRF)的方式选择区块发布者;Thunderella[20] 选出一个委员会采取同步非 BFT 的方法做共识,称为快速通道,与前者的思路类似;Cardano 的 Ouroboros是一种 PoS(Dynamic Proof of Stake)算法,在最新版本里面也同样采用 VRF 算法;Dfinity巧妙地利用门限签名算法生成随机数来选择下一轮共识节点组合,它也是一种 PoS 算法;Tendermint 是一个异步 PoS 算法,并且提供拜占庭容错,比起同步 PoS 算法更快,并且不需要担心安全问题。

2. 可信计算范式

2.1 基础概念

可信计算的可信意味着“如果一个实体的行为总是按照预期的方式和目标进行,那它就是可信的。可信计算的核心思想是“终端源可信传递”,这与其他传统意义上的安全方案有着本质性的差异。

可信计算协议(Trusted Computing Protocol, 简称 TCP),是在可信计算的基础上进一步扩大信任的边界,实现可信数据采集、可信数据存储、可信数据交换、可信数据计算和可信数据应用,同时使用多种隐私安全技术,来达到高效的可信赖的计算范式。

首先,我们用一个简单的公式来定义可信计算的过程:

2.2 抽象定义

我们定义的下一代通用可信计算协议具有如下属性:

1. 安全性
2. 隐私保护
3. 链下计算性能
4. 链上网络吞吐量
5. 价值拓展

我们对可信计算行业进行了深入分析,在安全性和隐私保护层面,同态加密(Homomorphic Encryption)和安全多方计算(Secure Multi-party Computation)在密码学的范畴给出了优秀的答案,但在计算和通信复杂度方面,则面临着很大的局限。在计算性能方面,可信硬件综合了前述两种方案的优势,具备更高的计算性能,满足我们的预期。

现有绝大多数公链,由于交易需要在全网每一个全节点上执行,存在大量的冗余计算,并且随机节点数量的增加,其计算性能不会超过单节点的计算能力。我们思考在不同的场景之下,满足多种形式计算的需求(比如可信计算、复杂计算),减少之相应的计算冗余度并大幅降低交易费用。我们设计了分层网络并优化了共识算法,将计算与共识剥离开来,在正常的状况下,交易只需要单个节点执行,整个网络的计算能力会随着计算节点数量的增加而提升。

我们定位自身为一个 Layer 2 方案,可以为任何公链提供计算扩容和可信数据计算能力,我们实现了 Plasma 协议,在此基础上针对我们的状态模型进行改进,这样我们就可以在不破坏公链共识的前提之下拓展其共识的价值,丰富其通证使用场景,为其赋予更多的想象力。

以上三点是 TCP 的基本特性,在此我们给出一个标准的定义:TCP 是一个去中心化的可信计算协议,我们致力于在 trustless 环境中,为数据持有者和数据消费者之间搭建信任的桥梁。不同于传统的行业模式,我们使用区块链作为底层基础架构,解决价值流转层面的问题,同时具备区块链的可溯源、防篡改、智能合约等基础属性;在底层使用 TEE 提供的安全可信计算环境,解决数据泄露层面的问题。

3. 约定

在这一章描述本文中涉及的基本符号,我们参考以太坊黄皮书的符号体系,做基本的约定:

B:代表一个区块
T:表示一笔交易
σ:世界状态
A:子交易状态
μ:机器状态
t:时间
C:总体费用函数
Π:区块级的状态转换函数
Υ:TCP 的状态转换函数
Ω:区块落盘的状态转换函数
?:数值转换函数
n:代表 nonce
s:发送者
o:交易发起人
r:接收者
c:执行代码的账户 ( 通常与接收者相同 )
v:可验证的计算结果
d:加密数据 ( 一个任意长度的字节数组 )

4. 可信计算架构

4.1 共识机制

4.1.1 动机

在主流的分布式共识算法中,整个区块链网络的性能不会超过一台单节点,智能合约的链上计算本质上是昂贵的,并且受限于区块大小和出块间隔,难以满足链上复杂计算的需求。

另一方面,主流的 BFT 以及衍生算法,比如 Tendermint、EOS 等,缺少完善的节点奖惩机制和选择记账节点的随机性和公平性。在比特币的工作量证明机制中,所有节点依赖算力竞争出块,本质上是一个随机性事件,它保障了记账在节点级别上的公平。在 PoS 的一些衍生算法中,通过MPC 等方法生成随机数用来确定下一个或者多个记账节点,本质上也是随机性事件,降低了记账节点受 DDoS 攻击的风险。

共识算法是 TCP 的重要组成部分,我们通过结合 Tendermint 以及基于 BLS签名的门限签名算法,实现了公平的随机记账和高效的共识。

4.1.2 共识算法

TCP 使用基于 Tendermint 结合 DKG(Distributed Key Generation,如 )和 BLS的改进共识算法,它具备以下特性:

1. 实现快速的交易确认
2. 解决区块链的分叉、交易回滚问题
3. 达到更高的网络吞吐量
4. 生成公平的随机数
5. 实现记账的公平

1.3 安全性证明

假设所有节点的总数为 R, 拜占庭节点数量为 f。设想 f 个叛变者和 k 个忠诚者,叛变者可以给出错误的结果,也可以不响应。某一时刻,f 个叛变者都不响应,则 k 个忠诚者取多数也能得到正确结果。当 f 个叛变者都给出一个恶意的响应,并且 k 个忠诚者中有 f 个离线时,剩下的 k - f 个忠诚者此时无法分辨是否混入了叛变者,仍然要确保取多数才能得到正确结果,因此 k - f > f 即 k >2f,所以系统整体规模需要满足 R>3f。

采用绝对多数的选票选定的最优拜占庭容错算法,可以保证:

1. 当超过 1/3 的验证节点发生拜占庭行为时,系统将停止工作,在交易安全和停机风险之间选择安全;
2. 出现验证安全问题,可以对冲突进行投票,广播有问题的选票,作为证据提交;
3. 如果遇到对同一特定区块的同意及否决信息同时超过 2/3 的情况,需要启用外部的维护机制去核查是否存在超过 1/3 的验证节点伪造签名或者签署两个相互矛盾的投票。

4.2 分层网络

4.2.1 动机

区块链的三元悖论是指区块链系统的去中心化、安全性和可扩展性只能取其二。在现有的区块链中,由链上合约执行计算,成本高昂并且有指令数和区块大小限制,比如以太坊设置区块的最大Gas Limit,整体性能远远无法满足商业化落地的需求。因此我们设计了分层网络和状态模型,解耦计算与共识。这样的方式可以充分利用计算节点的资源,避免冗余计算,大幅提升网络吞吐量。

4.2.2 状态模型

以太坊是典型的以事件作为驱动的状态模型,在区块中存储的是事件,网络中的每一个节点都需要对 events 达成共识并执行交易更新世界状态。经过对分层网络模型 [21,34,35] 的设计理念进行研究,我们认为在区块中存储状态和证明是更加优雅的方案。因此我们设计了一个状态模型,每一个交易(transaction)包含事件(event)、状态(state)和交易证明(attestation),如图所示:


在一笔 transaction 具体包括:event,修改前后的 state,计算证明 attestation 以及执行结果的哈希值。我们将在未来的工作中引入零知识证明(例如 zk-STARK),实现通用的可验证计算。

4.2.3 链下计算

用户可以指定在网络中注册的任意计算节点,向其发送请求(包含合约的 cid,输入参数,请求签名 signature 等)。计算节点验证交易发送者的 signature,根据合约 cid 去链上拉取合约代码,同时向数据持有方请求数据d。当合约代码和数据准备完毕,则在 Enclave 中完成初始化并执行。执行结束之后,将交易证明 attestation、新的状态 state 和请求 req 等组装成完整交易发送至共识网络中。在公式 2-2 中,我们定义了抽象的执行过程,使用输入参数来执行模型,得到执行结果和证明。在这里,我们对其进行具象化:

在上式中,state 包括修改前后的状态,result 是合约执行结果,attestation 则是交易正确性和完整性证明,DEC 是抽象解密函数。数据使用合约公钥加密,DEC 调用 DKMP 服务获取对应的合约私钥从而解密数据。

4.2.4 链上验证

4.3 分布式密钥管理协议

4.3.1 动机

基于对当前行业的研究与分析,我们选用 TEE 作为我们可信计算平台的核心组件,更多的 TEE内容在 4.4 节中体现。各大公司在使用 TEE 进行可信计算方面做了很多实践,与此同时,最近的研究表明,针对 TEE 的旁道攻击仍然会导致数据泄露。现阶段的防御手段一般分为三个层次:源码级别(例如利用 bit slicing 来增强 AES 和 DES),系统级别(例如 TSX 技术来保护 Enclave 的自身时钟)和硬件级别 。这些方案只解决了特定领域的具体问题,在普适性方面存在着巨大挑战。

尽管如此,我们仍然希望最小化受损的 TEE 能造成的安全影响,Ekiden[40] 采取的方法是在空间和时间上划分区域。为了应对一定数量的 TEE 受到破坏的情况,同时在业务上独立于硬件级别的公私钥,我们设计了关键协议:分布式密钥管理协议(Distributed Key Management Protocol,简称 DKMP),即使特定阈值范围内的 TEE 的机密性受到破坏,仍然不会泄露密钥,同时实例化此协议的组件以服务的形式提供并设置访问规则。更进一步的,我们还将采用主动密钥旋转来限制密钥泄露的范围。

4.3.2 DKMP

DKMP 在安全秘密分享组(Secure Sercet Share Group,简称 SSSG)中生成、管理和合约的密钥分片。SSSG 是共识节点的一个子集,由共识算法中的随机数(见 4.1.2)来决定,它的成员分布式地储存密钥分片为合约提供密钥支持。DKMP 是对 TEE 密钥管理的一层抽象,它包括 DKG 和移动主动密钥分享算法(Mobile Proactive Secret Share, 简称 MPSS)。

1.分布式密钥生成(DKG):允许一组多方成员共同生成多项式,每一方都得到无偏差的随机密钥。DKG 协议的运行结果是每一方能获得一份密钥对,并共享一个公共公钥。

2. 移动主动密钥分享(MPSS):允许一组多方成员保存共享密钥,并且能动态的在不同的多方成员组中传递密钥分片。MPSS 协议的运行结果是,多方成员组共享的密钥分片在不同的成员组中接替保存密钥分片。

4.3.3 安全证明

DKMP 需要共识网络中生成的随机数来确定 SSSG,并且在特定个 epoch 更新 SSSG。在DKMP 中,我们考虑了 SGX 可能受损而泄露数据的情况,在此基础上分析 DKMP 的安全性。已知共识节点的总数量为 N,SSSG 的成员数量为 n(n

1. f < t
在简单的情形下,每在一轮中,恶意节点的数量都少于 t,恶意节点拥有的部分密钥分片无法还原出密钥,则整个 DKMP 是安全的;

2. 2f > t
在这里我们讨论两种情况下可能会发生数据泄漏的可能:

1)每个 epoch,节点持有的密钥不会动态更新。假设在不同的 epoch 中,均有不同的 f(f
2)每个 epoch,SSSG 动态更新,密钥分片从原来旧的节点组中转移到新的节点组,假如 f 个恶意节点同时出现在新旧两个 SSSG 中,最差的情况下,恶意节点可以拿到 2f 个分片还原出密钥。

3. f > t

在这种极端情况下,数个TEE节点同一时刻遭受侧信道攻击的概率微乎其微。我们考虑这种情况,采取措施将损失最小化,包括动态调整阈值 t 降低后续的泄露风险,通过经济奖励和惩罚来激励参与方等。

与此同时,对于计算节点来说,当其由能力和声誉良好的组织管理时,TEE受损的风险m%很低;当其由任意符合我们的条件并开放进入计算网络的组织来说,这个时候 TEE 受损的风险 m% 很大。在处理第二种情况时,有三个层面的解决方案:其一向 SSSG 请求密钥将验证远程证明的证据;其二是对 SSSG 对返回的密钥分片进行适当的旋转,这样受损 TEE 只会获得一定时间内的密钥;其三是通过通证抵押、奖励和惩罚来约束计算节点的行为。

4.4 TEE-TCP

4.4.1 动机

我们采用的可信硬件 TEE 是 Intel 的 SGX 平台,它是一种特殊的硬件级 TEE,可以保护计算的机密性和完整性,并且可以生成能证明计算正确性和完整性的证据,通过发出远程证明、数字签名,使用只有硬件知道的私钥,通过程序和执行的输出来证明程序是正确执行的。SGX 将操作系统、管理程序和 BIOS 等都屏蔽在安全区(SGX 创建的可信执行环境)内存之外,它的内存加密引擎可以保证数据完整性和机密性并防止内存重放攻击。

即使 SGX 具有如此多的优秀特性,但它并非完美。首先,在多个 SGX 的安全区同步密钥保障了系统服务的可用性,但也意味着更大的密钥泄露风险;其次,与硬件深度耦合将限制 TCP 架构的灵活性和健壮性。同时考虑到 TEE 存在的安全性问题,我们设计了不完全依赖于 SGX 的DKMP(详情见 4.3.2),并基于 SGX 的特性做出相应的改进。

4.4.2 安全防御设计

前文提到的安全区,我们在下文中将以Enclave来指代。安全防御设计涉及到两个层面上的问题:

1. Enclave 本身的安全性
2. 外部数据输入的安全性

首先,Enclave 的安全性问题。Enclave 所承载的内存使用带重放保护的工业级加密算法加密,即使直接访问内存,得到的也是加密过的数据。加密密钥保存在 cpu 中,在启动、睡眠等阶段会随机变化,这样保证了在 Enclave 中解密的隐私数据不会经内存泄露。Intel SGX 技术从硬件 cpu 层级保证了 Enclave 代码一旦被修改,将无法通过验证,导致加载失败,从而无法获得私钥分片。同时运行模型的虚拟机封装在该Enclave内,虚拟机没有网络/文件IO功能,从而杜绝恶意模型泄漏数据。

其次,外部数据的输入的安全性问题。为了保证数据的机密性,外部数据在发送至计算节点前,使用合约的公钥进行加密。在 Enclave 模式下,进行密钥生成、密钥计算以及数据解密等操作,这样可以保证外部数据和密钥对外不可见、不可访问读取,从而保证了数据的机密性。

4.4.3 安全传输模型

安全传输模型包括本地的 Contract Enclave 与 DKMP Enclave 之间和远程的 DKMP Enclave与 SSSG 之间的安全数据传输模式。


1. Contract Enclave 与 DKMP Enclave 的通信。在 Intel SGX 平台内部,为了在 Enclave 之间传送敏感数据信息,Intel SGX 提供了本地证明来实现。图 6 描述了在 Contract Enclave 和 DKMP Enclave 之间传送私钥的详细流程:

计算节点利用了本地证明来实现 Contract Enclave 和 DKMP Enclave 之间的加密通信,在计算过程中将 DKMP Enclave 中的私钥加密传输到 Contract Enclave,Contract Enclave 再利用本地证明过程中生成的 Diffie-Hellman 上下文将私钥解密,这样就完成了本地 Enclave 之间的密钥安全传输。

2. DKMP Enclave 与 SSSG 之间的通信。DKMP Application(具有计算和管理私钥的服务)与 SSSG 建立加密信道 TLS。SSSG 中的节点收到请求,验证证明的合法性,验证通过则回复密钥分片。DKMP Enclave 收到超过一定数量的有效密钥分片,将密钥还原出来,这样就完成了 DKMPEnclave 与 SSSG 之间的安全通信。值得一提的是,SSSG Services 保存了所有私钥的分片,单个节点无法还原出密钥。


DKMP Application 向 SSSG Service 证明合法性的流程如下:首先,DKMP Enclave 和 SSSGServices 之间生成不透明的 Diffie-Hellman 共享密钥上下文(简称 DHCtx);其次,密钥分片在 SSSG Services 端使用 DHCtx 加密,将加密的密钥分片发送到 DKMP Application;DKMPApplication 没有 DHCtx 则无法解密密钥分片,这保证了在非可信区私钥分片不被暴露;最后,DKMP Application 将加密的私钥分片交给 DKMP Enclave,DKMP Enclave 使用 DHCtx 将密钥分片解密,然后利用密钥还原算法计算出私钥。

上图结合远程证明表示 DKMP Application 和 SSSG Service 之间的密钥传输流程,一些关键步骤描述如下:

step 1. DKMP App 向 SSSG Services 请求密钥分片。
step 2. SSSG Services 回复 DKMP App,请执行远程证明。
step 3. DKMP App 创建 DKMP Enclave。
step 6-8. 通过 ECall 进入 Enclave,在 Enclave 内部创建 Diffie-Hellman 上下文。
step 10. DKMP App 调用 intel sdk 获取 GID of EPID。
step 12-15. 通过 GID 获取 SigRL。
step 16-17. DKMP App 调用 intel SDK 处理 SigRL 并生成远程报告 QUOTE。
step 18-20. 将 QUOTE 发送给 IAS 并获取远程报告。
step 21. SSSG Services 验证报告签名,如果报告通过继续发送私钥分片给 DKMP App,否则不发送并回复原因。
step 22. 远程报告通过,使用 Diffie-Hellman 上下文加密私钥分片发送给 DKMP App。
step 23. DKMP App 将加密的私钥分片发送给 DKMP Enclave。
step 24. DKMP Enclave 使用 Diffie-Hellman 上下文解密分片并还原私钥。

4.5 Plasma-TCP

4.5.1 动机

当前公有链的交易处理能力面临着很大的性能瓶颈,难以满足不断增长和多样的商业级应用。以太坊在这方面进行了深入思考,有许多方案,包括在基于 Layer 1 的 sharding 和基于 Layer 2 的状态通道、Plasma 等。sharding 面临着跨片交易等难以解决的问题,而状态通道无法部署智能合约解决多人交易的场景。因此 TCP 引入 Layer 2 方案,支持 plasma 协议,因为它具有如下优势:

1. 将特殊类型的业务从主链中迁移出来,缓解主链的压力;
2. 在低共识的场景下,扩展主链的算力,提供庞大的吞吐量;
3. 在保持主链共识的前提下,为主链提供可信计算的特性。

4.5.2 设计原理

Plasma-TCP 将基于 Plasma 实现,通过在 root chain 上的部署 Plasma 合约来定义充值、提现、提交区块证明和欺诈证明等规则。当有恶意行为发生时,诚实用户可以通过 Plasma 合约来终止恶意行为,安全地在 root chain 中取回自己的资产,Plasma 设计了一系列经济博弈的方式减少作恶情况的发生,比如取款需抵押资金、设置取款延时等,主要流程如下图所示。


Plasma 合约的主要函数:

1. Deposit:root chain 用户向 Plasma 合约充值,将资产锁定在合约里面。operator 监听合约,根据合约内的资产锁定证明,在子链上为对应的用户入帐。

2. SubmitBlock:operator 周期性的向 Plasma 合约提交子链区块证明,任何用户都可以向Plasma 合约发送区块级欺诈证明,合约一旦验证这个证明,并且在特定时间后,opeator 提交的区块将会回滚,并对 operator 进行处罚。

3. StartQuit:取款,在主链上恢复资产。用户可以在任何时刻退出子链并取回合法的资产,取款操作需要经过一个争议期(比如七天)之后才能完成。

4.ChallengeQuit:用户向合约发送退出请求,在争议期内其它用户可以发起挑战。挑战成功,则用户退出失败,扣除退出保证金,同时挑战者会得到一定的奖励; 如果退出成功,Plasma合约释放资产到发出请求的用户。

为了保护主链用户资产的绝对安全,在任何时刻都能从 Plasma 中提取资产。在上述众多方法中,取款操作是最关键的环节,我们采用了以下取款策略:

1. 用户向 Plasma 合约发送取款请求,指定一笔保证金,带上子链上的最后一笔交易消息体,消息体中包含子链上最新的状态 ( 余额 ), 同时包含一笔用户在子链上的资产销毁交易;

2. Plasma 合约对取款请求参数验签通过后,该笔取款请求进入争议期,等待其它用户发起挑战。争议的主要内容:该证明是否是最新的状态;

3. 其它用户可以向该取款请求发起挑战,向合约抵押相应的挑战保证金。欺诈证明中需指定如下数据:

1)更高的区块高度上,取款用户发起的交易;
2)该区块中的,交易对应的 merkle 验证路径;Plasma 合约利用挑战者提交的交易和merkle 验证路径生成对应的 root hash,判断 root hash 是否和对应区块高度的区块头中的root hash 相同。

挑战规则约定在 Plasma 合约中,挑战结果包括三种情况:

1)挑战成功,发起挑战的用户获得保证金,取款用户请求失败,损失保证金;
2)挑战失败,发起挑战的用户损失保证金;
3)若无人挑战,争议期结束后,取款用户可取回自己的资产。
4. 用户取款成功后,由 operator 或其它用户,根据用户取款时的资产在子链上销毁 / 回收其对应的资产。

4.5.3 安全证明

我们考虑以下三种影响系统安全性的主要行为,采取了不同的应对方案:

1. 节点作恶:支持 plamsa 协议的主流项目大多采用 POA 单节点的共识机制,节点可以在子链发起双花交易。TCP 采用的共识算法具有 强一致性,区块一旦形成共识即最终确认,无法进行双花交易,从而避免这种情况。

2. 节点停止响应:节点拒绝服务用户或者网络瘫痪,用户可向主链合约发起退出请求并支付保证金以取回资产。

3. 虚假欺诈证明:欺诈证明是一个带保证金的证明,用来证明取款行为的非法性。挑战者提交欺诈证明时,需要向合约支付保证金。一旦欺诈证明被证伪,挑战者会受到惩罚,失去他的保证金。

结论

TCP 有效的将区块链和 TEE 结合起来,基于区块链的分布式共识和以及 TEE 的隐私计算能力,为万亿级别的可信计算市场设计了一个强大的通用平台。作为一个新型的安全计算和隐私保护领域的编程模型,解决了现有区块链所面临的性能瓶颈和隐私保护缺失。我们展示了 TCP 的设计细节,可以用于实现各种安全的分布式可信计算应用程序,这些应用程序可以为大数据时代提供更加经济安全的选择。

我们相信,区块链作为“信任机器”必然会应用到人类协作网络里的各个环节。而可信计算协议,或许就是区块链技术和庞大的数据经济之间的“破壁者”,不但能推进区块链技术的大规模落地,也将解决“数据隐私权”和“数据商业效率”持续多年的争议,在保护隐私的情况下,释放出数据经济真正应有的活力。

在未来的工作中,我们将在以下几个方面展开。首先是深入研究 SGX 的底层原理,在源码级别、系统级别上研究应对侧信道攻击的策略;其次是设计可信应用程序的开发标准,和前者结合起来,达到更高级别的隐私保护;第三,支持多种机器学习的标准库,并设计实用的 GPU 等硬件加速方案;第四,深入研究零知识证明,打造通用型的可验证计算;第五,增强可扩展性,支持复杂耗时运算的分布式并行处理;第六,支持隐私交易,比如实现 mimblewimble 协议;第七,优化加密经济设计,将其价值与所服务的公链更好的锚定起来。

来源:本文由互金动态原创撰写,欢迎分享本文,转载请保留出处和链接!
友情链接:| | | 互联网金融|
'); })();