随着区块链、人工智能、无线边缘计算等技术的快速融合发展,下一代互联网Web3.0的技术研究越来越多。2007年,T.O’Reilly提出Web2.0的概念,对比以门户网站提供静态网页浏览服务为主的Web1.0,Web2.0强调以网络为平台的连接和为用户提供互动等多种增值服务。2014年,以太坊(Ethereum,ETH)的联合创始人Gavin Wood称:现有技术已经无法适用于未来社会和技术的互动,称Web3.0为“后斯诺登网络”(post-Snowden),描绘了一个零信任(zero-trust)下的去中心化、安全、自治的网络。
截至目前,Web3.0作为下一代互联网,学术及企业界对其概念仍然没有统一的认识和定义。有研究者强调其“智能化”“语义化”“个性化”特征;有研究者关注其“去中心化”“安全”“可信”的特征;也有研究者注重其基于数字资产化和资产数字化的价值互联特性;还有研究者强调其可验证性(verifiable),认为Web3.0的核心特征为应用程序的关键计算是可验证的。无论对Web3.0的理解有何异同,区块链是Web3.0的核心支撑技术为普遍共识。
区块链是利用块链式数据结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式来保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构和计算范式。
与传统分布式网络相比,区块链更多关注节点平等、不互信、存在有拜占庭节点下的异步网络以及节点如何自治、平等、安全地实现网络服务,更加接近于实际网络情况。来源于比特币的区块链技术天生强调节点平等和去中心化。通过大多数节点的共识是利用密码算法,基于智能合约的同步、严格执行及分布式账本的不可篡改记录等组合,区块链可以实现与分布式网络不同的去中心化和社会资源去中介化,解决Web2.0由于中心化所出现的信任危机、数据及隐私泄露、用户自主性差等问题,实现基于Web3.0的数据安全共享、业务流通、用户权益保障,并进一步通过区块链的加密货币或通证(token)等技术,实现更加公平的价值分配和价值流动,如图1所示。
一个基于区块链的更加自主、安全、开放、公平的Web3.0互联网环境,首先要建立用户的去中心化身份,鼓励用户积极参与,需要保障传输及处理数据的安全和隐私,还要构建安全的去中心化应用程序(Dapp)。
Web3.0的去中心化事务处理方式是解决中心平台垄断和利益分配失衡问题的一种尝试,利用区块链的可信协作、分布式执行、数据保护、资产转移等能力进一步整合信息流、业务流和价值流,以更加标准化、更加简洁的链上智能合约来代替现有互联网应用服务,消除对中心机构的依赖。目前,区块链技术研究活跃,所涉及的共识、可扩展性、跨链、分片等技术进展很快。本文从Web3.0去中心化特征的角度介绍去中心化身份、智能合约、激励机制、隐私保护4个方面的相关进展。
与传统身份管理不同的是,DID分离了用户身份数据的所有权和使用权。为了保障用户身份的所有权和管理权,提出了自我主权身份(self-sovereign identity)的概念和方法,强调在身份信息使用过程中用户可选择性泄露部分敏感信息,实现用户身份信息的有效管理,避免身份隐私过度泄露。
去中心化身份系统的构建方法有多种,比较通用的模型是使用代表实体的身份标识符和与之关联的属性声明凭证。2021年8月万维网联盟图1基于区块链的Web3.0环境 (W3C)发布了《去中心化身份1.0版:核心结构、数据模型和表征》标准,是目前使用较为广泛的去中心化身份方法。
如图2所示,W3C标准中的DID由基础层和应用层组成。基础层主要由DID标识符(DID URL)和DID文档(DID Document)组成。DID标识符是标识用户全网唯一的数字身份的特殊字符串,DID Document是一个JSON-LD格式的数据,包含DIDURL、时间戳、JSON-LD签名、加密参数、加密协议、服务端点等6部分。应用层主要是可验证凭证(verifiable credentials,VC),VC提供了一种表征用户实体具有的某种属性的规范。一般情况下,DID的实体向其他实体出示自己的VC全文,以此来证明自己某些属性的真实性。但是在一些特殊情况下,出于对隐私信息的保护,并不需要出示完整的VC内容,用户可以出示可验证表达(verifiable presentation,VP)来选择性地披露信息,VP是VC持有者向验证者表明自己身份的数据。
虽然以W3C为代表的去中心化身份,通过VC生成VP的方式,实现了在身份认证过程中选择性出示有限的PII信息,最大程度保障了用户的隐私信息,但现有的去中心化身份仍然存在不少问题,针对这些问题,去中心化身份系统研究有很多新进展。文献提出了一种名为PDID(password-authenticated decentralized identities)的基于口令身份验证的去中心化身份系统,允许用户在全局命名空间中注册自己的用户名和密码对,并将其用作通用凭证,此外还可以实现向任何服务器认证用户身份的同时,不向服务器泄露任何密码信息。针对当前的加密方法将去中心化的标识符与公钥绑定,可能会引起身份窃取攻击和单个实体存在多个标识符的问题,文献提出了一种基于新的加密原语——无限单向哈希链的去中心化身份模型,用户只需要一次注册,就可将用户的公钥嵌入到无限单向哈希链中,解决一个实体多个标识符的问题。文献提出了具有可审计性和保密性的DID认证协议,可审计性保证系统能够检测恶意认证事件,保密性防止敌手将认证事件链接到对应的用户和服务提供商。此外,现有的DID文档高速缓存方案中的侧通道可能引起隐私问题,文献提出了一种新的DID解析设计,称为Oblivira(不经意DID解析),Oblivira是一个占用空间小的安全解析代理,可以强制通用解析器在不知道请求内容的情况下解析请求。文献中提出一个CanDID系统,授权最终用户管理自己的凭证,除签发证书外,CanDID的身份识别系统还可以抵抗Sybil攻击,并且允许用户将其密钥存储在CanDID委员会中,实现密钥丢失时的恢复。
2017年,基于以太坊的第一个去中心化预言机Chain Link被提出,通过在链下采用多数据源及多预言机节点的方式获取源头数据,提高源头数据采集的可信性。2019年,国内去中心化预言机Dos Network白皮书发布,从预言机节点选择的角度出发,基于可验证随机函数实现去中心化网络中工作节点的随机选取,并通过门限签名技术实现数据验证。预言机工作角色主要由链上用户智能合约即区块链智能合约、链上预言机智能合约及链下的外部数据源3个部分组成。
目前智能合约预言机也有较多研究进展。文献提出了一种基于门限聚合签名的区块链预言机数据传输模型,该模型将签名与数据聚合到一个预言机上,与链上智能合约进行单次交互,减少区块链存储空间开销和通信负载。文献研究了基于分布式预言机的链下数据源可信评估激励技术,提出了基于分布式预言机的可信数据上链技术。针对提高车联网中的用户身份安全可信问题,文献提出了一种基于区块链预言机的车联网可信身份注册方案。该方案使用智能合约、分布式预言机、机器学习算法等技术构建预测模型,可以保证车联网用户在注册阶段的可信。文献提出了一种基于预言机和零知识证明的区块链数据上链方案,该方案能够提高数据源的可信性并增强数据的隐私安全性。
1、智能合约漏洞分类
作为应用最为广泛的主流区块链系统,以太坊上的智能合约漏洞最为典型和丰富。表1以以太坊为例,总结了智能合约编写、编译、区块链交易驱动3个阶段共14种类型的漏洞。
在智能合约的编写阶段,高级语言是主要的工具。在开发者利用高级语言对智能合约进行编写时,安全漏洞主要由高级语言设计模型本身和开发者编程能力参差不齐的问题导致。在编译完成之后,虚拟机是智能合约字节码的执行器。在以太坊环境下,虚拟机层面上智能合约的安全威胁存在于智能合约字节设计规范和运行机制本身的缺陷等。智能合约在区块链平台运行时,由于区块链本身的特性,也会产生如时间戳和事务顺序依赖等安全风险。
表1 常见智能合约漏洞分类
2、智能合约漏洞检测
智能合约具有不可更改性,一旦部署在区块链上就不能进行修改,只能进行升级,但是升级智能合约又是困难和繁琐的,所以在部署智能合约上链之前,对其进行漏洞检测是非常重要的。
文献将已有的智能合约漏洞检测技术分为基于模糊测试、基于污点分析、基于符号执行、基于形式化验证、基于机器学习等若干种,前3种是最常用的检测技术,其中模糊测试因高效多产的漏洞发觉能力而应用广泛,缺点包括漏洞定位复杂、测试用例生成低效等;污点分析是检测合约鲁棒性和漏洞挖掘的关键技术,其缺陷包括信息流分析不全面造成的过污染和欠污染,以及在污染传播的过程中内存存储信息的处理等问题;符号执行通过探索程序中所有可执行路径,发现安全漏洞,但存在路径约束求解难和路径爆炸等问题。综上所述,智能合约漏洞检测技术已经取得了巨大进步,但由于智能合约出现的时间比较短,发展迅速,还没有形成专门漏洞库。因此,仍然需要持续研究以确保智能合约的安全。
现阶段激励机制主要通过使用代币或者积分的形式提高用户参与的积极性。比特币作为最经典的区块链系统,采用代币的方式激励矿工挖矿。同时在一些其他的区块链系统中,也使用了代币奖励的方式激励用户参与。文献根据用户的私有数据估值进行代币奖励,激励用户提供私有数据参与联邦学习训练。文献鼓励用户将自己的信息分享给其他用户来赚取积分,用积分获取更多信息促进信息共享。文献采用资源包作为奖励,激励用户不断参与训练来获取积分,使用积分去兑换资源包。区块链技术采用通证来激励节点不断参与工作,其工作方式与上述的激励方式类似,可以在不同的场景下将上述方式应用到区块链中。奖励能够刺激用户工作的积极性,但也存在奖励分配公平性的问题,因此在进行最终的奖励之前,还需要根据不同实体的贡献大小进行等级评定,根据评定结果进行奖励分配。
文献在移动人群感知的场景下,设计了一种基于数据质量的分配方法,以鼓励客户提交高质量的数据。文献基于众包的室内导航系统场景设计了一种根据用户提供的数据权重为标准的贡献量测量方法。文献在联邦学习中,提出了一种基于夏普利值(Shapley value)的贡献指数,通过本地数据集、机器学习算法和测试集等多个因素来评估实体的实际贡献指数。文献提出一种基于等级驱动拍卖的新型激励机制,根据用户资源的大小进行计算,资源越丰富、层次越高、其贡献量相应也会越多。Web3.0中需要不同实体之间协同工作,而公平公正地计算贡献量是保证实体不断工作的前提。
交互式零知识证明常被应用于区块链的隐私保护、区块链的扩容及区块链跨链等方面。文献中提出了ZeroCoin强匿名性加密货币,实现了内部不可链接性,防止用户交易地址被暴露。文献在区块链上提出了一个基于零知识证明的联邦学习(ZKP-FL)方案,对于局部数据的计算和局部模型参数的聚合都采用了零知识证明,目的是在不需要局部数据明文的情况下可验证计算过程。文献中提出的ZK-Rollup方案是一种针对区块链的Lay2层扩容方案,链下进行复杂计算和零知识证明的生成,链上进行证明的校验并存储部分数据保证数据可用性;文献中提出的Coda项目使用递归组合的简洁非交互式证明技术,使验证时间缩短至200ms,适用于轻量级客户端。文献将零知识证明技术应用在跨链领域,提出ZK-Router协议(zk-based cross-chain router protocol),协议是在目标链合约内无信任的验证,利用零知识证明认证源链的共识机制,引申出跨链基础设施ZK-Router,具有无信任依赖、链上轻计算、通用、低延迟、无资产抵押的显著优势。
在数据共享方面,监督方管理成员私钥量过大,极易出现合谋攻击。为此,文献提出了一种使用单密钥同态加密构造多密钥同态加密的方案,减短密钥尺寸的同时提高了加密运算效率。文献将同态加密与群签名技术、密钥共享算法结合,使群管理员和监管机构分别生成仅群成员可见的部分私钥,解决了单一群管理员权力过大的问题。
除了用户交易和数据共享方面,同态加密技术还运用于机器学习和多方安全计算等领域。文献提出了一种基于部分同态加密和联邦学习的多方隐私保护机器学习框架PFMLP,使学习方只能通过同态加密来传输加密的梯度。文献利用同态加密、秘密共享和零知识证明构建了一个可公开验证的安全MPC协议,该协议由链上计算和链下预处理2个阶段组成,增强了隐私机密性。
Web3.0的智能交互离不开机器学习,然而在机器学习中模型训练过程可能会暴露用户的隐私。许多研究者开始将差分隐私的保护方案与机器学习结合,文献提出了一种新的差分隐私框架,该框架在客户端上传数据之前添加人工噪声,有效地保护了客户端数据的隐私。此外,文献关注分布式机器学习场景,将随机噪声扰动应用在学习者对分布式数据库的差分梯度查询响应中,开发了分布式隐私数据机器学习的差分隐私梯度下降算法。
安全多方计算(secure multi-party computation,SMPC)是一个密码学原语,常被用于分布式隐私数据学习的场景,该技术能够使Web3.0中的各个节点之间在不暴露隐私的情况下,互联合作创造更多的价值。Dwork等首次指出SMPC可以很好地与差分隐私结合,例如通过安全计算和加性噪声可以很容易地实现差分隐私求和。Zhou等提出一种SMPC协议,该协议分别对链上计算与链下预处理2个阶段提供隐私保护,并将其作为共识算法的一部分。
在Web3.0中,社交网络分析可以帮助分析和优化去中心化应用的用户体验和社区建设。但是目前一般的社交网络分析中仍存在隐私泄露的问题,利用差分隐私能够有效保护数据安全。Qin等提出的方案基于分组和迭代的方法,方案中迭代分组的方法适当地保留了社交网络中的结构信息,每轮迭代中添加的噪声也能够提供一定的隐私保护。Sun等提出了一种新的去中心化差分隐私机制,该机制要求每个参与者不仅要考虑自己的隐私,还要考虑其邻居的隐私,在此基础上计算整个网络的最小噪声尺度。在此框架中,差分隐私起到了至关重要的作用。
在Web3.0中,数据的价值往往需要通过数据共享来体现,如在医疗保健领域和智能制造领域中都涉及到大量敏感数据的共享,因此数据共享必须具备足够的安全性和隐私保护机制。关于数据共享过程中隐私保护的研究,有许多成果:文献提出利用FedXGBoost算法、区块链技术和智能合约的解决方案,解决了联邦学习数据共享中的可扩展性、隐私保护和可靠性等问题,有效应对了Web3.0中数据共享的隐私保护挑战;文献提出了一个基于区块链的ESB-FL框架,该框架使用一种非交互式的指定解密函数加密方案和区块链结合,在确保隐私保护的同时保持较高的效率、准确性和安全性;文献提出将联邦学习与HyperledgerFabric企业级区块链进行集成来提高联邦学习客户端之间的可见性和安全性,通过跟踪客户端的更新以保护全局模型免受恶意更新的影响;文献等使用区块链作为联邦学习的底层分布式框架,并且采用了同态加密和Multi-Krum技术来实现密码文本级的模型聚合和过滤,保证了本地模型的可验证性;文献提出使用联邦学习和区块链技术保护电子健康记录隐私,该方案基于CNN的安全分类模型,对可用数据集进行正常和异常用户的分类;文献提出了一种基于公有链和私有链的隐私保护可搜索加密方案,采用智能合约进行二次验证,保证数据隐私和访问控制验证的正确性;文献基于联邦学习和差分隐私技术构建了一个用于阿尔茨海默病早期检测的异步隐私保护聚合框架,该框架允许多个医疗机构参与方对更新后的梯度进行本地加密,通过将加密后的梯度在云端聚合,确保模型数据在聚合过程中的保密性。