区块链基础知识(3)-区块链的存储(怎样记账)

2023-11-03

我们已经知道,比特币相当于是“全球账薄”,那这份账单是如何存储的?也就是说把账记在哪里。

区块链包含N个随时间排序的块,每个块都有一个指向前一区块的指针,所有块通过这个指针形成一个链,所以称为区块链。第一个块称为创世区块,如图:

从上图可见,区块链由多个区块组成,每个区块由区块头和区块体组成,每个区块头包含区块元信息,同时包含一个指向前一个区块头哈希值的指针,这个指针是防止区块链被篡改的关键信息。

区块体包含了比特币的交易信息,第一个交易是特殊交易,是奖励给挖矿节点的酬劳,这是唯一一种可以产生比特币的方式,也是比特币的发行方式,其余的交易都是转账交易,即比特币从一个地址支付给另外一个地址,这也是实现比特币价值转移的唯一方式。因此,比特币只有发行和转账两种交易,比特币产生以后只能从一个人转账到另外一个人,而不能凭空消失。

所有交易记录都存在区块里,每一区块包含了前一区块所有交易的Hash值,依次按照此方法记账,则最新的区块总是间接包含了所有之前的账单信息。

所有这些区块组合起来就形成了区块链,这样的区块链构成了一个容易验证(只要验证最后一个区块的Hash值就相当于验证了整个账本)、不可更改(任何一个交易信息的更改,会让所有之后的区块Hash值发生变化,这样在验证时就无法通过)的总账本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区块链基础知识(3)-区块链的存储(怎样记账) 的相关文章

  • Some Information in Study

    Books recommended by programmer 1 Code Complete 2nd Ed by Steve McConnell 2 The Pragmatic Programmer 3 Structure and Int

