跳转至

什么是分散式应用?

自从因特网出现以来,已经开发的所有基于因特网的应用都是基于客户机-服务器体系结构,其中有一个中央服务器形成应用的后端并控制整个应用。这些应用程序经常会出现单点故障、无法防止网络审查、缺乏透明度、用户不信任他们的数据、活动和身份隐私等问题。这种集中式架构甚至使得构建某些类型的应用程序变得不可能。例如,您不能使用这种架构构建数字货币。由于这些问题,出现了一种新的架构,叫做分散应用 ( DApps )。在这一章中,我们将学习 DApps。

在本章中,我们将讨论以下主题:

  • 什么是 DApps?
  • 分散式、集中式和分布式应用程序之间有什么区别?
  • 什么是区块链?
  • 公共的和许可的 DApps 有什么区别?
  • 一些流行的联盟 DApps 的例子,以及它们如何工作
  • 构建企业 DApps 的各种流行平台有哪些?

什么是 DApp?

DApp 是一种后端运行在去中心化对等网络上的应用,其源代码是开源的。网络中没有一个节点能完全控制 DApp。请记住,当我们说应用程序是分散的时,我们指的是技术上的分散,但治理可以是分布式的、分散的或集中的。

DApps 的主要优点是它们没有单点故障,并防止审查。dapp 确实有一些缺点:一旦部署,就很难修复错误或添加功能,因为网络中的每个人都必须更新他们的节点软件,并且将不同的 dapp 耦合在一起非常复杂,因为与集中式应用程序相比,它们非常难以构建,并且涉及非常复杂的协议。

为了能够使用 DApp,您首先需要运行 DApp 节点服务器,以便您可以连接到对等网络。然后,您需要一个与 DApp 相关的客户端,它连接到节点服务器并公开一个 UI 或命令行界面来使用 DApp。

目前,在性能和可伸缩性方面,DApps 还没有集中式应用程序成熟。在诸如性能、可伸缩性、用户身份、隐私、DApps 之间的通信、数据冗余等主题上仍有许多研究和开发。一个用例可能适合一个 DApp,但是使用当前可用的技术,这个用例是否可以用于生产可能是一个挑战。分散应用程序的流行例子有 Torrent、比特币、以太坊、Quorum 等等。

DApp 可以是公开的,也可以是许可的。公共 dapp 是任何人都可以加入的,换句话说,它们是无权限的,而有权限的 dapp 是不对所有人开放的,所以你需要权限才能加入。当 DApp 的参与者是企业和/或政府实体时,被许可的 DApp 被称为 DApp 财团。同样,当许可 DApp 的参与者只有企业时,我们可以称之为企业 DApp。在这本书里,我们将学习关于许可 DApps 的一切。

由于您刚刚对什么是分散式应用程序有了一个基本的介绍,您一定想知道分散式应用程序和分布式应用程序之间的区别。当一个应用程序分布在多台服务器上时,我们称之为分布式应用程序。分散式应用程序默认是分布式的,而集中式应用程序可能是也可能不是分布式的。集中式应用程序通常分布在多个服务器上,以防止停机,并处理巨大的数据和流量。

什么是区块链?

在我们进入什么是 a 之前,我们需要了解什么是分类账。计算机科学中的分类账是存储交易的软件。数据库不同于分类账,在数据库中我们可以添加、删除和修改记录,而在分类账中我们只能追加,不能删除或修改。

区块链基本上是一种实现分散式分类帐的数据结构。区块链是一串互相连接的积木。每个块都包含一个事务列表和某些其他元数据,例如创建时间、它的前一个块、块号、块的创建者等等。每个块都维护前一个块的散列,因此创建了一个相互链接的块链。网络中的每个节点都应该持有区块链的完整副本,并且当新节点进入时,它将从其他节点请求并下载区块链。

区块链等技术称为分布式账本技术 ( DLT )。DLT 是复制、共享和同步数字交易的过程,这些交易在地理上跨越了许多站点、国家和/或机构。你可以把区块链看作是 DLT 的一种。此外,并不是每个 DLT 系统都必须去中心化。在本书中,我们只学习构建基于区块链的分散式应用程序。

