区块链学习笔记(3)--交易机制与双花

2023-10-29

比特币的交易机制

如何交易:一位所有者(A)利用他的私钥对前一次交易T1和下一位所有者(B)的地址签署一个随机散列的数字签名,A将此数据签名制作为交易单T2,并将交易单T2广播全网,电子 货币就发送给了下一位所有者

■要点:

1.交易发起者的私钥:私钥为个人所知,他人无从知晓

2.前一次交易:前一次交易数据说明了该次交易的货币的来源

3.下一位所有者的地址:即交易接收方的地址,此数据说明了当前交易的目标是谁

4.数字签名:发起方将前一次交易数据和接收方公钥连接起来并对其求Hash值x ,再利用自己的私钥对x加密,便得到了这份数字签名

 

验证交易:

1.利用交易T2中交易的发起方A的公钥对签名进行解密,得到整数X

2.将T1交易数据和B的公钥连接起来,用同样的Hash算法计算Hash值y

3.若x==y,说明:

       a.这笔交易确实是A本人发起的,因为只有A本人的私钥才可以生成此签名( A同时也无

       法否认自己曾签署了此份交易)

      b.交易的目的方确实是B

      c.发起方确实是打算把交易T1中A获得的货币发送给B

双重支付 ( Double Spend )

■二重支付(双花) :指攻击者几乎同时将同笔钱用作不同交易或者抹掉自己曾经发给别人钱的记

双花如何操作 :

■假设现在block高度为100,攻击者给商户发了一个交易10BTC, 记作交易A,通常这笔交易会被收录进高度101的block中,当商户在101 (着急了吧? )块中看到这笔交易后,就把货物给了攻击者■此时,攻击者便开始构造另个高度为 101的block, 但用交易B替换了交易 A.交易B中的输入是同一笔,使得发给商户的那笔钱发给他自己

■同时,攻击者努力计算block 使得他的分支能够赶上并超过主分支,如果最终大家接受其分支为主干分支,这笔钱就成功的完成双重支付

双重支付的难度

区块链--比特币的工作量证明_阿洋太爱大数据的博客-CSDN博客

       双花需要让自己成为最长的链 。其他节点才会切到这个最长链上 来。那么攻击者必须在10分钟内连续创建出6个(商户在101块中看到这笔交易后,继续等待到106出块成功且看到这笔交易没变)合法Block才有可能将原链替换,这意味着攻击者在10分钟内产生的算 力需超过比特币网络其他所有节点在60分钟内算力的总和

面意味着攻击者要能做出比诚实链长出7个区块,才能让其他节点切到这个非诚实链上,仅仅算出比诚实链长出2,3个区块是不够的,因为接受者通常会等6个确认(否则接受者看不到区块中有自己的内容就不会发货)

.比特币网络Block链被增加6个后,Block链被修改的可能性概率基本降为0

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

区块链学习笔记(3)--交易机制与双花 的相关文章

  • WXS:微信小程序版JavaScript

    完整微信小程序 Java后端 技术贴目录清单页面 必看 WXS WeiXin S 标题cript 是小程序的一套脚本语言 结合 WXML 可以构建出页面的结构 WXS 与 JavaScript 是不同的语言 有自己的语法 并不和 JavaS

