LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > 区块链隐私之争,Layer 1 还是 Layer 2?

区块链隐私之争,Layer 1 还是 Layer 2?

2019-12-11 区块律动BlockBeat 来源:区块链网络

原文标题:《区块链隐私之争,Layer1 还是 Layer 2?》

原文来源:一块 Plus 社区



上周,一块+ 、CypherJump、Texa Network 联合组织了一场以「区块链隐私之争,Layer1 还是 Layer 2 ?」为主题的线上 AMA,邀请到了 Taxa Network 的 Co-Founder TF 带领大家共同探讨区块链隐私之争。

 

以下为 Taxa Network 的 Co-Founder TF Guo 在本次 AMA 中回答整理。

 

代代:请跟大家先介绍下自己,以及简单聊聊你是如何进入区块链行业的?

 

TF Guo:我从高中开始进入安全领域,在 2013 年被比特币的理想所震撼,当时和 Dfinity 的 co-founder Tom Ding 以及 Bodhi 的 founder Xiahong Lin 给硅谷的创业社区一起科普比特币和区块链,应该算是最早的一批传道者之一了。

 

代代:你是如何定义「隐私」的?可以从你的视角谈谈你对隐私的理解吗?

 

TF Guo:在 Taxa,我们认为隐私是一种权利,是每一个个体和组织都应该拥有的保护自己的敏感信息和数据不被任意使用的权利。今天这个时间点对于人类史或者科技史来说,是我们整体正往数字科技时代和人工智能时代的深水区前行,很多新的可能性和新的问题。

 

和前人相比,我们不仅可以依靠道德共识和法律体系,还拥有更先进的科技手段,可以去追求一个摩擦更小的、更高效、更彻底的隐私保护和解决方案,去实现一个有温度的、可持续的发展。

 

代代:隐私应该在哪一层做,一直有这个争论。之前我们采访的嘉宾,比如 Harmony 认为隐私是区块链的「不可能四角」之一,应该在 Layer2 做。

 

Conflux 就认为 Layer1 也可以做隐私。这个问题有争议的核心点是什么?你认为,隐私应该在 Layer 1 还是 Layer2 做?

 

TF Guo:争议的核心点在于,当我们谈起隐私时,它在 layer1 和 layer2 上是完全不同的概念,不能混为一谈。Layer1 和 Layer2 两层都有自己的隐私问题,而且两个问题有着不同的定义。

 

Layer1,即「链上部分」,通过 blockchain 的数据结构和共识机制来存储不可篡改的状态(「共识层」)。这一层的隐私问题,在于身份/财务信息的隐私,和交易记录的隐私。也是 ZCash, Monero, Grin 这种自带隐私方案的底层链+native token 致力于解决的问题。

 

上述那三个都是大家常说的「匿名币」,解决的就是这些问题。

 

因为区块链完全透明的交易记录,使得知道你钱包地址的人,可以对你的所有交易记录一览无余,这样无疑会阻碍很多场景中的使用。

 

Layer2,是独立于区块链的链下架构,解决的是 Layer1 不擅长的问题 : 比如扩容,链下计算等。尽管以太坊提出的「世界计算机」概念已经深入人心,但区块链最主要的目的仍然是存储状态。Layer1 并不擅长传统意义上的,涉及性能的计算。

 

以以太坊为例,所有矿工节点都会同步所有的状态,执行同样的运算,整个网络的运算性能等同于一个节点的性能。每秒就 15 笔交易,留给单笔交易(包括智能合约执行)的时间资源很有限;每个块最多几十 k,空间资源非常昂贵。

 

智能合约也只能执行简单的状态转换逻辑。或者通过某些低开销的协议来验证别人的运算,比如 zk-snark 就是一个例子。

 

说到 Layer2 上的隐私项目,其实大部分可以归类在「隐私计算」领域。在链下,摆脱了共识机制的限制,无论是狭义的运算,还是智能合约的业务逻辑,都有天然的隐私和性能潜力。

 

