草庐IT

区块链基础知识的归纳与总结

crypto_cxf 2023-04-21 原文

区块链(Blockchain)

以博主看过的文献或查阅的资料为基础,本博文将介绍区块链(Blockchain)的相关知识点,以及归纳与总结。这也是博主个人的学习过程,长期更新,建议收藏,也欢迎指正!

区块链一句话解释一种由密码学算法、共识机制、点对点传输、数学、计算机编程等多种技术为基础,而形成的分布式记账系统

一、区块链的诞生及演变

2008年,一位名为中本聪(Satoshi Nakamoto)的密码学家发表了一篇《Bitcoin: A Peer-to-Peer Electronic Cash System》(中译:比特币:一种点对点的电子现金系统)白皮书,开始了比特币(BTC)的时代。

在2009年1月3日,第一个序号为0的创世区块才诞生,在一周后,也就是1月9日出现了序号为1的区块,这样标志着区块链的诞生。

二、区块链相关名词解释

  • 1)中本聪(Satoshi Nakamoto):比特币的创始者,至今真实身份不得而知。有人说是美国人,发行比特币好以后控制全世界;也有人说是日本人,因为中本聪比较像日本名;还有人说是中国人,因为可以理解为“国人来就明”。
  • 2)区块(Block):在区块链网络中,数假会以多条文件的形式进行打包放在一起,类似于将这些文件放入一个盒子里,故也称为数假区块。
  • 3)(Chain):指区块按照时间顺序进行排序,并通过前一区块和后一区块之间的哈希值进行串联而成,并非是真实的链条,而是一种比喻。

  • 4)区块头(Block Header)和区块体(Block Body):是指数假区块分为区块头和区块体两个部分,区块头存储了前一区块的哈希值、当前区块的哈希值、随机数、时间戳和Merkle根,而区块体存储了所有的真实数据。
  • 5)哈希值(Hash Value):是指通过一个较短的随机字符串表示任意长度的输入消息,经过哈希函数(也称散列函数、数字摘要)得到的“数据指纹”。

  • 6)随机数(Nonce):由系统自动生成的一次性随机数,用于解决数学难题的问题,每次解决都会重新生成随机数。
  • 7)时间戳(Timestamp):是指从区块生成的那一刻开始就存在于区块中,用于标记此数据的交易时间的字符序列,一般存储于区块头中,具有唯一性。
  • 8)梅克尔根(Merkle Root):是指区块体中交易的数据经过哈希运算得到的梅克尔树(Merkle tree),也称为哈希树,一种二叉树,常常被用来快速查验特定的交易是否存在。先将交易经过哈希运算后,得到叶子节点,然后每两个叶子节点经过哈希运算,每个中间节点是它前两个子节点的哈希值,如此往复,直至最后生成一个哈希值,这个最终的哈希值被称为梅克尔根,也称Merkle根。

  • 9)节点(Node):是指区块链网络中的每个参与者或网络节点。
  • 10)全节点(Full Node):在指拥有完整的区块链账本的节点,全节点占用内存较大,其需要同步所有区块链的数据,主要负责区块链的交易的广播和验证。
  • 11)点对点(Peer-to-Peer):是指单个节点与其他节点可直接交互,而无需中间节点或中介机构。
  • 12)挖矿(Mining):并非真实的挖矿,而是指利用电脑硬件“解决一道数学难题”的数字记录信息过程。由于其工作原理与矿物开采十分相似,故称为“挖矿”。
  • 13)挖矿难度(Mining Difficulty):是衡量将信息记录到被称为区块链的数字记录上的难度。在比特币共识过程中,为了使得区块生成的速度维持在10分钟一个,产生的挖矿难度会定期调整。
  • 14)矿工(Miner):是指区块链网络中,不断进行哈希运算来求解数学难题并产生工作量证明的网络节点。
  • 15)区块高度(Block Height):一个区块的高度是指在区块链中它与创世区块之间的块数。例如,区块高度为100,则表示该区块和创世区块之间含有100个区块。
  • 16)创世区块(Genesis Block):是指区块链系统中的第一个区块,被称为“创世”区块,它一般用于初始化,不带交易信息。例如比特币系统中,创世区块由中本聪创建。
  • 17)分布式(Distributed):通过区块链的P2P技术实现,描述了一个系统由多台计算机上同时运行和维护的完整副本,没有任何人或组织这个系统。
  • 18)账本(Ledger):是指区块链的数据结构、所有的交易信息的一种记录状态,类似与记账,故称为“账本”。
  • 19)51%攻击(51% attack):在比特币系统中,当系统的算力优势超过系统所有的一半(>50%,即51%)时,就可以篡改或撤销自己的付款记录,因此它能比其他节点更快创建区块,而不利于系统稳定。
  • 20)双重支付(Double Spending):是指具有大量计算能力的节点发送一个交易后,在资金未及时确认时,又发出另外一个交易,并将相同的币发给其他节点。(一笔钱花两次)

