区块链基础知识

发布时间 2023-07-08 16:37:31作者: husterlong

开始学习区块链了,记录一下区块链入门的一些基础知识。

1. 区块链

区块链本质是一种多方共享的分布式账本技术,存储于其中的数据或信息,具有“不可伪造、不可篡改、全程留痕、可以追溯、公开透明、集体维护”等特征。

2. 区块

区块链中一套分布式账本存储的基本数据结构、是在区块链网络中承载交易数据的数据包。

每个区块一般被标记上时间戳,记录了本区块中的交易集合、上一个区块的哈希值、本区块的哈希值等信息。新旧区块之间通过哈希值依次前后串联,并通过区块链网络的共识机制验证并确认区块中的交易。

3.

区块链中数据持久化存储时区块之间的连接结构。

一条链是指存储在某个区块链网络中,一个由若干区块通过特定指向链接、摘要算法或加密算法锚定组成的数据序列。

4. 区块高度

区块链的第一个区块称为“创世区块”(genesis block),后续生成的区块用“高度”标识,每个区块高度逐一递增。

通过区块高度可以识别区块在区块链中的位置,并可以据此找到和这个区块相关的所有基础属性和交易记录。

5. 交易

与区块链交互时处理的原子事务,即一系列不可分割且不可简化的操作。

6. 节点

区块链网络中负责网络互联、协议交换、账本维护等工作的信息处理设备,可以是一个进程或一台运行了节点进程的计算机设备。

7. 客户端

有时候又被称为“钱包”,指通过集成了软件开发工具包(Software development kit,简称SDK)或者应用程序接口 (Application programming interface,简称API)后实现的可以访问区块链网络并发送请求、获取信息的应用程序、命令行工具等。

8. 共识机制

英文名Consensus,是区块链作为分布式网络,节点之间在没有所谓中心的情况下就交易的合法性达成共识的一种分布式协调机制。所有节点根据共识机制达成的共识,来生成和更新数据,确保分布式系统的数据一致性。

9. 智能合约

英文名称Smart Contract,是基于区块链系统实现的一套规则逻辑或脚本程序,本质上就是一段代码。

智能合约可以在没有第三方的情况下进行可信的交易,且交易是可以被追溯的,同时也是不可逆的。

相比于传统的中心化应用程序,基于区块链及智能合约实现的应用程序可以被称为Decentralized application,简称DAPP。

10. 区块链分类

三种基本类型:公有链(Public Blockchain)、私有链(Private Blockchain)和联盟链(Consortium Blockchain),前者又称无许可链(Permissionless Blockchain),后两者在技术实现上差别不大,所以合称许可链(Permissioned Blockchain)。

公有链:高度的去中心化, 所有交易数据公开、透明,任何人或组织都可以随时访问读取数据、发送可确认交易、参与共识过程。适用于公共社会服务领域。一般会通过代币机制鼓励参与者竞争记账,来确保数据的安全性。目前的典型应用有比特币、以太币。

私有链:以中心化的形式运作,不对外公开,参与节点的资格受到严格限制,写入权限由某个组织控制,读写权限可能公开或任意程度的限制。适用于企业内部服务领域。典型应用场景有审计。

联盟链:以多中心化的形式运作,仅对联盟成员开放,各节点通过授权认证加入或退出网络,共识过程受预选节点控制, 只允许联盟内的节点读写和发送交易、共同记录交易数据。适用于跨企业服务领域。典型应用场景有存证溯源、供应链领域。

11. 区块链实现技术框架

主流的有:以太坊(Ethereum,缩写ETH)(属于无许可链)、Hyperledger Fabric(属于许可链)、R3 Corda(属于许可链)等。

 

12. Hyperledger Fabric

Hyperledger(超级账本)是一个旨在推动区块链跨行业应用的开源项目,由Linux基金会在2015年12月主导发起,Fabric作为一个企业级许可分布式账本框架,用于开发区块链解决方案和应用程序,是当前企业场景中联盟链/私有链实现所常用的开源框架。

Hyperledger Fabric技术框架下,将节点进行了功能拆分,分为三种服务类型:Peer节点、Orderer节点、CA节点。在一套可运行的Fabric网络中,三类节点一般都要存在。

13. 身份管理

为了实现权限管控的网络系统,Hyperledger Fabric 提供了包含管理用户 ID 以及对所有网络参与者进行验权的会员身份服务的功能。

访问控制列表可以当做额外的权限层,以此来实现不同的用户授权不同的网络操作权限。比如说,一个特定的用户id可以被允许唤起一个链码应用,但却无法部署新的链码。

14. Peer节点

指参与节点,区块链网络中参与共识和账本记录的节点。

根据承担的功能,可以进一步细分为Anchor、Endorser、Committer等角色。

Anchor节点:指锚定节点,在Hyperledger Fabric技术框架下,为了实现高可用,把几个Committer节点组成集群,设置其中一个为主节点,与网络中其他组织进行信息同步。

Endorser节点,指背书节点,在交易时模拟执行智能合约,验证相关信息,进行签名背书,是维护账本的网络节点。是验证交易并声明此交易合法(或不合法)的链中节点。

Committer节点,指记账节点,只负责验证从Orderer节点发出的区块和交易的合法性、并存储账本区块信息。

3种角色不互斥,所以一个节点可以既是Anchor、同时又是Endorser和Committer。

15. Orderer节点

指排序节点,提供排序服务(即Fabric共识服务)的节点,负责交易的排序、区块打包、区块分发等工作。

区块链网络内的交易完成背书后,由Orderer节点进行排序,然后根据一定的规则打包成新区块,发送给Peer节点以进行区块和交易的验证并写入账本,从而完成共识的全过程。

16. CA节点

创建、颁发数字证书。

17. Hyperledger Fabric共识机制

Hyperledger Fabric 共识机制目前包括SOLO和Raft,另外Kafka已经不再推荐使用,SBFT(简化的拜占庭容错)仍然在开发中。

18. 通道

通道是Hyperledger Fabric技术框架中为了实现数据的隔离和保密,构建在一套区块链网络上的专用区块链账本。每一个通道即为一条逻辑上的区块链。通道可以向特定的节点子集提供事务隐私和机密性,任何未明确授予访问该通道的节点都无法访问。同一个节点可以加入多个通道,为每个通道维护一个账本。

19. Hyperledger Fabric智能合约

Hyperledger Fabric 的智能合约是用链码(Chaincode)实现的,并且被区块链外部应用程序所调用,以此来与账本交互。

20. Chaincode链码

使用计算机语言描述合约条款、交易的条件、交易的业务逻辑等,通过调用链码实现交易的自动执行和对账本数据的操作,是应用程序与底层交互的媒介。

Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码。系统链码用来实现系统层面的功能,用户链码实现用户的应用功能。链码被编译成一个独立的应用程序,运行于隔离的Docker容器中。