区块链技术与应用学习笔记(10-11节)——北大肖臻课程

目录

10.分岔

①什么是分叉?

②导致分叉的原因?

③在比特币新共识规则发布会会导致什么分叉?

什么是硬分叉?

硬分叉例子?

什么是软分叉?

软分叉和硬分叉区别?

软分叉实例

11.问答

转账交易时候,如果接收者不在线(没有连在比特币网络上)怎么办?

假设某全节点收到某个转账交易,会不会有可能转账交易中收款人地址该全节点从未听过?

如果账户私钥丢失怎么办?

私钥泄露怎么办?

转账写错地址怎么办?

BTC系统挖矿,会不会有矿工“偷”答案?

交易费应该给哪一个矿工?即怎么提前知道哪个矿工会挖到矿。


纯干货学习笔记分享!!!只要你们喜欢,我会继续分享的!话不多说,正文开始👇

10.分岔

①什么是分叉?

分叉指的是,原来的系统中为一条链,但现在分成了两条链。

②导致分叉的原因?

挖矿时两个节点差不多同时挖出矿,都会发布区块(对比特币系统当前状态产生分歧导致的分叉state fork);分叉攻击(forking attack),同样也会导致分叉(人为故意造成delibrate fork);比特币协议改变,在分布式系统中不能保证所有节点同时升级比特币软件导致新旧版本出现差异导致分叉(protocd fork);

③在比特币新共识规则发布会会导致什么分叉?

硬分叉(hard fork)和软分叉(soft fork)

什么是硬分叉?

硬分叉指的是,区块链发生永久性分歧,在新共识规则发布后,部分没有升级的 节点无法验证已经升级的节点生产的区块,通常硬叉就会发生。所以在数字货币 领域,硬分叉往往导致新的币种出现。例如以太坊的硬分叉就导致了 ETH的出现。

硬分叉例子?

比特币区块大小限制(block size limit):1M→4M,出现hard fork后,便变成了 两条平行的链,也就造成了社区分裂。

什么是软分叉?

“软分叉”是指:在新的共识规则发布后,由于软分叉的新规则仍旧符合老的规 则,所以,使用旧版本的节点可以验证使用新版本节点所生产出的区块,使用新 版本的节点也可以验证使用旧版本节点生产出的区块,两种版本可以兼容。

软分叉和硬分叉区别?

使用旧软件的节点能否兼容使用新软件的节点,可以兼容,就是软分叉,不能兼 容就是硬分叉。

软分叉实例

①给某些目前协议中未规定的域赋予新的含义或规则。 铸币交易中CoinBase域。在CoinBase域中写入任何内容都可以,没有任何规定。挖 矿本质是调整block header中的nonce,但其本身只有4个字节,搜索空间太小。所 以实际使用中,将CoinBase域前8个字节作为另一个extra nonce,此时搜索空间从 原本2^32 增长到2^96,调整目前挖矿难度。 CoinBase中并不是只有8个字节,还剩下很多空间。有人便提出将剩下空间其作为 UTXO集合内容组织成merkle tree的根哈希值。算出根哈希值,写入coinbase域, 利用merkle proof验证。

②P2SH:Pay to Script Hash 最初比特币版本中没有该功能,后来通过软分叉方法加入了进去。旧节点验证第一阶段 redeem script,新节点会做第二阶段验证。

11.问答

转账交易时候,如果接收者不在线(没有连在比特币网络上)怎么办?

转账交易只需要在区块链上记录,将某账户比特币转到另一账户,而接收方是否在线并无影响。

假设某全节点收到某个转账交易,会不会有可能转账交易中收款人地址该全节点从未听过?

 可能,因为比特币账户只需要本地产生即可。只有该账户第一次收到钱时,其他节点才能知道该节点的存在。

如果账户私钥丢失怎么办?

没有办法。因为比特币是去中心化货币,没有第三方中心机构可以重置密码,所以账户上的钱也就变成了死钱。通过加密货币交易所(中心化机构),一般需要提供身份证明,如果忘记私钥可以找交易所申请追回私钥。但目前这类货币的交易所,尚且处于缺少监管的状态,并不一定具有可信力。在历史上,有很多次交易所被黑客攻击偷走大量加密货币的事情,Mt. GOX(中文译为:门头沟)事件。此外,也有交易所监守自盗。

