都2021年了,还不知道什么是区块链就out了 | 从区块链数据结构到应用

序言

        在现阶段及后10年都是发展主流的数字化经济的催动下,区块链技术越来越火爆。那么比特币的区块数据结构是如何构成的,区块链有什么特性,我们用区块链能用来做什么?我们一起来探讨下。

区块链诞生背景

        2008年11月1日,“中本聪”在一个隐秘的密码学讨论邮件组上贴出一篇研究报告《比特币:一种点对点的电子现金系统》,论文中阐述了希望可以创建一套“基于密码学原理而不基于信用,使得任何达成一致的双方能够直接进行支付,不需要第三方中介参与”的电子支付系统。
        2009年1月,以区块链技术为基础的比特币发行交易系统正式开始运行,随着比特币区块链中第一个区块生成,比特币诞生。

区块链是什么?

        从科技层面来看,区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题。从应用视角来看,区块链是一个分布式的共享账本和数据库
        区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链它本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批交易的信息,用于验证其信息的有效性(防伪)和关联前一区块 。

区块链的数据结构

        区块链(blockchain),顾名思义,由区块形成的链。那“区块”是什么?形成的链又是怎样的呢?
首先,我们来一起分析分析“区块”。“区块”是一种记录交易的数据结构,每个区块由区块头和区块主体组成,区块主体负责记录前一段时间内的所有交易信息,区块链的大部分功能则都由区块头实现。区块结构如下所示
区块结构

什么是创世区块

        区块链里的第一个区块由中本聪创建于2009年,被称为创世区块。它是区块链里面所有区块的共同祖先,这意味着你从任一区块,循链进行回溯,最终都将到达创世区块。创世区块被中本聪内置到了区块链里,所以每一个节点都始于至少包含一个区块的区块链,这能确保创世区块不会被改变。每一个节点都知道创世区块的哈希值、结构、创建时间和区块交易。因此,每个节点都把该区块作为区块链的首区块,从而构建了一个安全的、可信的区块链的根。

区块的header和body
header

        区块中区块头大小是80个字节,包含以下6部分数据:,包括:4个字节的version、32个字节的PrevBlockHash、32个字节的Merkle Root Hash、4个字节的timestamp、4个字节的Bits、4个字节的Nonce

Version:是区块链的版本号,用于记录区块版本,判断出块是否有效

PrevBlockHash:是前一个区块的哈希值,依据该信息区块之间形成链结构

Timestamp:区块创建的是时间戳,仅供参考意义,每个节点上的时间无法100%的确保一致

Bits:当前出块难度值,它决定了大概需要经过多少次哈希运算才能产生一个合法的区块。出块之前,区块链网络设置了一个target值,target值越低,生成有效hash的集合就越小,生成有效hash就越困难。
target值 = 最大目标值 / 难度值,其中最大目标值是固定的。

Nonce 区块工作证明的参数。由于给定的一组数据只能生成一个hash,矿工如何确保他们生成的hash小于target?它们通过添加一个称为nonce的整数(number only used once )来改变输入的数据,一旦找到一个有效的hash,它就被广播到网络中,同时区块被添加到区块链中,找到这个nonce整数的矿工就能获得数字货币奖励。

Merkle Root Hash:是区块中所有交易的markle数root节点的hash值,交易数据的验证主要依赖markle进行,通过Merkle Root Hash,区块能以很小的代价保存交易信息
merkle树
上述图表述了Merkle Root Hash的计算过程,由于Merkle树涉及的内容比较多,我们后续单独在文章进行分析。

body

        区块body主要负责记录区块内的交易信息,包含以下3部分信息:区块大小、交易计数、交易信息(hash列表)。

区块链的特点

去中心化

        由于使用分布式计算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。

开放性

        系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。

自治性

        区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。

信息不可篡改

        一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

匿名性

        由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方自己产生信任,对信用的累积非常有帮助。有兴趣的可以研究研究零知识证明

区块链的应用场景

        区块链主要的优势是无需中介参与、过程高效透明且成本很低、数据高度安全。所以,在这三个方面有任意一个需求的行业都有机会使用区块链技术。
电子存证:应用区块链技术将电子材料、业务数据、用户行为等信息进行固定,实现防篡改、可验真、可追溯。
跨境支付:在时间方面,传统跨境汇款需要10分钟或数日不等,而区块链跨境汇款可实现汇款秒到账。在便捷性方面,传统跨境汇款在19时以后需要等到次日才能转账,而区块链跨境汇款只需一台手机即可实现全天候汇款。
一键溯源:通过区块链技术将商品信息上链,包括原产地,施肥周期,打药周期等等,消费者一键扫码,查看商品生命周期信息,实现了商品信息的防篡改、可验真、可追溯。

区块链就介绍到这里啦,喜欢的朋友们帮忙动动手指点个赞吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33581.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于区块链的内容社交平台,他们凭什么说比知乎更吸引人?

本堂茜 渡鸦区块链专栏记者 张杰拥有10多年的软件开发经验和创业经验,自称是“互联网老兵,区块链新秀”。随着互联网的发展,渐渐的他们不再满足于做线下的软件外包项目,更想在互联网方面做。 他们在互联网方面做了很多SAAS服务。例…

在清华讲区块链,高晓松竟这样解读共识与Token

本文仅代表作者观点 作者 | 李画 编辑 | 秦晋 高晓松2019年的第一期《晓说》,在母校清华大学做了以一场没有"诗和远方"全是苟且的演讲:《5G与区块链:文创产业的重要赛道》。他认为,5G与区块链是文创/内容产业在未来最重…

朋友聚会上,当你被cue聊聊区块链时.....

