区块链网站|NFTS 区块链 区块链的工作原理

区块链的工作原理

广告位

区块链的工作原理

现在我们知道了区块链的基本知识,让我们看看它是如何工作的。这些信息可以帮助您确定区块链是否适合您自己的解决方案。

数据是如何分布的?在我们的方案中,假设有几个公司。我们在乳制品加工公司建立了一个中央数据库。但是所有的参与者都不想成为一个中心机构。我们可以使用区块链分布式账本。使用区块链将不再需要一个中央机构。此外,每个拥有区块链节点的参与者都可以获得一份账簿,这样他们就可以审计和集成他们自己的系统。但是,并不要求每个公司都设置自己的下属节点。这些节点可以在合作伙伴之间共享。

每个节点通过区块链网络与其他节点相连。例如,Dalia Pelayo农场、冰激凌工厂和冰激凌店都管理一个节点。Contoso West和Contoso East是属于同一母公司的两个独立合作伙伴。Contoso有一个节点。节点和公司之间不需要一对一的关系。

更改状态区块链中的数据来表示状态。这就是为什么区块链非常适合使用加密货币等数字代币的原因。我们可以把这种情况想象成真实货币的所有权:一枚硬币一次只能在一个人的口袋里。如果硬币在你的口袋里,所有权就是你的。如果你给了一个朋友一枚硬币,状态就会变成你的朋友拥有这枚硬币。在我们的方案中,货物通过供应链运输。产品的责任方也随着运输而转移。我们想了解的数据包括责任方,温度,产品是否合规。

区块链使用交易将数据的状态从一个值改变为另一个值。例如,如果我们需要知道冰淇淋是否储存在冰点以下。在运输冰淇淋的过程中,温度传感器会定时报告温度。报告的温度是一个事务,将被发送到区块链事务节点。

在冰淇淋方案中,当货物通过供应链运输时,只要状态发生变化,就会发送一个事务。例如,下图显示了一个典型的向冰淇淋工厂发货的交易。每一笔交易都改变了责任方或温度。分类帐的当前状态是按顺序应用的交易。

当发送交易时,它将被发送到区块链交易节点。假设Dalia Pelayo农场通过Contoso West Shipping运输牛奶。Dalia Pelayo农场的交付系统将向其自己的区块链节点发送交易。此事务将更新从farmer到Contoso West Shipping的运输责任方。

在整个区块链网络中,区块链将发送交易。每个节点都获得事务的一个副本。

每个节点将处理事务,但仍需要通过共识机制进行验证。共识实现了分布式账簿的一致性和信任。

如何保证账簿数据的一致性?在分布式网络中,很难确定什么是真实的,因为所有节点都有数据变化。如果冰淇淋工厂节点没有收到运输交易会怎么样?他们怎么知道牛奶已经运出了养殖场?运输公司的冷藏车坏了,牛奶变质了怎么办?快递公司会通过修改账本来逃避责任吗?

区块链采用共识机制,可以验证所有区块链节点上的数据并达成一致。共识为所有分散的节点提供了一种达到相同状态的方式。在转移价值或责任时,顺序非常重要。比如你把一辆车的所有权转让给朋友,就不能把所有权转让给同事。这种问题称为双重支出,可以通过共识机制解决。共识可以确保交易的正确顺序和区块链的完整性。协商一致的原则是一组交易作为一个块被验证,整个网络必须就这个块是否应该属于区块链达成一致。

有几种区块链共识算法,包括工作证明、所有权证明和授权证明。每种算法以不同的方式解决一致性问题。简而言之,共识为分布式帐户提供了一种达到共同状态的方法。

什么是街区?块是在区块链中存储事务信息的数据簇。一个块中的事务数量通常是基于时间的。例如,下图显示了包含过去10分钟内发生的事务的块。

达成一致后,经验证的块将被添加到每个节点的区块链中。由于链中的所有节点都具有相同的块,因此帐户在网络上可以保持一致。因此,所有节点都以一致的顺序包含相同的验证数据。

如何保证账本不可更改?你可能认为如果你能控制你自己节点中的分类账,你就能改变副本中的数据。这些数据怎么可能是不可变的?

区块链使用加密散列来创建块之间的链接。在将块链接在一起之后,可以通过一致性算法来确定事务顺序的一致性。加密哈希是一种算法,可以将任意大小的数据映射到固定大小的位表示。我们可以把它想象成一个数字指纹。比特币使用SHA-256哈希算法。如果在100页的文档上使用SHA-256散列函数,则该函数的输出是256位散列值。如果文档中只有一个字符被更改并重新生成为散列,则输出将是另一个256位散列值。现在,假设我们使用一个块作为散列函数的输入。输出是块中数据的唯一哈希值。

区块链使用哈希来检测这些数据块是否发生了变化。通过在生成下一个块的哈希值时包括前一个块的哈希值,这些块将通过哈希链接在一起。

区块链通过使用哈希来证明数据历史没有改变,从而实现信任。通过在创建新块时包含前一个块的散列,将按顺序创建不可变的事务链。

如果您修改了链中的任何块,后续块的散列将会不同。验证时会发现差异。

可信逻辑通过区块链,我们可以存储一致且可信的数据。如何添加在每个节点一致执行的逻辑?

在我们的方案中,我们需要使用逻辑将产品的责任从一个参与者转移到另一个参与者。我们还需要使用物联网温度传感器中的数据来了解温度是否过高。

分布式应用程序(DApp)是分布式计算系统上的应用程序。在本模块中,我们将重点介绍如何使用以太坊区块链协议。以太坊DApps被称为智能合约。智能协定包含作为事务的一部分执行的逻辑。在以太坊上,我们用一种叫做Solidity的编程语言来编程逻辑。

智能合同被部署到区块链,并通过地址引用。要使用智能合约,您需要创建一个实例。智能合约实例包含状态数据和程序逻辑。在我们的方案中,智能合同实例包含各种数据,如负责的参与者、位置以及产品温度是否不合规。我们可以执行一个函数来转移责任或接收一个实例的温度遥测数据。

当产品的责任转移到另一方时,交易被执行。智能合同逻辑更新状态数据。在我们的冰淇淋方案中,冰淇淋工厂运输系统将为新的冰淇淋运输活动创建一个智能合同实例。工厂运输系统将发送一个调用TransferResponsibility函数的事务,将运输责任方更改为Contoso East shipping。区块链网络将事务发送到所有节点。每个节点将执行智能合同逻辑。

如果冰淇淋在运输过程中,制冷装置发生故障,温度上升到冰点以上,会发生什么情况?物联网温度传感器监控冰淇淋温度,并定期发送交易。如果温度高于冰点,智能合同逻辑会将货物标记为不合规。

因为交易包含在区块链中,所以当货物状态变得不合规时,将有不可变的记录。冰淇淋店可以拒绝收货,避免食品安全问题。

像区块链中的数据一样,智能合约是不可变的。部署后不能更改逻辑。因此,您可以相信智能契约逻辑在所有节点上都得到了一致的执行。任何代码更改都需要在新地址部署新的智能合约。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/qkl/50005.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部