本文来自:infoq,作者:hologram ,翻译:王强,星球日报经授权转发。
“区块链”这个术语见多了也会令人生厌。虽说乱糟糟的区块链 ICO 环境更助长了人们对区块链的质疑,但在每次出现颠覆性技术时,出现这类质疑的声音都很正常。其实质疑本身可能就是新兴技术的一种助推剂。当新技术的炒作高潮期结束,人们的期望破灭时,正是质疑者的反馈让技术获得进步和新生。
于是问题来了:有哪个区块链项目可以服务于现在的物联网实践场景?
不考虑加密货币投资或虚拟加密猫(https://www.cryptokitties.co/),现在是否有哪个去中心化的网络平台可以成为未来 12 到 18 个月内物联网数据传输的首选架构?
下文对比了一些最有前景的去中心化物联网平台,它们有的已经是可用状态,有的已进入 Alpha 或 Beta 测试阶段。
典型的物联网解决方案
最常用的物联网设备数据传输协议之一是 MQTT。它使用服务端/客户端的消息队列架构,使用发布和订阅模型。MQTT需要一个中心管理者,名为 Broker。它是系统的唯一信任源。
MQTT 的逻辑很简单。这个架构的中心 Broker 接收多个数据发布者的数据,之后将数据转发给任意数量的订阅者。除了用作消息队列,MQTT Broker 还支持身份验证、最多 3 级的 QoS 和按主题过滤数据的功能。 MQTT 最初诞生于1999 年,之后由 IBM 全力发展,直到 2013 年开源。如今有很多投入实用的 MQTT Broker项目和 MQTT 客户端库,能做到的事情任君想象。
许多商业化物联网平台使用 MQTT 作为主干。MQTT 的灵活性使企业可以部署大量不断发布数据的物联网设备,同时部署任意数量的服务器来订阅预过滤的原始数据。
以下是我们客户最常使用的 MQTT 平台:AWS IoT、Google Cloud IoT Core、Azure IoT Hub、Losant和Adafruit IO。
MQTT 是一个很好的解决方案,但它要扩展到未来预计的 204 亿个物联网设备(https://www.gartner.com/newsroom/id/3598917)上,就需要规模庞大的基础设施和云计算服务。任何初创企业或商业项目的团队如果想要加入物联网元素,都必须准备好承担巨大的云基础设施费用和运维投入。
本文中,MQTT 将作为基准与区块链和分布式账本技术进行对比。
区块链的定义
区块链是一种不可篡改的去中心化账本,可以将其视为一种新型数据库。区块链的基础核心是在整个节点网络中更新的共享账本。每个节点都是一个接收和验证帐本副本的设备。数据按时间顺序存储在该帐本上,新增数据会添加进账本并传播到整个网络。帐本持有的数据可以记录交易、文档、文件或其他有价值的内容。
区块指的是链中当下的位置。一旦网络确认一个区块的副本已被发送到所有节点,这个区块就成为了该分布式账本或数据库的永久组成部分。每个新区块都会添加到上一个区块后面,因此每个区块都包含上一个块的哈希副本。区块链,亦即区块组成的链条!
因为每个新增区块都包含前一个块的哈希值,所以如果某人试图更改链上任意一点的数据,结果就会让哈希值变动,无法通过其它节点的验证。所以向网络混入篡改的数据实际上是做不到的。为了达到改变链上数据的目的,需要访问世界各地的每个账本副本,还要同时改变它们的内容。任何人或组织都无法获得如此大的权力,这使区块链成为无需中心信任源的可信交易或身份验证体系。
我们想要一个自我验证的,由安全的用户账户组成的大规模分布式数据库,交易还有可靠的验证。过去这个需求是无法实现的,因此我们创建了联邦保险银行。
基于以太坊区块链的物联网方案
大众可能是通过比特币了解了区块链技术,但开发者接触区块链则是通过以太坊,后者也因此成为最具实用性的区块链平台。以太坊允许开发者创建他们自己的去中心化合同,合同中可以定义规则、功能,甚至一种新的数字货币。
还记得 2017 年的 ICO 狂潮吗?以太坊提供的工具使科技创业者能够创造出他们自己的加密货币。开发者可以轻松创建自己的加密货币,这也成就了以太坊的生态系统、开发者社区和以太坊区块链。
传统区块链(如比特币和以太坊)的计算能力需求和存储需求太高,不可能用于物联网设备。例如,典型的以太坊节点使用 GPU 来处理区块,因为 CPU 的速度太慢;每个节点还要存储近 1TB 的区块链历史交易数据。如以太坊自己承认的那样,与中心化云服务相比它又慢又贵,还更费电。区块链要成为可选的数据传输平台,必须大幅降低共识耗时和采矿费用。
以太坊的领导团队并没有忽视这些问题。多年来,核心开发者一直致力于一个名为 Casper 的项目。 Casper 改变了区块链的共识机制,从称为“工作证明(Proof-of-Work)”的计算密集型操作转向称为“权益证明(Proof-of-Stake)”的基于风险的操作。 Caspe r将对以太坊市场产生重大影响。对于物联网项目来说这种变化是值得期待的,因为它将降低事务处理成本并使性能不强的设备也能确认区块。 5 月,Casper 团队发布了 0.1.0 版,一周后更新到了0.2.0(https://github.com/ethereum/casper/releases)。
1 月份,以太坊基金会宣布了两项补贴计划来进一步解决扩展性问题,参与候选方案的开发者可以获得 50,000 至1,000,000 美元甚至更多的补助。具体到候选方案,基金会给出了两种策略并希望社区并行推进,它们分别是区块链分片和双层协议。
分片技术将允许以太坊的节点网络同时处理多个区块。实质上,这与 MongoDB 将数据分片到不同分区的方式类似。我们看到只有 prysmaticlabs.com 在发展分片技术。对于物联网设备来说,分片也是以太坊大幅减少共识耗时的一条路线。
双层协议通常被称为侧链。这些侧链借用了以太坊的许多功能,并创建了一个独立的链,使许多数据交易可以在以太坊链下处理。最后,侧链会把所有的交易记录上传到以太坊主链。
专门为性能受限的物联网设备创建的侧链,其架构类似于 MQTT。 侧链数据流是从设备到侧链到主链,而 MQTT 数据流是客户端到 Broker 到中心数据库。这种架构里,一方面有一个侧链“ Broker ”与性能受限的设备交互;另一方面,侧链以设定的时间间隔与以太坊主链同步“侧面”交易。有两个正在开发的侧链项目值得关注,分别是 Raiden 和 Plasma。
有了这么多基于以太坊的项目,还有众多开发者致力于解决扩展性问题,以太坊与侧链的组合可能很快就会成为传统消息队列+数据库架构的流行替代方案。
基于IPFS的物联网方案
分布式账本技术的一种令人兴奋、切实可行的实践是星际文件系统(IPFS)。 IPFS 在独立节点之间创建了一个分布式文件系统。 IPFS 可用于托管网站、文件甚至视频。
IPFS 节点仅存储节点感兴趣的内容和存储内容的索引。这与传统的区块链不同,后者要求每个节点都在本地存储整个网络的交易历史记录。 IPFS与传统的区块链可能有很多差异,但相似之处在于文件的加密哈希值都会保存在网络中的多个节点上。
有人号召大家使用 IPFS(https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html),给出的理由极具野心:如果整个网络使用IPFS取代中心化的HTTP服务器,那么网络世界会变得更加美好。如果知道哈希地址,那么每个客户端节点都可以访问整个文件网络。客户端节点可以决定是否存储哈希数据,存储数据的节点就会成为这段数据的主机节点。即便哪个存储数据的节点断开连接,其文件也能通过其他节点继续访问,网络丝毫不受影响。
除了向应用开发者发布的存储工具之外,IPFS 还公布了类似 MQTT 的发布/订阅事件总线。与 MQTT 不同,IPFS 没有中心化的 Broker,而提供了完全去中心化和分布式的 Broker 替代品。这意味着对一个事件感兴趣的订阅者们作为整体,也对其它感兴趣的订阅者表现为 Broker 的角色。此外,内置的加密安全性也是一个额外的好处。
现在就可以使用 IPFS 发布/订阅方案(https://ipfs.io/blog/25-pubsub/),但用户很快就会发现,IPFS 要求节点选择进入以存储独立数据。由此以来,基于IPFS的大型项目的结构、库与感兴趣的节点“网络”都会运行相同的项目应用,从而贡献价值。
一个基于 IPFS 的项目是 Computes.io。创始人 Chris Matthieu 撰写了一篇博文,介绍了去年使用 Arduino 演示的一个物联网发布/订阅示例(组建物联网超级计算机)。超级计算机这个词可能会吸引你的眼球,但这个示例的主要内容是Computes 将多台计算机融合为一个整体,演示暴力密码攻击。
IPFS 使我们能够连接一系列物联网设备,并让它们扮演共享文件系统、事件总线或像 Computes.io 演示的那样,作为分布式计算平台等角色。
基于Helium的分布式设备网络的物联网方案
Helium 是另一家引起我们 Hologram 注意的创业公司。他们正在建立一个“去中心化的设备网络”,这也是他们发明的新术语,用来描述自己的产品。 Helium 的网络结合了物理区块链、无线技术和开源软件,创建了一个专为物联网而构建的分布式区块链平台。
当 Helium 首次公布“去中心化的设备网络”时,他们在网站上声称“物联网已经失败了”。他们的理由是,因为各种协议和专有技术纠缠一起产生的混乱局面,物联网并没有实现人们当初的期望。
他们正在开发的解决方案中,有使用名为 WHIP 的新无线协议的网关,和低功耗的无线模块。最重要的是,他们为提供热点的个人贡献者创建了一个激励平台。这个机制是,如果贡献者设置网关并为物联网设备提供互联网访问,就能获得加密货币。
Helium 还为这个网络开发了新的加密共识机制,以为网络的扩展和维护行为提供激励。 Helium 网关并不会把资源浪费在挖矿功能上,而是提供了将网络扩展到特定地理区域的实用服务,这种服务通过 Helium 的覆盖证明机制(Proof of Coverage)验证。最终的结果,网关会收获代币,奖励它们为底层网络贡献验证算力的努力。
下面一步步分析 Helium 网络的数据传输机制。
物联网设备将使用 WHIP 协议安全地连接到传输范围内的多个本地网关。加入网络后,设备会将加密数据发送到所有网关。
每个网关都将数据添加到区块中,之后这些区块将添加到 Helium 的全局区块链。数据对象将包含路由信息以转发传感器数据。
网关将指定数据发送到指定路由。路由获得数据传输服务后,会向网关支付费用。
路由解密数据,流程结束。
由于 Helium 目前正在开发中,上文的描述可能有点乱。我们希望将来能更好地描述这一过程。
“我们使用区块链来奖励部署 Helium 网关的贡献者。这种方式使我们能够建立一个社区自治、去中心化的网络,提供安全、经济、无处不在的无线覆盖,从而将数十亿设备连接到互联网。” ——Helium
基于IOTA纠缠的物联网方案
IOTA 是另一项当下可用的技术。该项目引入了纠缠(Tangle)网络的概念,区别于传统区块链网络。 纠缠是一种新形式的分布式账本技术,以物联网为设计理念。
与区块链不同,纠缠是一个用户网络而非矿工节点的缠结。这里的理念是:对于任何发起交易的设备或用户,它还必须处理接下来的两个交易。该方案可以实现快速交易,且费用低于其它任何方案。物联网设备可以迅速为传感器数据或功能发起小型交易。这一技术为连接设备创建了全新的经济模式。
IOTA的一个有趣的主张是保护网络免受量子计算的攻击。这个说法难以验证,但值得思考。IOTA的白皮书有大量数学内容。他们使用了“独特的量子对抗加密算法”,将某些量子攻击的有效性下降到了百万分之一。
未来,大多数城市的基础设施都会基于传感器网络和分布式的执行器进行管理,可以想象,涉及欺骗身份或伪造数据的网络攻击可能导致灾难性的后果。基于量子对抗加密的安全物联网网络可以在节点生命周期内预防此类攻击。
展望未来
对区块链技术保持怀疑态度还是很有必要的,但随着这一技术的发展,它能做到的事情已经远不止于创造一种货币了。
考虑到将在未来 5 年内上线的数十亿设备,很容易理解为什么 IPFS 和 Helium 这类项目的意义如此重大。当我们连接的设备数量达到极限,我们需要确信它们仍然能够稳定连接工作。
为分布式网络开发的诸多协议正在努力改进以提升实用性。我们开始重新思考互联网的形态,从根本上使其从云中心化的形式转向去中心化的设备网络。
设想一个有趣的未来:设备通过独立的网关之间发起的微交易连接,整个网络分布在大量的私有节点之上;每个设备都会维护自身所依赖的系统,如果系统的一部分需要“下线”,整个系统也可以自主分叉或合并。
结语
当前的物联网解决方案依赖的平台可能在几年后就过时。我自己创建的许多项目都因为依赖的服务关闭而停止运行。本文中提到的这些分布式项目使我们能够超越中心管理者的局限。新的系统不易被破坏,数据也不容易丢失。
我们需要重点研究加密货币背后的实用技术解决方案,而不仅仅是这些数字货币的财务价值。最终,所有人都会在某种程度上受到去中心化技术的影响。有生之年,我们将看到一些基于区块链的系统成为日常生活的一部分。
数据安全和隐私话题逐渐成为社会关注的焦点,最终企业在区块链技术中找到了解决方案。随着去中心化变革的推进,越来越多的实际案例开始涌现。