区块链基本概念
来源:互联网 发布:英文域名例子 编辑:程序博客网 时间:2024/06/07 03:45
1、概述
在中本聪的论文《BitCoin:A Peer-to-Peer Electronic Cash System》中定义区块链技术是构建比特币系统的基础,区块链记录着所有元数据和加密交易信息,从而建立了一个完全通过P2P技术实现的电子现金系统,此系统使得在线支付的双方不用通过第三方金融机构而直接进行交易。比特币系统是第一个采用区块链技术作为底层技术构建的系统,他是一个实现了去中心化、去信任化、安全可靠的电子现金系统。
2、区块链基础技术
哈希算法
将任意长度的输入值映射为较短的固定长度的二进制值。数据的哈希值可以检验数据的完整性,一般用于快速查找和加密算法。
哈希算法广泛应用于区块链中,入Merkle树,以太坊账户地址,比特币地址,POW算法等。
Merkle树
Merkle树在分布式环境下验证、文件对比中应用较多。
区块链系统采用二叉树型的Merkle树对这些交易进行归纳表示,同时生成该交易集合的数字签名。Merkle树支持快速地归纳和校验区块中交易的完整性与存在性。
POW
比特币系统利用POW机制使系统各节点最终达成共识,进而得到最终区块。
这里的工作是指找到一个合理的区块哈希值,需要不断进行大量的计算。
POS
权益证明机制,这种机制根据火币持有量和时间来分配相应的利息,不足是因为没有消耗大量算力导致货币价值来源难以确定。
非对称加密技术
公钥加密私钥解密,私钥签名公钥验证。在比特币系统中,公钥由私钥通过椭圆曲线加密算法生成。交易信息中必须要有正确的数字签名才能验证交易有效。
3、区块链的概念与结构
3.1、定义
区块链是指一种电子记录形式的账簿,其中每一个区块是账簿的一页,从第一页“链接”到最新一页。
时间戳服务就是通过对区块中数据项加上时间戳进行哈希,并把这一哈希值广泛地传播出去。显然,要得到这个哈希值,就需证明在过去的某个时刻加上时间戳的数据必然存在。
每一个区块都包含了上一个区块的哈希值,确保按照时间顺序在上一个区块之后产生,否则前一个区块的哈希值是未知的。
3.2、区块链的发展和类型
数字货币-智能合约-DAO、DAC和区块链社会
类型可以有公有链、私有链等,主要区别在于共识机制和节点选取不同。
3.3、区块链的数据结构
区块链技术中,区块是指一种数据结构,包含两部分:区块元数据和区块体。
区块元数据包含区块大小、区块头和交易计数器。
区块头由两组数据组成:时间戳、难度目标、Nonce值;链接父区块的字段(hash值)、版本号、Merkle树根。
区块体记录的是从上一区块产生到此区块创建之间所发生的所有交易。
将区块中所有交易记录都进行两次哈希运算之后,将结果作为Merkle树的叶子节点,然后递归两个相邻节点的哈希值,直到得到Merkle根。
难度目标是一种特殊的浮点编码类型,占4Byte,首字节是指数,仅用其中的最低5位,后3个字节是尾数,它能够表示256位的数。
一个区块头的SHA256哈希值必须小于或等于Bits难度目标才能被整个网络认可。
Nonce字段是指随机数,各个区块头的值往往不同,但它是从0开始按照限行方式增长的随机数,每次计算都会增长。挖矿就是来寻找一个满足条件的Nonce值。
区块标识符:区块头哈希值和区块高度
区块头哈希值是通过对区块头6个字段进行两次SHA256哈希计算得到数字签名,产生的256位值简称区块哈希值。
创世区块高度为0;当区块分叉发生时,两个或多个区块竞争同一高度。
区块链的时间戳服务可以用来进行存在性证明,区块链技术将可以用来存储信息,并且是一个存在性证明的最佳技术。
两个相邻区块间通过父区块哈希值、时间戳、块高度、Nonce值保持一定联系。
区块链技术的瓶颈:过大的完整账本的存储空间、信息分发采用全网广播、交易效率低下、算力浪费等。
4、区块链的运行原理
中本聪在其比特币白皮书中非常详细地介绍了区块链系统的建立过程:
(1)新的交易向全网所有节点广播
(2)每个节点把收到的交易都写到一个区块中
(3)每个节点都在新的区块上进行计算,寻找一个工作量证明解
(4)某个节点找到工作量证明解时,就把其所在的区块向全网进行广播
(5)其他节点收到广播的这个区块后对其进行验证,只有所有交易都被验证时有效的且未被使用之后,该区块才能被认可
(6)每个节点通过将此区块的哈希值作为父哈希值来进行下一个区块的计算,表示节点认可了此区块有效
一般情况下,一笔交易必须经过至少6次确认(在此区块之后每产生一个区块就是1次确认),才能最终在区块链上被承认是合法交易。若达到6次确认后要想修改记录,花费代价太大,得不偿失。
区块链的主要技术平台与应用有以太坊和Hyperkedger等。
总之,区块链技术的发展被业内人士广泛看好,这个越来越受青睐的趋势会一直持续,这些趋势不一定以区块链的形式直接出现,可能会作为区块链技术的衍生品兴起。区块链应用已经从最初单纯的数字货币过渡到更广泛的金融业,并且渗透到社会中的很多领域,比如身份验证、跨境支付、文件存储、物联网等,其中金融领域是目前最成熟、应用最广的领域。区块链技术作为当下最热门的技术之一,值得我们投入更多的时间与精力进行学习和研究。
- 区块链的基本概念
- 区块链基本概念
- 区块链学堂(4):以太坊基本概念及工具Geth、Browser-solidity、Mist
- 区块链学堂(第二课):以太坊基本概念+Geth 安装
- 区块链
- 区块链
- 区块链
- 区块链
- 区块链
- 区块链
- 区块链
- 区块链的区块结构
- 区块链解读-区块链金融
- 【区块链系列1】区块链科普
- 区块链为什么叫区块链
- 区块链:区块链技术初探(一)
- 【区块链开发指南】区块链进阶
- 区块链原理学习-区块链结构
- java 如何解析json字符串
- C笔记 字符串
- 【慕课网】NODE.JS基础(一)学习笔记
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 信号与系统在图像的应用
- 区块链基本概念
- Java I/O 知识点(二)
- 项目进度(十)
- caffe-windows快速配置和测试训练教程
- [BZOJ1996]chorus 合唱队
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- Oracle常用函数
- 记5.28大促压测的性能优化(线程池相关问题)
- 彻底解决 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