使用区块链的主要优点在于,它能够在没有中央信任方的情况下促进交易;使用加密技术保护数据,并且数据是不可变的,因为区块链消除了摩擦并降低了风险,所以结算是实时发生的,等等。基本上,它使审计自动化,使应用程序透明,并提供单一的事实来源。

在现实世界中,私有区块链用于贸易融资、跨境支付、数字身份、令牌化和数字资产的清算和结算、产品所有权的来源、关键数据的记录保存、签署合同、多方聚合(即,它们可以用作通用行业信息的共享主存储库,允许成员查询数据)、支付对支付或支付对交付,等等。

每个区块链节点维护一个包含区块链州的数据库。状态包含在区块链中运行所有事务的最终结果。例如,在区块链中,州代表所有地址的最终余额。因此,当您向区块链节点查询地址余额时,它不必遍历所有事务并计算地址的最终余额;相反,它直接从区块链的状态中取得平衡。比特币使用 LevelDB 来维护区块链的状态。即使数据库损坏,也可以通过简单地运行区块链中的所有事务来恢复数据库。

了解拜占庭容错

拜占庭容错 ( BFT )是一个分散系统的特征,表明它可以容忍拜占庭故障。崩溃故障是指节点停止执行任何操作(完全没有消息),拜占庭故障是指节点不执行任何操作或表现出任意行为。基本上,拜占庭故障包括崩溃故障。

在任何使用区块链数据结构的分布式计算环境中,都存在一个风险,即一个或多个流氓或不可靠的参与者可能是环境解散的原因。如果一个服务器集群中的几个服务器在以一致的方式向其他服务器传递数据时失败了,那么这个服务器集群就不能很好地工作。为了可靠,分布式计算环境的设计必须能够解决这些错综复杂的故障。

在基于区块链的分散式应用程序中,按照定义,没有中央权威,所以一种叫做共识协议的特殊协议被用来实现 BFT。

简单地说,您一定想知道如何确保每个人都有区块链的相同副本,以及当两个节点发布不同的区块链时,如何知道哪个区块链是正确的?此外,您如何决定谁创建块,因为在分散体系结构中没有主节点这样的东西?共识协议为这些问题提供了答案。共识协议的几个例子是工作证明 ( PoW )、利益证明 ( PoS )、授权证明 ( PoA )、PBFT 等等。

共识协议是专门为许可或公开的区块链设计的。为公共区块链制定的共识协议在许可的区块链中实施时可能会产生安全和性能问题。每个共识协议都有不同的性能和可伸缩性指标。你必须警惕,而选择一个共识协议为您的区块链为基础的 DApp。

Raft 和 Paxos 等共识协议不是 BFT;相反,它们使得系统只能承受崩溃。因此,在选择共识协议时,您也应该考虑这一点。

你可能听说过 PoA 这个术语。PoA 是共识协议的一种分类,其中有一组授权——明确允许节点创建新块并保护区块链。Ripple 的迭代过程、PBFT、Clique、Aura 等等,都是基于 PoA 的共识协议的例子。

用户帐户的表示

在基于区块链的应用程序中,使用非对称密钥对来识别和验证用户帐户。私钥用于代表用户签署交易。基于用户名和密码的账户系统在区块链将不起作用,因为它不能用来证明哪个用户发送了交易。使用私有-公共密钥对的缺点包括它们对用户不友好,并且如果你丢失了私有密钥,那么就没有办法恢复它。因此,它为用户增加了保护其私钥的新责任。用户帐户的地址充当区块链上的帐户标识符。用户帐户的地址来自公钥。

什么是 UTXOs?

一些区块链应用程序使用 UTXO 模型进行事务处理。比特币、多链等区块链应用都采用这种模式。甚至像 R3 Corda 这样的 DLT 也采用这种模式。让我们通过了解比特币交易的工作原理来理解这个模型。

在比特币中,一个交易是零个或多个和输出的集合。这些输入和输出对象被称为未用完的事务输出 ( UTXO )。交易的输出被用作未来交易的输入。UTXO 只能用作一次输入。比特币中的每个 UTXO 都包含一个面额和一个所有者(一个比特币地址)。在该模型中,存储了未消耗的 UTXOs 中的地址余额。要使交易有效,应满足以下要求:

  1. 事务必须包含它所消费的每个 UTXO 的所有者的有效签名
  2. 消耗的 UTXOs 的总面值必须等于或大于它生产的 UTXOs 的总面值

