主页 > 如何下载imtoken > 区块链安全与隐私保护系列-隐私保护

区块链安全与隐私保护系列-隐私保护

如何下载imtoken 2023-03-23 07:45:35

本章主要讲解区块链如何在保护隐私的同时实现数据共享。 Macrochain在区块链项目实施过程中经常被客户问到。 区块链是多方参与的,每个参与者都有一套完整的账本。 作为参与者,我的数据会暴露给其他参与者。 , 如果我有一些不能共享的机密数据怎么办,或者如果我有一些只能由少数参与者查看的数据怎么办? 如果你也有这样的问题,那么最后这篇文章——隐私保护可以解答你的疑惑。 经过多年的实践,宏链总结了以下N种数据可控风险的方法,供大家参考。

比特币主连比特币连续的区别_比特币的隐私保护策略_比特币期货对比特币影响

隐私保护本文主要涉及数据隐私保护,所以主要分为以下几点:

比特币主连比特币连续的区别_比特币期货对比特币影响_比特币的隐私保护策略

私人资料

在同一个通道中,允许一个组织将一些数据保密给同一个通道中的其他组织。 也就是说,部分标记为私有的数据只有获得许可的组织才能查看和操作,而其他组织则没有权限查看和操作私有数据。

通常,如果您需要保持数据的私有性,您可以创建另一个通道只为私有数据服务,但如果涉及多个业务方,为每个组织创建另一个通道会增加额外的管理开销。 并且在进行隐私数据操作时,也不可能让其他未经许可的组织节点知道发生了这样的交易。 从Fabric 1.2开始,引入了私有数据集合的概念,允许通道内指定组织的部分成员对私有数据进行操作,而其他未经许可的节点只能知道发生了这样的交易,而不知道详情的交易。

Farbic privatedata 允许创建基于策略的私有数据集,定义通道中哪些成员可以访问数据,只需添加策略即可管理 fabric 私有数据。 这使得某些数据仅对某些成员可用成为可能。

私人数据收集

私有数据收集包括两部分:

通过Gossip协议在授权节点之间传输,只有授权节点才能看到。 这部分私有数据存储在具有权限的节点的私有状态数据库中。 它可以通过链代码 API 在授权节点上访问。 而私有数据不涉及排序服务,因为它是通过Peer节点之间的Gossip协议传输的。 因此需要各节点设置参数CORE_PEER_GOSSIP_EXTERNALENDPOINT,并在跨组织通信通道中设置锚节点。

这部分数据用于给通道中的各个Peer节点进行背书、排序和记账。 哈希值用作状态验证的交易证明,也可用于审计。

私有数据存储结构

授权节点将能够看到主账本上的数据哈希和私有数据库中的真实数据。 未经授权的节点不会同步私有数据库,只能看到主账本上的数据哈希。 由于哈希是不可逆的,这些未经授权的节点无法看到真实的数据。

比特币期货对比特币影响_比特币主连比特币连续的区别_比特币的隐私保护策略

图-私有数据存储结构

ledger维度的私有数据位置:

比特币的隐私保护策略_比特币期货对比特币影响_比特币主连比特币连续的区别

图-私有数据全局定位

私有数据的交易流程

1) 隐私数据提交背书

当客户端向背书节点提交调用链码功能(读取或写入私有数据)的提案请求时,该背书节点具有通过链码操作私有数据集、私有数据或用于生成私有数据的数据的权限,则提案通过中的“瞬态”字段。

2)隐私数据验证背书

背书节点模拟交易,将私有数据存储在`peer`节点上的`transient datastore`的一个临时数据存储区,并根据私有数据定义的策略,发送给有权限的其他节点通过“八卦”协议。

3)隐私数据背书回报

背书节点向客户发送提案响应。 提案响应包括认可的读写集。 读写集包括公共数据和私有数据的哈希值。 没有私人数据被发送到客户端。

4)私有数据到排序节点验证和私有哈希值分配

客户端应用程序向排序节点提交交易(包括带有私有数据散列的提案响应)。 具有私有数据哈希的交易将像普通交易一样包含在块中。 具有私有数据哈希的块被分发到所有节点。 这样,通道中的所有“peer”节点都可以在不知道任何隐私数据信息的情况下,通过隐私数据的哈希值来验证交易。

5)私有实体数据分发

区块提交时,拥有权限的节点通过收集策略判断自己是否有权限访问私有数据。 如果获得授权,他们将检查本地的“临时数据存储”以查看他们是否在链码背书期间收到了私有数据。 如果没有,它将尝试从其他授权节点提取私有数据。 他们将验证公共区块中私有数据的哈希值并提交交易。 验证和提交完成后,私有数据将移动到其私有数据库和私有读写副本。 最后从“瞬态数据存储”中删除私有数据。

链下存储

链下存储是将需要保护的私有数据存储在链外,部分可以公开的数据放在分布式账本上。

