刘文杰 刘保汛 刘亚军
摘 要:近年来,有关监控和安全漏洞的报道增多,第三方收集和控制大量的个人数据,危及用户隐私。比特币在金融领域证明了可信和可审计的计算是可能的,即使用一个分布式的网络来构成一个公共分类账。在本文中,我们描述了一个分布式的个人数据管理系统,它可以确保用户掌握和控制数据。与比特币不同的是,我们系统中的交易并不是严格意义上的金融服务,而是用于存储、查询和共享数据等指令。最后,我们讨论了区块链有可能的未来扩展。
关键词:区块链 隐私 比特币 个人数据
中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2018)03(c)-0023-03
在大数据时代,世界的数据量正在迅速增加,数据不断被收集和分析,导致创新和经济的增长。我们使用这些收集的数据进行个性化服务,优化决策过程,预测未来趋势等。虽然我们都能从数据驱动的社会中获益,但公众对用户隐私的担忧却与日俱增。公共和私人的集中组织,积累了大量的个人敏感信息,对于存储的数据以及如何使用这些数据,个人几乎没有控制。
相关工作:从技术的角度来看,已经有各种各样的尝试来解决这些隐私问题。有一种用于自动部署个人私密数据存储服务的模型,该模型包含了返回数据计算的机制,从而返回答案而不是原始数据本身[1]。从安全的角度来看,研究人员开发了针对隐私问题的各种技术来重点关注个人数据。数据匿名化方法试图保护个人可识别的信息。匿名数据集的一个共同属性要求每个记录的敏感信息与至少k个其他记录是不可区分的[2]。与匿名相关的扩展包括多样性,它确保敏感数据由不同的可能值集合表示[3]。研究表明,使用这些技术的匿名数据集可以被去匿名化[4],即使是少量的数据点或高维度数据。其他保护隐私的方法包括差分隐私法[5],这种技术在共享数据之前会扰乱数据或给计算过程增加噪音,以及允许对加密数据进行计算和查询的加密方案。具体来说,完全同态加密[6]方案允许任何计算来运行加密数据,但目前效率太低,无法在实践中广泛使用。近年来,出现了一种新的可计算系统比特币,它允许用户在没有中央监管的情况下安全地转移货币,使用公开可验证的明细分类账或区块链。
本文利用区块链存储构建个人数据管理平台,关注隐私。通过我们的平台和对技术的未来改进的讨论来说明,区块链将如何成为可信计算中的重要资源。在第二节我们讨论了解决的隐私问题;第三节概述了该平台;第四节详细描述了技术实现;第五节讨论对区块链的未来扩展;第六节中得出结论。
1 隐私问题
在本文中,我们讨论了用户在使用第三方服务时所面临的隐私问题。在移动平台中部署服务应用程序供用户安装,这些应用程序不断收集高分辨率的个人数据。值得注意的是,同样的系统可以用于其他的数据处理问题,例如:医院共享病人的医学数据进行科学研究,同时具有监测数据的使用情况和立即选择退出的能力。根据这一点,我们的系统可以防止以下常见的隐私问题。
首先是数据所有权,我们的框架着重于确保用户掌握和控制其个人数据,因此系统将用户视为数据的所有者,并将服务视为具有委托权限的来宾;其次是数据透明度和可审核性,每个用户对收集到的数据以及如何访问数据都有完全的透明性;再次是细粒度的访问控制,移动应用程序的一个主要问题是,用户在注册时需要授予一组权限。这些权限被无限期地授予,而改变协议的唯一途径就是选择退出,但是在本文的框架中,在任何给定的时间里,用户都可以改变权限集,并撤销对先前收集数据的访问。该机制的一个应用是改进移动应用程序中的现有权限对话框。虽然用户界面可能保持不变,但访问控制策略将安全地存储在区块链中,只有用户可以更改它们。
2 算法思想
系统平台如图1所示,3个实体分别是用户、服务和区块链节点。用户对下载和使用应用程序感兴趣,这些应用程序的提供者要求处理个人数据的操作和业务,例如:提供个性化服务,区块链节点负责维护区块链的实体和分布式的私有键值数据存储,以换取奖励。虽然系统中的用户通常保持匿名,但我们可以在区块链上存储服务配置文件来并验证其身份。
系统本身的设计如下。区块链包含两种新的事务类型:Taccess用于访问控制管理和Tdata用于数据存储和检索。这些网络操作可以很容易地集成到一个移动软件开发工具包(SDK)中,服务可以在其开发过程中使用。为了说明这一点,给出示例如下:用户安装使用我们的平台来保护其隐私的应用程序。当用户第一次注册时,将生成一个新的共享标识,并将其与相关的权限一起发送到Taccess中的区块链。收集的数据,例如:传感器数据比如位置,使用共享加密密钥,加密发送到区块链在Tdata事务中,随后将其传递给一个区块链键值存储,同时保留只指向数据的指针公共分类账,指针是SHA-256数据的哈希值。现在,服务和用户都可以使用与它关联的指针来查询数据。然后区块链验证数字签名是否属于用户或服务。对于服务,它訪问数据的权限也会被检查。最后,用户可以通过使用一组新的权限,包括撤销对先前存储的数据的访问,来更改授予服务的权限。开发一个基于网页或移动的指示板,允许对一个的数据进行概述,并且改变权限的能力是相当小的,类似于开发集中式钱包。区块链键值存储利用分布式哈希表(DHT)的实现[7],使用LevelDB2(数据库)增加了持久性,并将接口添加到区块链。DHT是由节点网络维护的,它完成了被批准的读或写事务,数据充分地随机分布在各个节点上,以确保高可用性。
3 网络协议
在这一节中描述系统中使用的底层协议。在平台中我们使用标准的加密构建块:由三元组定义的对称加密方案,三元组由生成器、加密和解密算法构成;由发生器、签名和验证算法构成的三元组来描述数字签名方案(DSS),用ECDSA的secp256k1曲线实现[8],加密哈希函数由SHA-256实例化[9]实现。
3.1 构建块
首先是身份,区块链利用伪身份机制。从本质上讲,每个用户都可以生成尽可能多的伪身份,以增加隐私。我们现在引入复合恒等式,这个模型在我们的系统中使用。复合标识是两个或多个参与方的共享标识,其中一些参与方拥有该标识(所有者身份),其余部分则限制对其来宾的访问。身份是由为所有者和客户签名的密钥对组成的,以及用于加密和解密数据的对称密钥,这样数据就不会受到系统中所有其他参与者的保护;然后是区块链内存,假设L表示区块链内存空间,为哈希表 L:{0,1}256→{0,1}N,其中 ,可以存储足够大的文档。假设区块链是一个时间戳的事务序列,其中每个事务包含一个可变数量的输出地址。L实现如下:事务中的前两个输出编码为256位内存地址指针以及一些辅助元数据,其余的输出构造序列化的文档。当查找L[k],只返回最近的事务,它允许在插入操作之外更新和删除操作;一组用户u授予服务s的权限,由方法P表示,如果u安装一个移动应用程序,需要访问用户的位置和联系人,所以得出Pu,s={location;contacts},在这里,任何类型的数据都可以通过这种方式安全地存储,假设服务不会破坏协议并错误地标记数据。部分预防措施可以被引入到移动SDK中,但是无论如何,用户可以很容易地检测到欺骗的服务,因为所有的变化都是可见的。
3.2 区块链协议
如本文前面所提到的,Taccess事务允许用户更改授予服务的权限集,通过发送一个方法集。发送空集将取消以前授予的所有访问权限。第一次发送带有新复合标识的Taccess事务被解释为用户注册服务。类似地,Tdata事务管理读或写操作。在方法P的帮助下,只有用户或服务可以访问数据。
3.3 隐私和安全分析
如果区块链是无干扰的,这个假设需要一个足够大的不受信任的对等网络中。此外,我们假定用户以安全的方式管理密钥,比如:使用安全集中的钱包服务。在这个模型中,只有用户能够控制其数据。区块链的分布式与数字签名的交易相结合,确保了交易对手不能以用户的身份出现,不能破坏网络,即对手不能伪造数字签名,或者不能控制网络资源的大部分。
控制一个或多个DHT节点的对手无法了解有关原始数据的任何信息,因为它是用没有节点的键进行加密的。虽然在节点上没有确保数据完整性,因为单个节点可以篡改其本地副本或者以一种复杂的方式进行操作,但我们仍然可以在实践中将数据的完全分散和复制的风险降到最低。最后为每个用户服务对生成一个新的复合标识,保证只有小部分数据在对手获得签名和加密密钥的情况下被破坏。如果对手只能获得其中一个密钥,那么数据仍然是安全的。
4 展望
4.1 从存储到处理
本文的主要贡献之一是展示如何克服区块链的公共性质。本文分析重点是存储指向加密数据的指针。虽然这种方法适用于存储和随机查询,但对于处理数据来说并不是很有效。更重要的是,一旦一个服务查询了一个原始数据,它就可以存储为将来的分析。更好的方法可能是永远不要让服务观察原始数据,而是允许它直接在网络上运行计算并获得最终结果。如果我们将数据拆分为共享而不是对它们进行加密,那么我们就可以使用安全的多样性计算(MPC)来安全地评估任何函数[10]。
4.2 对区块链的信任和决策
在比特币或者区块链中,假定所有节点都是同样不受信任的,它们在集体决策过程中的比例仅仅是基于它们的计算资源[11]。换句话说,对于每个节点n,trustn∞resources(n)决定了节点的权重。直观地说,为系统提供大量资源的节点不太可能作弊。使用类似的推理,可以定义基于节点行为的新的信任的动态度量,这样,遵循协议的优秀参与者就会得到奖励。将每个节点的信任设置为它在未来良好运行的预期值。等价地,由于我们处理的是一个二元随机变量,期望值就是p的概率,一个简单的近似这个概率的方法是计算一个节点取好的(good)和坏(bad)的动作的数量,然后使用Sigmoid函数把它压缩成一个概率。在实践中,每一个模块i我们都应该重新评估每个节点的信任分数如公式(1)所示。
式(1)中,α表示步长的大小,通过这种方法,网络可以更有效地计算可信节点和计算块值。
5 结语
一般来说,个人数据和敏感数据不应该被第三方所信任,因为第三方容易受到攻击和误用。本文中的平臺利用区块链技术,重新定义访问控制模式,并使用区块链存储解决方案来实现这一点。用户不需要信任任何第三方,并且知道正在收集的数据以及如何使用这些数据。此外,区块链承认用户是其个人数据的所有者。在分布式平台上,对于收集、存储和共享敏感数据的法律和监管决策应该更简单。法律和法规可以被编入区块链本身,这样就可以自动执行。在其他情况下,分类账可以作为访问或存储数据的法律依据,因为它是可计算的而且是防篡改的。最后,我们讨论了区块链的未来扩展,这些扩展可以将它们集成到一个全面的解决方案中,以解决社会上可信的计算问题。
参考文献
[1] J Zarrin,LA Rui,JP Barraca.Resource discovery for distributed computing systems: A comprehensive survey[J].Journal of Parallel and Distributed Computing,2018(113):1-45.
[2] 刘雅辉,张铁赢,靳小龙,等.大数据时代的个人隐私保护[J].计算机研究与发展,2015,52(1):229-247.
[3] 周水庚,李丰,陶宇飞,等.面向数据库应用的隐私保护研究综述[J].计算机学报,2009,32(5):847-861.
[4] Zyskind G, Nathan O, Pentland A. Decentralizing privacy: using blockchain to protect personal data [A].Proceedings of the 2015 IEEE Security and Privacy Workshops. Washington,DC:IEEE Computer Society[C].2015:180-184.
[5] 熊平,朱天清,王晓峰.差分隐私保护及其应用[J].计算机学报,2014(1):101-122.
[6] Craig Gentry. Fully homomorphic encryption using ideal lattices[J]. Stoc,2009,9(1):169-178.
[7] Druschel P. Peer-to-peer systems[J].ACM,2010,53(10): 72-82.
[8] Don Johnson, Alfred Menezes. The elliptic curve digital signature algorithm (ECDSA)[J]. International Journal of Information Security,2001,1(1):36–63.
[9] 陈华锋.高速SHA-256算法实现[J].浙江大学学报:理学版,2009(6):675-678.
[10] Hal Hodson. Gatekeeper keeps your personal data under your control[J].New Scientist,2013(1):20-21.
[11] Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL].https://bitcoin.org/bitcoin.pdf,2009.