用户的余额被计算为他们拥有的 UTXOs 面值的总和。一个事务可以使用零个或多个 utxo,也可以产生零个或多个 utxo。对于一家矿商来说,向自己支付奖励包括区块中的一项交易,该交易消耗零个 UTXO,但产生一个 UTXO,其面额分配为它应该奖励自己的比特币数量。

当区块链交易涉及资产转移时,UTXO 交易模型是合适的,但是对于非资产转移交易,如记录事实、调用智能合同等,该模型不合适。

流行的许可区块链平台

现在我们对什么是 DApp、区块链和 DLT 有了一个基本的概念,让我们来看看有哪些平台可以用来构建许可的区块链应用和 dapp。我们只会选择市场上受欢迎的、有需求的产品。

艾瑟芬

以太坊是继比特币之后最受欢迎的 DApp。以太坊是一个分散的平台,允许我们在它的基础上建立其他基于区块链的 DApps。在以太坊中,我们使用以太坊智能合约构建 DApps。智能合同是完全按照程序运行的应用程序,没有任何停机、审查、欺诈或第三方干扰的可能性。以太坊可以被认为是一个部署和运行智能合约的平台。以太坊支持两种共识协议,PoW 和 PoA (Clique)。

主要公共以太网使用 PoW 进行协商。如果你想部署自己的私有以太坊网络,那么你就得使用 PoA。PoW 需要大量的计算能力来保证区块链的安全,因此它适合公共区块链使用,而 PoA 没有任何这样的计算能力要求;相反,它需要网络中的几个权威节点来达成共识。

您一定想知道为什么我们需要智能合同来构建 DApps。为什么我们不能简单地把格式化的消息以交易的形式放在区块链上,然后在客户端解释它们呢?好吧,使用智能合同给你带来了技术和商业两方面的好处。

法定人数

Quorum 是一个分散的平台,它允许我们在它的基础上构建基于区块链的 DApps。实际上,Quorum 是以太坊的一个分支(实际上 Quorum 是 Go Ethereum 的一个分支,它是使用 Golang 实现以太坊),因此如果你曾经使用过以太坊,那么你会发现使用 Quorum 很容易学习和构建许可的区块链。许多企业选择 Quorum 来建造区块链,因为以太坊的社区很大,很容易找到以太坊的开发者。Quorum 与以太坊的不同之处在于它支持隐私(它让当事人私下进行交易);对等白名单,这样你就可以提到一个允许连接到你的节点的其他节点的列表(在以太坊中这需要在网络层面上完成);许多不同风格的共识协议适合许可的区块链,并提供非常高的性能。

Quorum 目前支持三种共识协议:QuorumChain、IBFT 和 Raft。在本书中,我们将跳过 QuorumChain,因为 Raft 和 IBFT 满足了我们的所有要求。

Microsoft Azure 提供 BaaS,让您可以在云上轻松构建自己的仲裁网络。但是,在本书中,我们将学习如何手动安装它,我们不会使用 BaaS。

平价

以太坊流行的节点软件有 Go 以太坊,以太坊 C++,奇偶校验。除了以太坊的 PoW 协议,奇偶校验还支持另外两个共识协议,这两个协议是专门为许可区块链设计的。这些共识协议是 Aura 和 Tendermint。许多以太坊开发者在不需要 Quorum 提供的额外功能时,会使用与 Quorum 相比的奇偶校验。

因为与仲裁相比,奇偶校验不提供任何独特的特性,所以在本书中我们将跳过奇偶校验。但是,一旦你读完这本书,你会发现掌握宇称的概念真的很容易,并且也能够用它来构建一些东西。

多链

MultiChain 是一个构建许可的基于区块链的 DApps 的平台。多链的独特功能包括权限管理、数据流和资产。它不支持智能合约。这是一个用于构建基于区块链的 DApps 的非智能合约平台的示例。多链使用循环验证共识。