一种是将原文存储在链外,将相应的摘要信息存储在分布式账本上。 该策略结合安全散列算法来计算摘要信息。 即使有摘要信息,也不能直接反推原文。 然而,这样简单的处理也可能造成隐私泄露,尤其是身份证号、性别等有限且通用的数据,很容易让攻击者实施字典攻击和暴力破解。 对于这类数据,需要添加盐值(SALT),然后在上传到链上之前进行哈希处理。 链下存储具有很强的隐私保护,通常用于数据存储领域。 但这种方式也有缺点,因为原文不在链上,原文的安全存储需要各方花费精力自行维护。 同时,如果一方当事人在举证时丢失了原文,相对人可能出于自身经济利益的考虑,故意不提供原文,无法真正达到举证的效果。

另一个是状态通道。 在这种策略下,分布式账本上只能看到粗粒度的“批发”,可以类比为存取资金的操作,而真正细粒度的双边或有限的多边交易明细则不会被记录为“交易” “在分布式账本中。 在账本上,仅作为争议事件发生时的参考“信息”文件,通过状态旁路的“曲线”执行。 比特币体系下的“闪电网络”是在比特币脚本的逻辑表达能力有限的情况下,不得不借助“精巧”的设计来实现的事实上的状态绕过。 该策略不仅为交易隐私提供了保护,还提高了交易处理能力。 但部分数据仍在分布式账本上,状态旁路只能实现部分保护。

解释状态通道如何工作的最好方法是看一个例子。

现在想象一下,Alice 和 Bob 想玩一个井字游戏,获胜者可以获得一个 eth。 实现这一目标的最简单方法是在以太坊上创建一个智能合约,该合约实施井字游戏的规则并跟踪每个玩家的动作。 每次玩家想要移动时,他们都会向合约发送交易。 当玩家获胜时,根据规则,合约将向获胜者支付 eth。

这样做会奏效,但效率低下且速度缓慢。 Alice 和 Bob 让整个以太坊网络处理他们的游戏,这对他们的需求来说有点矫枉过正。 玩家每次要移动都需要支付 gas 费,并且必须等待区块被打包才能进行下一步移动。

然而比特币的隐私保护策略,我们可以设计一个新系统,让 Alice 和 Bob 以尽可能少的链上操作来玩井字游戏。 Alice 和 Bob 能够在链下更新游戏状态,同时确信计算结果仍然可以在需要时恢复到以太坊主链进行验证。 我们称这个系统为“状态通道”。

首先,我们在以太坊主链上创建一个可以理解井字游戏规则的智能合约“Judge”,它也可以确认Alice和Bob是我们游戏中的两个玩家。 该合约持有一个eth的奖励。

然后,Alice 和 Bob 开始玩游戏。 爱丽丝创建并签署了描述她游戏第一步的交易,然后将其发送给鲍勃,鲍勃也签署了交易,将签名版本发回并为自己保留一份副本。 然后 Bob 还创建并签署了描述他在游戏中的第一步的交易,并将其发送给 Alice,Alice 也签署了交易,发回并保留了一份副本。 每次,他们都会用游戏的当前状态互相更新。 每笔交易都包含一个“随机数”,这让我们可以直接知道游戏中的走法顺序。

到目前为止,还没有发生任何链上操作。 Alice 和 Bob 只是通过互联网向对方发送交易,尚未向区块链传达任何信息。 但是,所有交易都可以发送到 Judge 合约,换句话说,它们是有效的以太坊交易。 你可以把这想象成两个人来回填写一系列经过区块链验证的支票。 实际上没有钱从银行存入或取出,但每个人都有一叠支票,可以随时存入。

当 Alice 和 Bob 结束游戏时(可能是因为 Alice 赢了),他们可以通过将最终状态(例如交易列表)提交给 Judge 合约来关闭通道,这样只需要一笔交易费用。 Judge 合约将确认双方都签署了这个“最终状态”,等待一段时间以确保没有人可以合理地质疑结果,然后支付给 Alice 1 eth 的奖励。

加密保护

加密保护是使用密码算法对账本数据进行加密,只有相关方才能解密和查看。 这种加密保护的策略现在用的比较多。 对应的加密算法有对称加密(如:AES256、SM4)和非对称加密(如:RSA2048、SM2)。 账本加密要选择高强度的算法,金融行业需要支持国密算法。 因为对称加密速度快,所以相对容易破解,而非对称加密则相反。 因此,在实际应用中,一般会结合使用对称加密和非对称加密算法。 一个例子是数字信封,它可以解决与多个交易对手共享一份隐私数据的问题,这样只有这些交易对手才能解密和查看,而其他人无法知道数据的明文。