随机推荐

  • Nodejs的安装

    1 Nodejs的安装 1 下载与安装 下载地址 http nodejs cn download 也可以从网盘下载 链接 https pan baidu com s 1 tnPpgoZldQJherlXkUJdA 提取码 lmxo 2 进行
  • SpringBoot 27 Dubbo-admin、Zookeeper 安装

    27 1 Dubbo 什么是 Dubbo Apache Dubbo 是一款高性能 轻量级的开源 Java RPC 框架 它提供了 三大核心能力 面向接口的远程方法调用 智能容错和负载均衡 以及服务自动注册和发现 Dubbo 采用全 Spri
  • GO 导入(import)相对路径(Relative Path)的问题

    1 问题的产生 在github上fork一个开源项目之后 想要修改部分代码后供公司项目使用 发现需要修改源项目中的所有内部import 例如开源模块 M中存在P1 P2等package 其中P2 import P1的import路径为 gi
  • JavaWeb详解(第四篇)之JSP 简介

    JavaWeb详解 第四篇 之JSP 简介 1 JSP概述 1 1 什么是JSP JSP 全称是 Java Servlet Pages 它是和 servlet 技术一样 都是 SUN 公司定义的一种用于动态开发 web 资源的技术 JSP
  • conda 创建/删除/复制/重命名 深度学习环境

    1 创建 打开anaconda的prompt面板 先创建一个python3 9的环境 conda create n pytorch1 9 python 3 9 创建完之后可以激活环境 activate pytorch1 9 进一步可以安装t
  • CRM软件系统能否监控手机的使用

    CRM可以监控手机吗 答案是不可以 CRM是一款帮助企业优化业务流程 提高销售效率的工具 例如Zoho CRM 最多也就是听一下销售的通话录音 却不可以监控手机 毕竟CRM不是一款监控软件 CRM的主要作用有以下几点 1 管理客户数据 CR
  • 【数据结构】带头双向循环链表---C语言版(单链表我们分手吧,不要再找我玩了!!!)

    文章目录 一 前言 二 链表的分类 1 单向或者双向链表 2 带头或者不带头链表 3 循环或者非循环 4 最常用链表 三 带头双向循环链表详解 创建带头双向循环链表 接口1 定义结构体 LTNode 接口2 初始化 创建哨兵卫 LTInit
  • mmdet_config_builder_win

    在mmdet框架中使用config配置文件构建网络模型 from mmdet models builder import build detector from mmcv import Config import torch import
  • Android 内核调用充电状态和电池电量

    Android 内核调用充电状态和电池电量 前言 一 调用的文件 二 调用函数 1 引入使用 2 返回值说明 小结 前言 因为Android项目需求 不是什么时候都是用APP来实现功能 部分项目是要求需要驱动需要独立完成部分系统层面的功能
  • 在vue中引入echart的折线图时,echarts.graphic.LinearGradient,不能正常显示的解决方法。

    在vue中需要达到折线图 且有区域渐变色的效果 那么像下面那样子直接复制过来 在vue中不能渲染出来 需要将原来的 new echarts graphic LinearGradient 改成这样 new this echarts graph
  • Vue线上部署之cdn加速(终极加速)

    文章目录 1 概述 3 cdn gzip vs gzip 1 概述 之前做过服务器nginx开启gzip压缩 速度缩减了很多 加载时间在1秒多 会出现白屏 原因是好多依赖被打包到js中了 体积太大 加载很慢 今天加了下cdn 速度真正起飞
  • Tomcat 线程池

    目录 概述 tomcat线程池工作原理 关键源码 Connector 配置 Executor 线程配置 tomcat核心组件 题外 概述 Tomcat 是一个流行的 Java Web 服务器 它使用线程池来处理客户端请求 线程池是一组预先创
  • 矩阵的转置等于矩阵的逆

    http zhidao baidu com question 334500638 html 百度知道三个回答 矩阵A的转置矩阵A T等于A的逆矩阵A 1 那么AA T AA 1 E 设A 1 2 3 n T 其中 i为n维列向量 那么A T
  • 华为机试-在字符串中找出连续最长的数字串

    题目描述样例输出输出123058789 函数返回值9输出54761 函数返回值5接口说明函数原型 unsignedint Continumax char pOutputstr char intputstr 输入参数 char intputs
  • Android zygote进程启动过程

    zygote启动过程中涉及到以下模块 app process zygote USAP socket FileDescriptor FD AndroidRuntime AppRuntime 定义于app process模块 继承自Androi
  • STM32F103构建固件库模板(PS固件库文件树介绍)

    参考 STM32F103ZE新建固件库模板 作者 追兮兮 发布时间 2020 10 14 10 31 45 网址 https blog csdn net weixin 44234294 article details 109065495 参
  • 官网ISE14.7虚拟机版本在Win11的安装记录

    目录 第一步 下载ISE14 7虚拟机版本 第二步 下载IOracle VM VirtualBox虚拟机 第三步 安装虚拟机Oracle VM VirtualBox 第四步 安装ISE14 7 4 1 参考博客 4 2 格外注意 4 3 安
  • 软件测试之linux复习!

    1 介绍linux linux分为 内核版 发行版 常见的发行版 Ubuntu redhat fedora kaliLinux backtrack linux 2 命令 cd 跳转路径 相对路径 根据当前目录进行跳转时的方式 绝对路径 从
  • Redis(一)

    Redis和Memcache比较 Redis是单进程单线程模式 采用I O多路复用 Memcached 采用 多线程模型 采用非阻塞I O 1 Redis不仅仅支持简单的k v类型的数据 同时还提供list set zset hash等数据
  • 区块链基础知识(3)-区块链的存储(怎样记账)

    我们已经知道 比特币相当于是 全球账薄 那这份账单是如何存储的 也就是说把账记在哪里 区块链包含N个随时间排序的块 每个块都有一个指向前一区块的指针 所有块通过这个指针形成一个链 所以称为区块链 第一个块称为创世区块 如图 从上图可见 区块