区块链技术基础(笔记)

2023-10-27

一、区块链本质上是一个对等网络(peer-to-peer)的分布式账本数据库。

二、区块链本身其实是一串链接的数据区块,其链接 指针是采用密码学哈希算法对区块头进行处理所产生的区块头哈希值。

三、基本概念

1、 数据区块:

    比特币的交易会保存在数据区块中,大约每10分钟会产生一个区块,每个数据区块一般包括区块头(Header)和区块体(Body)两部分。

    

    区块体中则主要包含交易计数和交易详情。

 

    交易详情就是比特币系统中的记账本,每一笔交易都会被永久地记入数据区块中,并且所有人都可以查看。

 

    区块体中的Merkle树将会对每一笔交易进行数字签名,如此可以确保每一笔交易都不可伪造且没有重复交易。

    所有的交易将通过Merkle树的Hash过程产生一个唯一Merkle根值记入区块头。

 

2、挖矿与分叉问题

3、时间戳和不可篡改性

    在比特币系统中,获得记账权的节点在链接节点时需要在区块头中加盖时间戳,用于记录当前区块数据的写入时间。每一个随后区块中的时间戳都会对-前一个时间戳进行增强,形成一个时间递增的链条。时间戳可以作为存在性证明(Proof of existence)的重要参数。

4、分布式数据库

5、UTXO交易模式

    未花费交易输出,是比特币交易过程中的基本单位。

6、哈希函数

7、Merkle树

    比特币区块链系统中采用的是Merkle二叉树。优点:极大的提高了区块链的运行效率和可扩展性。使得区块头只需包含根哈希值而不必封装所有底层数据,这使得哈希运算可以高速地运行在智能手机和物联网设备上;其次是Merkle树可支持“简化支付验证协议”(SPV),即在不运行完整区块链网络节点的情况下,也能够对交易数据进行验证。

    

 

8、双重支付(双花问题)

    利用货币的数字特征用“同一笔钱”完成两次或者多次支付。区块链技术通过区块链接形成的时间戳技术加上验证比特币是否满足UTXO和数字签名,有效的避免了双花问题。

9、P2P网络

10、加密算法

    除了哈希算法外,还存在一种为交易加密的非对称加密算法(椭圆曲线加密算法)。非对称加密算法指的是存在一对数学相关的秘钥,使用其中一个秘钥进行加密的数据信息,只能使用另一个秘钥才能对该信息进行解密。这对秘钥中,对外公开的秘钥叫公钥,不公开的秘钥叫私钥。

    比特币系统一般从操作系统底层的一个密码学安全的随机源中取出一个256位随机数作为私钥,私钥总数为2*256 个,所以很难通过遍历所有可能的私钥得出与公钥的对应的私钥。用户使用的私钥还会通过SHA256和Base58转换成易书写和识别的50位长度的私钥,公钥则首先由私钥和Secp256k1椭圆曲线算法生成65字节长度的随机数。

    

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

区块链技术基础(笔记) 的相关文章

  • UDP协议的详细解析

    UDP数据报 一 UDP的概述 User Datagram Protocol 用户数据报协议 UDP是传输层的协议 功能即为在IP的数据报服务之上增加了最基本的服务 复用和分用以及差错检测 UDP提供不可靠服务 具有TCP所没有的优势 UD
  • 关于java.lang.NullPointerException报错的原因和解决方法

    空指针异常 某个对象为null 对该对象的访问就会抛出空指针异常 解决 需找到该异常位置并在处理或调用对象的时候需要判断是否为null 如 Long echostr null String str echostr toString 当ech