私钥泄露怎么办?

尽快将剩余BTC转到其他安全账户上,没有第三方中心机构重置密码或冻结 账户,只能自己对自己负责。

转账写错地址怎么办?

没有办法,比特币无法取消已经发布的交易。如果转入不存在地址,则该部 分比特币便成为了死钱。可以沟通,不一定成功。 补充·从本质上讲,OP_RETURN是一个脚本操作码,是专门被设计出来承 载额外的交易信息的。它的作用就像我们在日常转账过程中的备注信息。

BTC系统挖矿,会不会有矿工“偷”答案?

例如:某个矿工发现其他矿工发布了nonce,收到后验证该区块合法,将该nonce作为自己找到的nonce发布出去。 这是不可能的。发布的区块中包含铸币交易,其收款人地址为挖到矿的矿工地址,如果要偷答案,需要修改该收款地址,而地址改变,铸币交易内容也发生改变,从而引发Merkle Tree根哈希值改变。从而导致原本的nonce作废。也就是说,“偷”答案不会发生。

交易费应该给哪一个矿工?即怎么提前知道哪个矿工会挖到矿。

事先无需知道谁会挖到矿,交易中总输入和总输出差额就是交易费。哪个矿工挖到矿,在打包交易时,可以将这些交易费差额收集起来作为自己获得的交易费。

最后,分享一个学习法,如下图👇

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在no branch上commmit后,再切换到其他分支,找不到no branch分支的修改怎么办?

解决办法 通过git reflog我们可以查看历史提交记录,这里的第二条提交(fbd3ea8)就是我在no branch上的提交。 再通过git checkout -b backup fbd3ea8,恢复到上次提交的状态,并且为其创建个分支backup,此时…

ES6要点

ES6/ES7内容解析 一、变量/赋值1、变量2、解构赋值 二、函数1、箭头函数2、默认参数3、参数展开(剩余参数,数组展开) 三、数组/JSON1、 数组2、JSON 四、字符串1、字符串模版2、字符串方法 五、面向对象1、类2、bind()3、箭头函数的this 六、…

【Python特征工程系列】递归特征消除法分析特征重要性-SVC模型为例(案例+源码)

这是我的第268篇原创文章。 一、引言 递归特征消除(RFE)是一种高效的特征选择方法,它通过递归减少特征的数量来找出模型最重要的特征。本文基于支持向量机分类器作为选择器的基模型,采用递归消除法进行特征筛选。 二、实现过程 2…

HTTP与HTTPS 对比,区别详解(2024-04-25)

一、简介 HTTP(超文本传输协议,Hypertext Transfer Protocol)是一种用于从网络传输超文本到本地浏览器的传输协议。它定义了客户端与服务器之间请求和响应的格式。HTTP 工作在 TCP/IP 模型之上,通常使用端口 80。 HTTPS&#xf…

Jmeter(十九) - 从入门到精通 - JMeter监听器 -上篇(详解教程)

宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 监听器用来监听及显示JMeter取样器测试结果,能够以树、表及图形形式显示测试结果,也可以以文件方式保存测试结果,JMeter测试结果文件格式多样…

使用docker安装本地pdf工具集合Stirling-PDF

平时工作中需要处理pdf,市面上的很多工具都需要充会员才能使用,偶然发现了一个可私有化部署且易于使用的PDF在线工具,使用docker部署,使用起来非常方便,而且功能齐全。 这里是官网: https://pdf.errui.cc/…

任务调度xxljob的使用记录

1.基本使用 a.下载代码,地址:https://gitee.com/xuxueli0323/xxl-job.git b.执行sql,修改配置,启动任务调度中心的代码 启动代码后任务调度中心访问地址:http://localhost:8080/xxl-job-admin(自己机器…

D-Wave 推出快速退火功能,扩大量子计算性能增益

内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨沛贤 深度好文:1400字丨6分钟阅读 摘要:量子计算公司 D-Wave 宣布在其 Leap™ 实时量子云服务中的所有量子处理单元 (QPU) 上推出新的快速退火功能。…

