区块链笔记2-区块链技术原理
作者:互联网
区块链笔记2-区块链技术原理
本学习笔记为本人从正规合法信息来源获取的信息,且为个人学习笔记,未用于商业用途。并且是关于IT领域区块链知识的介绍,并非违法违规内容。主要信息来源于清华大学出版社 《区块链技术及应用》一书
①区块链的概念
根据工信部指导发布的《区块链技术和应用发展白皮书2016》的解释是:
狭义来讲,区块链是一种按照时间顺序和数据区块以顺序相连的方式组合成的一种链式数据结构,并使用密码学方式保证了不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式其数据结构来验证和存储数据,并利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全性、利用自动化脚本代码组成的智能合约来变成和操作数据的一种全新的分布式基础架构与计算范式。
简单来讲,区块链的数据结构分为纪录信息的“区块”和纪录区块之间关系的“链”两部分,由于链的顺序性,区块链本身可以验证数据是否发生了篡改,并由于分布式的存储可以极大程度得保证数据的不可篡改、不可伪造的安全性。
区块作为区块链中基本数据单元,包含了所有交易信息,主要包含了区块头和区块主体两部分。区块头包含父区块哈希值、时间戳、默克尔树根等信息,关于区块链的数据结构将在下文中得到详细介绍。
②区块链基础技术
区块链虽然是一个由新兴的概念引出的新技术,但它用到的主要技术都是当前非常成熟的,比如哈希运算、数字签名、P2P网络、共识算法和只能合约等,接下来将对区块链的主要技术进行详细介绍。
1.哈希运算(Hash Algorithm)
将任意长度的输入通过一定的算法,生成一个固定长度的字符串,输出的字符串成为该输入的哈希值。以常见的SHA256算法作为示例:
输入:A hash example
输出:a7eb59f67e14ee04579b70eaa670f19b02776c40a0e37668374ba62557de6d0a
哈希运算的基本特性:
正向快速-可以再计算的时间内计算所需内容的哈希值
输入敏感-两个相近的输入会产生巨大的输出差别
逆向困难-在较短时间内,很难根据哈希值计算出原始的输入信息,因此哈希值具有较高的安全性。
强抗碰撞性-通过暴力枚举法获取哈希值得概率较小,对应的代价也相应更大,若破解的代价足够大,那么破解也就将失去意义。
使用哈希构建链式结构
每个区块头都包含了上一个区块区块数据的哈希值,因此若想要篡改交易,就必须篡改交易之后所有区块的父区块哈希值,并且区块链系统在产生大量的后续区块后才能确认当前区块,因此在网络中拥有足够多节点的情况下,想要篡改已经发生的交易记录是不可能发生的。
使用哈希树构建的默克尔树
默克尔树是对当前所有交易信息进行统一的哈希计算的方法,使用所有的交易纪录的哈希值作为叶节点,两两分组并计算每个组中两个还细致的哈希值,重复迭代直至最终只保留一个哈希值,称为默克尔树的根,整个默克尔树呈现出一种二叉树的结构。
默克尔树也场场作为校验依据应用当前的文件下载等场合中
2.数字签名
3.共识算法
4.智能合约
5.P2P网络
(2-5将在下篇笔记中得到介绍)
标签:数据结构,笔记,算法,哈希,篡改,原理,区块,默克尔 来源: https://blog.csdn.net/capodexi/article/details/116275812