区块链应用错误案例指南

简介:
+关注继续查看

区块链现在是热门的技术,每个人都在寻求用区块链解决各种各样的问题。自2017年我开始从事智能合约的安全审计以来,已经看到了太多错误的区块链用例。有些错误的区块链用例看起来符合逻辑并且也有益处,但是实际上其中存在着问题。本文将介绍存在8种典型的基于区块链的错误的解决方案,以期帮助开发者/投资者/客户更深刻地理解区块链技术的边界。

相关教程推荐: Hyperledger Fabric | Ethereum | Tendermint | Bitcoin | EOS

1、基于区块链的供应链管理

假设你订购了一批货物,承运人承诺了运输条件,例如保持你的货物处于冷藏状态。一种区块链应用解决方案是在货车上安装可以监视冷柜温度的传感器并定期将温度数据写入区块链,这样你就可以确信承运人所承诺的运输条件在整个过程中都得到满足。

这个区块链应用案例的问题不在区块链,而在于传感器。作为现实世界的一部分,传感器很容易被愚弄。例如,一个恶意的承运人可能只会启动货车中的一个小冷柜然后把传感器放进这个小冷柜,而把你的货物放在货车的没有冷藏环境的空间以节省成本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7YdsIKjk-1580257315059)(blockchain-bad-use-cases/truck-fooled.png)]

我将这种问题定义为:区块链不是物联网

在文本中我们将多次重温这一定义。虽然区块链不允许修改数据,但是它并不能保证数据是正确的。唯一的例外是链上交易,当系统不需要与现实世界交互时,才能保证基于区块链的系统能够验证数据,例如一个地址是否有足够的资金来处理交易。

从区块链外部向区块链提交信息的应用被称为预言机/Oracles。在预言机的解决方案完善之前,任何基于区块链的供应链管理,就像上面这样的冷鲜物流跟踪区块链应用,都是毫无意义的,就像没有可靠的引擎就去设计飞机一样徒劳。

我从这篇文章你是否需要区块链?借用了物流冷柜的区块链应用案例,也推荐你阅读该文并对下图深入思考区块链应用的合理性:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I7lK1E35-1580257315060)(blockchain-bad-use-cases/decision-diagram.png)]

2、基于区块链的真品验证

虽然这个区块链应用案例类似于上面的供应链用例,但是我还是想单独列出来,因为它以一种不同的形式出现。

假设我们生的是产昂贵并且独一无二的商品,例如高级手表、葡萄酒或汽车。我们希望客户确信他们买到的东西确实是我们造的,因此我们将葡萄酒瓶关联到一个基于区块链的通证,并在瓶上印一个二维码。现在从我们的工厂到消费者的每一个环节(工厂、物流商、商店、消费者)都通过一个单独的区块链交易进行确认,因此消费者可以在线查看一瓶葡萄酒的历史轨迹。

然而,这个听起来相当不错的区块链应用案例却无法抵御非常简单的攻击:一个不良商人可以复制一个带通证的正品的酒瓶,然后用劣质葡萄酒罐装,或者换掉你的高级葡萄酒,卖给不关心是不是有通证验证的人。为什么会这么简单就被破解?是的,就是因为:区块链不是物联网

酒瓶是现实世界中的物理对象,因此酒瓶可以被伪造,这一点和数字签名是不同的。

3、基于区块链的声明验证

让我们以大学毕业证书的验证为例来介绍这个区块链应用案例的背景。在这种区块链应用案例中,我们需要验证一个声明的真实性,例如:彼得是大学毕业生,而不是要验证一个物理对象的真实性。要确保文凭合规并且签发日期正确,我们需要检查数字签名和时间戳。

数字签名很好,有些人甚至将数字签名的基础 —— 非对称密码学 —— 称为20世纪最伟大的发明。但是我们不要将其与区块链混淆。实际上,数字签名在区块链之前很早就已经得以广泛应用了。要注意的是,现在数字签名常常与区块链捆绑在一起作为卖点。可能你需要的只是数字签名,一个区块链应用并不符合你的需求。

时间戳和区块链更接近一些。实际上,区块链本身就是最可靠的打时间戳的方法。你不需要发明任何新东西,只需要将数据的哈希写入比特币区块链。

将学生的毕业文凭数字化,然后由几个教授签名,最后将哈希写入比特币区块链,这是一个好的区块链应用案例吗?是的。不过,重要的是不要用中心化的验证手段,例如网站或手机app,因为那将会是这个区块链应用的一个致命故障点。

