一个区块链的通用元素

在这一节将介绍区块链的通用元素。更细节的元素将在后续章节中谈到,例如:Ethereum 区块链。

地址

地址是用于区块链交易中的唯一标识符,用于表示发送方和接收方。一个地址通常是一个公钥,或由一个公钥导出。虽然地址可以由同一个用户重复使用,不过地址本身却是唯一的。然而,在实践中,一个用户通常不会重复使用同一个地址,而是每次交易都生成一个新的地址。新生成的地址也是唯一的。比特币实际上就是一个匿名系统。终端用户通常无法被识别,但某些关于反逆名比特币用户的研究显示,比特币用户可以被成功识别。最好的做法是,用户应当为每次交易生成一个新的地址,以避免将交易关联到同一个交易方,这样就能避免被识别了。

交易

交易是一个区块链的基础单位。一笔交易代表了“价值”从一个地址转到了另一个地址。

区块

一个区块由多个交易和其他一些元素(如前一个区块的哈希值、时间戳和随机数)构成。

点对点网络

顾名思义,此类网络拓扑意味着所有节点之间可以互相通信,以及发送和接收消息。

脚本或编程语言

此元素对一笔交易执行各种各样的操作。交易脚本就是预定义的一组命令集合,

虚拟机

虚拟机是交易脚本的扩展。一个虚拟机就是一个能运行在区块链中的图灵完备的代码(如“智能合约”),同时一个交易脚本能够限定在此操作中。虚拟机并非在所有区块链中都是必备的;而且,许多区块链使用虚拟机来运行程序,例如 Ethereum 虚拟机(EVM)链虚拟机(CVM)

状态机

区块链可以被视作一个状态转换机制。当状态从初始形式转换到下一个形式时,其状态发生了改变,并最终转变为最终形态,也就是节点群处理交易执行和验证后的最终结果。

节点

区块链中的节点根据其所承担的角色执行各种功能。一个节点可以提出并验证交易,然后执行挖掘,以促进达成(全网)共识并确保区块成链。这些步骤由以下共识协议完成。(也即常见的PoW,工作量证明。)节点也可以执行其他功能,比如简单的支付验证(轻权重节点),验证器,以及其他根据区块链设计赋予节点角色的相应功能等。

智能合约

此程序运行在区块链之上,并且封装了符合条件时需要执行的业务逻辑。此智能合约特性并非所有区块链必备,不过现在其已经成为一个非常理想的特性,因为此特性具备了可扩展性,以及为区块链提供了应用程序的能力。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据