30 OpenCV 点多边形测试

文章目录 点多边形测试pointPolygonTest示例 点多边形测试 pointPolygonTest pointPolygonTest( InputArray contour,// 输入的轮廓 Point2f pt, // 测试点 bool measureDist // 是否返回距离值,如果是false,1表示在内面,0表示在边界上&a…

“一个有趣的C语言代码”分析

“一个有趣的C语言代码” 一个有趣的C语言代码-流浪的海豚-ChinaUnix博客 #include <stdio.h> int print() {printf("hello world!\n");return 0; } int main(void) {long base[0];long* result base3;*(result1) *result;*result (long)print;return 0; …

如何安装最新版Docker Compose?

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose&#xff0c;您可以使用 YAML 文件来配置应用服务&#xff0c;然后只需一个简单的命令便能创建和启动所有服务。在本篇博客中&#xff0c;我们将详细介绍如何在 Linux 系统上安装 Docker Compos…

Hive中几个非常重要的问题

1、Hive 有哪些方式保存元数据&#xff0c;各有哪些优缺点 (1).DerBy数据库&#xff1a;默认自带 优点&#xff1a;使用简单&#xff0c;不需要额外的配置。 缺点&#xff1a;只有一个客户端&#xff0c;多个客户访问会报错。 (2).使用MySql数据库存储 优点&#xff1a;单独的…

电商技术揭秘三十二:智能风控体系构建

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘二十八&#xff1a;安全与合规性保障 电商技术揭秘二十九&#xff1a;电商法律合规浅析 电商技术揭秘三十&#xff1a;知识产权保…

PyQt介绍——动画使用详解之QPropertyAnimation

一、继承关系 PyQt5的动画框架是QAbstractAnimation&#xff0c;它是一个抽象类&#xff0c;不能直接使用&#xff0c;需要使用它的子类。它的类结构如下&#xff1a; QAbstractAnimation&#xff1a;抽象动画&#xff0c;是所有动画的基类&#xff0c;不能直接使用。 QVariant…

SpringCloud之负载均衡Ribbon

Ribbon 是一个客户端负载均衡工具&#xff0c;主要功能是将面向服务的Rest模板&#xff08;RestTemplate&#xff09;请求转换成客户端负载均衡的服务调用。通过Ribbon&#xff0c;开发人员可以在客户端实现请求的负载均衡&#xff0c;而无需单独部署负载均衡器。Ribbon支持多…

C#基础之值类型和引用类型

值类型和引用类型 文章目录 值类型和引用类型1、使用和存储上的区别2、特殊的引用类型string 引用类型&#xff1a;string&#xff0c;数组&#xff0c;类 值类型&#xff1a;其他类型&#xff0c;结构体 1、使用和存储上的区别 1、使用上的区别//值类型int a 10;//引用类型…

Python函数小知识

目录 一、函数的定义和调用 二、函数参数 三、函数作用域 四、递归函数和匿名函数 一、函数的定义和调用 def 函数名(参数): 自定义函数可以分为有参函数和无参函数 。 函数的作用&#xff1a; 在Python中定义函数可以提高代码的复用率&#xff0c;避免重复的代码&#xff0c;…

Android 记录一个SeekBar的滑块显示问题

这两天&#xff0c;要实现一个自定义的进度条SeekBar&#xff0c;从UI那里拿到切图之后&#xff0c;就开始做了&#xff0c;但是最后发现一个问题&#xff0c;看一下图吧&#xff1a; 应该看的很清楚吧&#xff0c;那个滑块周围多了一些“阴影” 我刚开始以为是切图又问题&…

opencv基础篇 ——(七)边缘检测和图像锐化

锐化和边缘检测是图像处理中常用的两种技术&#xff0c;它们可以用来增强图像的特征以及检测图像中的边缘 锐化&#xff1a; 锐化是一种增强图像中细节和边缘的技术&#xff0c;它使图像中的过渡区域更加明显&#xff0c;从而提高图像的清晰度和对比度。常见的锐化方法包括拉普…

matlab保存示波器数据

再重新运行一下示波器 然后就可以在工作区看见&#xff08;这里没有运行所以没有&#xff09; 将保存到文件夹中方便后续绘图