4、基于区块链的投票

投票也是一个流行的区块链应用案例。当谈到利用区块链投票时,我们需要首先清楚地了解这个区块链应用要解决的问题是什么。

投票作弊/投票人验证

要解决这个问题,我们需要的是数字签名而不是区块链。这里主要的问题与私钥有关:从哪里得到私钥以及如何存储私钥。相信不用我解释为什么不能由用户在自己设备生成私钥的系统是错误的,然而除此之外,代码开源以及正确地审计密钥生成软件、第三方硬件也同样重要,以确保用户可以正确处理私钥问题。

虽然一个区块链应用系统的开发者可以解决前两个问题,第三个则要难的多。比特币可以帮助我们学习如何使用密钥。实际上,丢失你的社交媒体账号的密码是一回事,但是丢失你的资产的私钥则要严重的多了。

再一次,是预言机/oracle将公钥与特定的个人关联起来,如果我们需要利用它投票的话。

公开计票

基本可以说以太坊智能合约可以很好地解决这个问题,因为它可以让每个人都看到某个候选人得到多少投票。不过在这个区块链应用案例中,开放程度有点过了,因为我们可以看到每个人地投票,因此可以影响他们。虽然系统可以设计成每个人只能看到自己的投票,但是这又有另一个更复杂的问题:只要投票人了解别人可以知道他的投票情况,投票人就会有压力。

这里还要重申,在这个区块链应用中,我们需要预言机来检查是否存在虚假的投票人的投票。

5、基于区块链的著作权验证

假设艺术家A希望利用区块链来注册他的一个作品。该艺术家拍摄了画作的照片,然后将照片哈希上传到区块链,然后他可以将照片贴到自己的博客里现在,如果艺术家B宣称这副作品是他创作的,艺术家A可以利用区块链上的哈希轻松地证明其著作权。

这个听起来蛮不错的区块链应用案例中存在两个潜在的问题:

  • 首先,艺术家B可以说他不了解区块链,因此没有用区块链来登记其著作权。因此,只有当区块链著作权普及后这一流程才有益。
  • 其次,艺术家B可以闯入艺术家A的工作室,拍摄作品的照片,然后在艺术家B
    之前先将 照片的哈希传上区块链

原因在于:区块链不是物联网

是的,总的来说,这个区块链应用案例是有价值的,然而,除了比特币区块链也不需要别的什么东西了。

注意,我说的只是著作权的证明,在我的理解中知识产权没有意义。

6、基于区块链的土地所有权登记

另一个常见的区块链应用案例是将基于区块链的通证与土地所有权关联,这里面至少有两个问题:

权威机构修改

虽然一个酒瓶/手表/汽车可以在个人之间转让,土地所有权和转让必须由监管机构登记,这通常需要实地走访你的土地。如果监管机构坚持你已经转让了土地,那么区块链记录会怎么样?第一个选项是:区块链记录依然表明你是土地的所有人,虽然这已经不符合实际情况了。第二个选项:权威机构生成自己的记录,因此覆盖了你之前的记录,这意味着区块链也没有起作用。这是一个非常重要的问题,因为区块链被宣称的一大优点就是保护你免于这种修改行为。

中心化的开发与支持

谁负责开发这样一个系统并提供支持?如果是监管机构自己或其合作伙伴负责,那么这样一个系统不是去中心化的。一个去中心化的协议再加上中心化的开发等同于中心化的协议。

此外,每次当有人向你推销区块链应用案例时,问问自己:是不是用分布式数据库就够了?

如果答案是 YES ,那么为什么还要用区块链呢?实际上,区块链要慢的多,而且会消耗更多的资源。另外数据库开发和集成方面的专家成本要低的多,也更容易找到。

考虑到所有这些问题,我相信对于土地登记而言,一个分布式数据库是更好的选择,即使该系统的确需要更加可靠和开放。

实际上,看起来这个区块链应用案例已经成为了现实。Bitfury最近宣布其基于Exonum框架开发的区块链土地登记系统已经上线,并计划拓展到乌克兰和摩尔多瓦。非常奇怪的是,我没有找到该项目的任何技术资料,这表明出于某种原因Bitfury并不急于鼓吹这一项目。

7、基于区块链的银行间转账