同时也会有新的问题:没有了共识机制保证,你如何证明一个不信任的节点执行的就是你想要的逻辑?你如何证明结果是对的,没被篡改过?(以上两点在 layer1 上都是共识机制保证的)以及,你如何保证逻辑/运算的执行者没有窃取你的隐私?

 

这些技术都是早在区块链之前,就已经是安全领域的研究热点。所涉及的技术和区块链完全不同,也会在独立于区块链的架构上实现。

 

总结一下,人们喜欢用「隐私币」来概括所有涉及隐私的区块链项目,但不同 layer 对隐私的定义,解决的问题,涉及的技术,其实有很大区别。

 

代代:粗糙的概括一下 layer1 是做匿名 (币),layer2 是做隐私计算。


代代:我知道的密码学方案有 mpc、tee、zk、同态加密,不知道具体在不同层上有几种方案。可以分别介绍一下 Layer 1 和 Layer 2 不同的隐私方案吗?

 

TF Guo: 对,在链上实现的隐私技术,其目的主要是保护区块链中的身份信息,财务信息,交易信息的隐私。

 

隐私计算类 Layer2 涉及的技术,是为了保护运算(包括智能合约的业务逻辑)中的数据隐私。

 

Layer1 上隐私技术的特点:非交互式,轻量级运算,保护交易地址和金额,以上三点是区块链本身的架构和需求所决定的。

 

几个代表性的技术项目:Zk-snarks,即「非交互式零知识证明」,以「大零币」Zcash 为代表;环状签名,以 Monero 为代表;年初很火的 MimbleWimble 协议,以 Grin/Beam 为代表,这个协议因为一篇安全问题的论文,前不久又成了热点。

 

我们刚才已经说了,Layer2 上的隐私技术,一个常见的需求是:我们如何把隐私数据交给你不信任的人运算,还能保证包括运算提供者在内的人无法窃取隐私,并且证明对方诚实的执行了代码,诚实的反馈了正确结果?

 

在理想情况下,我们希望能有一个可信第三方(trusted third party, TTP),它能够接收来自多方的隐私数据输入,诚实的执行既定逻辑,再反馈结果。可实际上这个第三方是不存在的。

 

区块链的确是一个「可信第三方」,但只能满足 integrity 和 availbility,满足不了 confidentiality(以上三条都是安全领域的标准),也满足不了安全层面之外的 performance 需求。所以,我们常听说的 MPC, TEE, 同态加密等技术,解决的就是区块链协议之外的,隐私计算问题。

 

代代:MPC, TEE 等这几个技术能否再详细介绍一下?

 

TF Guo: 比较主流的几个技术方案:

SMPC - secure multi-party computation,即安全多方运算,这个思路如果用一个短语来概括,「拆分和混淆」。

 

我们通过把要处理的隐私输入拆分成多个部分,输入给多个节点,使得掌握任何一部分都不会泄漏隐私。同时把既有的执行逻辑编译成一个「电路」,分散到多个节点执行,来保证隐私条件下的运算。

 

这样说太抽象,举个简单的例子帮助你们理解「电路」:

我们想做一个去中心化的双人玩的锤子剪子布游戏。这个程序谁都会写,两个输入,一个输出,if-else 判断。考虑到逻辑的执行者可能和游戏的一方共谋来作弊,我们想让逻辑的执行者无法看到游戏者出了什么。

 

那么所谓「电路」怎么理解呢?我们假设输入是两个 2 比特的数字,00=锤子,01=剪子,10=布。输出是 1 个 2 比特的数字,00=平局,01=B 赢,10=A 赢

 

那么这个程序的「真值表」类似:

输入 A - 输入 B -> 输出

00 - 00 -> 00

00 - 01 -> 10

00 - 10 -> 01

…...

这个程序很简单,真值表只有 9 行。

 

