近日,微众银行区块链首席架构师张开翔做客香港人工智能与机器人学会HKSAIR《AI金融》系列线上讲座,以“区块链上隐私保护的挑战和应对”为主题,探讨区块链如何为数据隐私和信息开放构建一座天平。
以下为张开翔演讲全文,雷锋网《AI金融评论》做了不改变原意的整理:
我是微众银行的张开翔,我们团队从2015年开始研究区块链。
在讲区块链和隐私保护之前,先简单过一下区块链的概念和分类。
首先,真正的区块链必须是在分布式网络上的。区块是有序号、有高度,一个区块接一个区块地互相依赖生成,这样可以做到数据的严格校验,不丢、不错、不乱。再用密码学来校验数据的稳定性、可靠性、完整性。
下面两层加起来,更像一个分布式数据库或分布式网络。行业里有个玩笑,说它是最慢的分布式数据库。像比特币的TPS就是7(笔/秒),以太坊大概是10+。我们联盟链其实还是快很多,单链TPS目前是两万左右。这里就涉及到性能优化的课题了。
分布式这么慢,它还有什么价值?它的价值就在于多方协作。
区块链的灵魂与核心是什么?共识。没有多方智能合约与共识算法来达成透明、高效、可信的合作,那它就只是个分布式数据库。
那多方合作是为了什么?肯定是为了资产交易,数据分享。计算和数据共享基于智能合约透明的规则,大家共同执行,这就是区块链。
区块链的基本特性是什么?介绍隐私保护之前,我们先来了解区块链怎么组织这些数据和规则。
首先,在每个节点里,都有相同的区块的数据结构。简单来说,就是每个block里都包含一批交易。每个交易可能体现的是一次资产转移,比如a给b转了100块钱。
这个交易必须是事务性的,交易执行结果在所有节点上一致,怎么做到这一点?即通过共识和数据同步,意味着所有数据都会存到链上所有节点。
如果这个链接入了10个节点,数据存了10份一模一样的;如果是1万个节点,那数据存了1万份,它也是一模一样的,一个字节不错、不丢,说明所有人都可以看到这个数据,也能验证数据。
(如果)有少量的人篡改数据,其他人可以通过共识和验证来拒绝修改,并且在发现修改之后惩戒篡改者。
所以,区块链可以达成这样几个效果:
第一,数据难以篡改。要改,则必须算力达到50%以上,或者与链上所有或大部分共识记账节点串谋,还是可以做到篡改,但这非常难,几乎不可能实现。
第二,规则透明。因为智能合约在所有列的节点上是同样的虚拟机和代码,对同样的输入运行结果肯定是一样的,是可验证的。
第三,可追溯。既然大家都有所有数据,而且数据是含括了block 0到block最近高度,这就意味着可以追溯。
因为以上几点,从而达成了区块链最重要的特点——信任。但是,任何事情都具有两面性。
说到区块链上的隐私挑战,首先定义一下隐私是什么?你的个人数据和信息是隐私:除了你有多少资产、银行存款、不动产等,还包括你跟谁交易,也就是银行流水。
我之前递交出国签证申请,需要附上最近半年银行流水和交税记录。当时我很诧异,也很难接受,我觉得这些交易关系是我的隐私数据。
从流水中的交易信息,可以分析出交易时间、地点、交易对象、常用的交易类型是零售还是转账,这些都是你的行为模式。
现在所谓的大数据营销,更多的就是基于你的身份、拥有资产、交易关系、交易频率、行为模式等信息,来对你进行用户画像,分析出你的习惯喜好。
还有一种是大容量数据文件,在商业场景较为常见。比如刷脸会留下视频,签合同会留下PDF文件,大量用户行为产生一堆大数据集,这其实都是隐私的、个人的、商业的数据。
所以,隐私是立体化的,它包含很多维度,各种场景、时间、行为都会产生隐私数据。
区块链上隐私保护的实现
那区块链上的隐私是怎么表达的呢?
以前,大家都说比特币和以太坊本来就是隐私的,但它隐私基础的重点是匿名。在比特币、以太坊上转账,用的是一个私钥和私钥生成的地址,并不包含用户联系电话、真实姓名、邮箱等个人信息,大家看到的就是一串密码串。
比特币网络的创建者中本聪,到现在也没有人知道他是谁。听起来这是一个很成功的隐私保护方案。但是,如果你不注意私钥保管,或者自己把地址公布到某个论坛上,让别人去给你转账,那就意味着这个地址在论坛上跟你的账号绑定了。
如果你参与了某种交易所,登陆交易所需要个人手机号注册、上传身份证,这时你的地址就跟身份绑定;又或者是通过反洗钱、反恐融资策略——总之可以利用一些方法,将账户跟你的个人身份联系上。
从技术手段来看,IP映射是指无论你在哪台计算机,发出哪个通信包,只要能被抓包下来,就可以分析包里的很多信息,映射到你这台电脑,获取你的账号、地址等。社工分析也可以基于你论坛上的行为、个人朋友关系、动账的交易关系进行跟踪。如上图所示,只要转账,就有关系网,这都是公开可追踪的。
区块链的特征是透明、共享、可追溯、广泛参与:
透明就意味着拓展了信息暴露的维度;
共享就意味着增加了数据存储的位置,所有节点都存储数据;
可追溯就意味着你的隐私数据存储可能是永久的,并不是存储一段时间后就删掉丢弃,延长了隐私存储时间,就很难被遗忘;
广泛参与,是说区块链作为分布式网络,一定是有各方共识的,这时,参与的网络里就可能有短板,而公开的网络环境更容易掺入非信任角色,联盟链在这一点上相对会好些。
所以,区块链其实带来了更大的隐私挑战。有种说法是区块链大量使用了密码学,所以它是可信可验证的,但其实这里的因果关系要调换一下——是因为区块链本身追求公开透明,为了在公开透明的基础上达成信任和验证,才要引入更多密码学算法。
在工作中,我们会遇到很多灵魂拷问:
作为一个金融机构,每天的交易信息都是透明的吗?
怎么做到上链的数据可验证,但又不被看到,更不会被窃取?
数据上链后,能不能删掉?
加密数据会不会被暴力破解?
现在都用椭圆曲线、RSA算法、对称非对称加密,用很长的密钥来保护数据。从数学理论上来说这些都可确保数据安全,但量子计算出来之后该怎么办?
……
个人认为,量子计算技术成熟到应用可能还没这么快,目前来看,量子计算的形态可以交换密钥,但想要处理和破解大量数据还是比较难。
可是,对金融业来说,如果数据保留二、三十年,甚至永久保留,即使使用长密钥加密,链上数据也可能被破解。父亲的数据被破解,影响了儿子,影响几代人,(这种现象)理论上是存在的。
当然,密码学保护和攻击的两个阵营,是呈交叉螺旋上升式:你有矛,我就有盾,只是看矛和盾哪个硬,要用多少成本去保护数据。
隐私保护在实际场景中的应用金融典型场景一:风控
假设一个借贷服务,涉及多机构共同参与,这些机构联合为借贷人提供资质证明和资金,这就意味着这些机构要投票判断用户信用、决定贷款利率等。
但金融有风控独立的要求,就是a机构与b机构的规则应该是互相独立、各自运作的,如果只有一套规则且全部透明就有可能被人猜到。
这还涉及到用户隐私问题,比如用户在a机构发生的交易数据,不应该直接交给b机构,a机构和b机构都应该用自己的数据和数据来对用户进行判断。这些都是隐私保护。
征信和风控有相似之处,但其中的不同是征信要用大量的、多维度的有效数据,涉及到社保、银行、税务各机构的多方参与。怎么把不同维度、不同机构的数据连接在一起,整理出风控模型,这就自然而然联想到联邦学习。
金融典型场景二:资产流转
下图左侧展示的场景类似二级市场:有发行、代理销售,代理机构a不希望代理机构b知道自己的代理情况,用户不希望别人知道自己买入卖出,这都是个人账务资产变化,属于隐私信息。
隐私保护策略,哪个更好?
现在确实有很多隐私保护的策略,像是零知识证明、安全多方计算、可信硬件环境、全同态密文计算等,还有相关规范标准,那是不是就能完整保护隐私了?我的观点是,每种隐私保护策略各有所长,各有所短,它的长短可能都体现在性能、功能、复杂度和中心化程度上。
零知识证明和安全多方计算,就是隐私保护的核武器,非常有潜力。
但其也有局限,比如零知识证明重点在于证明一个事物的有效性,而不在于运算,但用户的账目、风控模型都涉及计算。
安全多方计算是可以用于联合计算,但现在它处在从两方向多方发展的阶段,多方安全解决起来比较困难,牵涉成本、计算量、复杂度。
我们都知道,手机有个安全区,把密钥保护在安全区可以降低安全风险——但一个大企业把成千上万的数据保护在安全区,就相当于完全依赖安全区。安全软硬件依旧会有漏洞,还是要及时升级,总的来看,依赖硬件体系的反应速度会比较慢。
同态非常有趣,两个密文相加得到一个密文,密文解密之后是这两个密文对应的明文相加的结果。它可以用于多种情况的账目计算,但只能计算,很难验证,也就是计算结果如果是错的,在密文情况下无法得知。
而且,现在同态一般是用于加法计算,乘法计算的速度比较慢。另外,同态的数据量如果是比较大,那么其数据膨胀和运算速度降低就会非常明显。
群/环签名,它很轻也有不错的性能,但主要面向身份,不面向数据。
规范和标准,依赖很多链外管理手段,比如惩罚、司法追责。我们要把这些手段全部综合起来,在性能、功能、复杂度和中心化中取平衡,在不同的场景下扬长去短,来达到成本和效果的最优。那就要求从多维度考虑隐私保护,它是个立体的场景化问题。
身份、资产、交易,这是我们要保护的基本信息。
首先,这些信息是否可见?如果连数据都碰不到,那没办法利用这些数据做任何事情。
其次,能看到之后,我们能不能使用?如果看到的是一串密文,那无法使用,还可以运用混淆、脱敏的方式来保证这些信息不完整性。例如,有账户信息,但没有身份信息,这样就无法被利用。
比如,密码学有个密码信封,只有信封密钥的人才能打开。又或者是使用很多方式,比如一次一密的假名,来防止关联,这样就无法对用户进行画像,外人可以看到的只是孤立的数据,没有办法对用户做什么。
最后,就是你看到的数据能不能被控制。控制数据就是说,你们把我的账转给别人,改变我的属性,我就要做权限控制,做安全加密的安全策略和多方制衡。
正如前文所述,区块链有个特点:如果你改数据,别人不同意,共识算法不通过,我有拜占庭容错,这就是一种多方制衡。
我们要达到几个效果:看不见数据,不知道数据,不能改,但它在区块链上依旧是可验证、可监管。
这就是联盟链的特点———要可监管、合法合规,这些要求要覆盖链上整个生命周期,包括收集、传输、存储、使用、屏蔽、销毁。
生命周期的每个阶段都有不同的特点,环境还牵涉网络、存储、内存计算和云,要用不同的技术手段去应对。所以我们的整个版图还是很庞杂,图上的底层就是各种各样的隐私技术,并不是一两个算法、密码承诺或者简单的不经意传输就能够涵盖的。
从可见、可用、可控思维看区块链
联盟链治理
联盟链跟公有链最大的区别在于,联盟链有准入机制。所有接入联盟链的人、机构、节点、身份都是可知的,接入前需向运营委员会申请。
委员会是多中心化的,并非单点。如果大家同意你加入这个链,给你分配了证书、公私钥,就可以接入这个链。方式是发起连接。如果这个人或节点在链上有恶意行为,委员会还可以把他踢掉。
隔离
机构参与业务时,有可能和不同的人发生交易,作为机构,会希望这些人里没有交集,这样同业的倾轧、数据泄露等情况都不会发生。
我们研发的底层平台有一个群组架构,就是在区块链上拉出一个局部共识的独立账本。群组里信息互相隔离,群可以扩容,也就是你可以建立无数个群,覆盖无数业务,这样从性能、功能上来说都有极大好处。在不同的群、不同的链上的不同信息需要互相验证、打通,就走跨链的路径,这项技术安全上是可控的。
角色隔离,首先要定义清楚,不同的人做不同的事情。有个术语叫DO分离,就是开发和运营分离,开发不能做运营的事情,运营也不用去写代码。
扩展一下,就是建设、管理和使用是分离的,避免一个角色又当裁判又当运动员,以免他触达太多数据,可能会侵害隐私,这就是整个联盟链的角色分层理念。
刚才说到了节点、人、权限的隔离,再看数据隔离。我经常被问到一个问题:要传输一个文件,能不能上链共享,但同时上链后不让所有人都看到这个文件?这时,可以将文件加密再放上链。
还有一种文件不需要上链的方法,链上存储的是一些标识或URL,是一些哈希,它们相当于文件的指纹。通过链上链下结合:链上建立哈希指纹,链下传输文件,用户可以在链上得到指纹,去验证文件。
如果文件密级不高,可以用IFPS,但它是把文件分片,依旧可以串谋几个计算机把文件分片聚集再拼出文件。如果是密级较高,还是建议用自有存储的方式。
交易隔离,链下有些私有交易,是高频、小额、点对点的,可以放到链下,像闪电网络就是类似风格。这样操作一方面可以提高性能和响应速度,更重要的是解决交易关系的问题。区块链上的两个人通过点对点网络沟通,完全可以不经过服务器。所以点对点的过程是完全隐私的,只是最终产生了账目,总账里不包含这种点对点交易的隐私信息。
分布式标识协议(DID协议)
这个协议是由DIF(全球分布式身份基金会)与W3C(万维网联盟)国际标准化组织共同推进,目标是形成开放网络,大家统一身份、互联互通,做到数据无缝共享和流转。这种模型可以连接人、物联网、数据,服务各种各样场景,包括金融、政务、医疗。
它是非常开放且通用的标准,参与其中的用户可以自行控制并拥有数据,这跟之前很多互联网模型不太一样。在互联网模型里,互联网巨头保存所有数据,我们说的在“云”上,(其实)都在别人机房里。用户只有一个登陆密码,没有管理和拥有数据的权限。
这是非常重要的一点:用户保存、控制自己的数据,这个数据是一种凭据,从权威机构,或是用户业务行为而来,它们不仅仅是数据,而是证明,是可信、可验证的证明。
怎么理解分布式DID协议?
首先,用户要做KYC,比如刷脸,叫KYC生成标识。全局唯一标识,标识的样子就是密码串。中间这条竖线左边所有东西都是用户自己持有和控制的,右边是你要交出去的,中间就起到防火墙作用。
这里有个隔离,谁找你要什么数据,必须表明访问策略,就像你的安卓手机安装APP时,询问你开启摄像头权限,也就是用户同意访问策略,才会给出一个表述或披露。这个披露可验证,但它是选择性的最小化披露。
这就是隐私保护非常重要的模式:你保存管理自己的数据,明示同意,经过批准、审核之后,挑选一些数据,把它生成一个密文证明,给到对方去认证。因为区块链连接了权威机构、用户、商家,所以在链上进行可信的验证,就是区块链和隐私保护的一个有机结合。
企业数据则涉及人、行为、业务的大量数据,如果要联合做业务,就会考虑采用联邦学习,在多家机构做到数据不出自己机构,还能够训练出一个有效模型。
这个模型就可以导入区块链上,链上的行为,风控、交易汇率、信用评级、定价等等,都可以采用联邦学习训练出的模型,非常有意义。
不同目标要采用不同的算法,比如收集大量的数据,要做差分隐私;为了防止画像而做假名化;数据脱敏再做同态加密,汇总到云上,这都是大批量的群体数据算法,适用于大数据挖掘以及联邦学习等。
再来看看身份隐秘,其适用在匿名支付、匿名投票、匿名竞拍场景。如果可以匿名,又可监管的话,用户就不用担心自己的投票行为会招致别人非议。
数据隐秘,资产里的数字、交易行为,都是数据。支付、投票、竞拍,这都是场景。其中可能用到包括同态加密,零知识证明、安全多方计算、TEE等技术。这一系列的技术怎么为业务所用?
前面提到这么多隐私保护策略、数据维度和算法,一个场景不太会每个技术都用到,所以我们把这套技术整合成开发包方案,覆盖从业务层、服务层、区块链到智能合约的整体架构,不同的客户端用不同的密钥,使用SDK和模板工具生成场景所需的隐私保护工程和策略。
值得一提的是,每个人的隐私偏好有所不同,但我们是以最严厉的隐私保护标准来做的,这样对整个生态的未来才是健康的。我们的技术也是开放的,包括区块链,绝大部分都是开源易用的,可以适配很多场景。
总结一下:隐私保护,机会和挑战并存。隐私保护是立体化策略,去设计一个通用的隐私保护策略其实很难,我们现在做的是针对大量场景做有效实现,也欢迎大家一起研究实践,一起达成技术、业务以及整个生态价值的突破。