最初,MultiChain 基于在区块链管理资产所有权和转移的理念。对资产的操作包括资产的发行、再发行、转让、原子交换、托管和销毁。后来,引入了数据流,以提供不同风格的多链数据表示。在一个多链中可以创建任意数量的流,每个流都充当一个独立的仅附加项目集合。对流的操作包括创建流、写入、订阅、索引和检索。因此,基本上,多链上的区块链用例可以建立在资产或流的基础上。最后,权限管理用于控制谁可以连接、交易、创建资产/流、挖掘/验证和管理。

MultiChain 提供了与比特币生态系统的最大兼容性,包括点对点协议、交易/块格式、UTXO 模型和比特币核心 APIs 运行时参数。所以,在你开始学习 MultiChain 之前,最好至少先在高层次上了解一下比特币是如何工作的。

Hyperledger 结构 1.0

在我们进入什么是 Hyperledger Fabric 1.0 之前,我们需要了解 Hyperledger 具体是什么。Hyperledger 是开源区块链和相关工具的伞式项目,由 Linux 基金会于 2015 年 12 月启动。在写这本书的时候,Hyperledger 下面有四个项目:Fabric、锯齿、Iroha 和 Burrow。

Hyperledger Fabric 是 Hyperledger 下最受欢迎的项目。IBM 是这个项目的主要出资者。IBM 的 Bluemix 也提供了 BaaS 来轻松地在云上构建自己的 Fabric 网络。

Hyperledger Fabric 1.0 是一个构建您自己的基于区块链的许可应用程序的平台。目前,在撰写本书时,Hyperledger Fabric 1.0 仅支持分布式架构,对于块的创建,它依赖于一个名为订购者的中央可信节点。它支持智能合同、网络许可、隐私和其他功能。在 HLF 1.0 中,有一种特殊的节点叫做 OSN ,由可信方托管。这种 OSN 创建块并分发给网络中的对等点。由于你信任这个节点,所以不需要共识。HLD 1.0 目前支持 CouchDB 和 LevelDB 来存储区块链的状态。默认情况下,网络中的对等方将区块链的状态存储在 LevelDB 数据库中。

HLF 1.0 有一个通道的概念来实现隐私。信道是网络中的子区块链,根据配置允许某些方成为信道的一部分。实际上,每个事务都必须属于一个通道,当部署 HLF 1.0 网络时,会创建一个默认通道。OSN 可以看到所有渠道的所有数据,因此它应该是一个值得信任的一方。从技术上来说,如果您不能信任所有频道的单一方,可以配置网络,让多个 osn 托管不同的频道。即使流量很大或者 OSN 可用性很重要,你也可以将 Kafka 接入 OSN 以获得更好的性能和更高的稳定性。如果需要高可用性,我们甚至可以通过 Kafka 连接每个通道的多个 osn。

Fabric 1.0 有一个名为交易认可的特性,它提供了一种在发送交易之前获得某些方批准的机制。当我们说交易已经被网络中的成员认可时,我们的意思是该成员已经验证了该交易。每个链码(HLF 中的智能合同)在部署时都定义了一个认可策略。该政策规定了哪些成员必须签署与该链码相关的交易。默认策略规定渠道的任何一个成员都必须签署交易。但是,我们可以定义包含以及操作符的定制策略。

此外,无论 OSN 是否存在,相同信道的对等体都向彼此广播块,但是在没有 OSN 的情况下,不能为该信道创建新的块。对等体使用一种称为八卦数据传播协议的特殊协议来广播块。

HLF 1.0 具有非常高级的成员资格特性来控制网络成员资格,并且也是特定组织内部的成员资格特性。在 HLF 1.0 中,可以用 Java 或 Go 编程语言编写链码。在未来,Fabric 1.0 将提供简单的 T2 拜占庭容错协议和其他一些特性,这些特性将使我们能够构建 DApps。同样,还有各种各样的新特性正在开发中,将来会作为产品的子版本发布。

开始构建您的第一个 HLF 1.0 应用程序的最佳方式是在https://github.com/hyperledger/fabric-samples查看示例,并根据您的应用程序需求修改它们。你可以在 http://hyperledger-fabric.readthedocs.io/en/latest/.的找到 HLF 1.0 详细文档

BigchainDB

BigchainDB 是一个使用区块链的分散式数据库。BigchainDB 是高度可伸缩和可定制的。它使用区块链数据结构。它支持诸如丰富的权限、Pb 容量、高级查询、线性伸缩等特性。在写这本书的时候,BigchainDB 还没有准备好投入生产,但是可以用来构建概念证明 ( PoCs )。在后面的章节中,我们将了解它的工作原理,并使用它创建一个基本的 PoC。

