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

server/2024/9/25 15:23:34/

目录

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.ppmy.cn/server/17432.html

相关文章

汽车组装3D电子说明书更通俗易懂

激光打印机由于造价高、技术更先进,因此在使用和维护上需要更专业的手法,而对于普通客户来说并不具备专业操作激光打印机的技能,为了通俗易懂地让客户理解激光打印机,我们为企业定制了激光打印机3D产品说明书,将为您带…

【TensorFlow深度学习】深度学习的独特优势及应用场景概览

人工智能绪论与深度学习前瞻 【引言】深度学习的独特优势深度学习在各大应用场景中的展现 【引言】 深度学习,作为机器学习领域的一种强大的技术手段,凭借其卓越的自动特征学习能力和优异的模型泛化能力,在当今的人工智能发展中占据着至关重…

C++进阶:搜索树

目录 1. 二叉搜索树1.1 二叉搜索树的结构1.2 二叉搜索树的接口及其优点与不足1.3 二叉搜索树自实现1.3.1 二叉树结点结构1.3.2 查找1.3.3 插入1.3.4 删除1.3.5 中序遍历 2. 二叉树进阶相关练习2.1 根据二叉树创建字符串2.2 二叉树的层序遍历I2.3 二叉树层序遍历II2.4 二叉树最近…

Pycharm破解流程

1.下载pycharm 网上很多,随便找一个,懒得找的话,或者去我传上去的资源pycharm部分直接取 2.下载文件 文件部分,我放在pycharm文件里面一起 打开下载好的激活包 3.执行脚本 先执行unisntall-all-users.vbs,直接双击打开&#xff0c…

使用MySQL和SQL Server生成最近七周和最近七个月的日期数据

在数据库管理和数据处理中,生成特定时间范围内的数据是一项常见的任务。本文将介绍如何使用MySQL和SQL Server编写代码来生成最近七周和最近七个月的日期数据。 MySQL示例:生成最近七周和最近七个月的日期 在MySQL中,我们可以通过日期函数和…

Spring Gateway 网关常见配置说明

前言 Spring Gateway 是基于 Spring Framework 的 API 网关,它为微服务架构提供了路由、监控、弹性以及安全性等功能。Spring Gateway 使用非阻塞 API 和高性能的反应式编程模型来提供服务。 版本说明 本文的选项在多个最近的 Spring Cloud Gateway 版本中都是有…

【EBS】财务系统总账模块(GL)会计期间状态总结

EBS财务系统中的会计期间主要有5种状态&#xff0c;其关系是&#xff1a;从未打开 -> 将来录入 -> 打开 <-> 关闭 -> 永久关闭&#xff0c;这个关系中&#xff0c;“打开”状态和“关闭”状态是可以双向的&#xff0c;而其他的都是单向的&#xff0c;比如对于“…

TaskWeaver使用记录

TaskWeaver使用记录 1. 基本介绍2. 总体结构与流程3. 概念细节3.1 Project3.2 Session3.3 Memory3.4 Conversation3.5 Round3.6 Post3.7 Attachment3.8 Plugin3.9 Executor 4. 代码特点5. 使用过程5.1 api调用5.2 本地模型使用5.3 添加插件 6. 存在的问题与使用体验6.1 判别模型…