3 月 22 日,谷歌公司向美国国家专利局提交了一份专利申请,这份专利与使用区块链平台来保护用户账号数据的安全性有关。
谷歌打算使用区块链来记录签名,并用签名来验证保存在数据库中的数据,这样就可以知道数据是否遭到篡改,如果是,还可以知道何时被篡改。为了实现这个功能,他们需要开发一种“封口”日志(“封口”通常用于识别有包装的物品是否被拆封过)。
专利文件中提到,谷歌将会使用两个区块链,其中一个区块链由分户总账上的记录签名组成,另一个则用于保存经签名验证过的信息:
这种方式要求在目标区块链中增加一个新的区块,并把新区块链接到已有区块和第二个区块链的区块上,新区块的签名是基于其他两个区块的签名生成的。目标区块链和第二个区块链有可能是区块格子的一部分。
尽管谷歌近日宣布其平台禁止一切与数字加密货币相关的广告,因为他们认为这类广告通常带有欺诈性质,但他们还是相信区块链技术能够给他们已有系统带来好处。
以下内容摘自专利文件,对谷歌所提交的专利进行了描述。
背景
区块链技术通常会被用于提供安全的审计链或日志链。区块链由持续增长的数据记录组成,这些记录以区块的形式存在,每个区块又包含了一批事务。每个区块通常带有时间戳和一个指向上一个区块的头部链接。因为当前区块的信息依赖了上一个区块,所以在不修改上一个区块信息的情况下,是很难篡改或伪造当前区块信息的。
专利概要描述
要在保证封口安全的情况下支持区块链的高效伸缩和频繁的日志查询,虽然很难实现,但还是存在这个可能性,而且还有望进一步提升安全性。
记录封口信息需要用到额外的电子设备,这个设备分别识别出目标区块链和第二个区块链中两个区块的签名,然后添加一个新的区块到目标区块链中,这个新区块的签名是基于之前识别出的两个签名生成的。目标区块链和第二个区块链有可能是区块格子的一部分。
目标区块链和第二个区块链可以使用分布式存储来实现,甚至可以有不同的数据结构。
新区块可以包含一到多个日志记录,日志记录可以是这几种类型:机器日志、数据访问日志、性能日志、操作日志、分户总账条目、认证日志或授权日志。
识别第二个区块链中的区块可能包含:识别与区块格子中的区块关联的唯一性标识符;随机打散唯一性标识符,生成新的标识符清单;识别标识符清单中的第一个标识符;标识符清单的第一个标识符对应的区块当就是第二个区块链的区块。
新区块可以包含一到多个日志记录,这些记录带有所有者标识符,而来自第二个区块链的区块所包含的一到多个日志记录与这些所有者标识符关联。
新区块的签名是在第一个签名和第二个签名的基础上通过加密方式生成的。
为新区块生成签名可能包括:识别新区块所包含的一到多个日志记录的信息,基于这些信息进行第一次加密操作,生成一个散列值;基于已生成的散列值、第一个签名和第二个签名进行第二次加密操作,生成新区块的签名。
后续或许还需要通过检查区块格子是否发生过篡改事件来验证区块格子的正确性。
验证区块格子的正确性可能包括:识别区块格子中包含最旧记录的区块,检查这个区块的签名是否与包含最旧记录区块的签名匹配;对于区块格子里的一到多个区块,先得出与其关联的签名,这个要通过计算当前区块和上一个区块的签名获得;最后检查得出的签名是否与包含最旧记录区块的签名匹配。
验证区块格子的正确性也可能包括:识别区块格子的一个子格;识别子格中包含最旧记录的区块;检查这个区块的签名是否与包含最旧记录区块的签名匹配;对于子格里的一到多个区块,先得出与其关联的签名,这个要通过计算当前区块和上一个区块的签名获得;最后检查得出的签名是否与包含最旧记录区块的签名匹配。
验证区块格子的正确性还可能包括:识别出区块格子中所有的区块;随机打散这些区块,并生成新的区块清单;从头到尾遍历区块清单,对于清单中的每一个区块,基于当前区块和上一个区块(如果存在)的签名生成新的签名,并检查这个签名是否与区块关联的签名匹配。
进行封口记录的系统可能需要一个额外的电子设备和一个计算机能够读懂的存储媒介,这个媒介里包含了一到多个指令,一旦指令被执行,就会触发这个电子设备做出一到多个如上所述的动作。
描述示意图
图 1. 区块链示例
图 2. 封口记录的流程示例
图 3. 区块格子示例
图 4. 执行程序指令的硬件示意图
感谢杜小芳对本文的审校。
评论