星际文件系统

星际文件系统 ( IPFS )是一个分散的文件系统。IPFS 使用分布式哈希表 ( DHT )和 Merkle 有向无环图 ( DAG )数据结构。它使用类似于 Torrent 的协议来决定如何在网络上移动数据。IPFS 的一个高级特性是它支持文件版本控制。为了实现文件版本控制,它使用了类似于 Git 的数据结构。

尽管它被称为分散式文件系统,但它并不遵循文件系统的主要属性,即当我们在文件系统中存储一些东西时,它应该一直存在,直到被删除。但是,IPFS 不是这样工作的。每个节点并不存储所有文件,而是只存储它需要的那些文件。因此,如果一个文件不流行,那么许多节点将没有该文件,因此该文件很有可能在网络中消失。因此,我们可以称 IPFS 为一个去中心化的点对点文件共享应用。我们将在后面的章节中了解它是如何工作的。

金色琴弦

Corda 是一个平台,您可以在这个平台上构建自己的基于 DLT 的许可应用程序。Corda 是 R3 的产品。R3 是一家企业软件公司,与 100 多家银行、金融机构、监管机构、贸易协会、专业服务公司和技术公司合作开发 Corda。Corda 的最新版本是 1.0,旨在取代用于金融交易的传统软件,并使组织能够将使用传统软件系统时很麻烦的各种业务流程数字化:

上图显示了 Corda 网络的高级架构。让我们从高层次上理解 Corda 的架构。R3 的 Corda 的理念是为金融交易提供一个共享的可信分类账。R3 的 Corda 不是区块链平台,因此没有块、全局广播等概念。所有的交易都是点对点的。Corda 应用程序不是分散的。在 Corda 中,智能契约被称为 CorDapps ,它们是用 Java 或 Kotlin 编写的。

基础设施服务形成网络中的节点,这些节点应该由可信方托管。网络图公布所有其他节点的 IP 地址,以便节点可以联系到其他节点。许可服务给予节点加入网络的许可;如果被允许加入网络,该节点将从网络的许可服务接收根授权签署的 TLS 证书。公证人提供交易排序和时间标记服务(可选地,公证人还充当时间标记机构,在公证之前验证交易发生在特定的时间窗口内)。公证服务可以是单个网络节点、一群相互信任的节点或一群相互不信任的节点。

公证人预计由网络不信任的企业托管,因此公证人之间需要达成共识,由于这一点,Corda 提供了各种可插拔的共识协议,如 Raft、BFT 等。

有时,Corda 应用程序需要依赖外部应用程序 API。例如,使用 Corda 构建的多货币银行间支付应用程序将需要获取汇率。在这个场景中,启动事务的节点可以获取汇率并执行事务,但是您如何信任这个节点呢?此外,每个节点都不能简单地重新获取汇率来验证它是否正确,因为当其他节点获取汇率时,汇率可能已经发生了变化,而且这也不是一个可扩展的解决方案。因此,Corda 提供了 oracles 来解决这个问题。网络中可以有一个或多个先知。Oracle 是一种服务,充当两个应用程序之间的通信桥梁。在 Corda 中,事务发起者可以从 Corda 网络外部获取信息,并从or clize获得签名的信息,以证明其有效性。或者,Oraclize 还可以根据请求向事务发起者提供信息。很明显,Oraclize 应该由可信方托管,而不是由他们提供和签署什么信息。

Corda 支持任何可插拔的 RDBMS(目前,它使用 H2 数据库)来存储智能合同数据。关于哪些节点可以看到事务,数据隐私得到维护。该框架还提供了多签名支持,这使得多个节点能够对一个事务进行签名。Corda 的一个主要缺点是,由于没有全局广播,每个节点必须以传统方式维护自己的备份和故障转移冗余,因为网络中没有内置冗余。节点将存储事务并重试向接收者发送消息,直到接收者成功接收到它。一旦消息被接收,发送者就不再有任何责任。

交易有效性

