写在前言
前之前,我们写了一篇文章介绍了“区块链技术为不同种类数据带去的价值”,即区块链在保障不同数据的来源、不可变性以及真实性方面的能力。本文,我们会继续解答另一个常常被大家忽视的问题:数据如何同区块链交互。就像其他众多系统一样,区块链技术也正经历着“垃圾输入,垃圾输出”的痛。
向区块链撒谎
之前发布的
关于数据的文章中,我们发现对于那些非区块链本地生成且非公开可获取的数据,区块链系统并不能确保其真实性,而不幸的是,全球绝大多数都是这类数据。因此,如果某人提交欺诈性数据到区块链上,我们根本无法确定其真实性,结果就是你不停地提交假数据到区块链历史。于是,你让垃圾上了链,区块链再还你垃圾。
据悉,如今忽略这个问题的应用比比皆是,通常它们会再附加一些技术层确保数据正确性,这里是几个案例:
安全团队:FTX交易所遭到gas窃取攻击事件技术分析:10月13日消息,据Beosin EagleEye Web3安全预警与监控平台的舆情消息,FTX交易所遭到gas窃取攻击,黑客利用FTX支付的gas费用铸造了大量XEN TOKEN。Beosin安全团队第一时间对事件进行了分析,结果如下:
1.以其中一笔攻击交易为例
(0x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d69),攻击者先在链上部署攻击合约(0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3)
2.FTX热钱包地址会向攻击合约地址转入小额的资金,利用攻击合约(0xCba9...7FD3)进行批量创建子合约。由于整个攻击中创建了大量合约,并且每次执行完子合约之后,子合约都会自毁。
3.接下来子合约fallback()函数去向Xen合约发起铸币请求,如下函数,claimRank()函数传入一个时间期限(最小1天)进行铸币,铸币条件是只用支付调用gas费,并无其他成本,并且claimMintReward()函数为提取函数,该函数只判断是否达到时间期限(本次黑客设置的时间期限为最小值1天),便可无条件提取。但在此次调用过程中,交易发起者为FTX热钱包地址,所以整个调用过程的gas都是由FTX热钱包地址所支付,而Xen铸币地址为攻击者地址。
4. 1-3中的步骤,重复多次,并且每次重复过程中都会将已到期的代币提取出来,并且同时发起新的铸币请求。
截止发文时,通过Beosin Trace追踪发现,FTX交易所损失81ETH,黑客通过DODO,Uniswap将XEN Token换成ETH转移。[2022/10/13 14:26:15]
>去中心化数据市场:用代币激励企业挂牌出售数据——你怎么知道你买的数据是真实的?
声音 | 加密技术分析师:自12月低点以来,莱特币涨幅大于比特币:加密技术分析师Marius Landman今日发推称,自2019年12月17日的近期低点以来,比特币上涨了28%,而莱特币上涨了30%。莱特币才是领先者,比特币更强大只是人们的错觉。[2020/1/8]
>隐私保护查询:这项服务通过一种零知识范围证明来计算银行高净值人士数量,这样你就可以收获一个数字而银行不用提交任何客户数据——那么你怎么确认银行没有伪造整个客户数据库?
对于公开可获取的数据,你可以设计一个游戏,让有资金风险的玩家向其他玩家的数据真实性发起挑战,就像Chainlink设计的那样。但正如我们之前所说的,世界上绝大多数数据并非公开可获取。
那该怎么办?关键是要在源头确保数据安全。
确保数据来源安全
传统的技术分析对加密货币投资者有指导意义:Bitcoin今日发文“像老板一样,付出时间并投入研究去交易加密货币”,文章认为:即便加密货币与股票或外汇市场大不相同,但传统的技术分析仍具有对加密货币投资者的指导意义,‘好的交易者”看多并记住了足够多的蜡烛图中头肩顶、杯柄、三重顶、三重底等形态后,可在日间交易中快速通过潜意识判断价格趋势;此外,除了基本的移动平均线(SMA、EMA、DMA)、相对强弱指数RSI(低于30为“超卖\",超过70为“超买”)外,结合MACD、斐波纳特回撤、艾略特波浪理论等指标,可提高判断成功率。更进一步,“聪明的交易者”也意识到新闻和社区的情绪可以影响数字货币的价格。但文章同时警示道:即使一个技术精湛、密切关注消息的投资者,仍会做出错误预测,你要确保你所看到的是一个真实的图形。[2018/4/2]
如果我们没有从源头获得数据,而是通过第三方或中间商获取,那么在不信任这个中介的情况下,这个数据的真实性也就不再可信。越多中介参与的数据管理,越是不得不信,但如果中介数量多到一定程度,这个数据就有可能是由随机数生成器生成的了。
价格回调利于比特币健康发展 加密货币不能与区块链技术分离:最近比特币价格的大涨大跌引发不同的猜想。Netcoins的CEO迈克尔?沃格尔并不认为比特币和其他数字货币的价格暴跌意味着区块链技术的失败。他解释:回调是比特币健康发展的一部分,加密货币是不能与区块链技术分离的。来自Auxesis的Kumar Gaurav表示:“对于加密货币及区块链技术的观点应该是中立的,而不是基于意识形态。”来自Auxesis的库马尔认为:加密货币应该成为区块链技术的首次使用和支持用例。[2018/2/19]
所以,我们的目标就是尽可能从靠近源头的地方获得数据。例如:
与其从零售商的数据库获得销售数据,不如从销售点硬件入手;
与其在网站上订阅天气预报,不如关注采集数据的天气传感器;
与其查看桥梁运营企业的PDF报告,不如从桥体上安装的摄像头和传感器获得原始数据等。
但是如何从源头确保数据安全呢?由于世界上大部分数据都是由设备产生或捕捉,我们这里也可以把这个问题描述为如何保护设备生成的数据。现在,我们面临着三个潜在的失败点:
身份:你如何知晓正在生成数据的是什么设备?是你预想的温度感应器吗?还是作恶者的随机数生成器?
处理和传输:即使数据来源真实可确定,你又从何得知这个数据没有被更改、损坏或在设备的处理和传输过程中被直接替换掉?
数字/模拟接口:就算身份、处理以及传输途径都安全,那你又要如何预防有人通过接入假的输入信号源来物理更换设备采集数据的渠道?
下面我们来一一解决这些问题。
一个实用的方法
身份:
为了确保生成数据的设备身份受到保护,我们可以在设备上嵌入一组公私钥,让公钥知晓并且现场检查实际设备的输出,通过这种切实可行的手段确保硬件的身份没有问题。——当然,这是相对简单的一步。
棘手的部分是,你如何确保这个身份不是偷来的或者只对设备可知?这里可以采用一种叫做“安全元素”(SecureElement,SE)的硬件模块,它能够在芯片上生成公私钥对,并且高度防篡改。通常情况下,这个安全模块只做一件事:签署消息。——这是一个提供身份证明的好方法。如果你持有过信用卡,或者用过现代智能手机,那么你已经享受到了这个安全元素的好处。
处理和传输:
为了保护数据处理与传输逻辑的安全,我们采用了一个带有安全启动程序的微控制器。你可以把这里的微控制器想象成一台超级简单的计算机。
SB确保只有拥有正确私钥的实体能够加载应用程序到MCU中。而这个应用程序的逻辑和相关的校验能够提前共享给利益相关方,这样就可以在加载后对其进行验证。
接下来更关键的是,在应用程序经过了全面的测试后,我们需要禁用应用程序和MCU上所有的修改功能。这一点是为了确保从现在起该应用程序的逻辑彻底不可更改,就算是制造商也无法再做改动。
这个方案也存在一些明显的缺点,比如之后应用程序就不能再更新了。但是相比之下,我们获得了真正的设备独立性而不再受外部干扰,并且具有了完美的确定性与不可更改性足以让我们信赖。
数字/模拟接口
这方面的问题比较难,不能通过数据采集与中继设备上嵌入的硬件来解决。通常必须设计出创新机制来确保接口不被中断,但这一点还要看每个应用程序的情况。下面我们来举个例子。
假设你有一台冷藏车,服务于某冷链物流公司,日常工作是为当地的超市配送新鲜的鱼。为了保鲜,鱼必须保存在一定温度范围内。如果温度过高,鱼就会变质;而温度过低,鱼的口感和肉质就会变差。为了确认物流公司遵守了合同约定的温度范围,超市会在卡车上安装一个温度传感器。
但是,如果卡车司机为了节省电费而调高制冷装置的温度,然后把传感器拿走放到车前的一个冷却器里怎么办?传感器根本不会知道自己被挪动了,只是继续收集、报告那个恒定在合同约定的温度范围里的数据。也就是说,传感器被了。
减轻这种风险的一个方法就是把传感器也做成硬件接到制冷装置中,这样就几乎不可能被移动了。不过,这种对策仍旧可以通过某种方式避开,比如在传感器周围缠一袋冰,而卡车其他部位依旧比合同规定的温度高。
另一个可能更好的方案是给每包鱼的包装上贴个防篡改的密封条,并且在每个包装上配置一个温度传感器。这样一来,如果司机想要拆开温度传感器,他就不得不撕开封条,这样就很容易被发现是违背了合约的关键条款。
就像前面提到的,解决数字/模拟接口的问题需要大量的创造力,且解决方案需要“具体问题具体分析”。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。