如何防止虚假数据发送到区块链

时间:2019-04-18 15:37:27

标签: cryptography blockchain p2p consensus

我正在开发一个用于物联网应用程序的区块链,那里有许多遍布整个城市的网关(矿工),并且每个节点都连接有多个节点(传感器)。最终用户可以添加每个网关,因此这是一个不受信任的环境。我如何确保没有一个矿工将虚假数据发送到链上?

我查找了一些共识协议,发现没有适合这个特定问题的协议,因为没有交换任何价值。

每个矿工将ping发送到主服务器,并从中接收网络上的矿工列表。然后他们通过p2p相互连接。

关于如何解决这个问题的任何想法?

3 个答案:

答案 0 :(得分:2)

在无权限或有权限的情况下,都可以使用区块链,如果要防止任何人都可以广播数据,则必须先对节点进行身份验证,然后才能加入网络。如果即使在对节点进行身份验证之后,仍然有可能通过身份验证的节点发送“伪数据”,则必须实现信任机制,节点将验证数据源的可信度,并确定该节点是否受信任并接受数据。 / p>

答案 1 :(得分:0)

为了防止发布垃圾邮件或虚假数据,必须将其作为共识规则添加到协议中。否则,它需要另一层根据脱链数据验证数据(但不阻止将数据存储在块中)。区块链用于在无许可的系统中达成分布式共识。限制谁可以参加不是一个无许可的系统,而是一个集中式系统,因为必须由某人确定允许谁参加。

答案 2 :(得分:0)

查询的答案位于Blockchain Oracles中。

迄今为止,Oracle是集中式服务,这意味着使用此类服务​​的任何智能合约都具有单点故障,这使从智能合约的分散性质中获得的任何收益无效。

为填补这一空白,Chainlink被开发为第一个可以向智能合约提供外部数据的分散式预言机。结果,可以将智能合约的安全性和确定性与现实世界外部事件的知识和广度相结合。 Chainlink将提供一个智能合约,可以访问任何所需的外部API。

根据链链接herehere

  

区块链和智能合约无法从外部访问数据   他们的网络。为了知道该怎么办,一个智能合约经常   需要从外界获得与以下方面相关的信息   电子数据形式的合同协议   称为甲骨文。这些oracle是发送和发送   验证现实世界中的事件并将此信息提交给smart   合约,触发区块链上的状态变化。

enter image description here