而这个逻辑是可以用一个软件模拟的电路来实现的,4 条输入线(两人各两条),2 条输出线,中间是 and/or/xor 等门电路。如果要对输入做混淆,我们还要对电路进行一种「等价调整」(被称为「同态」)。

 

电路构造完后,我们还要验证它是否构造的正确,通过从真值表中抽查特定条数的数据,观察是否给出了正确的结果。

 

(BTW, 在 ZK-snarks 中,其实也涉及了电路构造的思路。由于交易验证的运算是相对固定的,所以并非需要每次构造新的,降低了开销)

 

安全多方运算技术面临的的主要挑战在于,节点间通信的复杂度,构造电路的开销,以及对恶意参与者的防范所需要的额外开销。

 

TEE - Trusted Execution Environment(TEE). 如果用一个词来概括,就是「隔离」。我们通过建立一个硬件层面完全封闭的环境,来确保执行流程的保密及不可干扰。

 

听起来很高大上?其实每个人的手上可能都有这样的可信硬件。比如 iPhone 的指纹功能。iPhone 有一个芯片专门做指纹验证和存储。从外部完全无法干涉整个验证流程,或者读取任何验证数据。芯片只会告诉 app 开发者一个「yes」或者」no」。

 

而开发者只要能证明这个验证环境是完整的,便可相信指纹验证的结果。国内的手机巨头也有过类似功能的硬件环境,通过在系统启动时,对比隔离环境中的系统文件哈希,确保系统文件没有被内核级后门篡改。作为一个」root of trust」。



 

如果你把一个节点想象成一个屋子,那么 TEE 技术实现的是屋子里创造一个刀枪不入的保险柜(「enclave」)。即便是房子的主人,也无法读取保险柜里面正在运算的机密数据,或者干涉运算的过程。It's sealed against the owner.

 

而用户可以和保险柜直接建立一个加密的链接(原理类似我们常用的 HTTPS),尽管数据要通过节点来中转一下,但节点作为用户和 enclave 的中间人,无法获得任何隐私信息。

 

同时,我们有一个叫做「attestation 协议」的流程,可以确保用户是在和一个可信环境而不是模拟器在通信(原理类似你可以在 HTTPS 中确定你在上真的淘宝而不是伪造的),也可以确保可信环境中跑的是你想要的代码。

 

总结一下,我想从几个方面来定义一下隐私计算中我们考虑的因素:隐私,性能,可开发性,去中心化。

 

MPC 能够保证隐私及去中心化,挑战在于性能和可开发性。TEE 能够最大限度保证前三个因素,但要引入额外的 trust assumption,并且这个技术肯定不是给区块链专门设计的,而是为云计算等涉及隐私的场景设计的,已经有了很广泛的商业应用。

 

代代:Lvan Bogatyy 发布了《Breaking Mimblewimble's Privacy Model》,声称可以用极低的成本破坏 Mimblewimble 协议的隐私性。

 

Multicoin 也指出 zcash、grin 等隐私币的问 7 题其实不在于够不够隐私,而在于没有多少人用。你怎么看这个问题?隐私保护的技术/产品的落地情况如何?

 

TF Guo:Mimblewimble 可以让交易者同时隐藏身份和金额,实现的方式非常简洁。

 

首先,以太坊的账本模型 最接近传统意义的 accounting model,记录了谁有多少钱。

 

比特币的区块链更像是一本支票,里面记录的只有每一笔转账记录。你需要索引出一个账号所有的相关「支票」,从总的收入和支出金额上,推断出他有多少钱。

 

Mimblewimble 的模型,打一个形象的比方,像是一个放满现金的金库,里面有不同面额,可分割的钞票。每一张钞票,都可以用一个密码学私钥来解锁。同时一个加密的账本会存储每张钞票的所有权信息。

 

区别是,Mimblewimble 完全不存在账户一说。你不会知道一张钞票属于谁,也不会知道金库里多少现金被同一个人拥有,