随机推荐

  • R语言中将hello打印10次的两种方法

    我们有两种方法来做这件事情 1 for结构 for循环重复的执行一个语句 直到某个变量的值不再包含在序列seq中为止 语法 for var in seq statement 例如 gt for i in 1 10 print Hello 1
  • lumen ”Cannot declare class Event“ 错误解决方法

    在安装php event扩展的服务器上运行lumen框架是会报错 ErrorException Cannot declare class Event because the name is already in use 详细错误信息如下图所
  • Flink 报错:写入数据到流加载失败

    近年来 随着大数据技术的飞速发展 Apache Flink 成为了一个广泛应用的流式处理框架 然而 在使用 Flink 进行数据处理时 有时候我们可能会遇到一些错误和异常 其中一种常见的问题是 Writing records to stre
  • mfc 一些杂七杂八的东西

    cstring CString Left int nCount const 从左边1开始获取前 nCount 个字符 CString Mid int nFirst const 从左边第 nCount 1 个字符开始 获取后面所有的字符 CS
  • Qt多个ui界面,如何建立联系

    https blog csdn net qq 41399894 article details 87460230 一 最简单的方法 无非就是你建了多个ui界面 然后你只需要new它 获得它的地址信息 就可以建立联系了 如下 在MainWin
  • 酒浓码浓 - React事件阻止浏览器默认行为/冒泡

    React事件行为 React中无法用return false去阻止事件的默认响应行为 必须用 event preventDefault 阻止浏览器默认行为 例如标签不跳转 注 IE不认 在IE下需要用window event return
  • java的图片背景透明及透明度处理

    如题 以下为通过java实现的针对图片的背景透明及透明度处理 供大家需要时参考 设置源图片为背景透明 并设置透明度 param srcFile 源图片 param desFile 目标文件 param alpha 透明度 param for
  • activex控件 InvokeHelper

    当你调用关于activex控件中的相关方法时 你要导入此控件到程序中 此时就会在工程中生成一个关于此控件调用的一个伪调用类 其中的cpp中调用每 个方法都是通过InvokeHelper调用其中的dwDispID值来定位方法的地址的 因此 可
  • exports is not defined

    若是babel 6 可以看这位同仁的文章 https www cnblogs com vickya p 8645061 html 若是babel 7 设置 https www babeljs cn docs babel preset env
  • 【Python】文件操作 r+ 的问题

    问题背景 想用 python 实现文件的读取 并修改部分内容 再写回去 r 是最符合的权限 可读写 并且可以覆盖文件之前的内容 但是实际使用时 发现修改后的内容是追加的方式 而不是覆盖 with open gitignore r as f
  • CENTOS上的网络安全工具(二十四)Windows下的Hadoop+Spark编程环境构建

    前面我们搭建了hadoop集群 spark集群 也利用容器构建了spark的编程环境 但是一般来说 就并行计算程序的开发 一刚开始一般是在单机上的 比如hadoop的single node 但是老师弄个容器或虚拟机用vscode远程访问式开
  • MFC定时器SetTimer函数

    一 SetTimer表示的是定义个定时器 根据定义指定的窗口 在指定的窗口 CWnd 中实现OnTimer事件 这样 就可以相应事件了 SetTimer有两个函数 一个是全局的函数 SetTimer UINT SetTimer HWND h
  • C语言上机实验思路分享4

    实验内容 方法和步骤 1 输入 10 个整数 用选择法对这 10 个整数按从小到大的顺序排序并输出排序后的结 果 程序代码 include
  • 从现实抽象出类的步骤

    第一 找出分类 分析出类 第二 找出类的特征 分析类的相关属性 第三 找出类的行为 分析类的方法 转载于 https www cnblogs com liumeilin p 7018110 html
  • AVRCP协议介绍

    文章目录 1 AVRCP协议介绍 1 2 概念 1 2 1 1 2 2 role 用途 2 AVRCP框架 1 AVRCP协议介绍 1 2 概念 1 2 1 1 2 2 role CT controller 是一种通过向目标发送命令帧来启动
  • 静态编译和动态编译,java与javascript区别总结

    1 静态编译和动态编译 静态编译是程序在编译时就已经确定好了所有类之间的关系 要运行程序所有类 都缺一不可 若在开始运行时就把其中的某类文件丢失 就会产生 NoClassDefFoundError错误 程序会终止 在程序运行前的装载期间就把
  • flutter获取状态栏高度

    获取状态栏高度 import dart ui MediaQueryData fromWindow window padding top 系统默认的appBar等高度 位于Dart Packages flutter src material
  • 物理渲染学习笔记(三)——Cook-Torrance微表面模型

    从 Phong 到 GGX 光照模型林林总总 一直没能找机会梳理一遍 这几天依次都自己实现了一遍 也正好总结下 Microfacet 普通的着色模型假设着色的区域是一个平滑的表面 表面的方向可以用一个单一的法线向量来定义来定义 而 Micr
  • 程序员吃青春饭?程序员在35岁以后是否需要转行?你规划好了吗?

    都说程序员是一个吃青春饭的职业 都认为程序员到了35岁以后不转管理岗位就没有什么前途了 可能就要考虑换别的行业了 年龄越大可能越写不动代码了 那么程序员是不是35岁以后需要转行 我说说我自己的观点 关于程序员35岁之后是不是要转行这个问题
  • 区块链技术基础(笔记)

    一 区块链本质上是一个对等网络 peer to peer 的分布式账本数据库 二 区块链本身其实是一串链接的数据区块 其链接 指针是采用密码学哈希算法对区块头进行处理所产生的区块头哈希值 三 基本概念 1 数据区块 比特币的交易会保存在数据