根据之前的一些研究,这个应该算是一个好的区块链应用案例。银行间转账涉及到一组彼此并不信任的机构,利用区块链可以无需第三方可信机构的介入。虽然在这里可以使用比特币,银行也不会将其相互之间的支付活动公开化。因此我们需要一个私有的区块链,只有参与跨行转账的银行可以输入数据、运行节点并验证交易。

在功能方面,这样一个系统和具有访问控制的分布式数据库有区别吗?是的,的确有一些区别,但是只有当机构之前有分歧时才能看到区别之处。这里的问题在于:银行是认同系统提供的共识,还是更愿意诉诸法庭?如果银行可以选择第二个选项,那么这个系统就没有什么意义。

另外,如果立法机构禁止或限制这样的系统,或者要求法院不承认该系统的数据,那么这整个区块链应用案例也没有什么意义了。

8、为了代币而代币

是的,我要说的就是2019年的ICO。为了证明这种行为还在继续,提醒你别忘了在2019年1月28号,BitTorrent成功ICO。

我的意思是,有些创业公司通过发行代币给你分红权这种行为。问题还是在于:__区块链不是物联网__

和风险投资或监管机构不同,区块链并不为投资者负责。代币形式的承诺并不能强制企业的创始人做任何事情。在这方面,ICO更像是众筹而非IPO。

虽然喜欢去中心化机构这个概念,我必须承认在这一领域几乎不存在这样的系统,这意味着你要么选择现有的工具,要么信任公司的创始人。


原文链接:错误的区块链应用案例 — 汇智网

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
4月前
|
Web App开发 JavaScript 前端开发
|
4月前
|
传感器 供应链 安全
区块链的4个实际应用
区块链的4个实际应用
145 0
|
4月前
|
存储 供应链 安全
区块链101:区块链的应用和用例是什么?
区块链101:区块链的应用和用例是什么?
|
5月前
|
存储 安全 区块链
区块链股权交易系统开发技术应用(源码案例演示)
网络中的许多重要数据都可以通过区块链进行存储和访问,区块链的去中心化可以更好地防止黑客入侵。这使得区块链成为了一项安全便捷的信息交易工具,随着对区块链研究的不断深入,区块链技术也被应用到更多的领域中去。 区块链中的每个参与维护节点都可以获得完整的数据记录,利用区块链的可靠和集体维护特性,可以确认股权所有者的权利。区块链是存储永久记录的理想解决方案,适用于土地所有权和股权交易等场景。
|
9月前
|
人工智能 自然语言处理 供应链
谈谈区块链和AI在主数据管理中的应用
主数据是企业拥有的最重要的资产之一。随着数字化的不断推进和第四次工业革命的到来,主数据的价值和主数据管理的重要性只会越来越大。
|
10月前
|
区块链
|
10月前
|
存储 资源调度 算法
去中心化web3.0区块链项目系统开发与技术应用方案介绍
去中心化web3.0区块链项目系统开发与技术应用方案介绍
|
11月前
|
存储 SQL 弹性计算
读《区块链技术及应用第二版》华为区块链发展思路、双引擎战略及华为区块链特点和使用有感
区块链是一种特殊的分布式数据库,任何服务器都可以成为区块链中的一个节点,且节点之间是平等的,无中心化,区块链中的数据是经过加密存储,已经存储的数据无法修改,可以保证数据的准确性。
227 0
|
弹性计算 安全 Linux
一名刚接触区块链的研二学生使用阿里云服务器ECS完成的区块链应用
研二开学,老师让复现一个基于Fabric的数据加密共享系统原型,通过利用阿里云ECS服务器,成功实现。在这当中云服务器的弹性可伸缩计算服务给我带来了很大的便利。
125 0
|
存储 传感器 消息中间件
区块链防伪应用在ECS上的最佳实践
现有的基于区块链的防伪溯源系统大多侧重于解决数据的不可篡改性和系统的去中心化问题,无法保证基于区块链的源数据的真实性和可靠性。同时,大多数防伪追溯系统采用私有链,存在交易延迟大、系统吞吐量低、资源消耗大等问题。为此,将区块链技术与物联网技术相结合。将追溯数据通过联盟区块链存储,保证追溯数据的分散存储和数据的不篡改性。同时,利用物联网技术,确保区块链源数据的真实性和可靠性,并在ECS上进行了最佳实践。
区块链防伪应用在ECS上的最佳实践
热门文章
最新文章
推荐文章
更多