区块链技术与应用学习笔记(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作废。也就是说,“偷”答案不会发生。

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

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

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

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

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

相关文章

【从后端日志文件中过滤出sql语句】

从后端日志文件中过滤出sql语句 why?思路日志文件的格式 结果 why? 为什么会有这种需求?,mysql数据不小心被删了完全可以从备份数据恢复,或者从binlog中恢复,但是如果前面这两种方法没办法处理(没有备份数据库文件、…

科技云报道:走入商业化拐点,大模型“开箱即用”或突破行业困局

科技云报道原创。 大模型加速狂飙,AI商业化却陷入重重困境。 一方面,传统企业不知道怎么将AI融入原始业务,另一方面,AI企业难以找到合适的商业化路径。 纵观海外AI玩家,已经有许多企业趟出了自己的商业化道路。 微…

59、回溯-括号生成

思路: 括号是成对出现,首先左括号可以放n个,右括号也可以放n个。如果当前左括号放了3了,右括号放了4个,错了,如果左括号放了5个,右括号放了4个。可以,继续放右括号即可。所以可以设…

贪吃蛇项目实践!(上)

大家好,今天我带着大家从0构建起贪吃蛇项目的高楼大厦~ 要实现这个游戏,我们需要实现哪些功能呢? 实现基本的功能: • 贪吃蛇地图绘制 • 蛇吃⻝物的功能(上、下、左、右⽅向键控制蛇的动作) • 蛇撞墙死…

matlab保存示波器数据

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

华为云FunctionGraph构建高可用系统的实践

导语 每年,网上都会报道XXX系统异常不可用,给客户带来巨大的经济损失。云服务的客户基数更大,一旦出现问题,都将给客户和服务自身带来极大影响。本文将基于华为云FunctionGraph自身的实践,详细介绍如何构建高可用的Se…

权威认证!瀚高股份IvorySQL通过强制性国标GB18030-2022最高级别认证

近日,GB 18030-2022《信息技术 中文编码字符集》应用推广大会暨“汉字守护计划”成果发布会在京召开。瀚高股份开源关系型数据库IvorySQL通过 GB 18030-2022《信息技术 中文编码字符集》强制性国家标准测试,达到最高实现级别(3级)…

基于springboot实现海滨学院班级回忆录的设计项目【项目源码+论文说明】计算机毕业设计

基于springboot实现海滨学院班级回忆录的设计演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了海滨学院班级回忆录的开发全过程。通过分析海滨学院班级回忆录管理的不足,创建了一个计算机管理海…

【Pytorch】(十五)模型部署:ONNX和ONNX Runtime

文章目录 (十五)模型部署:ONNX和ONNX RuntimeONNX 和 ONNX Runtime的关系将PyTorch模型导出为ONNX格式使用Netron可视化ONNX模型图检查ONNX模型验证ONNX Runtime推理结果使用ONNX Runtime运行超分模型 (十五)模型部署&…

第十五届蓝桥杯省赛第二场C/C++B组D题【前缀总分】题解(AC)

暴力解法 O ( 26 n 5 ) O(26n^5) O(26n5) 枚举将第 i i i 个字符串的第 j j j 个字符改为 c c c 的所有方案,时间复杂度 O ( 26 n 2 ) O(26n^2) O(26n2),修改并计算总分, O ( n 3 ) O(n^3) O(n3)。 暴力优化 O ( 26 n 3 log ⁡ n ) O…

基于Python实现心脏病数据可视化DEA+预测【500010103.1】

一、数据说明 该心脏病数据集是通过组合 5 个已经独立可用但以前未合并的流行心脏病数据集来策划的。在这个数据集中,5 个心脏数据集结合了 11 个共同特征,使其成为迄今为止可用于研究目的的最大心脏病数据集。 该数据集由 1190 个实例和 11 个特征组成…

《第二行代码》第二版学习笔记(6)——内容提供器

文章目录 一 运行时权限2.权限分类3 运行时申请权限 二、内容提供器1、 ContentResolver的基本用法2、现有的内容提供器3、创建自己的内容提供器2.1 创建内容提供器的步骤2.2 跨程序数据共享 内容提供器(Content Provider)主要用于在不同的应用程序之间实…

Python | Leetcode Python题解之第52题N皇后II

题目: 题解: class Solution:def totalNQueens(self, n: int) -> int:def backtrack(row: int) -> int:if row n:return 1else:count 0for i in range(n):if i in columns or row - i in diagonal1 or row i in diagonal2:continuecolumns.add…

【VsCode】使用VsCode学习VUE+TS必备插件

目录标题 《Auto Close Tag》💕《Auto Rename Tag》💕《Path Intellisense》《Open in Browser》💕《IntelliCode》《Vue-Official》💕《Prettier - Code formatter》💕《ESLint》💕 《Auto Close Tag》&am…

Docker镜像的创建 和 Dockerfile

一. Docker 镜像的创建 创建镜像有三种方法,分别为基于已有镜像创建、基于本地模板创建以及基于 Dockerfile 创建。 1 基于现有镜像创建 (1)首先启动一个镜像,在容器里做修改docker run -it --name web3 centos:7 /bin/bash …

maven修改默认编码格式为UTF-8

执行mvn -version查看maven版本信息发现,maven使用的编码格式为GBK。 为什么想到要修改编码格式呢?因为idea中我将文件格式统一设置为UTF-8(如果不知道如何修改文件编码,可以参考文末),然后使用maven打包时…

docker 和 docker-compose的区别

Docker 和 Docker Compose 是两个相关但具有不同功能的工具,它们在容器化应用的生命周期管理中扮演不同的角色: Docker: Docker 是一个开源的应用容器引擎,它允许开发者打包应用及其依赖包到一个可移植的容器中,这样…

ESP32与SD卡交互实现:文件读写实战与初始化详解及引脚定义

本代码实现ESP32与SD卡的交互,包括定义SPI引脚、创建自定义SPI类实例、编写WriteFile与ReadFile函数进行文件读写。setup函数初始化串口、SPI、SD卡,向“/test.txt”写入“myfirstmessage”,读取并打印其内容。loop函数留空待扩展。 1. 需要…

Lock-It for Mac(应用程序加密工具)

OSXBytes Lock-It for Mac是一款功能强大的应用程序加密工具,专为Mac用户设计。该软件具有多种功能,旨在保护用户的隐私和数据安全。 Lock-It for Mac v1.3.0激活版下载 首先,Lock-It for Mac能够完全隐藏应用程序,使其不易被他人…

PCV库之调用SIFT.py中process_image()执行错误的解决方案

背景介绍: windows10,python3.x,64位AMD R9处理器,ROG电脑,pycharm开发,已经安装好了PCV库 如何安装PCV库 请看我的博客Python之PCV库安装教程以及解说-CSDN博客文章浏览阅读111次,点赞5次,收藏3次。GitHub - Ultravioletrayss/PCVfile: 文档内含有pyt…