探索区块链和 BaaS
区块链被认为是一种颠覆性的改变游戏规则的技术,将在未来二十年产生与互联网一样巨大的影响。这种可编程经济在几乎每个行业都有使用案例和应用。区块链已经从一个时髦词发展成为爱好者和真正的实施者非常感兴趣的东西。布道者并不局限于概念证明 ( 概念验证),而是已经开始真正的实现,并开始展示具体的成果。虽然采用速度缓慢,但 Gartner 预计(2019 年 6 月 3 日在 https://www.gartner.com/)到 2030 年,采用规模将达到 3.1 万亿美元。
区块链是一个用户完全控制交易和周围信息的世界。周围流动的信息是真实的、可信的、准确的、一致的、被接受的、完整的、及时可用的、广泛可用的、透明的和不可变的。区块链是一种分布式账本技术 ( DLT ),它消除了中心点故障的风险,而底层的密码学和算法将确保这个不可变世界的安全性。由于信任在区块链网络本身中,因此不需要可信的中央第三方。欢迎来到区块链世界,一个分布式复式系统的世界。
本章从会计系统、集中和分散分类账开始,并创造了术语分布式复式记账系统。本章逐渐转向区块链的定义和类比,并展示了由点对点 ( P2P )网络提供的公平的力量。在这里,您还将浏览各种类型的区块链网络,如有权限和无权限或公共和私人网络。本章接着介绍了区块链体系结构和事务结构的分层结构,以及块和事务流。最后,它涵盖了如何实现区块链解决方案,并定义了云方法来简化区块链的采用——使用区块链即服务 服务 ( BaaS )平台,如 Oracle 区块链平台 ( OBP )从概念验证到生产。
会计系统-单式和复式
在我们进入区块链并深入研究 Hyperledger Fabric 和 Oracle 云解决方案之前,我们需要从两个核心原则开始——分类账和会计。在会计系统中,经济交易被记录在日记账和分类账中。每笔交易的详细资料都记录在各种日记账中。然后,来自日记账的汇总信息被转移(也称为过账)到分类账。来自分类账的信息成为试算平衡表和各种财务报表的来源。每一笔交易都记录在日记账中,然后过账到分类账,分类账在各种账户中记录这些信息,如资产账户、负债账户、权益账户、收入账户和费用账户。
对于任何组织的会计系统来说,分类账都是骨干。任何有财务价值的东西都要过账到组织的账上。但是,这些分类帐是集中式分类帐,组织对它们具有完全控制权。我们将在本章后面讨论集中式和分散式分类账。
会计系统–单一条目
会计系统处理产生一个操作文件的目的,以显示资产的所有权,保护资产和各种其他任务。从本质上讲,会计系统是一种强大的手段,可以检查由于恶意的人类活动、软件等造成的资产损失,并跟踪围绕这些资产的活动和交易。从历史上看,由于围绕资产的活动很少,单一分录会计足以证明资产的所有权。这是一种会计制度,每笔交易都是日记账中的一个单独的分录。
单一账户系统类似于个人用来跟踪其支票、存款和余额的支票登记簿。记录的信息很少,并且归该个人所有。这是一个非常有效的系统,适用于每天交易量相当低的基于现金记账的小型企业。没有基于信用的交易,拥有的资产也非常少。最重要的是,不需要公布收入、财务和资产负债表。从历史上看,它会运行得很好,甚至在今天,它可能对满足上述特征的非常小的公司也很好。
单一分录会计系统面临着各种挑战——没有科学或系统的规则来记录、过账和报告交易。它看起来是一个不完整的系统,因为它没有记录账户的两个方面;因此,它不能反映利润或损失的真实情况,也不能反映组织的真实财务状况。由于所有这些缺点,单一分录容易受到欺诈和分类账中各种错误的影响。因此,要检查漏洞,您需要信任一个集中的权威机构;因此,从历史上看,需要一个国王来检查漏洞并维护对账本的信任。然而,由于交易已经扩展了它的边界,您需要一种机制来允许一个分类帐所有者与另一个分类帐所有者进行交易。这立即导致了复式记账系统。
会计系统-复式记账
复式记账系统提供了单笔记账系统所不具备的错误检查功能。每个账户有两栏,每笔交易反映在两个账户中。对于每个事务,推送两个条目;然而,每一笔交易在一个账户上有借方分录,在另一个账户上有对等的贷方分录。复式记账系统的一个例子是,一个组织想花 2000 美元购买一台新的笔记本电脑。在这种情况下,企业将在费用账户上借记 2000 美元,在现金账户上贷记 2000 美元,以显示资产负债表上的减少。
复式记账法是显示一笔交易两种结果的一种方法。例如,如果一个组织购买了一台笔记本电脑,会计分录并没有说明这台笔记本电脑是用现金购买的,还是用信用卡购买的。像这样的信息只有在对交易的两种影响都考虑到的情况下才是可用的。在会计系统中,这两种影响被称为借方和贷方。复式记账系统遵循二元性原则,也就是说,对于每一个借方分录,都必须有一个对等的贷方分录。借方分录表明资产和费用的增加以及权益、收入和负债的减少。类似地,贷方分录表明资产和费用的减少以及权益、收入和负债的增加。复式记账系统确保会计等式保持平衡:
资产=负债+权益
在报告期末,借方总额等于贷方总额。资产负债表遵循这个等式,总资产是负债和权益的总和。任何偏离这个等式的情况都会突出显示一个错误。
有趣的是,单一账户系统只记录收入和支出,并不监控股权、负债和资产。然而,复式记账系统会对收入、费用、权益、负债和资产进行记账,这使得获取和计算利润和损失变得简单而精确,有助于发现欺诈,减少错误,并允许生成各种财务报表。由于交易的两个方面都有记录,保持账目完整就更容易了。维护复式记账系统需要时间、金钱、技能和劳动。有错误和失误的机会。在一个会计年度内,交易在决算中进行过账和调整;如果跟踪交易是一项挑战,那么在调整交易时会有困难。
在复式记账系统中,第一笔记录表明你拥有什么,而第二笔记录阐明你是如何得到的。如果这些条目不平衡,则清楚地表明交易对手风险可能没有得到有效的解释,从而导致审计和纠正。在复式记账系统中,必须对交易对手价值的每一次变动进行记账。多年来,它一直是一个简单、可靠且有效的会计系统。
然而,想想在没有交易对手风险敞口的情况下。假设系统不知道谁拥有它,并对日记账中记录的资产和价值负责,这些资产和价值在分类账中过帐。要发送或接收有价值的资产,必须有一个交易对手来接收和发送它。直到今天,这些基本原则都是毋庸置疑的。一笔交易记录在一个组织的分类账中,同样的交易记录在对方的分类账中;例如,供应商的分类账或银行的分类账。它反映了交易对手对同一交易的观点。各种文件和报表,如合同、发票、票据、银行对账单和收据支持这些交易。这样容易出错,比如对账错误,现金丢失,进而引发纠纷。这需要解决争议,为了检查所有这些,组织投资于记录、分析和审计。
复式记账系统运行了数百年。在本节中,我们将不强调三重分录会计制度的必要性;然而,我们将深入研究分布式分类账。复式记账要求每个组织及其交易对手维护自己的分类账,这反过来反映了真相。然而,真相有多个副本。此外,组织和交易方投入时间、资源和金钱来执行真相和解,以实际得出并同意单一的真相。
集中式与分布式分类帐
本节重点介绍集中式分类帐、分散式分类帐和分布式分类帐,并概述它们之间的差异。
下图显示了不同类型的系统:
系统和分类账的类型
在本节中,我们将参考上图来理解各种分类帐的布局。在我们深入研究集中式分类账和分布式分类账之间的区别之前,让我们先了解不同类型的系统。
从控制的角度来看,有两种类型的系统——集权和分权系统:
- 集中式系统:一个实体控制整个系统,实体可以是个人,也可以是企业。
- 分散系统:在分散系统中,可能有多个实体控制系统。没有单一的控制点,控制由不同的独立实体共享。
从位置来看,有两种类型的系统——集中式和分布式系统:
- 集中式系统:系统的所有组成部分,如服务器、分类账等,都位于同一地点
- 分布式系统:系统的所有组成部分,如服务器、分类帐等,都不在同一位置,而是存在于不同的位置
系统的这些类别导致系统的以下变体:
- 分布式但集中的系统:分布式但集中的系统是这样一类系统,从位置的角度来看,该系统是分布式的,但该系统由中央机构或中央实体控制。例如,云服务提供商提供各种服务,如计算、存储、SaaS、PaaS、IaaS 等等。这些服务是通过分布式的服务器和数据库提供的。然而,整个系统是由云服务提供商控制的。这样的系统可以被称为一个分布式但集中的系统。
- 分布式系统:从控制的角度来看,分布式系统是分散的,而从位置的角度来看,它们是分布式的。这意味着没有一个实体是系统的所有者或权威,系统也不只有一个位置—它是广泛分布的。DLT 和它的类型,如区块链,是这样的分布式系统,其中控制不是由一个实体。因此,没有一个实体可以改变或修改系统(分散的)。此外,DLT 和区块链基于 P2P 网络,其中节点(对等点或参与者)是独立的,并且遍布全球(分布式)。
分布式系统是分散式系统的超集,并且基于 P2P 网络。
集中分类账
到目前为止,我们讨论的复式记账会计系统强调了一个有集中分类账的会计系统。任何有财务价值的东西都要记录在日记账中,并过账到分类账。这些分类账就像过账交易的中央存储库,是任何组织的支柱。
然而,集中式分类帐系统也有各种各样的缺点。例如,银行控制过账到银行分类账的交易,并保持对银行对账单的完全控制。在这种情况下,他们可以在任何给定的时间处罚你,并可以在任何给定的时间从你的帐户交易资金。如果这样一个中央集权的机构怀有恶意,那么后果可能是多方面的;他们可以在没有事先通知的情况下关闭业务,这禁止了任何进一步的交易。这些例子大多被区块链福音派使用,他们更倾向于信托机构的完全去中心化。
让我们来看一个更可行的挑战,与银行有关。复式记账要求每家银行维护自己的分类账,以反映他们对真相的看法,随着越来越多的银行相互交易,他们需要协调他们对真相的看法,以得出单一版本的真相。如今,银行花费时间、金钱和资源来确保对单一事实达成共识。
显然,他们有自己的分类账,因此也有自己的系统,这使得金融业可以避免任何单点控制和单点故障的机会。此外,当客户在银行开立账户并将他/她的资金放在该银行机构的信任级别时,这变得更加有趣。现在,保护您的资金和信息的责任落在了银行机构身上。另一方面,银行将投入大量的时间、金钱、资源和精力来构建和维护系统,然后花费更多的时间、金钱、资源和精力来与其他银行机构集成和检查,以确保他们掌握的系统与其他银行机构的系统一致,以达到共同的真理。
如果你仔细分析,你会发现每家银行的分类账实际上是在复制其他银行机构的功能。现在,如果银行机构的一个系统失灵了怎么办?这是否会导致无法和解的局面?这听起来不更像是单点故障吗?答案就在下一节和整本书讨论的分布式分类账中。
分布式分类帐
纵观全球,在经济、法律、政治和制度体系中,关键要素是交易、合同和文件。它们决定了国家、企业、组织、社区和个人之间的关系,最重要的是,它们被认为提供了信任。有趣的是,这些人并没有在更大程度上为了更伟大的事业加入数字化转型。那么,解决办法是什么呢?分布式账本和 DLT,以及区块链,提供了解决这些关键挑战的方法。在本节中,我们将探讨更多关于分布式分类帐和 DLT 的内容。
在分布式分类帐中,没有中央机构或中央管理员。它是一个在网络上共享的资产数据库,其中网络上的每一方都有一个相同的分类帐副本。这些资产可以是金融、法律和电子资产。这些资产价值的变化反映在整个网络中,并附加每个分类帐副本。
许多组织、政府和机构使用分类账的中央数据库,我们在集中式分类账一节中讨论过。集中式分类帐需要交易各方信任的中央机构;然而,在分布式账本中,省略了对第三方的需要,这是吸引 DLT 的引力之一。在这里,我悄悄地使用了术语 DLT,因为分布式分类账可以读作共享分类账或 DLT,它们是同一个。
DLT 的破坏性在于,分类账数据库是分布式的,分布在网络中的所有节点或计算设备上,每个节点都有一份完全相同的分类账副本,节点可以独立更新自己。所有参与的节点达成协议,通过称为共识的过程为分类帐建立单一真实(真实副本)。一旦达成共识,分布式分类帐将自动更新,并且分类帐的最新真相(真实的一致副本)将分别附加在每个节点上。在阅读这一段时,你可能会想到银行建立信任和就分类账达成协议的对账过程。有了 DLT,信任(和解)和共识(协议)会无缝、自动地发生。
我们刚刚发现的是,在前面的故事中没有中央权威机构来维护分布式账本。DLT 使系统能够减少对各种中央机构的依赖,如银行、律师、政府、监管机构和第三方机构。分布式分类账不需要中央机构来验证、认证和处理交易。DLT 上的交易被打上时间戳,并具有加密的唯一身份,其中所有有问题的记录可供参与者查看,这确保了交易的可验证和可审计的历史被永久存储。
在去中心化的分布式分类帐中,事务被复制到分布式分类帐,这意味着附加所有参与节点的分类帐副本;然而,没有中央单一数据库。是网络去中心化了。这种制度需要分散的共识,因为没有单一的合同点,或单一的权力机构或政党。因此,为了确保不信任,共识是必须的。在传统的数据库系统中,一方代表交易客户修改系统的状态。然而,在分布式分类帐中,任何一方都可以记录,协议和算法控制着网络分类帐中交易的过帐。
下表列出了集中式分类帐和分布式分类帐之间的一些差异:
| 集中台账 | 分布式台账 | | 需要对账(内部和外部)。 | 不需要和解;然而,达成协议需要共识。 | | 对数据库操作没有限制。 | 它只是附加的。 | | 有一个单点故障。 | 它是分布式的;因此,不存在单点故障。 | | 只有一个联系点。 | 它是分散的。因此,没有单一的权威。 | | 还有第三方,中间商,把关人。 | 是 P2P。没有中央党,附加到分类账是由共识。 | | 需要备份和灾难恢复。 | 随着越来越多的参与节点进入网络,弹性和可用性也随之提高。 | | 可以代表某人执行操作。 | 有加密认证和授权。 | | 钠 | 它是不可变的,因为添加到分类帐的数据保持不变。 | | 钠 | 节点之间有直接的交互,允许启动直接的资产交易,比如货币,真实的资产,比如土地所有权或文件,等等。 |
有了分类账的知识,现在让我们深入 DLT 和区块链,了解它们之间的区别。
DLT 和区块链
区块链是一个 P2P 网络,账本是分布式的,交易只有在一致同意的情况下才会过帐到账本。这样一个 P2P 网络,加上智能合约、加密和算法等各种组件,有助于构建一个传递信任的区块链网络。区块链允许参与方(节点)在没有中介的情况下建立共识,这导致了单一的分布式真相(账本)。没有对账,没有延迟,没有中介,交易被实时记录在一个永远不变的账本上。
我们还没有涉及区块链的细节,在这一节中,我们也将仅仅触及定义,并跳入区块链和 DLT 之间的差异。到目前为止,我们已经了解了分布式分类账。区块链技术专注于安全有效地建立不可变的交易记录,也称为高度重要的活动。区块链(DLT 的一种形式)是最被接受的 DLT;然而,DLT 本身对未来有很大的潜力。DLT 有多种类型,如下图所示:
直接线性变换(direct linear transformation)
区块链将数据分组,链接在一起,并通过加密技术牢固地保护它们。区块链是一个不断增长的仅附加区块链,其中商定的交易仅附加到区块。它们永远不能被更改或删除,这种不变性有各种各样的用例。现在,由于区块链是 DLT 的一种形式,它是区块链网络上分发的账本。每个节点都有一个分类帐的副本,只有当参与节点达成共识时,交易才会被安全地添加。
DLT 是一个更广泛的术语,用来强调那些允许在参与者(公共或私人)之间分发信息的技术。区块链是 DLT 的一种,得到了更广泛的接受,非常受欢迎,因此,它变成了 DLT 的同义词。DLT 专注于没有中央权威的技术,有趣的是,区块链是区块链,而 DLT 既没有对区块链也没有强制要求。对于区块链的愿景,DLT 产生了良好的共鸣;因此,每个区块链都是 DLT。但是,DLT 并不一定要成为区块链。这里有一个关于 DLT 和区块链的类比,分别用车辆和汽车来表示。因此,我们的等式是——每辆车都是交通工具;然而,并不是每辆车都必须是汽车。
下表总结了 DLT 和区块链之间的差异:
| DLT | 区块链 | | 这是一个分布在网络上的分类账。 | 是 P2P 分布式账本。 | | 账本保持不变。 | 事务被分组到块中,并且块是不可变的。 | | DLT 包括一个确保达成一致的共识算法。 | 当达成共识并且每个块都有事务时,块被添加到链中。 | | 没有中央权威或集中的数据存储。 | 没有中央权威或集中的数据存储。 |
其他一些广受欢迎和接受的 DLT 如下:
- 链芯
- 金色琴弦
- 有向无环图 ( DAG )
- 散列图
- peaq
- 法定人数
总之,DLT 大体上——尤其是区块链——创造了一个系统,让世界拥有一个可信的、不可改变的、安全的、基于共识的 P2P 分布式账本。有各种类型的 DLT,如区块链和 DAG,虽然区块链已经得到了更广泛的接受,DAG 正在缓慢但稳定地获得动力。因为这本书的缘故,我们将集中在 DLT 上,例如 Hyperledger Fabric 和区块链。然而,无论 DLT 是什么,DLT 的核心优势是透明、不变性、高效和没有第三方。
区块链的 DLTs】:
区块链是一种 DLT,其中数据以块的形式存储。这些块被链接和加密。因此,它也可以被称为块的加密链表,在这里您可以追踪块的出处(这意味着您可以追溯到 genesis 块)。这种块链表(也称为块链)一直在增长。如此巨大的增长导致了缓慢的交易速度,并且需要 P2P 网络上的大存储容量。
作为平台的区块链技术:
先说区块链技术的第一个应用——加密货币。然而,本书没有进一步讨论加密货币。对于加密货币交易,分类账分布在 P2P 网络上。任何用户(节点)都可以不经许可加入网络并开始交易。只要用户(节点)遵守事务协议,事务就可以执行。如果有效,它们将被添加到区块链网络中。类似地,任何节点都可以参与共识过程并开始验证事务。
这种区块链网络是公共的,通过浏览器应用程序向每个人提供读取权限。此类交易信息不包含用户详细信息。他们只有交易细节。这种公共区块链网络不会给系统管理员带来成本,因为挖掘是由参与节点执行的,并且挖掘者因其验证交易的努力而得到报酬。反过来,矿工可以通过管理服务器、机器和电力成本来支付基础设施的费用。你可以把这样一个基础设施看作是众筹的、众包维护的和众包验证的。成本由参与节点分担。与集中式系统相比,这种方法大大降低了基础设施的前期成本和维护成本。一些流行的货币有莱特币、瑞波币、EOS 币、比特币、以太币等等。
除了加密货币,区块链平台推动了无许可网络和许可网络的发展。它可以用作代表资产(有价值的东西)的各种类型的交易和共识的平台。无权限网络包括以太坊,有权限网络包括 Hyperledger Fabric 和 R3 Corda。
不是区块链的 DLTs】:
还有各种不是区块链的 DLT,比如 DAG、Hashgraph、数字资产控股 ( DAH )。它们也基于分布式分类账概念;但是,它们并不基于区块链(也称为区块链)。它们大多有效,交易量极高。DAH 主要与金融服务和银行等用例相关。哈希表是基于投票算法的许可 DLT。DAG(表)是另一个不是基于区块链的 DLT。它目前用于 IOTA 和小额支付。
比较区块链和达格:
区块链和达格都是 DLT。然而,让我们看看这两者之间的区别,以便更好地了解它们的技术。
下表比较了 DLT -区块链和 DAG:
| 属性 | 区块链 | 有向无环图 | | 结构 | 它是块的链表,其中事务被分组到块中。 | 这是一个相互关联的交易网络。没有个事务块。 | | 数据结构 | 这是一个链表(块的列表)。 | 它是一棵树(事务树)。 | | 共识;一致 | 逐块验证事务以满足共识。 | 事务相互验证。 | | 特征 | 它提供了透明性和不变性。 | 它提供了高可伸缩性,费用可以忽略不计。 | | 用例 | 它适用于低交易量和高交易价值的用例。 | 它适合高交易量。 | | 陷阱 | 有很高的交易成本、存储和带宽需求以及计算能力(对于无许可的场景)。 | 低交易量会导致攻击。对于 DAG 的私有版本,它使用协调器,不允许 DAG 完全分散。 | | 方法 | 这是一个线性的、功利的 DLT,为交易提供近乎实时的更新,并提供非中介化。 | 它采用非线性方法,随着网络的增长,实际上会导致更快的交易。 |
会计系统——三重分录或分布式复式分录
让我再把你拉回到会计系统。我们已经讨论过单式和复式会计系统。更加关注分类账促使我们熟悉集中式和分布式分散式分类账。此外,甚至在我们把区块链的定义巩固在本章之前,我们就试图把它与 DLT 相比较。现在,我们又回到了起点,来回答会计界关于区块链的另一个重要问题。
围绕三重分录会计制度有各种各样的讨论。许多倡导者认为,三重式会计制度是对历史悠久、行之有效的复式会计制度的高级改进。借方和贷方仍然是两个主要条目,第三个顶点条目是到所有先前借方和贷方的不可变链接,这意味着所有分类帐条目都具有不可变的加密印章。
假设两个组织正在执行一项事务;一个组织将收到的金额记入其账户的借方,而另一个组织将支出的金额记入其账户的贷方。但是,这些过帐到不同的分类帐中。我们之前在银行业协会的例子中已经看到了这一点。现在,这些组织有单独的分类账副本,然后他们将核对它,以确保他们有一个共同的“真实”理解。DLT 会确保没有两本账。将有一个分类账,该分类账将保持分布式,区块链科技将确保发布到分布式分类账的交易是不可变的且安全密封的。不变性将确保它永远不会被篡改,密码学将负责安全方面。因此,企业和业务不需要调节分类帐,因为没有单独的筒仓分类帐。
虽然对三重式会计制度有各种定义,但要取代行之有效的复式会计制度将是极其困难的。三重分录会计是一个复杂的术语;我们不否认在区块链网络中将交易过账到分布式分类账有巨大的好处。在分布式的、仅附加的、不可变的分类帐中过账和记录交易有很多好处,我们将在本书中涉及这些。
例如,一旦签订了合同,就会在区块链上创建一个块,并将一笔交易过帐到区块链网络中的分布式分类帐。某人可以根据该合同发出采购订单,并且该事务也作为块被附加到区块链,这意味着它也被过帐到分布式分类帐。可以根据这些采购订单开具账单,付款可以在单独的交易中与这些账单相关联,并记录到分布式分类账中。您有一个块链,在一个分布式分类帐中显示从合同到付款的交易。这意味着您拥有出色的审计记录和所有交易方对交易的实时可见性。允许的 DLT(如 Hyperledger Fabric)可以进一步允许您提供对这些交易的受限访问。此外,这些过账交易不需要对账,是不可变的,无处不在。
我们刚刚了解到,在区块链网络的分布式分类账中,交易是不可变的,没有人能够伪造它们。交易经过时间标记、验证、一致同意和信任;这提供了一种随时随地实时检索、访问、分析和审计的简单方法。块中的交易链被捆绑在一起,并分布在区块链网络中,其中每个参与节点都有相同的分类帐副本(网络上的单一事实)。在这个等式中,我们没有看到单一的权力机构/政党,因为没有中央信任的政党;信任存在于区块链网络和分布式账本中。欢迎来到区块链世界,一个分布式复式系统的世界。
总之,我个人相信分布式复式记账系统。如果你愿意,你可以称之为三重账户系统。然而,这种会计系统的本质是相同的——分布式、安全且不可变的复式会计系统。在这个等式中,DLT 提供分类帐的分发,而区块链技术将确保单一分布式分类帐的加密、安全、数字收据和不变性。因此,在本书中,我们将使用分布式复式记账系统这一术语,你也可以称之为三重记账系统。
区块链定义和类比
通过所有这些关于分类账、系统类型的事实核查,以及了解 DLT 和区块链之间的差异,让我们进入区块链的定义和类比。区块链是一个 P2P 网络,其中分类账是分布式的,交易被过帐到分类账,但只有在一致同意的情况下。这样一个 P2P 网络,以及各种组件,如智能合约、加密和算法,有助于建立一个传递信任的区块链网络。区块链让参与方(节点)建立共识,不需要中介,导致单一的分布式真相(账本)。没有对账,没有延迟,没有中介,交易被实时记录在一个永远不变的账本上。
让我们用区块链来打个比方。让我们把区块链比作一个笔记本。每页代表区块链上的一个街区。您可以在该页面上记录任何类型的数据,如医疗记录和财务交易,该页面也称为块,其中每个页面(块)都链接到上一个页面(块)。这个链不仅仅是上一页的链接;它还包含有关页面的信息,一旦页面上的数据被定义并添加到笔记本中,就不能更改。如果它被更改,关于该页面的信息也将被更改。然后,它与另一个页面保持的链被改变等等。这是显而易见的,因为链环已经断裂。因此,每个链接页面上的行都是不可变的。
区块链技术还包括智能合约,即智能程序化合约,也称规则;这些是在区块链网络上发生某种类型的事件时定义和执行的。它被称为区块链,因为块链是块的链表,其中每个块有一个或多个事务。这些交易由区块链网络在给定的时间跨度内验证和确认。区块链网络采用区块链协议的共识算法,定义了参与节点的规则和激励。我们将在共识算法部分详细讨论这一点。
区块链是一个区块链,其中每个区块都有记录在账本(区块链)上的交易,账本分布在区块链网络的所有参与节点上。这种分布式分类账是分布式复式分类账(如前所述),它记录任何数字资产或有价值资产的交易。对于区块链网络来说,交易从一开始就记录在分布式分类账中,并且永远不变。因此,从网络的开始,就可以生成、跟踪和验证财务报表。有趣的是,由于分类帐是分布式的,并且它的副本在所有参与节点上,任何节点都可以验证交易并宣布交易验证以达成共识。
类似
我们再来看另一个类比。让我们踏上无技术时代之旅。有一个美丽的村庄,有几户人家,在那里,他们交换的不是货币,而是商品。
一个菜农会用蔬菜换大米,一个稻农会用大米换花生,等等。在他们开始互相承诺之前,一切都很顺利。承诺(交易)是信用,农民可以购买蔬菜而不赠送大米;相反,种植水稻的农民会向种植蔬菜的农民承诺,他们会在水稻收获后归还。同样,果农会得到大米,并承诺在收获时提供橙子。
菜农信任稻农;然而,随着时间的推移,不同的农民之间达成了一些承诺,很难跟踪这些承诺,这导致了信任的破坏。最后,村民们指定了一个人来跟踪这些承诺。这个人被赋予了 LedgerMan(中央集权的第三方)的头衔。很快,莱杰曼建立了信任;然而,他被承诺淹没了,开始索要费用(交易成本)。村民们同意付给他承诺的一部分作为费用。这最终使这个乞丐变成了富人。后来,这位财务主管沉溺于腐败,开始接受贿赂篡改账目,贿赂村民以保住自己的职位,有时还提高费用。
很快,村民们意识到拥有一个 LedgerMan(中央集权系统)的挑战。因此,他们决定不再由一个人来履行承诺,而是由每个人来履行承诺(去中心化)。不会有一个人持有承诺;村民们会在指定的地方见面并做出承诺,每个承诺都会被每个村民记录下来(P2P 网络)。
每周一次,他们会通过朗读自己版本的承诺来验证这些承诺。如果大多数村民就一个承诺达成一致(共识),该承诺将被视为有效,并将被视为真理(总账)。在出现问题时,具有大多数条目的承诺将被认为是正确的承诺,并且将有助于解决任何基于承诺的问题(最长的链)。随着时间的推移,他们增加了安全性和各种其他功能。
我们将重温这个故事,并扩展它。目前,我们理解区块链是一种解决方案(协议),它允许无领导(分散)的对等体(P2P)组就事务达成协议(共识),并且在它们发生(同步)的时刻,它们被记录(发布)在无处不在的防篡改(不可变)分布式链表(分类帐)上,其中每个对等体持有它的副本(分布式)。我们刚刚了解到区块链是一个 P2P 网络;现在,让我们来了解一下 P2P 网络到底是什么。
区块链组件
区块链包括在区块链网络中协同工作的各种组件。我们将在本章中介绍其中的一些组件,其他一些组件,如成员服务,将在后续章节中详细讨论。以下是区块链组件列表:
- 分类账:分类账是一种分布式分类账,交易在其中不变地被记录/过账。作为一种 DLT,区块链确保事务历史的不变性,从起源块到当前块。我们在本章中讨论了单式和复式记账法。区块链分类帐是分布式复式记账系统的安全实现。
- 对等网络和节点:P2P 网络是一种计算机网络,其中计算机(对等点/节点)是分布式的,并分担网络的工作负载以达到最终目标。节点在区块链上执行事务。有两种节点——完全节点和轻型节点。区块链或 Hyperledger 等 DLT 类型可以是公有的,也可以是私有的。在公共区块链,每个节点都有股权;但是,它们可以作为完整节点以不同的角色运行,例如矿工,其中区块链的整个拷贝将在这些节点上复制。它们还可以充当轻型节点,并且只能保存键或块头值。
- 智能合约或链码:对于以太坊这样的区块链和 Hyperledger 这样的 DLT,智能合约或链码是在区块链网络上执行的代码逻辑。参与节点或区块链客户端可以根据该业务逻辑(智能合约或链码)发布事务。通过包含区块链层,分类帐不仅将存储不可变的交易,还将存储不可变的代码。
- 会员服务:对于 Hyperledger 等 DLT,会员服务提供身份和安全解决方案,确保用户参与区块链网络。身份验证和授权是成员服务的功能。他们大多用于私人和许可的区块链或 DLT。
- 事件:当区块链/DLT 上发生某些定义的动作时,引发事件是区块链或 DLT 的责任。事件是允许其他订户应用程序或系统与区块链网络交互的有效方式。
- 共识:共识算法(或协议)是区块链平台存在的核心。不用说,没有共识,区块链网络就无法存在。共识层是任何区块链(以太坊或超账本,或任何其他)最关键和至关重要的一层。共识负责验证块、排序块,并确保每个人都同意它。有关共识算法的详细信息,请访问本章中的共识算法小节。
在上一节中,我们详细讨论了分类帐和分布式系统。在本节中,我们将重点介绍 P2P 网络。本章探索区块链和 BaaS ,以及 T3】第二章、解读分布式账本技术和区块链,详细涵盖了所有应征组件。
P2P 网络
区块链技术利用互联网,在计算机的 P2P 网络上运行。这些计算机运行区块链协议,该协议允许这些计算机保留账本的副本。该分类帐包括被打包成块并在一个原始块中链接在一起的交易。在链中包含嵌段是一致同意的,没有中介。
一个区块链分布式账本运行在一个 P2P 网络上,在这个网络上,交易通过协商一致的算法使用加密技术进行验证。区块链网络为其定义了共识算法,这实质上是在区块链 P2P 网络上验证交易的规则。达成共识后,将块添加到分类帐中。然后,向将该块添加到网络的节点提供激励(取决于区块链的类型)。因此,重点在于,在分布式分类帐的 P2P 网络中,使用加密技术验证交易,并使用共识进行验证。
下图显示了网络的类型:
P2P 网络
如前图所示,集中式网络有一个中心节点,它定义并管理交易的确认和验证。所有其他连接节点都依赖于中央权威。中央机构对交易的数据、信息和状态具有完全的访问和控制。虽然这是一个高度管制的网络,但它也是集中控制的。一方面,只要中央权威和参与节点之间的信任成立,它就是安全的;然而,人为错误、恶意意图、单点故障以及权力掌握在单一权力机构手中都有其自身的挑战。它适用于非常小的组织,在那里可以快速做出决策,甚至最小的决策也是可见的。分散式网络和集中式几乎一样;然而,在这里,中心节点本身是分布式的。这意味着权力的集中是分散的。在分散式网络中,每个节点不直接与节点相连;然而,在 P2P 网络中,每个节点都与其他节点相连。
平等网络还是对等网络
P2P 网络利用网络;然而,节点的附着和脱离是完全自愿的。网络是一个公平的网络,每个对等点和其他任何对等点都是一样的,是公平公正的。一个对等点向其他对等点提供计算资源,而不需要中央机构来控制、管理或维护网络。即使它拥有股权,每个节点也有公平的机会扮演矿工的角色,或者可以将自己转变为完整的节点。每个节点都保留一份分布式账本的副本,区块链网络的这个协议保证了区块链网络的弹性和不变性。只要有一个节点保存分布式账本的副本,区块链网络就能让整个系统复活。
在 P2P 网络上,信息在所有参与节点之间被记录和复制;因此,随着越来越多的节点加入区块链网络,P2P 网络中的能力、一致性、可靠性和信任也越来越强。此外,由于不存在单点故障和单个授权,系统不容易受到黑客攻击、数据丢失、不一致、人为错误或控制网络议程的单个部分的影响,因此电源和隐私保留在每个节点。请注意,是一致算法确保了区块链上的数据同步。有各种各样的共识算法,比如工作证明(PoW)利害证明 ( PoS )。我们将在本书中详细讨论它们。
区块链建筑的分层结构
这一部分涵盖了区块链的分层架构。在本节中,我们还将讨论以太坊和 Hyperledger 结构。在讨论 Hyperledger 结构基础架构的同时,我们还将深入研究 OBP 的基础架构。
下图显示了区块链的分层架构:
区块链分层架构
硬件和基础设施层
区块链的内容托管在位于这个美丽星球上的数据中心的服务器上。当浏览网页或使用任何应用程序时,客户端从应用服务器请求内容或数据,这通常被称为客户端-服务器架构。然而,今天,客户端也可以与对等客户端连接,并在彼此之间共享数据。如此大规模的相互共享数据的计算机集合被称为 P2P 网络。区块链是一个计算机的 P2P 网络,它计算交易,验证交易,并以有序的形式存储在共享的账本中。这就产生了一个记录所有数据、交易和其他相关信息的分布式数据库。P2P 网络中的每台计算机被称为一个节点。节点负责验证事务,将它们组织成块,将它们广播到区块链网络,等等。达成共识后,节点将块提交给区块链网络,并更新其本地分类帐副本。这一层包括虚拟化(创建虚拟资源,如存储、网络、服务器等。).值得注意的是,节点是这一层的核心。当一台设备连接到区块链网络时,它被称为并视为一个节点。在区块链网络中,这些节点是分散分布的。
以太坊-基础设施层
我们来看看以太坊里的节点。任何人都可以在他们的机器上运行以太坊节点。这将使他们的机器能够加入以太坊区块链网络。节点可以运行一个客户端(兼容的客户端),如 Geth、Parity 或 Pantheon,以连接到以太坊区块链。Geth 用 Go 写,奇偶用 Rust 写,万神殿用 Java 写。一个节点(运行节点的客户机),可以是一个轻型节点(客户机),也可以是一个完整节点(客户机)。轻型节点存储缓存,而完整节点(客户端)存储随着时间线性增长的数据集。轻节点(客户端)从以太坊区块链网络获得关于以太坊状态的高保证,并且它们可以参与验证事务的执行。另一方面,参与共识的完全实施并将整个区块链下载到节点的本地存储的任何节点被称为完整节点(客户端)。完整节点验证签名、格式化事务和块的数据、检查重复支出等等。它们本质上是验证交易,并使用一个 gossip 协议将信息传递给其他节点,称为对等节点。
这些以太坊节点(客户端)运行以太坊虚拟机 ( EVM )。EVM 是一个图灵完整的软件;一种基于利害关系的虚拟机,使不受信任的代码能够被全球 P2P 计算机网络执行。EVM 处理内部状态和计算。以太坊区块链是一个图灵完全区块链,开发者也可以在这里为区块链开发程序(智能合同)。EVM 类似于 JVM,它们运行在区块链上的每个节点上。EVM 就像事务引擎,负责改变区块链的世界状态。EVM 作为沙箱运行,并为智能合约提供执行环境。
Hyperledger 结构–基础设施层
该区块链网络基于 Hyperledger 框架,由对等节点组成,这些节点托管分类帐和链码(也称为智能合同)。本质上,对等体托管分类帐和链码的实例,这可以监视单点故障。由于对等节点负责托管分类帐和链码,应用程序和管理员需要与这些对等节点进行交互。Hyperledger Fabric 中的一个节点可以托管多个分类帐。在某些情况下,一个对等节点只能托管一个分类帐,而不能托管链码(这种情况很少见,但也是可能的)。大多数节点至少安装了一个链码来更新或查询节点的分类帐。一个节点可以托管多个链码和多个分类帐,它们由通道提供动力。在第 3 章、深入探究 Hyperledger 结构中,您将了解更多关于渠道和 Hyperledger 结构的信息。
为了访问链码或分类帐,应用程序和管理员(通过管理应用程序)将始终通过 Fabric 软件开发工具包(SDK)API 与对等方连接。这些 API 允许应用程序在区块链网络上执行事务,并接收与流程确认相关的事件。有两种类型的事务—查询和更新事务。对于查询交易,不需要一致同意,因为对等方将立即从其分类帐的本地副本返回结果。但是,对于更新事务,没有任何单个对等方可以更新分类帐,因为其他对等方需要在更新分类帐之前同意。这个达成协议更新账目的过程被称为共识。你可以在 第 3 章、深入研究超分类帐结构中了解更多关于分类帐更新交易流程的信息。
一组特定的应用程序和对等体可以通过信道进行通信,因为信道是特定应用程序和对等体之间的一个分区(通信路径)。Hyperledger Fabric 是面向企业的,它迎合了私有许可(财团)和私有许可的用例。各种志同道合的组织组成一个财团,以建立一个区块链商业网络。因此,对等体由各种组织拥有。这些组织为区块链网络的建立、维护和运行提供资源。其中一种资源是节点(对等体),只要一个具有一个对等体的组织在区块链业务网络上仍然存在,业务网络就可以继续存在。
该组织的管理员将节点分配给区块链商业网络。每个组织都有一个证书颁发机构,它为这些节点分配一个数字证书。这个数字证书(X.509)是这些对等体的数字身份。当对等方试图连接到区块链商业网络上的通道时,该数字身份有助于识别对等方所属的组织。信道有策略,这些策略决定了对等体的权利和特权。对等体在组织中的角色和对等体对组织的身份的映射由成员资格服务提供者 ( MSP )提供。任何与区块链商业网络交互的东西,比如对等体、应用程序、管理员、订购者等等,都必须有一个身份和一个相关的 MSP,以便能够与它集成。
订购者节点确保整个区块链业务网络中分类帐的一致性。让我们快速浏览一下基于 Hyperledger Fabric 的区块链网络的交易流。整个过程由订购者(订购者的节点)协调,所有对等点就交易的内容以及交易的顺序达成共识。
交易流程:基于 Hyperledger 结构的区块链网络中的交易发生在一个多阶段流程中。详情请访问第三章、的交易流程部分,深入探究、、。下面是交易流程的一瞥:
- 第一阶段 ( 背书阶段):应用程序启动一个分类帐更新事务。该事务请求由认可对等体(作为认可者的节点)处理。这些节点认可建议的分类帐更新,并将认可发送至应用产品。但是,不会对分类帐执行任何提交。
- 第二阶段 ( 订购阶段):订购者的节点接收来自已背书交易、来自各种应用的提议响应。这些节点将事务排序成块。
- 第三阶段 ( 分发阶段):最后,将订购的块分发到区块链业务网络中的所有对等体。这些对等方将验证交易,并且在成功验证后,将交易提交到分类帐的本地副本。
订购者的节点是整个交易过程的中介。该交易过程被称为共识,因为区块链商业网络中的所有对等体已经就交易和交易数据达成一致。订购服务利用面向消息的体系结构,订购服务可以通过以下三种方式之一实现:
- 单独的
- 卡夫卡
- 大量
下表重点介绍了各种订单服务实现的功能:
| 特征 | 土壤 | 卡夫卡 | 木筏 | | 节点数量 | 单一订购节点 | 来自一个组织的多个订购节点。 | 来自不同组织的多个订购节点。 | | 容错的 | 不容错 | 崩溃容错 ( CFT ),使用一个账本,遵循节点配置。使用 ZooKeeper ensemble 进行管理。 | 基于 Raft 协议的 CFT。 | | 履行 | 开发和测试(不用于生产) | 然而,生产级有管理开销。 | 生产级,比卡夫卡更容易实现。 | | 分布式订单服务 | | Kafka 集群实际上是由一个组织(可能是一个创始人组织)管理的。因此,所有的订单实际上都交给了一个组织。因此它是部分分散的。 | 允许分布式订购服务,因为不同的组织可以贡献它们的节点来形成分布式订购服务。因此,它是完全分散的。 |
从物理存在的角度来看,节点可以位于以下位置之一:
- 由其中一个组织租赁或拥有的云
- 某个组织拥有的数据中心或内部
- 在本地机器上
本质上,对等体的身份将它与某个组织的从属关系联系起来,并确定它归该组织所有。这些节点是区块链网络的基础和核心。它们属于不同的类型,执行各种功能,如背书、订购、提交和托管链码,并确保分类帐的一致性。到目前为止,我们已经从以太坊和 Hyperledger 结构的角度讨论了基础设施。如果您想查看特定供应商的基础设施产品,可以访问本章的Oracle Baas–OBP部分。
数据层
区块链是一个去中心化的、大规模复制的数据库(分布式账本),其中交易以块的形式排列,并放置在 P2P 网络中。所有帐户的当前状态都存储在这样的数据库中。一个网络(公共的或私有的)由许多节点组成,没有一个共同的共识,数据不能被改变。区块链的数据结构可以表示为块的链表,其中事务是有序的。区块链的数据结构包括两个主要部分—指针和链表。指针是变量,它指向另一个变量的位置,而链表是链接块的列表,其中每个块都有数据和指向前一个块的指针。Merkle 树是一个二进制的散列树。每个块都包含 Merkle 根的散列,以及诸如前一个块的散列、时间戳、随机数、块版本号和当前难度目标等信息。Merkle 树为区块链技术提供了安全性、完整性和不可否认性。Merkle 树,连同密码术和一致算法,是区块链技术的基础。例如,以太坊区块链使用帕特里夏树数据库来存储信息。Patricia tree (Trie)是一个 Merkle 树,它就像一个键值存储。就像 Merkle 树一样,Patricia 树也有一个根哈希。这个根哈希可以用来引用整个树。因此,如果不修改根哈希,就不能修改树的内容。每个块包含自上一个块以来发生的事务的列表,并且在应用那些事务之后,Patricia 树的根散列代表新的状态(状态树)。
genesis 块(第一个块)不包含指针,因为它是链中的第一个。下图显示了区块链中块的关联列表:
区块链结构
根据区块链的类型,数据存储在块中。例如,Hyperledger Fabric 的块将包含渠道信息,而比特币区块链将包含关于发送者、接收者和金额的数据。我们已经多次使用了术语 hash 。哈希是数据的唯一摘要。加密散列算法(如 SHA 256 算法)可以生成数据的固定长度散列值。这些哈希有助于轻松识别数据块,也有助于检测对数据块所做的任何更改。每个块都有前一个块的散列;因此,区块链本质上是一串散列。任何连接到区块链的新节点都将收到区块链网络的副本。只有在协商一致的情况下,才会将区块添加到本地区块链。
交易在区块链上进行数字签名,以确保存储在其上的数据的安全性和完整性。它们通过使用非对称加密技术的数字签名来保护关于块、交易、交易方等的信息。使用私钥对事务进行签名,任何拥有公钥的人都可以验证签名者。数字签名检查篡改。数字签名保证了完整性,因为加密的数据也是经过签名的。因此,任何篡改都会使签名无效。由于数据已经加密,因此无法检测。即使被检测到,也无法篡改。数字签名也保护了发件人(所有者)的身份。私钥链接到所有者(用户);因此,签名在法律上与所有者相关联,并且不能被否认。在本节中,我们详细讨论了事务。在下一节中,我们将介绍基于以太坊的区块链平台的交易流程。
网路层
网络层,也称为 P2P 层,是负责节点间通信的层。它负责发现、事务和块传播。这一层也可以称为传播层。该 P2P 层确保节点可以发现彼此,并且可以彼此通信、传播和同步,以维持区块链网络的有效当前状态。访问本章中的以下事务流小节,从事务广播、事务提议、事务验证和事务提交方面体验 P2P 层。这一层还负责世界状态传播。P2P 网络是一种计算机网络,其中计算机(节点)是分布式的,并分担网络的工作负荷以达到最终目标。节点在区块链上执行事务。有两种节点——完全节点和轻型节点。完整节点确保交易的验证和确认、挖掘以及共识规则的实施。他们负责维护网络中的信任。轻型节点只保留区块链的报头(密钥),可以发送事务。
交易流程
这里描述的事务流强调了 P2P 网络层中节点之间的交互。下图显示了以太坊区块链的交易流程:
区块链交易流程
以下要点强调了以太坊区块链的交易流程,如上图所示:
- T
-
本地节点验证:一旦本地以太坊节点收到交易,本地以太坊节点将执行以下检查:
- 检查数字签名与发件人地址和交易内容的一致性
- 检查发送方是否有足够的汽油来支持正在处理的交易
- 检查交易是否会导致智能合约的功能失败
-
广播到区块链网络:交易被广播到区块链 P2P 网络,在那里完整的节点将执行以下检查:
- 重复上述验证检查
- 完整节点相互通信
- Miner 节点将把事务放在一个挂起的块中,并启动 consensus(例如,PoW ),以便它可以尝试解决这个难题
-
验证、开采和添加 d 到区块:以下步骤确保区块验证和添加到区块链:
- 一旦事务被验证和挖掘,它就被添加到有效块中
- 矿工将解开谜题并找到有效区块,该区块将被添加到区块链中
- 添加到区块链的有效区块:将有效区块附加到区块链,并广播到节点;
- 挖掘器节点将把有效块附加到区块链。
- 挖掘器将向节点广播有效块。
- 在将该块附加到区块链后,挖掘器将把它广播到区块链对等节点,并且每个节点将再次验证该块,以确保当前(新)块与先前块的一致性。一旦验证成功,节点将向其节点广播,依此类推。
- 事务完成:发起节点将本地副本与区块链同步,并执行事务;
- 最后,块到达启动事务的节点
- 本地节点会将其本地副本与区块链同步,并将执行块中的事务
- 交易被标记为已完成
共识层
共识议定书是区块链平台存在的核心。俗话说,每个区块链背后,都有一个共识算法。共识层是任何区块链(以太坊、超账本或任何其他)最关键和最重要的一层。Consensus 负责验证模块,对模块进行排序,并确保每个人都同意它。以下是关于共识层的要点:
- 共识协议(算法)在分布式 P2P 网络中的节点之间创建了一组无可辩驳的协议。
- 一致性使所有节点保持同步。共识确保所有节点同意真理。
- 共识确保了权力的分散。没有一个实体能够控制整个区块链网络。
- 共识保证了一个单一的链条被遵循,并且它持有真理。
- 共识是节点遵循的规则,以确保事务在这些规则的范围内得到验证,并且块遵循这些规则。
- 共识导致参与节点一致接受真理。
- 对于使用加密货币(例如以太坊)的区块链,共识也奖励验证交易和维护区块链网络的节点。
- 按照设计,共识协议不能被复制,因为复制或模仿它们既昂贵又耗时。
- P2P 网络中的可靠性是通过共识协议来实现的。
不同类型的区块链有不同的共识方法。例如,共识被以太坊、比特币等无许可的区块链网络追随时,被称为概率共识。这种共识保证了分类账的一致性,尽管不同的参与者可能对这些区块有不同的看法。这意味着它们仍然容易受到分类账分叉(也称为分歧分类账)的影响。允许的区块链(如 Hyperledger Fabric)遵循确定性算法。这种区块链网络有称为排序节点的特定节点;由这些排序节点验证的块被认为是最终的和真实的。因此,不存在分叉的可能性。
下表概述了本书中提到的一些共识算法的快速比较:
| 事实 | 功率 | 位置 | PBFT | | 区块链的类型 | 未经许可 | 无权限和有权限 | 许可的 | | 交易的终结 | 盖然论的 | 盖然论的 | 确定性的 | | 需要令牌 | 是 | 是 | 不 | | 用法示例 | 比特币,以太网 | 艾瑟芬 | 超分类帐结构 |
请访问区块链部分的结构,了解各种共识算法的详细分析。
应用层
应用层由智能合约、链码和 dApps 组成。应用层可以进一步分为两个子层——应用层和执行层。应用层包含最终用户用来与区块链网络交互的应用程序。它由脚本、API、用户界面和框架组成。对于这些应用程序,区块链网络是后端系统,它们通常通过 API 与区块链网络连接。执行层是由智能合约、底层规则和链码组成的子层。这个子层有实际执行的代码和规则。事务从应用层传播到执行层,但是事务在语义层(智能契约和规则)被验证和执行。应用程序向执行层发送指令(链码;在 hyperledger 结构的情况下),它执行交易并确保区块链的确定性(如 Hyperledger 结构的许可区块链)。
将在以太坊运行时引擎上执行的智能合约是用 Solidity 编写的。它需要编译器从语法上证明代码。由于是编译的,字节码更小,在 EVM 上运行更快。在 EVM 上执行的代码是完全隔离的,不与网络或文件系统进行任何交互。
智能合约:具有业务逻辑的代码由唯一的地址标识,驻留在 EVM 上。智能协定包含在针对这些功能执行交易时执行的功能。根据智能合约的逻辑,交易可能会导致合约中的状态发生变化。开发人员可以使用任何语言,如 Solidity 或 Python,来编写智能合同,并可以使用特定的编译器将代码编译成字节码,然后将这些字节码部署到区块链。部署后,将为智能合同分配一个唯一的地址。区块链上的任何用户都可以根据该智能合约执行交易。以太坊区块链的交易步骤请参考以下交易流程。智能合同是用 Solidity 之类的高级语言编写的,并被部署到 EVM 执行。但是,有一些代码将智能合同与外界联系起来;例如,区块链、逻辑执行等等。这些被称为神谕和 dApps。
神谕 : 智能合约对值进行操作,并触发合约状态变化,但仅当满足定义的逻辑时。oracle 是一个代理,其任务是安全地向智能合约提供这些值。Oracles 就像来自第三方服务的数据源,为智能合约提供价值。
chain code(Hyperledger Fabric):智能合约是控制业务对象生命周期的交易逻辑,包含在世界状态中。智能合同被打包成链码,然后部署到区块链商业网络。在 Hyperledger 中,智能合约管理交易,而 chaincode 管理智能合约的打包和部署。一个链码可以包含许多智能合约。例如,在保险链代码中,可以有针对索赔、责任、处理等的智能合同。Chaincode 定义分类帐的数据模式,启动它,对分类帐执行更新(基于共识),并对分类帐数据的查询做出响应。Chaincode 还发出事件,这允许其他应用程序订阅 chaincode 事件并执行后续的下游功能或流程。
在 Hyperledger Fabric 中,没有像 EVM(以太坊)这样的虚拟机。链码部署在网络节点上,智能合约运行在一个组织拥有的对等节点上,大多用 Java、Node.js、Go 等标准语言编写。Chaincode 运行在一个安全的 Docker 容器上,每个区块链实例都可以使用这个容器。这些容器独立于网络中的其他节点;然而,这些链码是由对等节点编排的,充当代理,允许通过 REST APIs 或 SDK 访问客户端应用程序。
为通道初始化链码。管理员可以为给定渠道的链码定义认可策略。这确保了打包在链码中的所有智能合约都可以用于该渠道。因此,链码可能会根据为该通道配置的认可策略,在不同的通道上遵循不同的认可策略。智能合约可以在同一通道或其他通道上与其他智能合约通信。
dApps : dApps 是一种分布式应用,运行在区块链等分布式技术之上,如以太坊、比特币或 Hyperledger Fabric。这是一个分散的应用程序,利用智能合同或链码。dApps 可被视为与智能合同或链码交互的 web 应用程序;然而,dApps 不是由单个实体或组织控制的。一旦部署,他们就属于区块链网络。dApps 是用户友好的应用程序,商业用户可以使用它在区块链网络上进行交易。智能合约允许您连接到区块链,而 dApps 允许您连接到智能合约或链码。例如,如果你去 LinkedIn,网页调用 API,API 从数据库收集数据。然而,在 dApps 和智能合约世界中,dApps 是基于 API 的 web 应用程序,与智能合约连接,智能合约反过来执行分类账上的交易。dApps 的几个例子是金融应用,如发票保理、KYC 等。
区块链的结构
当用户在传统系统上执行交易时,会有一个可信任的第三方参与其中,该第三方负责交易处理、交易记录、维护分类账和余额,并收取交易费用。对于像区块链这样的 DLT(例如以太坊),每个参与的完整节点都有一个分类帐副本(区块链)。信任是在系统本身上,因为不涉及任何一方。用户启动交易,交易被验证并分组(在一个块中),根据共识,该块被添加到分类帐(区块链)。
本节专门介绍块头的结构、事务、向块中添加事务以及最后向区块链中添加块。我们已经讨论了区块链,特别是以太坊。然而,我们将在随后的章节中详细研究 DLT,如 Hyperledger。在这里,我们将介绍特定于 Hyperledger Fabric 的结构、交易流、参与者和算法。访问 第三章、钻研超帐面料、了解超帐面料详情。
事务状态机
以太坊区块链是一个基于事务的状态机,它以一个起源状态开始。然后,事务将导致状态的改变,其中最近的状态被称为当前状态。因此,事务是两个状态之间的有效序列流的表示;区块链应该只包含因有效事务而发生的有效状态事务。
事务被分组到块中。使用加密哈希将一个块链接到前一个块,表示称为区块链的块链。这里,加密散列被用作参考。块本身就是日记账,区块链是分类账,块记录一笔或多笔交易。向矿工提供激励,激励发生在状态转换时。向矿商提供激励的区块链需要达成共识,将价值传递给矿商。例如,以太坊认为以太是以太坊区块链中的值,它用于向矿工提供激励。以太坊中的奖励使用最小的价值单位,威。
挖掘是一个过程,其中各种节点解决难题以验证事务,以便更多的事务可以作为块添加到区块链中。这种验证事务的过程称为挖掘。许多矿工同时行动以验证交易,一旦完成,他们提交他们工作的证明,这是数学证明。矿工们不仅要解决这个难题——他们还需要在其他矿工之前解决这个难题,这样他们才能把自己的区块加入区块链。这是矿工解决一个难题并提交一个 PoW 的过程。获胜的矿工被奖励某种形式的价值。如果是以太坊,那么一定量的以太作为奖励提供给矿工。
由于以太坊是去中心化的,每个节点都有股权,可以参与创建新的区块。也可能有恶意的参与者提出新的路径。因此,该系统确保达成从起源块延续到当前块的共识。以太坊使用 GHOST (代表贪婪最重观察子树)协议来检查区块链中多个分支的创建,并遵循最佳有效路径。
账户类型
帐户地址(160 位唯一标识符)和帐户状态之间的映射称为世界状态,它保存在 Merkle 树(Trie)中。Trie 在状态数据库中维护。因为根节点在加密上依赖于所有内部节点的数据,所以根节点的散列可以用作区块链网络的全局安全身份。
小物体构成以太坊的共享全局状态。这些对象通过消息传递框架进行交互。这些对象被称为账户。一个州与每个帐户相关联,每个帐户有一个 20 字节的地址,其中帐户由一个 160 位的标识符标识。以太坊有两种账户,外部拥有的账户没有关联的代码,它们可以发起新的交易。但是,合同账户附有合同代码和唯一的地址,它们不能发起新的交易。合同客户只能执行合同对合同的消息传递。请记住,外部帐户启动交易的方式是用其私钥对交易进行签名,然后将这些交易发送到另一个外部帐户或合同帐户。如果交易被发送到合同账户,这将导致合同账户(智能合同的账户)的业务逻辑的执行。
这两个帐户都有一个由四个部分表示的帐户状态:nonce、balance、storage root 和 code hash。对于外部拥有的帐户,nonce 突出显示从帐户地址发起的交易,而对于合约帐户,它表示由该合约帐户创建的合约。天平显示以太的基本单位(在以太坊区块链)。存储根保存 Merkle 树的根节点的散列,而代码散列包含部署在 EVM 上的合同帐户上的代码的散列。
探究块状结构
一个块由一个块头(BH
)、事务集(BT
)和当前块的 ommers ( BU
)的另一个块头组成,如以下代码所示:
B = (BH, BT, BU)
Ommers 是那些矿工,他们的街区成了孤儿,没能到达区块链。然而,他们成功开采了该区块,但他们的区块被及时添加。以太坊对这些矿工的激励也很低。
以太坊块头包含以下组件:
- 父哈希:父块头的哈希
- Ommers Hash :当前块的 Ommers 列表部分的 Hash
- 受益人:矿工的账户地址,谁有权获得奖励
- State Root:Trie 的根节点的散列
- 事务根 : Trie 的根节点的散列,具有块的事务列表部分
- Receipts Root : Trie 的根节点的散列,包含块中列出的每个交易的收据
- 日志泛滥:日志信息,如日志记录者地址和日志主题
- 难度:表示方块难度等级的数值
- 数字:显示祖先块值的数字;例如,对于 genesis 块,该数字为零
- 气体极限:显示每块气体极限的值
- 用气:显示区块内交易用气的数值
- 时间戳:该块开始的时间;本质上,它是系统时间
- 额外数据:包含块数据的数组;它只有 32 个字节,应该只包含相关数据
- mixHash :一个哈希值,当与 nonce 混合时,将证明在块上执行的计算的充分性
- Nonce :一个哈希值,当与 mixHash 混合时,将证明在块上执行的计算的充分性
每个交易的收据包括交易所在区块的累积天然气价格、为交易创建的日志集、来自交易日志的布隆过滤器以及交易的状态代码。
处理
交易由外部帐户签署和创建。这些交易导致在合同账户之间发送消息并创建合同账户。每个交易有以下字段:
- Nonce :登记发送方发起的交易数量
- 气价:为执行交易的计算成本而支付的价值(价格),单位为魏
- 气限:给定交易的最大气限;给定交易的成本不应超过此限制
- 至:消息或交易接收方的地址
- Value :要转账给收款人的成交金额
- V 、 r 、 s :交易发送方签名
- Init :通常与合同创建交易关联,指定账户初始化的 EVM 码;它在创建帐户时执行一次,然后被丢弃
- 数据:消息调用的输入数据
下图显示了事务、块以及块到区块链的包含,这将在本节中详细讨论。请在阅读交易组件、块标题组件、区块链和交易流时参考此图。这也表明在整个过程中包含了共识:
处理
交易在 EVM 执行。当事务被执行时,它通过初始验证:
- 发起人签名的有效性
- 交易随机数的有效性(必须与发送方的当前随机数匹配)
- 检查气体限制(它应该大于交易使用的固有气体)
- 事务的格式良好性
- 发送者的帐户应该有足够的资金用于预付
成功验证交易后,将执行以下步骤:
- 交易费用从发送者的账户余额中预先扣除。
- 发送者账户的现时值增加 1。
- 执行事务,在事务执行期间,执行契约(智能契约)中的事务逻辑。
- 在事务执行的同时,收集各种子状态信息,如日志系列和退款余额。此外,计算剩余气体(总气体限制减去使用的固有气体)。
- 一旦交易被用于创建有效状态,未使用的气体被退还给发送者,矿工被激励,并且用于交易的气体被添加到气体计数器,该计数器跟踪作为区块的一部分的所有交易使用的总气体。
- 最后,更改状态并为事务创建日志。
向块中添加事务
现在,我们知道交易是在 EVM 中执行的,它们必须经过各种验证和处理步骤。
在本节中,我们将逐步介绍向块中添加事务的步骤,如下所示:
- 验证 ommer :在区块链头中,每个 ommer 块必须是一个有效的头
- 验证交易:用于区块的 gas 应等于或少于用于区块中列出的所有交易的 gas
- 应用奖励,也称为激励:矿工被奖励
- 验证状态和块随机数:将状态更改应用于每个事务,并定义新的块
将块追加到区块链
现在,我们了解了如何将事务添加到块中。在本节中,我们将了解如何向区块链添加块。我们已经知道块头包含 mixHash 和 nonce,这证明了在块上执行的计算的充分性。这种计算的充分性被定义为矿工创建一个新块必须经历的总难度。对于总难度或者方块难度的算法被称为 PoW 算法(以太坊也称为 Ethash)。一个方块只有在包含给定难度异能时才有效(可能很快就会被 PoS 取代)。
通过扫描块的头部直到该时间点,为每个块计算种子。根据种子,计算伪随机缓存,并根据缓存生成数据集。完整客户端和挖掘器需要存储这个数据集。挖掘器将随机选取数据集的一些片段,并将它们散列到 mixHash 中。每个挖掘器将继续重复这组生成 mixHash,直到 mix hash 匹配 nonce。当 mixHash 匹配随机数时,随机数被认为是有效的,因此该块被认为是有效的,并且可以被添加到区块链。属于该模块的交易也被视为已确认。
记住,网络上有许多矿工,他们在不同的时间听到交易的消息。因此,每个采矿者开采不同的交易(这也可以基于与每个交易相关联的交易费用),并且生成其自己的区块。既然每个矿工都在用自己的一组事务构建自己的区块,那么被挖掘和验证的区块是如何达成一致的呢?他们在共识的基础上达成共识。
一致性算法
显然,采矿者执行交易的验证,并建立他们自己的交易块。一旦他们解决了这个难题,并创建了一个新的有效块,他们就把它广播到区块链网络。这就是区块链的共识算法出现的地方,它将确保区块链网络就交易的排序以及谁的有效块需要被添加到区块链达成共识。请记住,关于的区块被视为区块链上的下一个区块的决定也决定了矿工的奖励。这由诸如 PoW 或 PoS 之类的一致算法来处理。
以太坊使用 PoW,很快就会转移到 PoS。由于 PoS 是区块链网络的共识算法,任何首先解决问题并广播有效块的矿工将被认为是获胜者。在 PoS 中,新区块的创建者以确定的方式被选择,这取决于其财富,也定义为其股份。有趣的是,PoS 中没有整体奖励,因此矿工将获得交易费。这就是为什么 PoS 里矿工是伪造者而不是矿工的原因。下表列出了 PoW 和 PoS 之间的差异:
| 功率 | 位置 | | PoW 是区块链网络中的原始一致性算法。 | 区块链的下一个共识算法,比如以太坊。 | | 采矿者相互竞争,以验证并提议将有效区块添加到区块链,从而使采矿者获得奖励。 | 没有矿工,也没有采矿奖励。伪造者(新区块的创建者)被确定性地选择,并被提供交易费。 | | 有效区块的第一个矿工被奖励。 | 一个区块的创建者是由他们在一种货币中的份额或股份决定的。 | | 许多矿工解决困难是昂贵的,并且需要计算能力和能量。 | PoS 方式更环保,更便宜。 | | 主要的好处是抗 DoS 攻击防御和对挖掘可能性的低影响。采矿的可能性可能导致这样的情况,即持有大量股份的人最终可能掌管区块链网络。 | 通过 PoS Casper,将会有一个验证者池和网络,该网络将从该池中选择伪造者。伪造者需要提交押金才能参与,并被列为验证者池中的验证者。如果他们违反或行为不端,他们将被经济起诉,他们的存款将被没收,伪造者将被除名。 | | 主要的缺点是巨大的开支,无用的计算和 51%的攻击,其中 51%的攻击意味着用户或团体控制了网络的大部分挖掘能力。 | 对于一个执行 51%攻击的验证器,他们需要拥有价值(货币)总供应量的 51%。所以,对于有人攻击以太坊来说,美元金额以十亿计,其发生与现实相差甚远。 |
下面详细概述了一些共识方法:
- PoW :这是首创的共识算法。它被用于比特币和其他加密货币。共识是一种算法,它处理交易块,并在节点之间达成协议时将它们添加到区块链中。因此,对于遵循功率一致性网络,该网络遵循功率规则来建立各种事务处理块并将它们添加到区块链。发电并允许一个节点向区块链添加一个块的过程称为挖掘,参与挖掘的节点称为矿工。在矿工向区块链添加一个区块之前,PoW 要求矿工解决一个复杂的商业问题(也称为难题)。作为解决商业问题(难题)的交换,矿工得到奖励。在像比特币或以太坊这样基于货币的区块链,他们被授予加密货币。本质上,挖掘器与其他挖掘器竞争来为每个散列函数找到正确的散列。一旦挖掘器找到解决方案并找到正确的散列,它就将它传播到 P2P 网络中的所有其他节点。其他节点在将块(事务集)添加到区块链之前验证散列。为了保持阻塞时间,问题(难题)的难度水平由网络动态改变。在多个矿工同时解决问题的情况下,最长的链被认为是赢家,因为最长的链是最值得信任的链。 它解决了双重支出的问题,但是从能源和费用的角度来看,速度慢且成本高,并且不可扩展。
-
PoS :这是 2011 年提出的 PoW 的替代方案,最早由 Peercoin (2012)实现。在 PoS 中,矿工开采的概率取决于矿工在系统中拥有的赌注(硬币)。例如,拥有 15%股份(硬币)的矿工有 15%的概率开采下一个区块。攻击一个基于 PoS 共识的区块链网络是昂贵的,并且也是节能的。因此,在 PoS 中,创建区块并获得奖励的概率取决于网络中的赌注。本质上,创建区块的概率与基础加密货币的赌注成正比。 但这难道不意味着富人变得更富吗?为了防止这种情况,PoS 遵循随机化,即检查集中化,当一个富裕节点变得更加富裕并最终接管整个网络时,可能会出现这种情况。攻击者每尝试一次基于 PoS 连接区块链网络,就会损失一部分股份。PoS 的问题是无利害关系问题,其中块生成器可以投票给多个区块链,也称为分叉,因此,它们可以阻止系统达成共识。
-
耗时证明 ( PoET ):由英特尔于 2016 年推出,PoET consensus 算法适用于 Hyperledger sawtooth 等许可的区块链网络。PoET 算法基于等待时间,其中参与节点(称为验证器)等待随机选择的时间段。本质上,验证器生成一个随机的等待时间,并在这段时间内休眠。第一个醒来的节点(也称为醒来时间最短的节点)将有机会向区块链提交新的块,并将该信息传播到 P2P 网络中的所有节点。利用这种随机等待时间,每个节点都有公平且相似的概率向网络添加数据块。PoET 算法需要处理两个任务——首先,它需要确保参与节点确实选择了一个随机的睡眠时间(不是最短的睡眠时间),其次,节点已经到达睡眠时间,并且没有在睡眠时间的中间被唤醒。PoET 具有成本效益,为所有参与者提供平等的机会。但是,它不适合无许可的公共区块链网络。 PoET 产生了一个领导者选择,领导者被随机分配给整个网络中的验证者。由于验证者参与的成本低,它扩大了验证者的群体,因此增强了一致性算法的鲁棒性。
-
拜占廷 容错 ( BFT ):这不是来自家族的证明算法。它的名字来源于经典的拜占庭将军问题。一支军队,连同他们的拜占庭将军,包围了一座要塞城市。将军们分散在要塞城市的各个角落,为了成功的进攻,他们需要齐心协力。如果所有的将军不一致进攻,他们就会输掉这场战争。现在,他们需要互相沟通达成共识,以便同时攻击。 用技术术语来说,它需要一个有几个对等节点的系统来达成共识,即使很少有攻击者和恶意节点试图影响节点。实用的拜占庭容错算法可以帮助解决 BFT。
-
实用拜占庭 容错(PBFT):Hyperledger Fabric 使用了这种共识机制。PBFT 提供了一个拜占庭状态机复制,该复制被设计为容忍恶意节点(拜占庭错误)。所有节点都是按顺序排列的,其中一个节点被声明为领导者节点(主节点),其他节点被称为追随者节点(辅助/备份节点)。任何节点都将通过从跟随者节点转换到引导者节点而成为引导者,主要通过循环算法。所有节点都进行通信,并需要执行两项任务—首先,它们需要验证消息来自特定的对等节点,其次,它们需要验证并确保消息在其通信期间未被修改。不管网络状态如何,所有节点都将使用多数原则达成共识。整个网络是基于不超过三分之一的网络节点是恶意的这一假设。节点越多,网络就越安全。它有以下几个阶段:
-
客户端向领导节点发送请求
- 领导者节点将此消息传播给所有追随者(次级)节点
- 所有节点(领导者和追随者)将按照客户端的请求执行任务,并向客户端发回响应
- 客户端将验证响应,并确保当它收到具有相同结果的 n + 1 回复时,请求(攻击或撤退)被成功服务,其中 n 是恶意节点的最大数量
这也是基于节点是确定性的这一事实。当所有诚实节点就订单达成一致并集体接受或拒绝订单时,获得最终结果。
区块链网络的类型
概括地说,有两种区块链网络——公共的和私有的。两者都是 P2P 网络,账本分布在那些可以参与交易的人中间。参与者之间复制分类帐副本,可以对分类帐执行仅附加事务处理的各方将持有分类帐副本,并将参与达成共识,以向区块链添加冻结。除了公开或私有之外,区块链还可以是无权限(如比特币或以太坊)和有权限(如超账本区块链框架)。
未经许可的区块链也被称为公共区块链,因为任何人都可以加入该网络。无许可 P2P 系统不要求一定数量的对等体在线,并且通常速度较慢。各方在没有验证交易方身份的情况下在无许可区块链上通信。任何人都可以加入以太坊这样的无权限区块链,并且可以执行读写交易。由于参与者是未知的,所以网络中有可能存在恶意参与者。
许可网络是区块链网络,其中只有预先授权的用户或组织可以执行写事务。由于节点有限,它们速度更快、成本更低、符合规定,并且易于维护。对于许可的区块链来说,对参与方的预先验证是强制性的,因此,交易方是由。许可的 P2P 网络必须保证正常运行时间,并要求通信链路上的高水平服务质量。诸如 Hyperledger Fabric 之类的许可区块链确保只有交易方是交易的一部分,并且交易记录只显示给那些参与者,而不是整个网络。因此,诸如数据隐私、不变性和安全性等功能是 Hyperledger 提供给企业的主要功能。
尽管区块链网络在权限上有两种类型——公共和私有,但它们可以分为公共和无权限、公共和有权限、私有和无权限以及私有和有权限,如下图所示:
区块链的类型
基于权限的区块链网络可以分类如下:
-
公开和无许可的区块链:这些是公开透明的,提供非中介化和匿名性。他们是不可信的,并提供不变性。这意味着他们在 T2 向任何加入区块链网络的人开放。(节点上的)用户可以用所需的软件启用他/她的系统,并加入区块链网络。公共区块链取消了中介,降低了成本,减少了对账所需的时间,并在网络中提供了透明度。公众区块链不信任,信任在共识中。事务被复制到每个参与节点,consensus 负责验证并同步要添加到区块链的事务。这使得不可信方可以放心地执行交易。节点越多,撤销一个事务就越不可能;因此,公共区块链是不可改变的。虽然交易可以被任何人阅读,但是用户的身份是受保护的,因此提供了匿名性。
-
公共的和许可的区块链:这些是可扩展的,有成本效益的,透明的,并且提供非中介化和匿名性。公共和授权的区块链允许任何人读取交易,但只有少数授权用户可以写入交易(例如,政府雇员的工资和房地产登记)。或者,它可以允许少数人读取事务,而让所有人写入事务(例如,投票)。公共和许可的区块链被指定用于这样的使用案例,其中人或当局(例如指定的员工或机构)批准具有公共可见数据的交易。如果一个公共的许可的区块链是允许任何人阅读它并且只有少数被许可的参与者在上面写的类型,那么这样的系统不需要基于昂贵的共识算法,例如 PoW。这样的区块链网络是可扩展的。不是每个人都会参与验证,选择一个验证者。因此,与公共的无许可网络相比,它并不慢,也不昂贵。虽然没有中介,但只有少数学会阅读或写作。
- 私有且无权限的区块链:只有个人或选定的成员可以运行完整的节点来处理、验证和读取事务。少数人可以执行写事务和验证事务,而所有人都可以读取。它可以应用于包含审计的用例,并且主要由希望探索企业内部区块链的企业采用。所有的权限对企业来说都是核心的;因此,它们不是分散的,它们可以是分布式的。从积极的方面来看,它允许企业遵从法规并满足实施区块链的隐私需求。此外,它允许加密审计。然而,分散式网络的整个概念已经丢失。
- 私有和许可区块链:公共区块链导致我们运行一个完整节点的场景,这意味着该节点正在为该网络的所有应用执行计算。这降低了区块链网络的性能。这可能适合一些用例;但是,对于企业需求,公共区块链不是答案。企业正在寻找一种区块链网络,其中的节点只执行给定应用程序所需的那些计算。此外,他们需要一个区块链网络,在该网络中各方是可识别的(不一定是可信的)并且可以授予权限。此外,即使所有参与者都在同一个区块链网络上,也可以保证某一组参与者之间的数据隐私。此外,共识由一组预定义的节点控制,这导致了更快和低成本的业务网络。
企业需求的答案是一个私人的和许可的区块链网络。私人和许可的区块链也可以被称为区块链财团。财团(成员组成的财团)控制着它们。节点是预定义的,并且定义了访问权限。这种区块链网络的例子是 R3 和 Hyperledger Fabric。
私人和许可的区块链/财团提供以下服务:
- 比公共区块链更好的治理:公共区块链网络缺乏确保区块链网络有效发展的治理(例如,更新、运营机制的改变和共识)。因此,纠正缺陷的速度很慢,阻碍了创新。另一方面,财团可以快速行动,因为志同道合的企业可以快速决定创新并发展业务网络,以满足企业的动态需求。
- 性价比:公共区块链前期成本低;但是,对于启动事务的节点来说,这种方法的成本很高。最初的基础设施成本可能很低,但运营成本会随着时间的推移而增加,这反映在交易成本的增加上。由于公共网络是不可信的,信任存在于共识机制中。诸如 PoW 和 PoS 之类的昂贵的共识机制不适用。在一个财团中,志趣相投的信任方参与其中。因此,不需要昂贵的共识机制。此外,财团不包括交易费。从很多方面来说,联合体不仅性价比高,而且速度更快。
- 隐私和安全:财团或私人和许可的区块链网络是高度安全的。访问控制层是联盟的一等公民,确保一组定义好的人能够访问网络。访问被定义为读取、写入和部署代码(智能合约/链码)以及验证事务。公共区块链由矿工——也称为验证者保护。他们解决复杂的问题(采矿)以验证交易,并作为回报,获得激励和奖励。在私有和许可的网络中,通过在不太可能串通的可识别节点之间预测性地分配对块创建的控制来确保安全性。恶意串通和 51%攻击不适用,因为此类恶意活动很容易被检测到,相关方将根据联盟管理规则受到处罚。不是每个人都能看到交易。这为企业和商业提供了放心交易的能力,信任商业网络提供的隐私。
下表从权限角度突出了不同类型区块链的异同:
| 公开且未经许可 | 公开和许可 | 私有和无权限 | 私有和许可 | | 公开透明。 | 开放和受限。 | 受限但透明读取。 | 受限(混合方法)。 | | 全部写入和全部读取。 | 全部写入和受限读取。 | 写受限和读全部。 | 写受限和读受限。 | | 每个人都可以加入、处理、阅读和审计。 | 每个人都可以加入和交易,但只有获得许可的用户可以阅读和审计。 | 每个人都可以加入,没有人可以交易,每个人都可以阅读和审计。 | 没有人可以加入、处理、阅读和审计。 | | 任何人都可以下载协议并参与验证交易。 | 符合预定义标准的任何人都可以下载协议并参与验证交易。 | 网络中的任何人都可以参与和验证交易。但是,这只是在企业内部。 | 只有联盟成员可以验证交易。 |
下表从交易和匿名的角度强调了不同类型的区块链之间的异同:
| 公开且未经许可 | 公开和许可 | 私有和无权限 | 私有和许可 | | 交易是匿名和透明的。 | 事务是匿名的,不透明读取。 | 事务不是匿名的,是透明读取的。 | 交易不是匿名的,也不是透明的。 | | 写事务可以由任何人创作或发起;比如,我要给比尔寄 10 个比特币。每个人都会知道交易了 10 个比特币。 | 写事务可以由任何人创作或发起;例如,我正在投票。不过,我投了谁的票,只能由认可机构计算。另一个例子是,写可以由少数人执行,而它可以由所有人读取。 | 很少人执行写事务,任何人都可以读取它。例如,授权方写入库存的来源,随后的写入由少数其他中间方或设备执行;然而,它可以被任何人阅读。 | 写事务可以由授权用户创作或发起;例如,我要给比尔寄 10 美元。授权机构将知道交易了 10 美元。 | | 每个人都会参与事务验证,验证者并不是被选中的人。 | 没有人可以参与事务验证,验证者是被选中的人。 | 没有人可以参与事务验证,验证者是被选中的人。 | 没有人可以参与事务验证,验证者是被选中的人。 | | 真正的民主:完全平等。 | 完全写入权益。 | 完整读取权益。 | 受限。 | | 交易审批时间很长。通常需要几分钟。 | 交易审批时间很长。通常需要几分钟。 | 交易审批时间短。 | 交易审批时间短。 |
下表显示了不同类型区块链的共识和用例:
| 公开且未经许可 | 公开和许可 | 私有和无权限 | 私有和许可 | | 开放和分散。 | 开放和受控。 | 受限。 | 封闭受限。 | | 任何人都可以运行完整的节点来处理、验证和读取事务。 | 不是任何人都可以运行完整的节点来处理、验证和读取事务。每个人都可以执行写事务,但很少有人可以验证和读取事务。 | 只有个别或选定的成员可以运行完整节点来处理、验证和读取事务。少数人可以执行写事务和验证事务,而所有人都可以读取。 | 只有联盟成员可以运行完整节点来处理、验证和读取事务。此外,只有获得许可的用户才能阅读。 | | 比如比特币,以太坊,莱特币。 | 比如以太坊。 | 比如 Hyperledger Fabric。 | 例如,Hyperledger Fabric、R3 和 Corda。 | | 共识-权力。 | PoS,PoA。 | PBFT。 | PBFT 和 FBA。 | | 用例—加密货币、视频游戏。 | 用例—投票、投票记录。 | 用例—供应链来源、政府记录保存和评估员记录。 | 用例—纳税申报单、财团、联盟。 |
公共和无许可区块链的优点如下:
- 创建和运行分散应用 ( dApps )没有基础设施成本
- 不需要可信的一方或中介;没有中介
- 该网络是公开透明的,并提供匿名服务
- 网络提供了不信任和不变性
公共和许可区块链的优点如下:
- 创建和运行 dApps 没有基础设施成本
- 不需要可信方或中介;没有中介
- 可扩展、快速且成本更低
私有且无权限区块链的优势如下:
- 交易成本降低
- 不需要和解
- 简化文件处理
- 减少数据冗余
- 更好地扩展
- 更好地遵守法规
- 自动化合规功能
- 启用终结
私有和许可区块链的优势如下:
- 有比公共区块链更好的治理
- 交易成本降低。没有和解的必要。
- 简化了文档处理,减少了数据冗余
- 因为参与者是预先批准的,并且身份是已知的,所以有更好的隐私和安全性
- 财团参与决策,而不是使用单一的一方
- 不存在单点故障
- 它的可扩展性更好,并且符合法规要求
- 它实现了终结
公开且未经许可的区块链的缺点如下:
- 可伸缩性:可以创建的事务数量是有限制的,在高峰期往往可以达到几分钟。因此,这种分散式系统是不可扩展的。
-
缓慢且成本较高:这包括以下内容:
- 每个人都会参与验证,没有选择一个验证者。当每个节点执行相同的任务时,例如执行代码(智能合约)或验证事务,可以达成共识。从存储、电力和处理能力等多方面来看,这种复制速度慢、耗时且成本高。
- 随着交易数量的增加,执行这些交易的成本也增加,这导致矿工执行高价值交易的堵塞,因此,系统变得缓慢和昂贵。
-
身份匿名:匿名参与者可能是恶意的。
- 不变性是一个挑战:虽然交易和块的不变性是公共区块链的主要特征,但代码的不变性(智能合约)是区块链网络的一个挑战。区块链将智能合约部署视为一项交易,因为它们是交易,所以是不可变的。因此,任何错误、问题或代码循环都无法纠正。这意味着,智能合同需要在部署之前精心构建和测试,并且应该有操作来终止(也称为关闭)调用以阻止进一步的损害。
- 终结:没有终结,51%攻击(理论)。
- 可以导致集中化:为了实现公共区块链的令牌化收益,节点作为完整节点运行。完整节点意味着节点携带区块链的完整副本。随着区块链网络规模的增长,较小的参与者和单个节点作为完整节点运行的成本变得很高。只有更大的参与者才能作为完整的节点运行,这种情况可能会导致集中化,从而影响区块链网络。
公共和许可区块链的缺点如下:
- 身份是匿名的——匿名的参与者可能是恶意的
- 不变性是一个挑战
- 没有终结和 51%的攻击(理论)
- 它会导致集权
私有且未经许可的区块链的缺点如下:
- 它仍然有一个中介,因此它不是分散的。
- 它是集中的,因此不是分散的。但是,它是可以分布的。
- 尽管恶意用户不能执行写事务,而只能读取信息,但是由于参与者没有被预先批准,所以他们的身份是未知的。
私有和许可区块链的缺点如下:
-
未完全分布:它仍然有一个中介,因此它不是完全分布的。
-
组建财团是一项挑战:组建财团需要志同道合的企业合作解决共同的商业问题。除了确定联合体的结构、运营和管理模式,还有各种问题需要回答,以便正式成立联合体:
- 如何确保财团不会导致权力集中?
- 谁控制财团?
- 主要联盟成员比后加入者受益更多吗?
- 谁会从现有的基础设施中受益?这是否会给新加入者或后加入者带来混乱、基础设施依赖或锁定?
- 谁决定新成员的加入或任何成员的排除?
- 谁决定是否将非核心成员纳入财团?
- 运营决策将如何执行?
- 该财团将如何融资?
- 纠纷是如何实现的?
- 争议解决和仲裁员:这包括以下内容:
- 由于财团包括各种企业和分散的各方,它有自己的业务复杂性。这些复杂性可能会导致纠纷。因此,财团必须有仲裁人来解决争端。这意味着财团需要仲裁功能,负责财团成员之间的参与合同(通过法律文件)。
- 联合体还可能需要智能合同(链码)审计员来验证智能合同,并验证智能合同与外部应用程序和数据源的接口和集成。这种独立审计员将向财团提供保证,并帮助发现漏洞。
在本节中,我们比较了不同类型的区块链,了解了它们的优缺点等。在下一节中,重点将放在区块链体系结构的分层结构上。
区块链平台
到目前为止,我们已经探索了不同类型的区块链网络。在本节中,我们将快速了解两个主要的区块链平台—以太坊和 Hyperledger Fabric。
以下是这两个平台的概述:
- 以太坊:这是一个开源的公共区块链网络。它是核心区块链概念的扩展,现在支持货币以外的应用。开发人员可以构建分散的应用程序(通过智能合约),甚至可以构建分散的自治组织 ( DAOs )。它是一个通用平台,交易由 PoW 共识验证。以太坊被用作企业对消费者 ( B2C )用例及应用的概念。这是一个公共的区块链;因此,所有参与者都可以访问分类帐。它支持可靠性,并内置货币(以太)。
- Hyperledger Fabric :它是一个企业应用的平台。这个平台是开源的、模块化的,运行 BFT 共识算法。Hyperledger 并没有真正的共识机制。由于其可插入的架构,共识可以根据用例插入其中。Ledger 不是公共的,它最适合于企业对企业 ( B2B )用例或应用。Chaincode(也称为智能合约)可以用 Java、Go 和 Node.js 等标准语言编写,它没有内置货币。
操作包括以下内容:
- 以太坊:这是一个公共区块链,参与者(节点)可以随时参与
- Hyperledger Fabric :这是一个私有的区块链,参与者(节点)被允许参与其中
共识如下:
-
以太坊:各个参与节点扮演的角色都差不多。所有节点都需要达成共识才能提交事务。每个节点都需要参与共识,即使该节点正在参与事务。以太坊共识基于 PoW 算法或 PoW/PoS 的混合(称为 Casper)。
-
Hyperledger Fabric :每个参与节点扮演的角色可以不同。有些节点是验证节点,有些是认可节点,有些是订购节点,等等。因此,在建立共识的过程中,不同的节点将执行不同的任务。节点可以选择无共识(No-op)或诸如 PBFT 的协议协议。没有第三方强迫选择协商一致机制。除了共识之外,Hyperledger Fabric 还在交易的生命周期中提供身份验证。它还支持渠道和私人数据收集,以便在各方之间进行更私人的交易。对事务进行排序,然后添加到块中,然后在通道中分发。通道进一步控制业务网络参与者对事务的可见性。
选择:根据使用案例和应用,您可以选择以太坊还是 Hyperledger。以下是需要注意的几点:
- 以太坊:以太坊是公开的,没有权限,提供透明性。它的各种优点在前一节中列出。但是以太坊的私密性和可扩展性较低。
- Hyperledger Fabric :它解决了隐私和可伸缩性问题,并提供了访问控制、高交易速度和弹性。最重要的是,它是模块化和可插拔的,可以适合各种 B2B 企业用例。
代码执行如下:
- 以太坊:代码,也称为智能合约,在 EVM 上执行。以太坊网络提供执行智能合同的服务,并允许他们达成共识。他们还提供调用外部神谕的服务。智能合同的范围是直到企业网络的生命周期结束。因此,用 KILL 方法编写智能契约是很好的开发实践。
-
Hyperledger Fabric : Code,也叫 chaincode,可以用 Java、Node.js、Go 等标准编程语言编写。链码在业务网络上执行,并由业务网络节点验证和认可。与以太坊不同,Hyperledger Fabric 支持链码版本控制和升级。从链码的角度来看,以下是 Hyperledger fabric 的一些亮点-
- Chaincode 可以升级到新版本,只要保持 chaincode 的名称不变;否则,它将被视为不同的链码。更新是区块链网络上的事务,导致新版本的链码与信道的绑定。在更新链码之前,请在背书器上安装新版本的链码。
- 旧版本会怎样?绑定到先前(旧)版本链码的所有其他通道可以继续执行旧版本。您向渠道提交链码升级交易。因此,只有一个通道受到影响,您已经对其执行了升级事务。不执行升级事务的所有其他通道将继续运行旧版本。
- 链码甚至可以停止。但是,在 1.4 版中,开始和停止生命周期事务是而不是实现的。这些是未来的增强。停止事务将是在升级之前停止链码事务的一种逻辑方式。
- 或者,您可以通过从签署者中移除链码容器来停止链码。实际上,您可以从运行认可对等体的每台主机(VM)上删除 chaincode 的容器。
Hyperledger Fabric 支持以太坊。从 Hyperledger Fabric 1.3 版本开始,用 Solidity 和 Vyper 编写的智能合同现在可以在 Hyperledger Fabric 上执行,因为它支持 EVM。这是一个新的智能契约运行时,支持 web3.js 来增强 dApps(分散应用程序)的开发。这进一步促进了 dApps 在许可的区块链的发展。访问https://www.hyperledger.org/了解更多关于此功能的详情。
区块链参与者
能够参与一个行动或区块链网络的实体被称为行动者,这是区块链行动者的缩写。在这一节中,我们将介绍参与区块链事务的各种行为者。然而,在我们进入细节之前,让我们简单回顾一下私人区块链。上一节介绍了各种类型的区块链网络。然而,在这一节中,我们将主要集中在为私有区块链网络定义参与者。
下表列出了私人区块链网络的一些主要属性,这些属性对于了解区块链参与者至关重要:
| 特性 | 私有和无权限 | 私有和许可(财团) | | 物主 | 单身业主 | 财团或创始人组织 | | 共识;一致 | 由单一所有者管理 | 由财团(一组指定的参与者)管理 | | 读取事务 | 任何节点 | 仅允许的节点 | | 网络 | 分布式的 | 分散的 |
私有区块链旨在解决企业业务案例,这种发展势头越来越猛。私人和许可是一个跨各种组织工作的区块链财团;但是,它有一个受控的用户群。参与者虽然不是完全信任的,但是是可识别的(有身份)。志同道合的企业或试图追求相似目标的企业可以组成一个联盟来满足业务需求,提高信任度、透明度和责任性,并增强现有的业务流程和工作流。
私人和未经许可的区块链,并没有真正分发。它们是分散的,完全由一个所有者控制。由于它由单一权威机构拥有和操作,在这样的网络中建立的共识不能被信任,因为选择用户和影响共识的权力在于中央权威机构。区块链财团(私人和许可的区块链)由创始人组织所有,但由财团(来自不同组织的参与者集合)管理。共识是可信的,因为各种组织都参与其中,而且他们对结果有着共同的兴趣。
财团提供许多好处,例如:
- 并非每个企业或组织都需要构建利用区块链的解决方案。他们可以共享业务网络,共同建设,性价比高,耗时少。
- 较小的组织可以加入联盟,并在按使用付费的基础上加入网络,但仍然可以在区块链上全面扩展他们的业务。
- 联盟的成员组织需要确定反映他们共同问题的用例。然后,他们可以定义一个管理机构,并共同构建解决方案来满足业务需求。
- 参与者的身份是已知的,这增强了信任度。
- 由于联盟成员管理区块链网络,共识不会受到影响。
- 区块链网络的访问控制和区块链网络的功能可以确保数据的私密性和增强的安全性。
- 参与许可由区块链网络的监管机构发放。
- 对交易数据和交易知识的访问仅限于特定交易的许可参与者。
- 联盟是有弹性的,并提供高安全性、性能、可伸缩性和事务吞吐量。
到目前为止,我们已经讨论了各种私人区块链网络和财团的好处。现在,让我们回到这一节的主题——演员。下图显示了私人区块链网络的各种参与者:
区块链参与者
在区块链网络的开发、运营和维护中,每个参与者都扮演着明确的关键角色。然而,最具挑战性的工作在于建筑师。
设计、构建、维护和使用区块链应用程序的架构涉及各种角色,讨论如下:
- 流程负责人 : 流程负责人是业务流程的主题专家。他们是识别业务挑战和帮助定义共同问题的关键,这成为形成联盟的基础。流程所有者是定义用例的关键参与者。他们是现有流程的主题专家,从功能角度定义未来流程,并为区块链业务网络奠定基础。
- 区块链监管机构:他们是商业网络的主要机构(创始人组织,成员来自联合体)。他们向参与者发放许可证(证书),通常有更广泛的网络访问权限。它们定义访问控制、颁发证书等等。他们具有关于流程的功能知识,并确保正确的参与者能够访问区块链网络的相关部分。它们是定义联盟的关键,因为私有和许可的区块链网络基于具有定义的访问控制的可识别参与者。与架构师一起,他们负责识别和定义以下内容:
- 为联盟和区块链网络的建立、发展和运作提供资金
- 选择区块链网络的基础设施
- 区块链网络中参与者和最终用户的访问控制和参与
- 定义和建立信任机构
- 为将导致区块链网络发展的项目定义管理
- 为联盟及其成员建立投资回报率
- 定义跟踪,跟踪程序,等等
- 区块链架构师:他们应该有商业分析的背景,应该对技术有所了解。区块链架构师应该了解他们的同行、共识、安全性、链码、集成、分类帐和应用程序。他们和权威机构一起,为联盟及其解决方案定义和决定共识算法、标准、最佳实践等的使用。区块链建筑师负责以下活动:
- 深入识别用例
- 为给定的使用案例分析并选择特定的区块链解决方案
- 确定哪种区块链/DLT 解决方案适合这些差距
- 提供评估、计划风险并定义里程碑
- 架构和设计解决方案
- 与基础设施、区块链运营商和开发团队合作,正确实现区块链解决方案
- 定义区块链网络的重用、可审核性和监控
- 分析并量化区块链网络的性能、弹性、安全性、可扩展性和交易吞吐量
- 定义区块链网络的版本控制策略、治理模式和生产准备情况
- 区块链解决方案提供商:财团可以选择 BaaS(云)产品作为区块链商业网络的基础设施。他们还可以建立内部解决方案。区块链架构师和区块链管理局可以决定基础设施。一旦做出决定,区块链解决方案提供商(云或内部)就可以负责区块链网络基础设施的设置、管理、维护和支持。区块链解决方案提供商是来自区块链云服务提供商的团队,他们负责创建和维护区块链网络,提供安全解决方案,并提供部署和维护智能合同或链码的便利。
- 区块链网络运营商:他们定义业务网络,配置业务网络,访问控制,监控业务网络。他们专注于区块链商业网络的运营部分。他们最关心的是对等体、共识和区块链网络的安全性,而不关心智能合约和用户界面代码。
- 区块链开发者:区块链开发者专注于代码(chaincode,UI,analytics)。他们还负责区块链网络的链码与其他应用程序、数据源、事件和分类账的集成。它们对区块链网络、共识、安全、对等体和订购者的工作是透明的。然而,他们应该了解区块链的基本面。作为一名区块链开发人员,任何对任何高级编程语言都有编程天赋并对区块链/DLT 技术有基本了解的人都可以履行以下职责:
- 开发智能合同或链码
- 部署和测试智能合约或链码
- 在代码中使用 API 与区块链网络交互
- 开发、部署和维护 dApps 和用户界面,作为智能合同的 web 应用程序
- 区块链最终用户:通过访问 dApps web 应用,最终用户能够通过 UI 或 web 应用消费区块链智能合约。这允许最终用户根据智能合约执行交易,而底层区块链技术对他们来说仍然是透明的。
- 区块链审计师:由于联合体包括各种企业和离散方,因此有其自身的业务复杂性。这些复杂性可能会导致纠纷。因此,财团必须有仲裁人来解决争端。这意味着财团需要仲裁功能,负责财团成员之间的参与合同(通过法律文件)。目前,注册会计师当局将处理这些法律文件,直到它们变成智能合同(链码)并充当智能仲裁员。联盟可以聘请智能合同(链码)审计员来验证智能合同,并验证智能合同与外部应用程序和数据源的接口和集成。这样的独立审计员将为财团提供保证,并帮助发现漏洞。此外,它允许监管机构,如证券交易委员会,有一个只读的数据拉,使他们能够确定交易细节中的宇宙的可用信息。
老板
区块链是颠覆性的技术,是未来。然而,由于技术复杂性、缺乏专业知识和技能以及运营开销,区块链的采用速度很慢。随着 BaaS 产品进入区块链解决方案,云服务提供商逐渐解决了这些挑战,这就明确了我们应该在哪里托管解决方案。
到目前为止,我们已经讨论了 DLT,区块链,集中和分散系统,以及分类账。我们还看了区块链结构、积木等等。现在,我想通过为后续章节中的下一步打下基础来结束本章。本节讲的是这本书的重心 ( CG )。后续章节将围绕用例以及使用 Oracle 区块链云平台(BaaS)的用例实现展开。在这个阶段,您可能会好奇我们将如何实现它。请将本节视为对区块链解决方案提供商及其定位的一瞥。在实施区块链之前有许多步骤。他们从识别用例并选择解决方案提供商开始。您需要回答的一些问题如下:
- 你为什么需要区块链,背后的理由是什么?
- 是战略选择还是战术推进?
- 你在建造什么,如何建造?
- 谁参与,他们如何参与,谁来决定,等等?
- 解决方案将驻留在哪里——本地还是云上?
- 谁将管理它?
- 谁来照顾韧性?
许多答案都在 BaaS 身上。
BaaS 限定词
BaaS 是一个区块链平台,托管消费者的区块链应用程序和解决方案。区块链平台(BaaS)提供商收费处理区块链基础设施的设置、维护和支持。这对企业和企业家来说是一种推动,因为它减轻了客户的负担,使他们能够专注于识别用例以及开发区块链应用和解决方案。诸如网络可用性、可伸缩性、性能等等都属于服务提供商。区块链触及广泛的受众,包括建筑师、设计师、开发人员、热情的布道者、业务和流程所有者、IT 战略家和经济学家。此外,BaaS 作为一个全股权的基于云的解决方案,使企业家、热心的传道者、企业等能够及时有效地把握 DLT 和区块链的潜力。BaaS 正在成为扩大 DLT 和区块链市场的真正催化剂。
以下是选择 BaaS 提供商时要考虑的一些限定因素:
- 标准:包括以下内容:
- 它是一家成熟的云提供商吗?
- 是否基于行业标准?
- 是否兼容互操作?它也可以与其他分类帐互操作吗?
- 快速设置:它是否支持区块链网络的快速配置?
-
集成和其他服务:包括以下内容:
- 它支持将 OBP 与 SaaS、PaaS 和其他本地应用程序集成的 REST 代理吗?
- 它是否提供数据安全、集成服务和对象/文档存储等服务?
- 它是否提供云服务,如容器、计算和存储服务?
-
安全和隐私:包括以下内容:
- 它是否提供集成的身份管理和安全性?
- 它照顾到隐私、数据分区和私有通道了吗?
- 是否有弹性:这些包括以下内容:
- 它提供高可用性吗?
- 它提供备份和灾难恢复吗?
- 它是否提供增强的性能(区块链网络和共识)?
- 智能合约 / 链码 — 部署、版本控制、标准、审计和测试:包括以下内容:
- 它是否提供 Java 和 Node.js 等标准语言的链码部署?
- 它允许回滚到以前版本的 chaincode 吗?
- 它提供/支持测试链码的工具吗?
- 它有可信的开发社区吗?
- 自食其果:它会在市场上提供应用程序并构建自己的 BaaS 吗?
- 监控:它提供交易监控和仪表板吗?
下图突出显示了 BaaS 平台的关键限定条件:
BaaS 限定词
BaaS 使用案例
简而言之,BaaS 解决了成本、效率和透明度方面的挑战。它允许企业探索、试验、体验,然后从事区块链。它消除了实现的复杂性,使企业能够专注于核心。它类似于陈年威士忌。你可以信任它的制造商,付钱让它享受。你不需要知道它是在哪里制造的,在什么条件下制造的,是如何处理的,等等。区块链实现产品溯源。
围绕用例的想法正在爆炸,这可能对 DLT 有利,而区块链和 BaaS 将推动采用 DLT 和区块链的浪潮,从而为企业、客户和企业家实现和实现这些想法。利用 BaaS 可以解决各种使用案例:
- 能力 ( 教育和职业):能力的分类账可以作为证书、评估、技能等等的单一来源。它提供了强大的所有权,对资产(证书、抄本、技能、证据等等)的完全授权,并提供了一个解决方案来完全跟踪和追踪个人的证书、技能和知识。除了证书,还有各种各样的用例。例如,在雇用某人时,组织需要关于申请人资格的真实可信的信息。技能台账将提供一个台账,里面不变的保存着申请人的证书、技能、经验、专长以及其他相关报告。此外,由于这些记录是不可改变的,即使是申请人也无法伪造这些记录来满足特定的工作要求。我们很容易计算出雇佣伪造技能的求职者的风险。
- 供应链:供应的分类账可以作为资产管理、采购、产品生命周期管理、物流、来源、欺诈检测等的单一来源。它可以超越出处(产品跟踪)到区块链供应链管理的整个生命周期。
- 政府:政府机构持有公民数据和各种其他类型的敏感信息。敏感性商数带来了安全和隐私风险。区块链的公共存储库,以及哈希、加密和其他成熟的技术,可以解决黑客攻击、数据修改、信息丢失等问题。一个lT4【信任的边缘人】可以照顾公民权利、选票、捐款等等。具有信任分类帐的投票平台可以确保无欺诈投票和无欺诈计票,并检查投票操纵。结果是快速的,并且执行选举的整个练习可以是成本有效的、及时的和可信的。 唯一身份 ( UID )的台账可以数字化安全身份管理。
- 房产:所有权台账可以作为房产所有权的凭证,方便房产挂牌,允许分分钟过户,降低房产挂牌成本等等。
- 医疗保健:健康的分类账可以发展成为跟踪患者和医生信息的真理。这将解决药品假冒问题,确保处方和病历等信息的安全和受控交换,等等。当前的系统将医疗信息存储在孤岛中,在共享和使用方面有很大的限制。健康的分类账将导致信息存储在一个不可变的安全分类账中,离散的利益相关者可以根据他们的特权访问它。区块链及其 chaincode 可以自动保持审计和跟踪个人的健康和历史,甚至可以让患者将其病历货币化以供研究,这对人类来说是一个巨大的收获。
- 保险:保险分类账可以是从保单销售到结算的真实来源,包括保单销售、保单维护(续保、终止、调整等)、索赔、评估和证据以及结算。这将消除繁琐的过程,减少第三方的参与,允许更快的结算,等等。
- 知识产权:知识产权的分类账可以是知识产权的专利和商标的可靠来源;它减少知识产权滥用,确保知识产权所有者从他们的知识产权中获得信用和金钱利益,等等。
- 金融科技(fin tech):财富的分类账可以成为跨领域支付和更快 B2B 交易的基础。它消除了和解,注入了交易者之间的信任,等等。它还可以用于清算和结算、贸易融资、KYC 和反洗钱。
- 其他行业:这些行业也可以使用 BaaS,具体如下:
- Travel :可用于旅客处理、行程追踪和跟踪、旅客身份的单一来源等。随着关键文件的分类账,护照伪造,过关,非法移民,等等可以检查。
- 人道主义:可以用于慈善、捐款等等。
- 运输:用例包括轨道、痕迹等。
- 石油和天然气:可用于货运管理、支付、装运等。
- 分析:我在这里将分析作为一个横向行业来推动,因为我相信这句话:哪里有数据,哪里就有分析 (Vivek Acharya)。参考前面提到的医疗保健的例子——试图将他们的医疗记录货币化的患者也为人类服务了很多。如果发生这种情况,它需要一个高效的分析平台来理解区块链的数据。除此之外,分类账上的交易数据可以带来更深刻的见解。区块链和人工智能可以带来更好的预测、有效的预测,并实时回答业务和最终用户的问题。
BaaS 的主要优势
BaaS 是一个平台,在 Hyperledger Fabric 等平台之上具有大量功能。使用 BaaS 产品,客户可以创建网络和渠道,并构建和部署 chaincode 和 dApps。云服务提供商负责基础设施敏捷性、可扩展性和运营效率等日常必要活动,而客户可以专注于构建应用程序和链代码。BaaS 是对区块链采用的一个重大推动,后者是大多数主要云解决方案提供商提供的 BaaS 产品。
有了 Oracle 的区块链云服务这样的云平台,就不需要自带安全、身份管理、容器管理、管理控制台管理、基础设施、h a、恢复。这完全取决于云服务提供商。以下是 BaaS 的一些主要优势:
- 快速资源调配
- 易于配置
- 成员快速加入
- 嵌入式身份管理
- 增强的安全性和保密性
- 高效的开发和测试
- 增强了与流程和应用程序的集成
- 更好的性能和可扩展性
- 高可用性和运营弹性
- 卓越的可扩展性
- 将基础设施与客户开发智能合同和应用程序的主要任务分离开来
- 允许客户探索其遗留应用程序和业务流程的巨大潜力。
Oracle baas obp
BaaS 在其基础(也称为核心)之上提供了很多。Hyperledger Fabric (base)未预先组装。因此,企业需要构建链码并从 Hyperledger 结构中获益;他们需要设置 Hyperledger Fabric 基础架构,处理其先决条件,并对其进行配置和维护。企业需要确保已安装的 Hyperledger Fabric 环境与安全风险的集成,并管理所有容器的生命周期。企业需要处理修补和升级,并需要确保系统的巨大可用性、性能、业务网络管理等等。Oracle 的区块链平台基于 Hyperledger Fabric。有了 OBP,企业设置、管理和维护区块链平台的责任将转移到 Oracle (BaaS 提供商)身上,企业可以继续专注于构建工作级区块链应用程序和解决方案。
Linux 基金会的 Hyperledger Fabric 是 OBP 的基础(核心)。以 Hyperledger Fabric 为基础,任何基于它提供解决方案的供应商(包括 Oracle)都必须自动遵守行业标准。区块链平台,如甲骨文的区块链平台,简化了网络的创建,来自不同组织的参与者可以参与并一起工作。诸如治理、命名约定标准和统一数据模型等互操作性挑战需要达成共识。例如,在一个联盟中,参与者就标准、参与规则、成本和利润共享、治理机制和集体风险缓解达成一致,同时包括分析、审计和验证,以确保区块链网络顺利运营。
OBP 提供了一个控制台来管理网络、频道和用户。它提供 REST 代理和各种其他基础设施服务来建立、构建和维护区块链网络。它建立在 Hyperledger Fabric 之上,并添加了许多丰富的功能,以简化操作、增强安全性和高度可访问性。Oracle OBP 是 Oracle 提供的 BaaS 产品,有望解决 DLT/区块链的企业用例。Oracle 产品包括基础设施服务和各种嵌入式资源,如计算、容器、存储、事件流和身份管理。Oracle 具有以下特性:
- 基于标准的 : Oracle BaaS 的核心是 Hyperledger Fabric 因此,它自动遵守行业标准。因此,基于 OBP 构建的应用程序是可互操作和兼容的。该特性与上一节中列出的 BaaS 限定符标准相匹配。
- 预组装 : Oracle 的区块链平台包括预组装的身份解决方案(Oracle 的身份管理)、对象存储(嵌入式归档)和 RESTful APIs。Oracle 产品包括一个操作控制台,用于配置和管理整个区块链企业网络。B2B 合作伙伴加入区块链网络的过程得到了简化,合作伙伴可以通过内置的身份解决方案进行验证。该功能类似于 BaaS 限定符:快速设置、安全、隐私、以及链码管理和监控。
-
可插拔:提供与 Oracle 集成云 服务 ( OICS )的集成服务,可以快速集成 SaaS 和 PaaS 应用。该功能适合 BaaS 限定符集成和其他服务,如下 :
- 企业可以利用 OICS 工具来处理云服务,以构建和扩展 BPM(工作流)应用程序。企业可以使用 SDK 或 RESTful APIs 扩展其 SaaS 应用程序。
- 构建在 Oracle 开发平台(例如 VBCS)上的应用程序可以使用各种标准(Java、Node.js 和 Go)和 API 调用链码上的操作。
- 企业可以在应用容器云服务、Java 云服务、移动云服务或应用构建器云服务上构建应用,并可以使用 SOA 云服务、流程云服务和 API 启动区块链事务。
- 企业 - 等级解决方案 : 它是一种高可用性、增强安全性、持续备份总账的托管服务。这一特性与 BaaS 限定词— 弹性产生了共鸣。
- 自动化:甲骨文的自主数据库锚定 OBP。因此,它利用了 Oracle 自主数据库的优势,如自我配置、自动升级、增强的安全性和监控。它自动应用安全补丁,无需停机,增强了多重安全性,并以加密状态存储数据。它提供自我修复功能,确保最高的可用性,并将计划内和计划外停机时间减少到两分钟半以内。这个特性适合于弹性和监控 BaaS 限定符。
- 隐私 : Hyperledger Fabric 提供通道和隐私数据收集(详见第三章、深入探究 Hyperledger Fabric ),允许企业进行保密交易。Oracle 产品仅允许获得批准的同行加入渠道。这个特性符合安全性和隐私 BaaS 限定符。
在分析区块链解决方案、确定使用案例和选择最相关的区块链平台时,查看核心系统、业务流程以及企业将从区块链纳入您的生态系统中获得的好处具有重要的战略意义。我们正处于一个云化(云)基础设施、应用和流程的时代。区块链云平台是您云战略的绝佳补充。云和区块链战略与自治组织的未来愿景密切相关。本书包含围绕 Hyperledger Fabric 及其通过 Oracle 的区块链云平台实现的详细信息和实践。我们将在随后的章节中详细讨论这一点。
预建的
上一节列出了 OBP 及其特点。它还试图将它们与 BaaS 限定符相匹配。几乎所有的 OBP 特征都符合 BaaS 限定条件,除了一个(吃你自己的药丸)。在这一部分,我们将扩展 OBP 的特性,并将它们与自食其果限定符相匹配。此限定符实质上显示了供应商提供的 BaaS 产品的功能和成熟度。在这种情况下,Oracle 提供了许多基于 OBP 的应用程序。
Oracle 是创建基于 SaaS 的区块链应用程序的先驱,这些应用程序允许业务应用程序利用区块链技术实现可追溯性、增强的安全性和简化的一致性。这些位于 SaaS 的区块链应用程序是使用 OBP 构建的,运行在甲骨文的云平台上。它们与其他 SaaS 应用无缝集成,如 s 供应链管理(SCM)企业资源计划 ( ERP )以及其他基于云的应用。它们还与机器学习应用以及物联网和人工智能应用集成在一起。
这些应用程序解决了企业面临的常见挑战,如跟踪、追踪、可见性和根本原因分析。区块链是一种会记忆的技术。这种技术消除了产品跟踪、追溯和可见性的障碍。Oracle 区块链应用程序允许在产品的供应链周期中对产品进行跟踪、追踪和分析。这些应用程序还允许进行根本原因分析,并在具有挑战性的情况下提供建议,如产品损坏、运输延迟、交付延迟和质量低下。
这些区块链应用程序具有以下优势:
- 他们为常见的业务挑战提供预构建的解决方案
- 这些应用程序是可配置的,允许应用程序与区块链技术更快地互连,以满足业务需求
- 这是向区块链商业网络添加 B2B 合作伙伴的一站式商店
- 它允许快速解决业务挑战,并为业务节省时间
- 它为 SaaS 和本地应用带来了业务灵活性,使他们能够快速利用区块链技术的优势
- 它无缝集成了物联网和基于人工智能的应用
- 它提供了一个预构建的分析仪表板,以增强企业、合作伙伴和供应商之间的透明度、信任度和可见性
这些应用程序为业务问题提供了解决方案,如召回、争议、欺诈、合规性问题和伪造。它们提供分析和整个供应链的端到端可追溯性。他们提供了一个预先构建的仪表板,可以显示物联网、人工智能和区块链交易。这为企业提供了实时洞察。以下是 Oracle 提供的应用程序(在撰写本书时):
- Oracle 智能跟踪和追踪:提供端到端的资产跟踪和追踪。它允许供应链流程中的每个步骤和事件都有数字足迹。它可以实时洞察供应链流程中的这些事件和步骤,从制造到运输,再到销售和交付。
- Oracle 产品谱系和出处:允许用户验证产品的出处。
- Oracle 智能冷链:它跟踪产品从制造到销售的状态,并提供完整的审计跟踪。它会发出短途旅行的变更信息,并提供预防建议。
- Oracle 保修和使用跟踪:它跟踪高价值资产,并提供资产使用情况的完整审计跟踪。这些审计跟踪是可验证的日志,可用于产品保修和责任索赔。
企业可以转变其现有的业务流程,并从这些业务友好型应用程序中获得立竿见影的好处。这些应用程序使企业能够开发一个区块链网络,与供应商和合作伙伴进行安全、透明和高效的交易。此外,它通过跟踪、追踪、可见性和根本原因分析解决了常见的业务问题。这确实是应用程序的未来。此类应用程序可与现有的内部和云应用程序无缝协作。企业可以使用现成的区块链应用程序,使用区块链网络模板建立他们的区块链业务网络,并使用预构建的集成扩展和集成应用程序。我们将在随后的章节中了解更多。
摘要
在这一章中,我们深入研究了分类账、区块链定义、区块链结构和层次。我们还了解了区块链结构、块、事务,以及如何将块添加到区块链中。我们已经熟悉了区块链的演员、组件和算法。我们还尝试创造了分布式复式记账(也称为三重记账)这个术语。第 2 章,解释分布式账本技术和区块链,将收集区块链和 Hyperledger 的用例,并帮助我们为它们确定一种可能的方法。企业正在探索 DLT 和区块链的巨大机会,他们认识到这种分布式技术的战略和长期利益;然而,在被企业采用之前,DLT 和区块链面临着各种各样的挑战。虽然存在挑战,但也有大量的机会。随着 DLT 和区块链的信任度和收益的增长,企业将会探索并更多地采用 DLT/区块链。让我们深入研究第二章、对分布式账本技术和区块链的解读,并通过解决各种用例来探索 DLT 式区块链提供的大量机会。