随机推荐

  • csdn 登陆入口

    csdn登陆入口 https passport csdn net login code public 刚刚百度CSDN登陆 居然找不到入口
  • 解决cURL error 60: SSL: no alternative certificate subject name matches target host name ‘test.com‘

    按照提示前往libcurl Error Codes说是SSL 证书问题 解决方法 1 前往该路径 下载https curl se ca cacert pem 将文件里的内容全部复制下来 然后替换上图路径的 ca bundle crt 里面的
  • 一文搞定Linux进程和线程(详细图解)

    Linux 进程和线程 本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程 系统调用是操作系统本身的接口 它对于创建进程和线程 内存分配 共享文件和 I O 来说都很重要 我们将从各个版本的共性出发来进行
  • jenkins从gitlab拉取代码,进行构建

    1 在gitlab平台加入jenkins机器的公钥 2 在jenkins平台加入jenkins机器的私钥 3 在jenkins中新建任务 4 立即构建
  • 音频录制以及播放

    音频录制以及播放 象棋小子 1048272975 一般的音频应用中 往往需要支持音频的拾取输入以及音频的播放输出 LPC5411x具有I2S音频接口以及双通道PDM数字麦克风接口 其中数字麦克风接口支持芯片深度睡眠时的语音激活 非常适合于音
  • java8内部调用无法引用值的问题

    问题 Variable used in lambda expression should be final or effectively final 具体原因 这段代码试图将 20 赋给一个局部变量 它无法通过编译 但绝非编写错误 这实际上
  • linux中的struct timeval结构

    struct timeval long tv sec seconds long tv usec and microseconds 百万分之一秒 timeval结构的用于指定时间值 头文件 include
  • 自定义LayoutManager,仿微信朋友圈的九宫格效果

    前言 之前在项目中我有写过自定义控件九宫格是根据ViewGroup写的 功能已经实现了 但是后来我感觉如果以后性能提升的话 可能在缓存这块有要求 所以 我感觉还是改变使用自定义LayoutManager来写这个控件 后期就直接使用Recyc
  • 2023百度网盘免费扩容方法

    百度网盘是一款大众使用的网络云盘储存工具 但是每一位用户的网盘空间是有限制的 那么又不想花钱进行扩容该怎么办 方法一 首先打开手机桌面上的软件进入 在我的界面点击更多服务进入 然后在更多服务界面点击领无限空间进入 最后在弹出的窗口根据提示绑
  • ningx跨域的方案

    location home rewrite home 1 break proxy pass https 添加上述代码
  • 深度学习-全连接神经网络-训练过程-模型正则与超参数调优- [北邮鲁鹏]

    目录标题 神经网络中的超参数 学习率 超参数优化方法 网格搜索法 随机搜索法 超参数搜索策略 粗搜索 精搜索 超参数的标尺空间 神经网络中的超参数 超参数 网络结构 隐层神经元个数 网络层数 非线性单元选择等 优化相关 学习率 dorpou
  • 华为OD机试真题 Java 实现【微服务的集成测试】【2023Q1 100分】

    目录 一 题目描述 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 1 输入 2 输出 一 题目描述 现在有n个容器服务 服务的启动可能有一定的依赖性 有些服务启动没有依赖 其次服务自身启动加载会消耗一些时间
  • pandas从时间序列中判断是一周的第几天或星期几

    把时间列标准化时间格式 df time slot1 pd to datetime df time slot1 输出这一天是周中的第几天 Monday 0 Sunday 6 df dayofweek df time slot1 dt dayo
  • 数据湖和数据仓库的区别?

    简介 数据湖这个概念和数据仓库这两个概念一直搞不清楚 之前感觉区别就是数据湖是数据仓库的父集 数据湖是个伪命题 平时生活中也用不到 然后今天听了我的一个师哥的讲解 然后简单总结下 常见的问题 1 数据湖和数据仓库的区别 相似点 都可以处理海
  • PyQt5最全81 信号与槽之为类添加多个参数可选的信号

    PyQt5最全81 信号与槽之为类添加多个参数可选的信号 from PyQt5 QtCore import class MultiSignal QObject 为类添加多个信号 signal1 pyqtSignal 无参数 signal2
  • h5 跳转小程序微信浏览器不显示跳转按钮

    问题 静态页面 h5 页面 跳转小程序 在微信内置浏览器里面没有显示出跳转按钮 但是在其他浏览器则正常显示 可能有以下一些原因 1 jweixin js 版本 引入 jweixin js 需要 1 6 0 版本 http res2 wx q
  • ALV DATA_CHANGE与DATA_CHANGE FINISHED的区别

    Alv grid OO ALV中有两个事件 Event data changed和ata changed finished 第一个事件在可编辑字段的数据发生变化时触发 可用来检查数据的输入正确性 第二个事件是当数据修改完成后触发 如果数据没
  • 飞猪平台用户行为分析—python

    文章目录 一 项目背景 1 1数据来源 1 2数据介绍 二 分析目的 三 分析思路 四 数据分析 3 1数据清洗 3 2用户分析 3 2 1用户维度 3 2 1 1浏览量pv 访客量uv 成交量分析 3 2 1 2留存分析 3 2 1 3用
  • 执行命令定义时出错_深入浅出SDC clock定义(下)

    前情提要 前面两次分别和大家一起学习了SDC的整体框架组成和clock定义的一部分内容 如果想要查看可以点击下方蓝色链接 从中可以看出 所有SDC构成中最基本的就是clock的定义 它作为所有SDC的基础 贯穿到几乎所有SDC指令当中 并且
  • 区块链学习笔记(3)--交易机制与双花

    比特币的交易机制 如何交易 一位所有者 A 利用他的私钥对前一次交易T1和下一位所有者 B 的地址签署一个随机散列的数字签名 A将此数据签名制作为交易单T2 并将交易单T2广播全网 电子 货币就发送给了下一位所有者 要点 1 交易发起者的私