漫谈系列:聊聊区块链数据的“安全”和“控制权”

作者:fisco-dev

区块链通常会被认为是“安全”的,同时宣称”把数据主权还给用户“,听起来很厉害的样子,但这里面的”安全“和“主权”是怎么界定的呢。

先看广为人知的区块链(默认指比特币和以太坊)系统上的几个事实:

  • 区块链上的数据(区块,交易)是全网广播的,所有节点都可以收到数据。
  • 数据对节点来说默认是明文的,记账节点,普通节点都可以看到数据的明细。
  • 在公链上,用户不需要公开身份,是匿名的,链上看到的只有一串没有什么身份意义的二进制唯一性地址。
  • 用户通过私钥控制自己的资产,私钥保障了用户对账目的动账权。类似门罗币,zcash, 加密以太坊这些项目理论上对隐私会有更好的保护,但是由于算法极其复杂,效率尚未达到理想效果,还没被广泛接受或被工业场景大规模使用,预计还需要一定的成熟期。

我们再把对数据的要素分为几个部分,每个部分的敏感程度可能都会和业务相关。

  • 所代表的价值,如资产数,金额,余额等
  • 数据归属和控制关系,如机构或自然人可采用所持私钥进行签名交易
  • 个人信息,如身份,私钥等管理
  • 出现频度,如总交易数,交易频率,分时的交易数等
  • 大容量数据,如合同PDF,图片,商业大数据等针对以上的几个技术事实以及数据要素,把区块链和传统机构的IT系统进行对比:

1: 在区块链上,用户的私钥只要不泄露,资产的交易就是安全的,用户牢牢把握对资产的控制权。这也是区块链技术的亮点之一。

同时,极客们认为在”中心化“机构里,资产的控制权是在托管资产的机构,机构背着用户在数据库动动帐就把用户的资产挪用了,这样就是不安全的(法律法规不健全和监管不严密的领域确实有这种风险)。

从另一个角度看,在区块链上,只要用户的私钥泄漏或丢失,对应的资产就失去了控制,比特币和以太坊这样的链上并没有密钥找回和重置等途径,对普通用户来说很容易成为一场灾难。而机构一般会在用户提供证明身份的资料后,实施密码的找回或重置。

另外,在区块链和“机构”结合的场景,比如虚拟资产交易所,通常用户要把自己的资产托管到交易所,并不是用自己的私钥来控制资产,交易所出现被攻击,系统故障、违规运作等问题,资产将会荡然无存,这里的安全就得由交易所背书了,和区块链关系已经不大。

2: 区块链上交易明细是全网公开的,所有人都可以看到,但由于区块链上的用户匿名性,所以通常认为没有损害个人隐私,极客们通常会采用多地址等方法来隐藏身份和混淆交易行为,中本聪本人至今还没有被发现。匿名性本身也是回避监管的一种手段。

但如果一个人“不小心”公布了他的链上地址(还不是私钥),他的一切交易行为、交易相关人都可以被追踪,被核算,交易次数和规律也可以计数。从隐私角度来说,也是很可怕的事情。

公网上的各种区块链浏览器如http://blockchain.info/zh-cnhttps://etherscan.io/可以查询历史上所有的区块,交易方,金额等,并可以进行各种商业分析,相当一目了然。

与此对应的是,机构除了给监管报送和与合作伙伴之间进行必要的交互之外,所有的交易明细都不会公开,交易明细本身是一种隐私。正如我们银行帐户里的转账流水,是不可能随便给其他人看的。

另外,在典型区块链网络上,大容量数据(图片,合同,商业大数据)的共享一般用“P2P分布式存储”方案解决,数据分片加密存储在类似IPFS这样的平台上,在经济性、便利性和安全性之间取得了平衡。而金融机构的做法是数据根本就”不出机房“,仅对受控的相关方进行授权,允许对指定数据的访问。在关注数据价值的商业领域,把数据copy给了别人,也就意味着失去了对数据的控制权。

对比一览:

数据要素区块链机构
所代表的价值,如资产数,金额,余额等公开相关方共享可加密保护
数据归属和控制关系,如机构或自然人,采用私钥进行签名交易保护保护
个人信息,如身份,私钥等管理匿名不可监管不可重置/找回不匿名可监管可重置/找回
出现频度,如总交易数,交易频率,分时的交易数等公开相关方共享可加密保护
大容量数据,如合同PDF,图片,商业大数据等公网分布式存储独占或相关方共享可加密保护

可见:崇尚数据共享的区块链上,”动账“控制被认为是安全的(前提是私钥不丢失),但是数据的”读“权限并没有默认被保护,同时,区块链上的私钥如何得到妥善的保管还是一个很有挑战性的课题。

常见的误区是,只要用了区块链,数据就是“安全”的,然后就可以进行和AI,大数据和区块链的结合,或者放心大胆的开展各种业务,用户对自己的数据也拥有了绝对的控制权,隐私得到了保护,仿佛不需要再做什么。

区块链的数据安全是个辩证的问题,是有前提的,机构使用区块链技术,结合原有的数据管理策略,对数据的安全需要达成读写保护的基本目标:

1: 可见性安全: 帐户信息和交易明细数据可控性共享,只发送给交易相关的机构,且能对隐私进行精细的保护。

2: 动账安全:机构或用户使用私钥控制自己的资产,有私钥重置或找回的途径,在用户私钥丢失的时候可以快速介入保护用户财产(如冻结),在有严格的界定(司法界定,全链共识等)后,可以找回用户丢失的资产。

在安全的设计上,机构应使用改进的联盟链,采用立体保护措施:

1:应用权限控制,实现接口级的读写控制。

2:准入控制,做为联盟链,只有被允许的成员机构才能加入,拥有全部或部分的数据访问和交易权限

3:节点间通信,存储层面上的加密。

4:主机和基础网络防攻击防渗透。

5:采用零知识,同态,群签名等算法保护用户隐私,隐藏用户的身份和交易的同时,保障效率且让监管可以接入

6:采用点对点通信或分片,分通道的隔离,使一部分和记账无关的商业信息不进入网络。最彻底的隔离其实是物理隔离。

7:将需要参与共识和需要共享的核心数据,和其他的数据如合同明文、批量大数据、隐私、个人信息分离,数据脱敏后再上链,或者将数据摘要上链,必要时再授权访问明文等其他数据。

安全是个很大的话题,这里仅浅谈“数据安全”的内在逻辑,要用到区块链的业务首先要对数据的敏感性和控制权进行分析和定义,根据需要采用不同的技术进行保护,怎么做没有定数,看场景下菜。

在此之外,还有共识体系的安全,通过共识防欺诈,防失效,经济模型上的安全,和业务密切相关,还有可能需要考虑到效率、体验、功能等其他维度的诉求,在安全方面进行可接受的妥协,就需要另外的文章来展开阐述了。