来源 | 白话区块链 责编 | 晋兆雨 头图 | 付费下载于视觉中国 转眼间,又到了一年一度的同学聚会。这次班长牵头,把班上绝多数同学都叫了过来,甚至还请了班主任王老师到场,摆了好几大桌。 一时间觥筹交错,各个都喝得满…

家用2kw风力电机满负荷的发电量有多少

家用风力发电机2kw的一天的满负荷发电量是48度电,3级风发电5级风满负荷发电,电机是永磁发电机,足功率发电,纯铜线圈缠绕,叶片是增强玻璃钢材质的

PyTorch搭建LSTM实现时间序列预测(负荷预测)

目录 I. 前言II. 数据处理III. LSTM模型IV. 训练V. 测试VI. 源码及数据 I. 前言 在上一篇文章深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)中,我详细地解释了如何利用PyTorch来搭建一个LSTM模型,本篇文章的主要目…

TensorFlow搭建LSTM实现时间序列预测(负荷预测)

目录 I. 前言II. 数据处理III. 模型IV. 训练/测试V. 源码及数据 I. 前言 前面已经写过不少时间序列预测的文章: 深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)PyTorch搭建LSTM实现时间序列预测(负荷预测&#xf…

TensorFlow搭建LSTM实现多变量时间序列预测(负荷预测)

目录 I. 前言II. 数据处理III. LSTM模型IV. 训练/测试V. 源码及数据 I. 前言 在前面的一篇文章TensorFlow搭建LSTM实现时间序列预测(负荷预测)中,我们利用LSTM实现了负荷预测,但我们只是简单利用负荷预测负荷,并没有利…

深度学习--Matlab使用LSTM长短期记忆网络对负荷进行预测

一、LSTM描述 长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络…

电力负荷预测数据集

电力负荷预测,用电量以及温度、湿度、风速、降雨等数据,每15min一组,共计13个月 下载链接:https://download.csdn.net/download/ncusz/82632972

Python画用电客户日负荷曲线图

Python版本:Python3.6.2 一、日负荷曲线 摘自百度百科,日负荷曲线是描述一日内负荷随时间变化的曲线。 二、数据处理 数据:申请的爱尔兰开源用户用电数据,txt格式,一个文件将近400M,用写字板打开,很卡。 截…

基于改进粒子群IPSO与LSTM的短期电力负荷预测

短期电力负荷预测是电力系统安全调度、经济运行的重要依据 , 随着电力系统的市场化 , 负荷预测的精度直接影响到电力系统运行的可靠性、经济性和供电质量。LSTM 为短期电力负荷预测提供了一个新的研究方向。本文将LSTM用于短期电力负荷预测 , 提出基于LSTM 的短期电力负荷预测模…

电力负荷预测三篇综述总结

三篇综述链接: 深度学习方法在负荷预测中的应用综述(论文阅读)光伏发电量和用电量的概率预测研究综述(1)光伏发电量和用电量的概率预测研究综述(2)光伏发电量和用电量的概率预测研究综述&#…

记录一次生产服务器CPU400%满负荷处理过程

记录一次生产服务器CPU400%满负荷处理过程 文章目录 记录一次生产服务器CPU400%满负荷处理过程步骤猜测解决方法反思总结 步骤 top命令 31779进程 占 CPU 361% ,通过最后的COMMAND可以判断是java进程 通过jvm的 jsp -l命令 查询 31779进程 是 zipkin-server-2.…

Python 多进程下开多线程满负荷工作

最开始只是有这样一个想法,后来想实现一下 本文只是写一个例子,实现了开多个进程,每个进程下面开多线程,每个进程执行单独一个任务,并行执行,进程下的多线程执行任务,并发执行 import multiprocessing import threading import timedef m_test():for i in range(25):tthreadin…

磁盘IO满负荷性能分析

磁盘IO满负荷性能分析 2011-06-26 22:30:59| 分类:linux优化 |举报|字号 订阅 磁盘IO满负荷性能分析(一) 有个项目最近发现在执行一些oracle数据库的数据补入的sql语句时非常慢,经查发现来自存储的硬盘io会冲到100busy devic…

【板卡调试】测试篇 满负荷 网口测试篇

1、满负荷测试 对于window环境下载,下载使用7.zip的软件,进入工具中选择基准测试,即可。 原理:根据选择的线程核数,进行多线程式的解压缩操作,进而实现CPU满负荷运载。 工具下载链接:https:/…

Android Studio实现记单词App,背完四六级一次过~

项目目录 一、项目概述二、主要技术三、开发环境四、详细设计1、数据库2、单词详情3、搜索单词 五、运行演示六、源码获取 一、项目概述 本系统包含高考、四级、六级、托福和雅思词汇五个章节。每个章节分为多个单元,每个单元又包含上百个词汇。可以在单元列表查询…

英语背单词秘籍

注:文章已于2021年2月4日更新。 文章目录 1. 大多数人背单词的现状2. 为什么不推荐使用现成的单词书3. 费曼学习法来帮助背单词1. 大多数人背单词的现状 背单词是大型考试中极为基础但却至关重要的一步。但很多同学都在此步中就踩了坑,比如买了一本厚厚的单词书开始背起,如…

安卓android记单词软件

课程设计项目总结,基于安卓的记单词软件,分为前端和服务器端,前端使用安卓,后端使用SSM框架。 具体技术栈为: 前端:android、okhttp、sqlite、litepal等 后端:SSM(SpringMVCSpringMybatis)、mysql数据库、tomcat服务器…

Python背单词记单词小程序,可自定义词库,支持多种记忆模式,根据词义拼写、选择单词,根据词意选择单词

Python背单词记单词小程序,可自定义词库,支持多种记忆模式,根据词义拼写、选择单词,根据词意选择单词,可乱序抽查,可对错题进行反复抽查 完整程序源代码下载:Python背单词记单词小程序 词库生成…