由于不是所有交易都广播给网络中的所有各方,为了防止双重花费(双重花费是对 DLT 的攻击,以两次花费相同的钱,两次转移相同的资产,等等),我们使用公证人。公证员包含所有未消耗的 UTXOs,公证后,他们将它们标记为已消耗,并将新的未消耗的 UTXOs 添加到其状态中。交易目的者在将交易发送给其他方进行确认之前,让公证人对交易进行公证。

公证人只有在先前签署了交易的输入状态的情况下才能签署交易。但是,情况可能并不总是如此,因此 Corda 也让我们改变国家指定的公证人。出现这种情况的主要原因如下:

  • 交易消费国有不同的指定公证人
  • 节点希望使用不同的公证人来实现隐私或效率

在创建这些事务之前,必须首先将各州重新命名为拥有相同的公证人。这是通过一个特殊的公证交易实现的。

CorDapps 不像其他平台的智能合约。他们没有国家。他们的目的只是验证从输入产生的输出是否正确。每个 UTXO 都指向一个 CorDapp。CorDapps 定义了 UTXOs 的格式。在一个事务中,我们可以有多个 CorDapp 的 UTXOs,在这些情况下,每个 corda PP 将只运行一次,并验证属于它的所有输入和输出。为了使交易有效,它必须在合同上有效;科达普会批准的。

除了输入和输出之外,事务可能还包括命令、平台本身无法破译的小数据包,但它们有助于 CorDapps 处理输入和输出。命令是与某些公钥相关联的一段数据。命令用于向 CorDapps 提供它无法通过 UTXOs 获得的附加信息。平台确保在合同开始执行之前,交易由命令中列出的每个密钥签名。因此,CorDapp 可以相信所有列出的密钥已经签署了该事务,但是负责验证预期各方已经签署了该事务。公钥可以是随机的,也可以是保密的,或者与众所周知的合法身份相关联。

oracle 以命令的形式向事务目的者提供已签名的信息,这些命令封装了特定的事实,并将 Oracle 列为必需的签名者。

此外,事务可以包含附件的散列。附件是 ZIP/JAR 文件。当有大量的数据片段可以在几个不同的事务中重用时,附件非常有用。

在验证提议的事务时,节点可能没有需要验证的事务链的所有事务。因此,Corda 让节点向提议者请求缺失的事务。事务提议者总是拥有所需事务链的所有事务,因为他们在验证事务和创建目标事务的输入状态时会请求它。

最后,一旦事务被提交,您就可以查询 Vault(它跟踪未消耗和消耗的状态)。

要了解关于 Corda 的更多信息并构建您的第一个 Corda 应用程序,请访问https://docs.corda.net/,其中包含详细的文档。您可以下载并试用几个示例应用程序。

超分类帐锯齿

锯齿是一个去中心化的平台,可以构建你自己的许可 DApps。锯齿的主要贡献者是英特尔。锯齿的特别之处在于它使用了一个可信执行环境 ( TEE )(目前只支持英特尔的 SGX)进行共识,使得网络非常安全可信,增加了对共识最终结果的信任。

TEE 是主处理器的安全区域。它保证了内部加载的代码和数据在机密性和完整性方面受到保护。TEE 作为一个隔离的执行环境,提供安全特性,如隔离执行、可信应用程序的完整性以及它们的资产的机密性。

耗时证明 ( 诗人)是锯齿使用的共识协议的名称。在 PoET 中,有一些特殊类型的节点被称为验证器。验证器必须在支持 SGX 的 CPU 上运行它们的节点。这就是诗人的工作方式。

每个验证器都向 enclave(一个受信任的函数)请求一个等待时间。特定事务块中等待时间最短的验证器被选为领导者。一个函数,比如说CreateTimer,为一个事务块创建一个定时器,这个事务块肯定是由 enclave 创建的。另一个函数,比如说CheckTimer,验证计时器是由 enclave 创建的,如果它已经过期,就创建一个证明来验证验证器在声明领导角色之前确实等待了指定的时间。PoET 在整个验证者群体中随机分配领导选举。当选的概率与贡献的资源成比例(在这种情况下,资源是带有 TEE 的通用处理器)。执行证明提供了用于验证证书是在 enclave 中创建的(以及验证程序等待了指定的时间)的信息。此外,参与的低成本增加了验证者群体将变大的可能性,增加了共识算法的鲁棒性。

