第十一章。货币之外的区块链
数字货币是区块链技术的首次应用,可以说没有意识到它的真正潜力。随着比特币的发明,区块链的概念第一次被引入,但直到 2013 年,随着区块链 2.0 的出现,区块链的真正好处才随着其在许多不同行业的可能应用而实现。从那时起,区块链技术在不同行业的许多使用案例已经提出,包括但不限于金融、物联网、数字版权管理、政府和法律。本章选择了四个主要行业进行讨论,即物联网 ( 物联网)、政府、健康和金融。读者将被介绍到所有这些领域和各种相关的用例将被提出。
物联网
物联网(简称 IoT)因其转变商业应用和日常生活的潜力,最近获得了很大的关注。物联网可以定义为计算智能物理对象的网络,能够连接到互联网,感知现实世界的事件或环境,对这些事件做出反应,收集相关数据,并通过互联网进行通信。这个简单的定义有着巨大的影响,并导致了令人兴奋的概念,如可穿戴设备、智能家居、智能电网、智能联网汽车和智能城市,这些都基于物联网设备的基本概念。剖析以上物联网的定义后,物联网设备执行的功能有四种。这些包括感知、反应、收集和交流。所有这些功能都是通过使用物联网设备上的各种组件来执行的。
感测由传感器执行。反应或控制由致动器执行,收集是各种传感器的功能,通信由提供网络连接的芯片执行。需要注意的一点是,所有这些组件都可以通过物联网中的互联网进行访问和控制。物联网设备本身在某种程度上可能是有用的,但如果它是更大的物联网生态系统的一部分,它就更有价值。
典型的物联网可以由许多相互连接并连接到中央云服务器的物理对象组成。如下图所示:
典型的物联网网络:来源- IBM
物联网的元素分布在多个层,并且存在各种可用于开发物联网系统的参考架构。一般来说,可以用五层模型来描述物联网,它包含物理对象层、设备层、网络层、服务层和应用层。每个层或级别负责各种功能,并包括各种组件。这些将在下面详细描述。
实物层
这些包括任何真实世界的物理对象,包括人、动物、汽车、树木、冰箱、火车、工厂、家庭,事实上,任何需要监控和控制的对象都可以连接到物联网。
设备层
这一层包含组成物联网的东西,如传感器、换能器、执行器、智能手机、智能设备和射频识别标签(RFID)。根据传感器执行的工作类型,可以将传感器分为许多类别,例如身体传感器、家庭传感器和环境传感器。这是物联网生态系统的核心,其中各种传感器用于感知真实世界的环境。这包括可以监控温度、湿度、液体流量、化学物质、空气、压力等的传感器。通常,设备上需要一个模数转换器 ( ADC ),以便将真实世界的模拟信号转换成微处理器可以理解的数字信号。
这一层中的致动器提供了实现外部环境控制的手段,例如,启动马达或开门。这些组件还需要数模转换器,以便将数字信号转换成模拟信号。当物联网设备需要控制机械组件时,这尤其重要。
网络层
这一层由各种网络设备组成,这些设备用于在设备之间提供互联网连接,并连接到作为物联网生态系统一部分的云或服务器。这些设备包括网关、路由器、集线器和交换机。这一层可以包括两种类型的通信。首先是水平通信方式,包括无线电、蓝牙、WiFi、以太网、LAN、ZigBee 和 PAN,可用于提供物联网设备之间的通信。第二,我们有与下一层的通信,这通常是通过互联网,并提供机器和人或其他上层之间的通信。第一层可以可选地包括在设备层中,因为它物理上驻留在设备层上,其中设备可以在同一层相互通信。
管理层
这一层为物联网生态系统提供管理层。这包括能够处理从物联网设备收集的数据并将其转化为有意义的见解的平台。此外,这一层还包括设备管理、安全管理和数据流管理。它还管理设备层和应用层之间的通信。
应用层
这一层包括运行在物联网网络之上的应用。这可能包括许多应用程序,具体取决于运输、医疗保健、金融、保险或供应链管理等需求。当然,这并不是一份详尽的清单,无论如何都无法想象;有无数的物联网应用可以归入这一层:
物联网五层模型
随着廉价传感器、硬件和带宽的出现,物联网近年来越来越受欢迎,目前已应用于许多不同领域,包括医疗保健、保险、供应链管理、家庭自动化、工业自动化和基础设施管理。此外,IPv6、更小更强大的处理器以及更好的互联网接入等技术进步也在物联网的普及中发挥了至关重要的作用。物联网的好处包括节约成本、帮助企业做出重要决策,从而根据物联网设备提供的数据提高性能。对数百万件事物(物联网设备)的原始数据进行分析,并提供有意义的见解,帮助做出及时有效的业务决策。
正常的物联网模型基于集中式范式,其中物联网设备通常与云基础设施或中央服务器连接,以便报告和处理相关数据。这种集中化带来了一定的利用可能性,包括黑客攻击和数据窃取。此外,无法控制单个集中式服务提供商的个人数据也增加了安全和隐私问题的可能性。虽然有一些方法和技术可以在普通物联网模型的基础上构建高度安全的物联网生态系统,但区块链可以为物联网带来某些更令人向往的好处。基于区块链的物联网模式不同于传统的物联网网络模式。IBM 表示,物联网区块链有助于建立信任、降低成本和加速交易。此外,分散化是区块链技术的核心,可以消除物联网网络中的单点故障。例如,中央服务器可能无法处理数十亿物联网设备(事物)以高频率产生的数据量。此外,区块链提供的点对点通信模式有助于降低成本,因为不需要建立高成本的中央数据中心或实施复杂的公钥基础设施来保障安全。设备可以直接或通过路由器相互通信。
根据不同研究人员和公司的估计,到 2020 年,将有大约 220 亿台设备连接到互联网。随着连接到互联网的数十亿设备的爆炸式增长,很难想象集中式基础设施能够在不导致过度支出的情况下应对带宽、服务和可用性的高需求。基于区块链的物联网将能够解决当前物联网模型中的可扩展性、隐私和可靠性问题。
区块链使事物能够直接相互通信和交易,随着智能合同的出现,谈判和金融交易也可以直接在设备之间发生,而不需要中间人、权威机构或人工干预。例如,如果酒店的一个房间是空的,它可以自己出租,协商租金,并可以为一个支付了适量资金的人类打开门锁。另一个例子是,如果洗衣机用完了洗涤剂,它可以根据智能合同中的逻辑找到最佳价格和价值,然后在网上订购。
上述五层物联网模型可以通过在网络层之上添加区块链层来适应基于区块链的模型。这一层将运行智能合同,并为物联网生态系统提供安全性、隐私性、完整性、自治性、可扩展性和去中心化服务。在这种情况下,管理层可以只包含与分析和处理相关的软件,安全性和控制可以转移到区块链层。这可以在下图中看到:
基于区块链的物联网模型
在该模型中,其他层可能保持不变,但将引入一个额外的区块链层,作为物联网网络所有参与者之间的中间件。
它也可以在抽象掉上面提到的所有层之后,可视化为一个对等的物联网网络。下图显示了这种情况,其中所有设备在没有中央命令和控制实体的情况下相互通信和协商:
基于区块链的直接通信模型,来源- IBM
它还可以节省成本,这是因为通过使用基于区块链的分散方法,设备管理更容易。使用区块链可以优化物联网网络的性能。在这种情况下,将没有必要集中存储数百万设备的物联网数据,因为存储和处理需求可以分布到区块链上的所有物联网设备。这可以完全消除对处理和存储物联网数据的大型数据中心的需求。
基于区块链的物联网还可以挫败拒绝服务攻击,黑客可以更容易地将目标锁定在中央服务器或数据中心,但由于区块链的分布式和去中心化性质,这种攻击不再可能。此外,如果预计在不久的将来将有数十亿台设备连接到互联网,那么从传统的中央服务器管理所有这些设备的安全和更新将变得几乎不可能。区块链可以为这一问题提供解决方案,允许设备以安全的方式直接相互通信,甚至相互请求固件和安全更新。在区块链网络上,这些通信可以被永久、安全地记录下来,这将为系统提供可审计性、完整性和透明性。这对于传统的 P2P 系统是不可能的。
总之,物联网和区块链的融合可以带来明显的好处,学术界和工业界的大量研究和工作已经在进行中。已经提出了各种项目来提供基于区块链的物联网解决方案。例如,IBM Blue Horizon 和 IBM Bluemix 是支持区块链物联网平台的物联网平台。各种初创公司,如 Filament,已经就如何建立一个去中心化的网络提出了新的想法,使物联网上的设备能够在智能合同的驱动下直接和自主地相互交易。
在下一节中,我们将提供一个实际的例子,说明如何构建一个简单的物联网设备,并将其连接到以太坊区块链。该物联网设备连接到以太坊区块链,用于在区块链上的用户发送适当金额的资金时开门(在这种情况下,门锁由 LED 表示)。这是一个简单的例子,需要更严格测试的版本才能在生产中实施,但它演示了如何连接、控制物联网设备,以及如何响应以太坊区块链上的某些事件。
IoT 区块链实验
这个例子使用了一个 Raspberry 设备,它是一台单板计算机 ( SBC )。Raspberry Pi 是一种单板计算机,作为一种低成本计算机开发,旨在促进计算机教育,但作为构建物联网平台的首选工具也越来越受欢迎。一个树莓 Pi 3 型号 B 如下图所示:
树莓 Pi 型号 B
在下一节中,将讨论一个示例,其中 Raspberry Pi 将用作连接到以太坊区块链的物联网设备,并将执行一个操作来响应智能合约调用。
首先,需要设置树莓派。这可以通过使用 NOOBS 来完成,它提供了一种安装 Raspbian 或任何其他操作系统的简单方法。这可以从链接https://www.raspberrypi.org/downloads/noobs/下载并安装。或者,只有 Raspbian 可以从 https://www.raspberrypi.org/downloads/raspbian/链接安装。https://github.com/debian-pi/raspbian-ua-netinst的另一个选择也可以用来安装一个最小的非 GUI 版本的 Raspbian 操作系统。出于示例的目的,使用 NOOBS 安装 Raspbian,因此本练习的其余部分假设 Raspbian 安装在 Raspberry Pi 的 SD 存储卡上。
一旦安装了 Raspbian 操作系统,下一步就是为 Raspberry Pi ARM 平台下载合适的geth
二进制文件。可以通过在 Raspberry Pi Raspbian 操作系统的终端窗口中运行以下命令来确认平台。命令输出显示了操作系统运行在哪个体系结构上。在这种情况下,它是armv71
,因此将下载geth
的 ARM 兼容二进制文件。
树莓 Pi 架构
详细描述了以下步骤:
geth
下载:,注意,在下面的例子中,下载的是一个特定的版本,但是也可以从https://geth.ethereum.org/downloads/下载其他版本。
wget https://gethstore.blob.core.windows.net/builds/geth-linux-
arm7-1.5.6-2a609af5.tar.gz
- 解压缩并提取到一个目录中,名为
geth-linux-arm7-1.5.6-2a609af5
的目录将使用下面的 tar 命令自动创建:
tar -zxvf geth-linux-arm7-1.5.6-2a609af5.tar
这将创建一个名为geth-linux-arm7-1.5.6-2a609af5
的目录,并将geth
二进制文件和相关文件提取到该目录中。geth
可以将二进制文件复制到/usr/bin
或 Raspbian 上的适当路径,使其在操作系统的任何地方都可用。下载完成后,下一步是创建 genesis 块。
需要使用之前在第八章、以太坊开发中创建的相同的创世纪模块。genesis 文件可以从网络上的另一个节点复制。如下图所示。或者,可以生成一个全新的生成块。这在第 8 章、以太坊开发中有详细讨论。
起源文件
一旦将genesis.json
文件复制到 Raspberry Pi 上,就可以运行下面的命令来生成 genesis 块。重要的是使用与先前生成的完全相同的源块,否则节点将有效地运行在不同的网络上:
$ ./geth init genesis.json
这将显示类似于以下屏幕截图所示的输出:
初始化源文件
在创建 genesis 块之后,需要向网络添加对等体。这可以通过创建一个名为static-nodes.json
的文件来实现,该文件包含 Raspberry Pi 上的 geth 将连接到的对等体的 enode ID 以进行同步。
静态节点配置
可以通过运行下面显示的命令从 geth JavaScript 控制台获得该信息,该命令应该在 Raspberry 将要连接的对等体上运行:
> Admin.nodeInfo
这将显示类似于以下屏幕截图所示的输出:
geth nodeinfo
在这个步骤之后,为了将 Raspberry Pi 连接到专用网络上的其他节点,可以遵循下面给出的进一步指示。在示例中,Raspberry Pi 将连接到在第 8 章、以太坊开发中创建的网络 ID 786。关键是使用之前创建的相同的 genesis 文件和不同的端口号。然而,不同的端口不是严格的要求。如果两个节点在专用网络下运行,并且需要从网络外部的环境进行访问,那么将结合使用 DMZ/路由器和端口转发。因此,建议使用不同的 TCP 端口,以允许端口转发正常工作。在下面的命令中,identity 开关允许为节点指定一个标识名,以前没有介绍过。
第一个节点设置
首先,需要使用以下命令在第一个节点上启动geth
:
$ geth --datadir .ethereum/privatenet/ --networkid 786 --maxpeers 5 --rpc --rpcapi web3,eth,debug,personal,net --rpcport 9001 --rpccorsdomain "*" --port 30301 --identity "drequinox"
在第一个节点上获取
一旦geth
启动,它应该保持运行,另一个geth
实例应该从 Raspberry Pi 节点启动。
树莓 Pi 节点设置
在 Raspberry Pi 上,需要运行以下命令来启动geth
并将其与其他节点同步(在本例中只有一个节点)。以下是命令:
$ ./geth --networkid 786 --maxpeers 5 --rpc --rpcapi web3,eth,debug,personal,net --rpccorsdomain "*" --port 30302 --identity "raspberry"
这将产生类似于下面屏幕截图所示的输出。当输出包含显示块同步开始的行时,意味着该节点已成功连接到其对等节点。
吃树莓派吧。
这可以通过在两个节点上的geth
控制台中运行命令来进一步验证,如下图所示。geth
只需在 Raspberry Pi 上运行命令即可连接:
$ geth attach
在 Raspberry Pi 上运行的 geth 控制台管理对等命令
类似地,可以通过在第一个节点上运行以下命令来附加到geth
:
$ geth attach ipc:.ethereum/privatenet/geth.ipc
一旦控制台可用,就可以运行admin.peers
来显示其他连接节点的详细信息,如下图所示:
在另一方上运行的 geth 控制台管理对等命令
一旦两个节点都启动并运行,就可以安装更多的先决条件来设置实验。需要安装 Node.js 和相关的 JavaScript 库。下面列出了所需的库和依赖项。需要在 Raspberry Pi Raspbian 操作系统上更新 First Node.js 和 npm。为此,可以遵循以下步骤:
-
Install latest Node.js on the Raspberry Pi using the following command:
``` $ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash
-```
这应该会显示如下所示的输出。输出非常大,因此在下面的屏幕截图中只显示了输出的顶部:
Node.js 安装
-
Run the update via
apt-get
:``` $ sudo apt-get install nodejs
```
可以通过运行以下命令进行验证,以确保安装了 Node.js 和
npm
的正确版本,如下面的屏幕截图所示:npm 和节点安装验证
应该注意,这些版本不是必需的;任何最新版本的
npm
和node
都可以。本章中的示例使用了 npm 4.0.5 和 node v7.4.0。 -
Install Ethereum web3 npm, which is required to enable JavaScript code to access the blockchain:
npm 安装网站 3
-
Similarly,
npm install onoff
can be installed, which is required in order to communicate with the Raspberry Pi and control GPIO:开关安装
安装完所有必备组件后,就可以进行硬件安装了。为此,使用试验板和一些电子元件构建一个简单的电路。
这些组件如下所列:
- LED:发光二极管的缩写,可以作为事件的视觉指示。
- 电阻器:需要一个 330 欧姆的元件,根据其额定值提供通过电流的阻力。对于这个实验来说,没有必要去理解背后的理论;任何标准的电子工程教科书都详细涵盖了所有这些主题。
- 试验板:这提供了一种不需要焊接就能构建电子电路的方法。
- T 形补鞋匠:如下图所示,它插在试验板上,提供了树莓 Pi 的所有 GPIO ( 通用 I/O )引脚的标签视图。
-
Ribbon cable connector: This is simply used to provide connectivity between the Raspberry Pi and the breadboard via GPIO. All these components are shown in the following image:
必需的组件
电路
如下图所示,LED 的正极引脚(长腿)连接到 GPIO 的 21 号引脚,负极引脚(短腿)连接到电阻,电阻再连接到 GPIO 的地 ( GND )引脚。一旦设置好连接,带状电缆就可以简单地连接到 Raspberry Pi 上的 GPIO 连接器。
试验板上元件的连接
一旦正确设置了连接,并且用适当的库和 geth 更新了 Raspberry Pi,下一步就是开发一个简单的智能契约,该契约需要一个值。如果提供给它的值不是它所期望的,它不会触发事件;否则,如果传递的值与正确的值匹配,则事件触发,该事件可由通过 Node.js 运行的客户端 JavaScript 程序读取。当然,可靠性契约可能非常复杂,并且还可处理发送给它的以太,并且如果以太的量等于所需的量,则事件可被触发;但在本例中,我们的目标是演示如何使用智能合约来触发事件,这些事件可以被 Node.js 上运行的 JavaScript 程序读取,然后这些程序又可以使用各种库在物联网设备上触发操作。
智能合约源代码如下所示:
简单 IOT 的坚固性代码
solidity 在线编译器可以用来运行和测试这个合同。与合同交互所需的应用二进制接口 ( ABI )也在接口字段中,如下图所示:
可靠性在线编译器
Raspberry 节点通过 web3 接口连接私有区块链有两种方法。第一种情况是,raspberry 设备运行自己的 geth 并维护自己的分类帐,但对于资源受限的设备,不可能运行完整的geth
节点,甚至在少数情况下不可能运行轻型节点。在这种情况下,可以对 web3 提供程序进行初始化,以连接到适当的 RPC 通道。这将在稍后的客户端 JavaScript Node.js 程序中显示。下图显示了这两种方法的比较:
租房物联网应用的应用架构(带本地账本的物联网设备)
租房物联网应用的应用架构(无本地账本的物联网设备)
公开暴露 RPC 接口会产生明显的安全问题,因此建议仅在专用网络上使用此选项,如果需要在公共网络上使用,则采取适当的安全措施,例如仅允许已知的 IP 地址连接到 geth RPC 接口。这可以通过禁用对等发现机制和 HTTP-RPC 服务器侦听接口的组合来实现。有关这方面的更多信息可以在 geth 帮助中找到。也可以使用传统的网络安全措施,如防火墙、传输层安全 ( TLS )和证书,但在本例中没有讨论。
现在,Truffle 可以用于在私有网络 ID 786 上部署合同,此时 Raspberry Pi 连接到该私有网络。只需使用下面显示的命令,即可执行 truffle 部署;假设truffle init
和第 8 章、以太坊开发中讨论的其他准备工作已经完成:
$ truffle migrate
它应该会产生类似于以下屏幕截图的输出:
松露展开
一旦合约被正确部署,就可以开发 JavaScript 代码,该代码将通过 web3 连接到区块链,监听来自区块链的智能合约的事件,并通过 Raspberry Pi 打开 LED。JavaScript 代码如下所示:
var Web3 = require('web3');
if (typeof web3 !== 'undefined')
{
web3 = new Web3(web3.currentProvider);
}
else
{
web3 = new Web3(new
Web3.providers.HttpProvider("http://localhost:9002"));
}
var Gpio = require('onoff').Gpio;
var led = new Gpio(21,'out');
var coinbase = web3.eth.coinbase;
var ABIString = '[{"constant":false,"inputs": [{"name":"x","type":"uint8"}],"name":"getRent","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"returnValue","type":"bool"}],"name":"roomRented","type":"event"}]';
var ABI = JSON.parse(ABIString);
var ContractAddress = '0x151ce17c28b20ce554e0d944deb30e0447fbf78d';
web3.eth.defaultAccount = web3.eth.accounts[0];
var simpleiot = web3.eth.contract(ABI).at(ContractAddress);
var event = simpleiot.roomRented( {}, function(error, result) {
if (!error)
{
led.writeSync(1);
}
});
注意,在上面的例子中,契约地址0x151ce17c28b20ce554e0d944deb30e0447fbf78d
是特定于部署的,当读者运行这个例子时,它会有所不同。只需将文件中的地址更改为读者在部署契约后看到的地址。这段 JavaScript 代码可以放在 Raspberry PI 上的一个文件中,比如index.js
。可以使用以下命令运行它:
$ sudo nodejs index.js
这将启动程序,该程序将在 Node.js 上运行并监听来自智能合约的事件。一旦程序正确运行,就可以使用 Truffle 控制台调用智能合约,如下图所示。
在这种情况下,使用参数 10 调用.getRent
函数,这是预期值。
与合同的互动
合约挖掘完成后,会触发roomRented
,LED 会亮起。在这个例子中,它是简单的 LED,但是它可以是任何物理设备,例如可以通过致动器控制的房间锁。如果一切正常,LED 将作为智能合约功能调用的结果而打开,如下图所示:
带 LED 控制的树莓派
如前面的示例所示,可以构建一个物联网设备的专用网络,在每个节点上运行 geth 客户端,并可以侦听来自智能合约的事件,并相应地触发一个操作。所示示例的目的很简单,但展示了以太坊网络的基本原理,可以使用物联网设备以及智能合同驱动的物理设备控制来构建以太坊网络。
在下一节中,将讨论区块链技术在政府、金融和卫生方面的其他应用。
政府
目前正在研究区块链的各种应用,这些应用可以支持政府职能,并将当前的电子政务模式提升到下一个级别。首先,本节将提供电子政务的一些背景,然后将讨论一些使用案例,如电子投票、国土安全(边境管制)和电子身份证(公民身份证)。
电子政府是一种利用信息和通信技术向公民提供公共服务的模式。这个概念并不新鲜,已经在世界各地的不同国家实施,但区块链开辟了一条新的探索途径。许多政府正在研究利用区块链技术管理和提供公共服务的可能性。透明度、可审计性和完整性是区块链的属性,可以在有效管理各种政府职能方面发挥很大作用。
边境管制
自动化边境控制系统已经使用了几十年,目的是阻止非法入境,防止恐怖主义和人口贩运。
机器可读的旅行证件,特别是生物特征护照,为自动化边境管制铺平了道路;然而,目前的系统在一定程度上受到限制,区块链技术可以提供解决方案。一种机器可读旅行证件 ( MRTD )标准由国际民用航空组织 ( ICAO )在 ICAO 9303 文件中定义,并已被全球多个国家实施。
每本护照都包含各种安全和身份属性,这些属性可用于识别护照的所有者,并防止篡改护照的企图。这些包括生物特征,如视网膜扫描、指纹、面部识别和国际民航组织规定的标准特征,包括机器可读区 ( MRZ )和护照首页上可见的其他文本属性。
当前边境管制系统的一个关键问题是系统由单一实体控制的集中化,以及执法机构之间不容易共享数据的事实。这使得追踪可疑人员变得困难。另一个问题涉及立即将旅行证件列入黑名单,例如,当急需追踪和控制可疑旅行证件时。目前,没有机制可以立即将可疑护照列入黑名单或吊销。
区块链可以通过在智能合同中维护一个黑名单来解决这一问题,该黑名单可以根据需要进行更新,所有机构和边境控制点都可以立即看到任何变化,从而可以立即控制可疑旅行文件的移动。可以认为,像 PKI 和 P2P 网络这样的传统机制也可以用于此目的,但是它们不能提供区块链所能提供的好处。有了区块链,整个系统可以简化,不需要复杂的网络和 PKI 设置,这也将导致成本降低。此外,基于区块链的系统将提供密码保证的不变性,这有助于审计和阻止任何欺诈活动。
由于可伸缩性问题,所有旅行文档的完整数据库目前可能无法存储在区块链上,但后端分布式数据库如 BigChainDB、IPFS 或 Swarm 可用于此目的。在这种情况下,可以将带有个人生物特征 ID 的旅行文档的散列存储在简单的智能合同中,然后可以使用该文档的散列来引用诸如 IPFS 之类的分布式文件系统上可用的详细数据。这样,当一个旅行文件被列入网络上的黑名单时,该信息将立即可用,并在整个分布式分类帐中有其真实性和完整性的加密保证。这一功能还可以为反恐活动提供有效支持,从而在政府的国土安全职能中发挥至关重要的作用。
solidity 中的简单契约可以具有为存储身份和相关联的生物测定记录而定义的数组。这个数组可以用来存储护照的识别信息。身份可以是护照或旅行证件的机器可读区 ( MRZ )与来自 RFID 芯片的生物统计记录的散列。一个简单的布尔字段可以用来识别黑名单护照。一旦这一初步检查通过,传统系统就可以进行进一步详细的生物特征验证,最终在作出关于护照持有人入境的决定时,该决定可以传播回区块链,从而使网络上的所有参与者能够立即分享决定的结果。
如下图所示,可以想象出一种构建基于区块链的边境管制系统的高级方法。在这种情况下,护照被提供给 RFID 和页面扫描仪进行扫描,该扫描仪读取数据页面并提取机器可读信息以及存储在 RFID 芯片中的生物统计数据的散列。在这一阶段,护照持有人的现场照片和视网膜扫描也被拍摄。这些信息然后被传递到区块链,在那里一个智能合同负责验证旅行文件的合法性,首先检查它自己的黑名单护照列表,然后从后端 IPFS 数据库请求更多数据进行比较。请注意,照片或视网膜扫描等生物特征数据并不存储在区块链上,相反,只有对后端(IPFS 或 BigChainDB)中该数据的引用才存储在区块链中。
如果出示的护照中的数据与 IPFS 的文件或 BigChainDB 中的数据相匹配,并通过智能合同逻辑检查,则边境大门可以打开。
使用区块链的自动化边境管制
核实后,这一信息将在整个区块链传播,并立即提供给区块链边境管制的所有参与者。这些参与者可以是各国国土安全部的全球联盟。
投票
投票在任何政府中都是一项关键职能,它允许公民参与民主选举进程。虽然随着时间的推移,投票已经发展成为一个更加成熟和安全的过程,但是它仍然存在一些限制,需要解决这些限制以达到期望的成熟水平。通常,当前投票系统的局限性围绕着欺诈、操作流程中的弱点,尤其是透明度。这些年来,已经建立了安全的投票机制,其利用了承诺安全性和隐私性的专用投票机器,但是它们仍然具有可以被利用来破坏这些机器的安全机制的漏洞。这可能对整个投票过程产生严重影响,并可能导致公众对政府的不信任。
基于区块链的投票系统可以通过在过程中引入端到端的安全性和透明度来解决这些问题。通过使用在区块链中作为标准的公钥加密,以投票的完整性和真实性的形式提供安全性。此外,区块链保证的不变性确保了投过一次票的人不能再次投票。这可以通过生物特征和智能合同的组合来实现,智能合同维护已经投票的名单。例如,智能合同可以维护一个带有生物特征 ID(例如指纹)的已投选票列表,并可以使用该列表来检测和防止重复投票。其次,零知识证明也可以用在区块链上,以保护区块链上选民的隐私。
公民身份证明(身份证)
目前世界各国都发行电子身份证或国民身份证。这些卡是安全的,并且具有许多阻止复制或篡改企图的安全特征。然而,随着区块链技术的出现,可以对该过程进行一些改进。
数字身份不仅仅限于政府颁发的身份证,它也是一个适用于在线社交网络和论坛的概念。可以有多个身份用于不同的目的。基于区块链的在线数字身份允许控制个人信息共享。用户可以看到谁使用了他们的数据,使用的目的是什么,并且可以控制对数据的访问。这对于当前集中控制的基础设施是不可能的。主要的好处是,政府颁发的单一身份可以通过单一政府区块链以透明的方式轻松用于多种服务。在这种情况下,区块链充当政府提供各种服务(如养老金、税收或福利)的平台,并且使用单一 ID 来访问所有这些服务。在这种情况下,区块链提供了数字 ID 所做的每次更改和交易的不可变记录,从而确保了系统的完整性和透明度。此外,公民可以在区块链公证出生证明、婚姻、契约和其他许多与他们的数字身份证相关的文件,作为存在的证明。
目前,许多国家都成功实施了运行良好的身份方案,有一种观点认为,身份管理系统中可能并不真正需要区块链。虽然有一些好处,如隐私和控制身份信息的使用,但由于目前区块链技术的不成熟,它可能还没有准备好用于现实世界的身份系统。然而,各国政府正在开展研究,探索如何利用区块链进行身份管理。
此外,被遗忘权等法律由于其不可改变的性质,很难纳入区块链。
杂项
可以实施区块链技术以提高成本和效率的其他政府职能包括税收、福利管理和支付、土地所有权记录管理、生活事件登记(婚姻、出生)、机动车登记和许可证。这并不是一个详尽的清单,随着时间的推移,政府的许多职能和程序可以适应区块链模式。区块链的主要优势,如不变性、透明度和权力下放,有助于改善大多数传统的政府系统。
健康
卫生行业已被确定为另一个可以受益于区块链技术的主要行业。区块链提供了传统 P2P 网络无法提供的不可变、可审计、透明的系统。此外,与传统复杂的 PKI 网络相比,区块链提供了一种经济有效、更简单的基础设施。在医疗保健行业,隐私泄露、数据泄露、高成本和欺诈等主要问题可能源于缺乏互操作性、过于复杂的流程、透明度、可审核性和控制。另一个紧迫的问题是假药;特别是在发展中国家,这是一个令人关注的主要原因。
随着区块链在卫生部门的适应性,可以实现多种好处,包括节省成本、增加信任、更快处理索赔、高可用性、不会因操作程序复杂而出现操作错误,以及防止假药的销售。
从另一个角度来看,区块链提供数字货币作为采矿的激励,可以用于提供处理能力来解决科学问题,这有助于找到某些疾病的治疗方法。这方面的例子包括 FoldingCoin,该公司用 FLDC 代币奖励矿工,让他们分享计算机的处理能力,解决需要特别大型计算的科学问题。在 http://foldingcoin.net/可以买到折叠币。另一个类似的项目叫做 CureCoin,可以在 https://www.curecoin.net/的 T2 买到。这些项目在实现目标方面有多成功还有待观察,但这个想法非常有希望。
金融
区块链在金融行业有很多应用。金融领域的区块链是目前业内最热门的话题,主要银行和金融机构正在研究如何适应区块链技术,特别是因为它非常有可能节省成本。
保险
在保险行业,区块链技术可以帮助阻止欺诈性索赔,提高索赔处理速度,并实现透明度。想象一下,在所有保险公司之间共享一个分类账,可以为处理公司间索赔提供一个快速有效的机制。此外,随着物联网和区块链的融合,可以想象一个智能设备的生态系统,其中所有这些东西都能够通过区块链上的智能合同来协商和管理自己的保险单。
区块链可以降低处理索赔所需的整体成本和精力。索赔可以通过智能合同和保险单持有人的相关身份自动验证和支付。例如,在 Oracles 和可能的物联网的帮助下,智能合同可以确保当事故发生时,它可以记录相关的遥测数据,并根据这些信息发放付款。如果智能合同在评估支付条件后得出不应释放支付的结论,它也可以扣留支付。例如在车辆没有被授权的车间修理或者在指定区域之外使用等情况下。智能合同可以评估许多条件来处理索赔,这些规则的选择取决于保险公司,但总体思路是,智能合同与物联网和 Oracles 相结合,可以实现整个汽车保险行业的自动化。
Dynamis 等几家初创公司已经提出了在以太坊区块链平台上运行的基于智能合同的点对点保险平台。这最初被提议用于失业保险,并且在模型中不需要承保人。在http://dynamisapp.com/有售。
交易后结算
这是区块链技术最受欢迎的应用。目前,许多金融机构都在探索使用区块链技术来简化、自动化和加快成本高昂且耗时的交易后结算流程的可能性。
为了更好地理解这个问题,简要描述了贸易生命周期。一个交易生命周期包含三个步骤:执行、清算和结算。执行涉及双方之间的交易承诺,可以通过前台订单管理终端或交易所输入系统。清算是下一步,根据某些属性,如价格和数量,在卖方和买方之间匹配交易。在这一阶段,参与支付的账户也被识别。最后,结算是买卖双方最终将证券兑换为付款的地方。
在传统的交易生命周期模型中,需要一个中央清算所来促进承担双方信用风险的交易方之间的交易。当前的方案有些复杂,其中卖方和买方必须采取复杂的路线以便彼此交易。这包括各种公司、经纪人、票据交换所和保管人,但是通过区块链,具有适当智能合约的单一分布式分类账可以简化整个过程,并且可以使买方和卖方直接对话。
特别是,交易后结算过程需要两到三天,并且依赖于中央结算中心和对账系统。使用共享分类账方法,区块链的所有参与者可以立即看到关于交易状态的单一版本的真相。此外,点对点结算是可能的,这导致复杂性、成本、风险和交易结算时间的减少。最后,通过利用区块链上适当的智能合约,可以完全消除中介。
金融犯罪预防
了解你的客户 ( KYC )和反洗钱 ( 反洗钱)是预防金融犯罪的关键手段。在 KYC,目前每个机构都有自己的客户数据副本,并通过中央数据提供商进行验证。这可能是一个耗时的过程,并可能导致新客户的加入延迟。区块链可以通过在所有金融机构之间安全地共享包含经过验证的准确客户身份的分布式账本来解决这一问题。这种分布式分类帐只能通过参与者之间的共识来更新,因此提供了透明度和可审计性。这不仅可以降低成本,还能以更好、更一致的方式满足法规和合规性要求。
就反洗钱而言,由于区块链的不可改变、共享和透明性质,监管机构可以轻松获得访问私有区块链的权限,在那里他们可以获取相关监管报告的数据。这还将降低与当前监管报告模式相关的复杂性和成本,在当前的监管报告模式中,数据是从各种遗留和不同的系统中提取的,并被汇总和格式化以用于报告目的。区块链可以提供系统中所有金融交易的单一共享视图,这些交易具有加密安全性、真实性和可审计性,从而降低与当前采用的监管报告方法相关的成本和复杂性。
媒体
媒体行业的关键问题围绕着内容分发、版权管理和向艺术家支付版税。例如,数字音乐可以不受任何限制地被多次复制,并且任何应用复制保护的尝试都以某种方式被黑客攻击。对音乐家或歌曲作者制作的内容的分发没有控制;它可以不受任何限制地被复制任意多次,因此对版税支付有影响。此外,支付并不总是有保证的,而是基于传统的广播时间数字。围绕版权保护和版税支付的所有这些问题都可以通过连接消费者、艺术家和行业中的所有参与者来解决,允许对过程的透明和控制。区块链可以提供一个网络,在这个网络中,数字音乐被加密保证只由付费的消费者拥有。这种支付机制由智能合同控制,而不是由中央媒体机构或权威机构控制。付款将根据智能合同中嵌入的逻辑和“下载”次数自动进行。此外,数字音乐文件的非法复制可以被完全阻止,因为一切都以透明的方式在区块链被记录和拥有。例如,音乐文件可以与所有者信息和时间戳一起存储,这可以在整个区块链网络中被跟踪。此外,拥有某些内容的合法副本的消费者被加密地绑定到他们所拥有的内容,并且除非得到所有者的许可,否则不能将其转移到另一个所有者。一旦所有的数字内容都不可改变地记录在区块链上,通过区块链可以很容易地管理版权和转让。智能合同可以控制向所有相关方的分配和支付。
总结
区块链技术有许多应用,如本章所述,它们可以在各种行业中实施,为现有解决方案带来多重好处。本章讨论了可以从区块链中受益的五个主要行业。首先讨论了物联网,它本身是另一项革命性的技术;通过将其与区块链相结合,可以解决几个基本限制,从而为物联网行业带来巨大的好处。物联网受到了更多的关注,因为它是适应区块链技术的最大和最现成的候选对象。实际使用案例和平台已经以平台即服务 ( 平台即服务)的形式出现,用于区块链的物联网,如 IBM 沃森物联网区块链。IBM 蓝色地平线现在也可以进行实验,这是一个分散的区块链物联网网络。其次,讨论了政府部门中的应用,通过这些应用,可以使各种政府流程(如国土安全、身份证和福利支付)变得透明、安全和更加可靠。此外,还讨论了金融部门的问题以及区块链技术可能提供的解决方案。尽管金融部门正在积极探索使用区块链的可能性,但它离基于区块链的系统的生产就绪状态还很远。最后,还讨论了卫生部门和音乐产业的一些方面。所有这些使用案例以及行业中的更多案例都基于区块链技术的核心属性,如去中心化、透明性、可靠性和安全性。然而,在区块链技术能够完全适用之前,需要解决某些挑战;这些将在下一章讨论。