除了对账本的存储进行加密外,账本的转账过程也需要加密。 只有端到端加密,传输过程才安全有效。 如果依赖平台或中间节点完成加密,这些节点将能够获得私有数据。 说到加密,还需要考虑密钥的安全性。 如果密钥被盗,数据隐私就会丢失。 密钥文件可以保存在服务器、手机钱包、USBKey、加密机等,一般硬件设备只能使用密钥,不能读取密钥,安全性会更高。 利用门限算法结合区块链实现分布式密钥管理服务,解决了用户密钥丢失和账本无法解密的问题。 基于阈值算法,只有收集到一定数量的密钥碎片才能恢复密钥,可以防止个别主体窃取密钥获取隐私数据。

加密保护策略也有一定的局限性。 一方面,很难向非技术人员证明加密的安全性。 另一方面,加密算法的安全级别会随着技术的进步而逐渐降低。 比如量子计算机出来之后,很多以往无法破解的密文,都会被量子计算机破解。 量子计算机概念的出现也促使人们研究在量子计算机下仍然安全的密码方案。 目前有量子密码学和皮密码学两个重要分支。

身份混淆

身份混淆就是隐藏在区块链上交易的用户的身份。 Fabric 使用交易证书(TCerts),它是每笔交易的短期证书,以满足一次性一密、不可伪造、无关和可追溯。 这使得用户不仅可以匿名参与系统,还可以防止交易之间的关联。

还有使用群签名来实现身份匿名。 群组签名是指群组中的任何成员都可以代表整个群组对消息进行匿名签名。 与其他数字签名一样,群签名是可公开验证的,并且只能使用单个群公钥进行验证。

环签名可以看作是特殊的群签名。 环签名解决了签名者完全匿名的问题。 环签名允许一个成员代表一组人签名,而不会泄露签名者的信息。 群签名无法解决这个问题,因为群签名的生成需要群成员的配合,群管理员才能打开签名。 对于验证者来说,签名者是完全匿名的。 环签名的无条件匿名性在一些需要对信息进行长期保护的特殊环境中非常有用。

部分明文

部分明文是将分布式账本数据分为敏感部分和非敏感部分,保护敏感部分的隐私。 Corda 的其中一种隐私保护方案使用了一种类似盲的签名技术,可以提取(Tearoff)一些敏感内容。 该技术采用对敏感字段和非敏感字段进行分组和散列的方法比特币的隐私保护策略,然后分层构建默克尔树,使得去除敏感字段后,剩余的默克尔树仍然具有树结构和对非敏感字段的验证值, 并且可以基于它实现类似盲签名的效果。 这意味着在向交易对方发送交易时,他不需要知道的具体数据可以从发送的内容中删除,但仍然不影响他对整个交易的签名。 通过这种机制,可以实现交易的隐私保护。 那么,在没有交易所有数据的情况下,如何对整个交易进行签名呢? Corda将交易的签名结构做成一棵MerkleTree,这样一个保留了必要签名的分支可以发送给签名者,让他仍然可以根据签名结构完成整个交易的签名。 同时,在发生法律纠纷时,比如被移除的敏感字段内容是伪造的,默克尔树也可以用来识别证据的真伪。

其他节目

它是指证明者在不向验证者提供任何有用信息的情况下,使验证者相信某个断言是正确的能力。 区块链隐私将通过使用“零知识证明”进一步增强,“零知识证明”除了声明的有效性外不透露任何信息。 此类项目包括 Zcash,这是一种开源加密货币,可促进公共区块链上的支付系统,但对发送者、接收者和交易金额的信息保密。

它是一种基于数学问题的计算复杂性理论的密码技术。 处理同态加密数据会产生一个输出,解密后会产生与原始未加密数据相同的输出。 如果一个加密算法能同时找到乘法和加法的对应运算,则称为全同态加密算法。 但是直到现在还没有真正可用的全同态加密算法。

就是保证多个参与者的数据不需要先采集再分析,数据存储在本地进行协同计算。

也称为基于模糊身份的加密(Fuzzy Identity-Based Encryption)。 它将身份视为一组属性。 IBE中的解密者只有在其身份信息与加密者描述的信息一致时,才能对加密者加密后的信息进行解密。 与IBE不同的是,采用基于属性的加密后,当用户拥有的属性超过加密者描述的预设阈值时,用户就可以对其进行解密。 适用于一些特殊场合。

综上所述,以上各种数据保护措施可以实现数据隔离、安全传输、可用性和不可见性。 这样既可以在保护隐私的同时共享数据,又可以增强数据在区块链上的流动性。 同时,在实践中,数据隐私保护往往与智能合约相结合,通过合约固化共识。 良好的共享规则,在链上自动实现数据保护和隐私的流通。

结合区块链安全与隐私保护的三篇文章,希望对大家有所帮助。 感谢您对宏链的关注和支持。

比特币的隐私保护策略_比特币主连比特币连续的区别_比特币期货对比特币影响

比特币的隐私保护策略_比特币主连比特币连续的区别_比特币期货对比特币影响

微信号:maxchain

比特币主连比特币连续的区别_比特币期货对比特币影响_比特币的隐私保护策略