MultiChain Blockchain Data Provenance for Deterministic Stream Processing with Kafka Streams: A Weather Data Case Study
本文提出了一种面向 Kafka Streams 的多链支持溯源架构,通过将窗口化数据的加密默克尔根锚定至区块链,同时将有效载荷保留在链下,从而确保实时天气数据处理具有确定性、可审计性和可重现性。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在观看一场柏林天气状况的实时新闻直播。每隔几分钟,新闻主播(计算机系统)就会公布过去一小时的平均气温。
问题所在:“电视直播”的魔术诡计
通常,实时数据处理有点像一个魔术师的戏法。计算机接收成千上万个温度读数,将它们重新排列,然后吐出一个平均值。但因为计算机运行极快,且互联网有时会出现网络抖动,数据的到达顺序可能会发生变化。
如果你要求计算机进行两次完全相同的计算,它可能会给出两个略有不同的答案。
- 运行 1: 计算机看到了三个温度读数,并说:“平均值是 21.0°C。”
- 运行 2: 由于微小的网络延迟,第四个读数在稍后一瞬间到达。计算机将其放入了另一个“桶”(时间窗口)中,并说:“平均值是 21.75°C。”
这使得审计人员无法断言:“我确信计算机计算得完全正确,”因为每次重播录像时,结果都会发生变化。这就像是在尝试验证一道数学题,而题目中的数字却一直在不断重排。
解决方案:“密封信封”系统
本文作者构建了一个系统来解决这个问题,主要使用了两个工具:Kafka Streams(执行计算的计算机)和 MultiChain(一种特殊的、不可更改的数字账本,类似于区块链)。
以下是该系统的运作方式,通过一个简单的类比来逐步说明:
1. “固定时间桶”(确定性窗口化)
系统不再根据数据“实际到达”的时间来决定何时停止计数并开始新的平均值计算,而是使用固定时间桶。
- 类比: 想象一条工厂传送带,无论发生什么,它都会每隔整整 2 小时停一次。
- 运作方式: 无论数据是在下午 1:59 到达还是在 2:01 到达,系统都会强制将其归入“下午 1:00 至下午 3:00”这个桶中。这确保了每次运行计算时,都会有完全相同的数据进入完全相同的桶中。
2. “标准化食谱”(规范化 JSON)
即使数据在同一个桶里,计算机在记录方式上也可能存在差异(例如,“10:00:00”与“10:00”)。
- 类比: 想象一位厨师坚持要求每一件食材在放入锅中之前,必须以完全相同的笔迹和顺序被记录下来。
- 运作方式: 系统将每条温度记录重新改写为一种严格的标准格式。这保证了数据在每次处理时看起来都是完全一致的。
3. “数字封蜡”(默克尔树/Merkle Trees)
现在,数据已经处于固定的时间桶中,并且以标准化的格式记录好了,系统需要证明这些数据未被篡改。
- 类比: 想象你有一堆收据。你不是把整堆收据锁进保险箱,而是将它们进行哈希处理(转化为唯一的数字指纹),并将它们排列成一个金字塔形。然后,你取出金字塔最顶端的那个数字——默克尔根(Merkle Root)——并将其封入一个蜡封信封中。
- 运作方式: 系统为该 2 小时时间桶内的所有温度数据创建一个“默克尔根”。这个根是一个单一的、微小的代码,代表了整个数据集。如果其中哪怕只有一个温度数值发生变化,这个代码就会发生彻底改变。
4. “不可更改的日志簿”(区块链锚定)
这正是奇迹发生的地方。系统并不会将沉重、杂乱的温度数据直接放在区块链上(那样太慢也太昂贵了)。
- 类比: 你将沉重的收据保存在抽屉里(链下存储),但你会将封印编号(默克尔根)和页码记录在一个公开、不可更改的日记本中(区块链)。
- 运作方式: 系统将默克尔根和“页码”(Kafka 偏移量)写入 MultiChain 区块链。区块链充当了一个永久、不可篡改的见证者。
5. “审计检查”(验证)
现在,假设一名审计人员想要检查天气报告是否正确。
- 他们查看日记(区块链),确认该时间段对应的“封印编号”应该是多少。
- 他们去**抽屉(链下存储)**中取出实际的收据(温度数据)。
- 他们重新运行“标准化食谱”和“金字塔封印”计算。
- 结果: 如果新的封印编号与日记中的编号相匹配,则证明数据是 100% 真实且完整的。如果不匹配,则说明有人篡改了收据。
研究结果
作者使用柏林真实的气象站对该系统进行了测试。他们发现:
- 可重现性: 他们可以在两台不同的计算机上运行计算,并且每次都会产生完全相同的结果。
- 速度: 进行数学校验(验证)的速度非常快,即使处理大量数据也是如此。
- 效率: 区块链并没有被堵塞,因为它只存储了微小的“封印编号”,而不是沉重的数据本身。
总结
本文提出了一种让实时数据流变得“值得信赖”的方法。通过将数据锁定在固定时间桶中、标准化格式,并将结果封存在记录在区块链上的数字信封中,他们使得任何人都能独立验证一项实时计算(如天气平均值)在数学上是正确的,且未被伪造或篡改。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。