锯齿还支持智能合约(具体来说,以太坊智能合约可以在锯齿上执行)。就性能而言,锯齿波在处理大量事务和节点时伸缩性很好。

流行的区块链用例

让我们看看一些受许可的区块链的流行用例。这将有助于我们理解什么样的企业可以使用许可的区块链,什么用例对于许可的区块链是有效的。

国外项目

Everledger 是一个由区块链驱动的钻石数字注册系统。这是区块链供应链管理的一个例子。使用区块链是因为,在区块链,记录是不可变的。Everledger 使用包括颜色和净度在内的 40 多种特征来创建钻石的 ID。当这些信息被放在区块链上时,这些信息就成为记录珠宝所有权的凭证,从我的到戒指。Everledger 已经数字化了超过 100 万颗钻石,并与包括巴克莱在内的公司合作。区块链网络的参与者,如商人、银行和保险公司,可以验证钻石是否合法。Everledger 建立在 Hyperledger Fabric 平台上。未来,他们还计划在他们的区块链中添加其他珍贵商品。

让我们以一个场景为例,看看区块链如何在这个用例中提供帮助。艾丽丝购买了一颗钻石,为它上了保险,并在区块链的《每日纪事报》上注册。接下来,她丢失了钻石并报失。然后保险公司赔偿她的损失。最后,小偷鲍勃试图将偷来的钻石卖给珠宝商伊夫。她向 Everledger 请求验证,并发现这是一颗被盗的钻石。保险公司被告知钻石被盗,他们得到了钻石。

沃尔玛的食品追踪

沃尔玛的食品跟踪用例是区块链和物联网的结合,使食品的历史透明,并可追溯到其原产地。这是区块链供应链管理的一个例子。沃尔玛的食品跟踪供应链管理建立在 Hyperledger Fabric 平台之上。

每年都有很多人死于食物中毒。一旦有人因食物中毒而生病或死亡,当局就会试图追踪食物的来源,并确保所有来自该来源的食品被暂停销售并召回。这拯救了很多人的生命。但问题是,由于供应链中的每一个参与者都有自己存储和检索信息的方式和过程,因此当局需要数周时间来追踪源头,阻止供应链中的每个人销售食品。区块链结合物联网或许可以解决这个问题。

通过供应链中的每一方存储和检索信息,区块链可以加快找到食品来源的过程。以下列表显示了区块链可以增加的额外福利:

  • 消费者可以看到食品的确切收获地。
  • 由于对食物中毒的恐慌,人们倾向于扔掉干净的食物,这增加了食物浪费的数量。区块链可以精确定位受污染的食物,从而防止食物浪费。
  • 供应链中的每一步对每个人都是可见的。进入市场的欺诈食品是可以避免的。
  • 区块链可以作为证据,证明受污染的食品是从特定的生产商那里运来的。由于这一点,生产者将小心并遵守安全惯例,因为如果他们不这样做,他们将被发现有证据。
  • 最后,每一种食物都有一个与之相关的故事。这使得用户能够了解食品的历史。

传感器和 RFID 标签等物联网技术可以在食品通过供应链时将实时数据写入区块链。

让我们看一个例子,看看区块链在这种情况下记录了什么,参与者是谁。参与者包括食品产地的农场、包装和加工食品的工厂、运输食品的货运公司、沃尔玛商店等等。区块链上记录的数据包括农场产地数据、批号、工厂和加工数据、有效期、储存温度和运输细节。

加纳土地登记处

BenBen 是一个研发工程师团队,致力于开发创新产品,以改善加纳的政府技术。他们使用区块链为加纳公民开发了一个数字土地注册解决方案。

在加纳,银行发放贷款时不接受土地作为抵押。这是因为在加纳,纸质登记系统在法庭上是不可执行的。这阻碍了数百万人获得贷款。

奔奔为金融机构提供顶级的土地注册和验证平台。该平台捕获交易并验证数据。笨笨与金融机构合作,更新当前的注册表,实现智能交易,并为客户分发私钥,以实现各方之间的自动化和可信的财产交易。

迪拜的房屋租赁

