网络知识 娱乐 区块链基础知识(一)

区块链基础知识(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、区块链是什么?
  • 二、名词解释
    • 账本
    • 区块
    • 交易
    • 账户
    • 共识机制
    • 节点
    • 共识算法


前言

区块链技术里面涉及了多个学科,是各学科交叉而成的一门技术,本篇文章主要阐述区块链相关的基本概念,对其中的一些基本理论进行介绍,让大家更好的理解区块链技术。


一、区块链是什么?

区块链(blockchain)是在比特币之后提出的一个概念,中本聪关于比特币的论文中以chain of block来描述一种数据结构。后来blockchain这个概念更直接的描述出了这种数据结构,大家也更接受这个命名。

Chain of block是指由多个区块通过哈希(hash)串联成一条链式结构的数据组织方式。

区块链技术是一种在同等网络环境下,通过执行各种透明和可信的规则,搭建了一个不可伪造、
难以篡改和可追溯的块链式数据结构,实现了一种可信数据的生产、存储、读取和使用的模式,方便了数据的公共管理和维护。

在技术架构上,区块链涉及分布式架构与分布式存储、块链式数据结构、共识算法、密码学算法、点对点网络、智能合约等多种信息技术共同组成的整体技术解决方案。

区块链技术由于其独特性,主要用于金融、司法、供应链、文化娱乐、社会管理、物联网等行业。

二、名词解释

账本

管理账户、交易流水等数据,支持分类记账、对账、清结算等功能。在实际生产环境下,项目所有参与方共同维护和共享一份及时、正确、安全的分布式账本,规避信息不对称,提升运作效率,保证资金和业务数据的安全。而区块链通常被认为是用于构建“分布式共享账本”的一种核心技术,通过链式的区块数据结构、多方共识机制、智能合约、世界状态存储等一系列技术的共同作用,可实现一致、可信、事务安全、难以篡改可追溯的共享账本。

区块

区块是按时间次序构建的数据结构,区块链的第一个区块称为“创世块”(genesis block),后续生成的区块用“高度”标识,每个区块高度逐一递增,新区块都会引入前一个区块的hash信息,再用hash算法和本区块的数据生成唯一的数据指纹,从而形成环环相扣的块链状结构,称为“Blockchain”也即区块链。

基于数据结构设计,使得链上数据按发生时间保存,可追溯可验证,如果修改任何一个区块里的任意一个数据,都会导致整个块链验证不通过,从而篡改的成本会很高。

一个区块的基本数据结构是区块头和区块体,区块头包含区块高度,hash、出块者签名、状态树根等一些基本信息,区块体里包含一批交易数据列表已经相关的回执信息,根据交易列表的大小,整个区块的大小会有所不同,考虑到网络传播等因素,一般不会太大,在1M~几M字节之间。
常见区块内容

交易

交易可认为是一段发往区块链系统的请求数据,用于部署合约,调用合约接口,维护合约的生命周期,以及管理资产,进行价值交换等,交易的基本数据结构包括发送者,接受者,交易数据等。用户可以构建一个交易,用自己的私钥给交易签名,发送到链上(通过sendRawTransaction等接口),由多个节点的共识机制处理,执行相关的智能合约代码,生成交易指定的状态数据,然后将交易打包到区块里,和状态数据一起落盘存储,该交易即为被确认,被确认的交易被认为具备了事务性和一致性。

随着交易确认相应还会有交易回执(receipt)产生,和交易一一对应且保存在区块里,用于保存一些交易执行过程生成的信息如结果码、日志、消耗的gas量等。用户可以使用交易hash检查交易回执,判定交易是否完成。

和“写操作”的交易对应,还有一种”只读”调用方式,用于读取链上数据,节点收到请求后会根据请求的参数访问状态信息并返回,并不会将请求加入共识流程,也不会导致修改链上的数据。
在这里插入图片描述

账户

在采用账户模型设计的区块链系统里,账户这个术语代表着用户、智能合约的唯一性存在。

在采用公私钥体系的区块链系统里,用户创建一个公私钥对,经过hash等算法换算即得到一个唯一性的地址串,代表这个用户的账户,用户用该私钥管理这个账户里的资产。用户账户在链上不一定有对应的存储空间,而是由智能合约管理用户在链上的数据,因此这种用户账户也会被称为“外部账户”。
在这里插入图片描述

对智能合约来说,一个智能合约被部署后,在链上就有了一个唯一的地址,也称为合约账户,指向这个合约的状态位、二进制代码、相关状态数据的索引等。智能合约运行过程中,会通过这个地址加载二进制代码,根据状态数据索引去访问世界状态存储里对应的数据,根据运行结果将数据写入世界状态存储,更新合约账户里的状态数据索引。智能合约被注销时,主要是更新合约账户里的合约状态位,将其置为无效,一般不会直接清除该合约账户的实际数据。
在这里插入图片描述

共识机制

共识机制是区块链领域的核心概念,无共识,不区块链。区块链作为一个分布式系统,可以由不同的节点共同参与计算、共同见证交易的执行过程,并确认最终计算结果。协同这些松散耦合、互不信任的参与者达成信任关系,并保障一致性,持续性协作的过程,可以抽象为“共识”过程,所牵涉的算法和策略统称为共识机制。

节点

安装了区块链系统所需软硬件,加入到区块链网络里的计算机,可以称为一个“节点”。节点参与到区块链系统的网络通信、逻辑运算、数据验证,验证和保存区块、交易、状态等数据,并对客户端提供交易处理和数据查询的接口。节点的标识采用公私钥机制,生成一串唯一的NodeID,以保证它在网络上的唯一性。

根据对计算的参与程度和数据的存量,节点可分为共识节点和观察节点。共识节点会参与到整个共识过程,做为记账者打包区块、做为验证者验证区块以完成共识过程。观察节点不参与共识,同步数据,进行验证并保存,可以做为数据服务者提供服务。

共识算法

共识算法需要解决的几个核心问题是:

  • 选出在整个系统中具有记账权的角色,做为leader发起一次记账。
  • 参与者采用不可否认和不能篡改的算法,进行多层面验证后,采纳Leader给出的记账。
  • 通过数据同步和分布式一致性协作,保证所有参与者最终收到的结果都是一致的,无错的。

区块链领域常见的共识算法有公链常用的工作量证明(Proof of Work),权益证明(Proof of Stake),委托权益证明(Delegated Proof of Stake),以及联盟链常用的实用性拜占庭容错共识PBFT(Practical Byzantine Fault Tolerance),Raft等,另外一些前沿性的共识算法通常是将随机数发生器和上述几个共识算法进行有机组合,以改善安全、能耗以及性能和规模问题。