三、区块链的分类

  • 1)公有链(Public Blockchain):完全去中心化,任何节点都可以进行访问,每个人都可以参与到区块链当中的计算,而且任何人都可下载完整的区块链账本。例如比特币、以太坊等网络都是公有链。其特点是保护隐私和系统效率低。
  • 2)联盟链(Consortium Blockchain):半中心化,参与每个节点的权限都完全对等,各个节点在完全不信任的情况下进行数据交互和可信交换。联盟链的各个节点只有通过授权后才能加入网络。例如Hyperledger Fabric、R3联盟等。其特点是自行背书、系统效率高。
  • 3)私有链(Private Blockchain):中心化,某些区块链的应用场景下,开发者不希望任何人参与这个系统,因此建立一个只有被许可的节点才可以参与并看所有数据的私有区块链。例如私有机构、企业内部等。其特点是集体背书,系统效率较高。

四、区块链的层级结构

  • 1)数据层(Data Layer):主要描述了区块链系统的物理形式,是区块链从创世区块起始的链式结构,包含了区块数据、随机数、时间戳和公私钥等数据,是整个区块链技术中最底层的数据结构。
  • 2)网络层(Network Layer):主要通过P2P技术实现分布式网络的机制,包括P2P组网机制、数据传播机制和数据验证机制。
  • 3)共识层(Consensus Layer):包含共识算法以及共识机制,能够让高度分散的节点在去中心化的区块链网络中高效地针对区块数据达成共识,是区块链的关键技术之一。
  • 4)激励层(Actrator Layer):主要包括经济激励的发行制度和分配制度,其功能是提供一定的激励措施,鼓励节点参与区块链中的验证工作,并将经济因素纳入到区块链技术体系中。
  • 5)合约层(Contract Layer):主要包括各种脚本、代码、算法机制和智能合约,是区块链可编程的基础。
  • 6)应用层(Application Layer):封装了各种应用场景和案例,类似于电脑操作系统上的应用程序。

五、参考资料

  1. 区块链行业字典.pdf
  2. 袁勇, 王飞跃. 区块链技术发展现状与展望. 自动化学报, 2016, 42(4): 481-494.

有关区块链基础知识的归纳与总结的更多相关文章

  1. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  2. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  3. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  4. SPI接收数据异常问题总结 - 2

    SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手

  5. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  6. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  7. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  8. 区块链入门教程(6)--WeBASE-Front节点前置服务安装 - 2

    文章目录1.任务背景2.任务目标3.相关知识点4.任务实操4.1安装配置JDK4.2启动FISCOBCOS4.3下载解压WeBASE-Front4.4拷贝sdk证书文件4.5启动节点4.6访问节点4.7检查运行状态5.任务总结1.任务背景FISCOBCOS其实是有控制台管理工具,用来对区块链系统进行各种管理操作。但是对于初学者来说,还是可视化界面更友好,本节就来介绍WeBASE管理平台,这是一款微众银行开源的自研区块链中间件平台,可以降低区块链使用的门槛,大幅提高区块链应用的开发效率。微众银行是腾讯牵头设立的民营银行,在国内民营银行里还是比较出名的。微众银行参与FISCOBCOS生态建设,一定

  9. iNFTnews | 周杰伦18年前未发布的作品Demo,藏在了区块链技术里 - 2

    当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在

  10. Simulink方法总结和避坑指南(一)——Simulink入门与基本调试方法 - 2

    文章目录一、项目场景二、基本模块原理与调试方法分析——信源部分:三、信号处理部分和显示部分:四、基本的通信链路搭建:四、特殊模块:interpretedMATLABfunction:五、总结和坑点提醒一、项目场景  最近一个任务是使用simulink搭建一个MIMO串扰消除的链路,并用实际收到的数据进行测试,在搭建的过程中也遇到了不少的问题(当然这比vivado里面的debug好不知道多少倍)。准备趁着这个机会,先以一个很基本的通信链路对simulink基础和相关的debug方法进行总结。  在本篇中,主要记录simulink的基本原理和基本的SISO通信传输链路(QPSK方式),计划在下篇记

随机推荐