迪拜的房屋租赁用例是一个区块链应用程序,让个人外籍人士在几分钟内在线租赁公寓或续签房屋租赁合同。在迪拜,如果个人想要出租公寓,那么他们必须提供 KYC 文件、支票作为合同期限担保,并创建 Ejari(政府合同,使迪拜房东和房客之间不愉快的关系合法化)。在迪拜,大多数房地产公司只在你想呆更长时间(例如,至少一年)时才出租公寓,为了确保你遵守合同,他们要求你提供远期支票作为担保,因为在迪拜,支票跳票被视为刑事犯罪。由于租赁公寓和续签租赁合同的过程对租户和房地产公司来说都是一个繁琐的过程,迪拜智能政府 ( DSG )(智能迪拜的一个技术部门,一个从技术上改造迪拜的全城倡议)发起了一项任务,利用区块链使整个过程更加简单快捷。

这个房屋租赁应用程序是使用 Hyperledger Fabric 1.0 构建的,最初有七个实体参与了该网络。DSG、迪拜居留和外国人事务总局(【DNRD】)、wasl、迪拜土地部迪拜水电局 ( DEWA )、阿联酋迪拜国家银行 ( NBD )和阿联酋伊斯兰银行 ( EI )是分享其关于区块链的数据以使租赁合同的订立和续签更容易的实体

早些时候,DSG 和阿联酋身份认证机构推出了 DubaiID,迪拜居民可以通过一次登录统一访问政府机构提供的所有电子服务,并通过互联网与他们互动。在这个区块链用例中,租户必须使用 DubaiID 登录房地产门户;在这种情况下,wasl 的租户必须有一个 DubaiID 才能登录。登录后,SDG 会将阿联酋的 ID 号写入区块链,而 DNRD 会共享该租户在区块链的签证和护照信息。然后,wasl 的门户网站重定向用户使用阿联酋 NBD 或 EI 银行账户提交电子支票。一旦提交了电子支票,就会通过区块链向 DLD 提出延期或创建电子支票的请求。最后,一旦 Ejari 处理完成,就会通知 DEWA 激活水电供应。所以基本上,第一个试点是针对那些想租赁或续租 wasl 公寓,并在阿联酋航空 NBD 公司或 EI 公司有银行账户的个人。很快,更多的银行和房地产公司将加入该网络,为更多的迪拜人提供这项服务。在此过程中,确保一条信息只能被相关方看到。

这个用例非常适合区块链用例,因为需要一个签名的不可变分类帐来存储 KYC、支票和 Ejaris,如果客户或任何实体试图实施欺诈,后者可以被证明。例如,当阿联酋航空 NBD 公司签发支票时,如果他们在没有区块链的情况下签发支票,而只是简单地进行点对点 API 调用,那么承租人 ENBD 和 wasl 之间很有可能就数字支票的存在或其当前状态存在有意或无意的分歧。因此,如果发生任何争议,区块链可以作为最终的参考工具。

Ubin 项目

Ubin项目是由新加坡金融管理局 ( 新加坡金融管理局)和 R3 合作运营的一个数字现金挂帐项目,参与方有美国银行 ( 美国银行 ) 美林证券瑞士瑞信银行、星展银行汇丰银行、摩根大通、三菱 UFJ 金融集团【b 新加坡交易所(SGX)大华银行 ( 大华银行),以及作为技术提供商的 BCS 信息系统

Ubin 项目的目标是在分布式账本上构建数字化形式的新币(新加坡的国家货币),为新加坡的金融生态系统带来诸多好处。好处将与任何其他加密货币一样。

目前,该应用程序是使用 Quorum 构建的,但将来它可能会迁移到 Corda,因为 R3 是合作伙伴之一。

新加坡金融管理局是新加坡的中央银行和金融监管当局。新加坡金融管理局是新加坡支付、清算和结算系统的结算代理、运营商和监管机构,注重安全和效率。

摘要

在这一章中,我们学习了什么是 dapp,并对区块链的 dapp 有了一个大致的了解。我们看到了什么是区块链,它的好处是什么,并且看到了我们可以用来构建我们自己的基于区块链的 DApps 的各种平台。最后,我们看到了一些使用案例,以及区块链如何为金融和非金融行业带来变革。在下一章,我们将进入以太坊和法定人数,并建立一个基本的例子 DApp。


我们一直在努力

apachecn/AiLearning

【布客】中文翻译组