即 Mimblewimble 的」unlinkable」模型,这种机制保护了交易参与者的身份隐私 - 通过从源头消灭「身份」的概念。

 

为了保护交易金额隐私,每张钞票只有交易的双方才知道面额。你可能用一 5 元纸币去买杯 3 元的咖啡,3 元支付给咖啡馆,分裂出 2 元找零,拥有者还是我。外人只能知道交易前后你们两个人获得的钱是零和,能保证 5 块钱不可能被破开成 6 元的纸币,但无法获知具体的交易额。

 

同时,如果咖啡馆在一个记账周期从 2 个人收入了 6 元,这 2 笔钱会被打包成一笔,这样混淆了单笔钱的流向。这种混淆在实际应用中会更加复杂,比如可能把咖啡馆和另一家餐厅的支付记录混在一起。

 

Mimblewimble 协议的转账记录会被不断的被修剪,比如,我买咖啡的 5 块钱钞票,可能最初所属权是由我的朋友转给了我,在我买完咖啡后,「我」这个中间人会从钞票的记录中被删除。这张钞票的记录最终只包含了我的朋友,和咖啡馆的老板。进一步加强了不可追踪的特性。

 

而这个所谓的漏洞,是攻击者可以通过大量的节点密集监听网络,从账本记录的前后变化,推断出「我」的存在,从交易记录的变化,推断出有两个人先后付了钱给咖啡馆而不是餐厅。甚至画出一个资金流向图。

 

但这个问题没有说的那么夸张,推断出资金流向并不能锁定资金的拥有者,锁定 IP 地址很难,Mimblewimble 网络底层有比比特币更能保证难以追踪的广播机制。

 

锁定交易者身份更是困难 - 在 Mimblewimble 账户的概念是不存在的,追踪到一张钞票并不能 link 到拥有者的财务信息。这种攻击并没有打破最根本的 unlinkable 保护。而用开发团队的话来说,他们「承认病将其列为开放研究问题之一」。

 

"zcash、grin 等隐私币的问题其实不在于够不够隐私,而在于没有多少人用"。但这不代表我们不需要准备好相应的技术和产品。隐私不是个功能指标,而是个基础架构。当 killer app 出现时,基础架构应该有所准备。

 

代代:现在的区块链没有任何隐私保护,比特币的初衷其实没有完全实现。你觉得区块链和隐私的关系是什么?是区块链需要隐私保护,还是实现隐私保护需要区块链技术?

 

(区块链技术在隐私保护这件事上,能贡献多大的意义?或者说,给区块链加上一层隐私保护,有多大的意义?)

 

TF Guo:区块链发展到今天,分层结构已经逐渐成为一个广泛的技术架构共识了。第一,作为价值和状态存储的 layer 1;第二,作为功能载体的 layer 2;第三,再往上走的各类 services 和 applications。

 

Layer1 区块链设计的初衷不是 confidentiality(保密),是为了 integrity。我们为了能满足 transaction 层面的基本隐私需求,已经设计了很多性能开销昂贵的协议。想拓展到智能合约隐私,难且不必要。为什么要把所有东西都放在 layer1 上?

 

对于 Dapps 来说,尤其是涉及到敏感数据和可信执行的场景,是需要隐私的,我们可以通过 layer 2 的方案去实现。



 

代代:你认为,隐私保护目前最大的障碍在什么方面?是技术、人们的意识 还是法律法规?实现隐私保护离我们还有多远?最早可能在什么场景落地?

 

TF Guo:隐私保护是一个渐进式的发展过程。由立法/合规层面开始,同时我们拥有更先进的技术手段,而且我们相信这些技术手段将促成一个摩擦更小的、更高效、更彻底的隐私保护和解决方案。最早落地的场景我们认为将是涉及到敏感数据交换和运算的场景。



原文链接:https://mp.weixin.qq.com/s/d_ZBkT3Z3hCzPvkDOoKNDw



区块律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。    

—-

编译者/作者:区块律动BlockBeat

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...