北京大学肖臻老师《区块链技术与应用》公开课:05-BTC-实现

article/2025/6/28 13:39:34

文章目录

  • 1. 记账模式
  • 2. 挖矿
  • 3. 攻击


1. 记账模式

比特币采用的是基于交易的账本模式,系统中没有显示的记录账户余额,需要通过交易记录来推算。比如推算A的账户余额,一共有多少交易往A账户上转账,转入了多少币,根据哪些被花了哪些没被花,可以推算出A账户的余额。
与基于交易的模式对应的另一种模式是基于账户的模式。以太坊用的是基于账户的模式,这种模式系统要显示的记录账户余额。基于交易的模式隐私保护性更好。
UTXO是未花费交易输出,UTXO的作用是快速检验双花攻击(Double spending)。花出的币只有在UTXO中才是合法的。如果不在UTXO中这个币要么不存在,要么之前被花过。每个交易会消耗掉一些输出同时会产生新的输出。UTXO集合也是在逐渐增大。
每个交易可以有多个输入也可以有多个输出,输入可以来自多个地址,这也是为什么一个交易要有多个签名。每个输入地址都要提供对应的签名。所有输入金额(total inputs)=所有输出金额(total outputs)。如果输入金额略大于输出金额,那么差额是交易费给矿工的。
比特币中的奖励机制:出块奖励、交易费。

2. 挖矿

block header中的nBits域中存储挖矿的目标域值,这里是目标域值的一个编码后的版本。随着竞争的激烈挖矿越来越难,单纯调整Nonce的值比较大的概率是找不到符合要求的。搜索空间不够大,block header中还有两个区域的值可以调整来增大搜索空间:time和Merkle root。
time:区块产生的时间(4个字节)有一定的调整余地,因为比特币系统不要求精确的时间,可以对time在一定范围内的调整,只要不是太离谱就行。
Merkle root:每个发布的区块里有个特殊的铸币交易,铸币交易的输入中有个Coin base域可以写入任何内容,我们可以把Coin base域当做 Extra Nonce。
真正挖矿时有两层循环:外层循环调整Coin base域的Extra Nonce算出block header中的Merkle root的哈希值后,内层循环调整header中的Nonce。
比特币交易中输入和输出都是用脚本指定,比特币系统中验证交易的合法性就是把输入脚本和输出脚本配对后执行来完成的。不是把同一个交易中的输入脚本和输出脚本配对,而是把这个交易中的输入脚本和前面那个提供币来源的输出脚本配对,如果输入脚本和输出脚本拼接在一起可以顺利执行不出现错误,那么这个交易是合法的。
挖矿提供了一种凭借算力投票的有效手段,只要大部分算力掌握在诚实矿工节点手里,系统的安全性就能够得到保证。

3. 攻击

假如90%算力的诚实矿工,10%算力恶意矿工,那么10%比例恶意矿工获取记账权。
1.那么恶意矿工可以偷币吗?
答:不能,因为恶意矿工无法伪造别人的签名,假如恶意矿工就是把非法交易硬写到区块链中,那么诚实的矿工节点验证区块合法性时通不过,故不会接受这个区块,诚实节点的矿工会接着上一个区块挖矿,因为比特币要求扩展最长合法链,所以大部分算力都不会接着这个不合法的区块挖慢慢这个区块就会被作废,所以偷币不会成功。
2.能把已经花过的币重新花一次(双花攻击)吗?
在这里插入图片描述
(1)交易重放攻击:第四个区块中有交易账户M(余额3BTC)给账户A转了3BTC,如果接着第四个区块往后挖区块五中包含交易账户M给账户A转了3BTC,这时验证交易的合法性,UTXO未花费交易输出中不存在,所以不是合法交易。不合法交易的区块不会被诚实节点的矿工接受,慢慢会被作废。攻击不成功。
(2)分叉攻击:第四个区块中有交易账户M(余额3BTC)给账户A转了3BTC,同时接在第三个区块上的第四个区块交易账户M(余额3BTC)给账户M1转了3BTC,这个交易也是合法的。这时出现了临时性分叉。针对这种情况我们一般的做法是多等几个确认区块再确认这个账户M(余额3BTC)给账户A转了3BTC交易是有效的,缺省情况下是等6个确认区块,才认为前面那个交易是不可篡改的。不可篡改是概率的保证。
3.恶意节点会不会故意不包含某些交易?
总有诚实的矿工节点把这些交易记录到区块链中。
4.slefish mining(自私挖矿)攻击:自私矿工与诚实矿工同时挖矿,但与诚实矿工所采取的策略不同,当自私矿池产生区块时,自私池会有策略地公布区块,而不是立即公布。自私挖矿的策略可以如下图所示:
在这里插入图片描述
那么这种策略有什么好处呢?
(1)可以利用这种策略进行双花攻击(double spending)
(2)可以消耗其他矿工的算力,让别人做无用功,减少自己的竞争
但与此同时,自私挖矿策略也会有风险。考虑到比特币协议中H(block header)<target的挖矿策略,而block header中须包括前一个区块的hash,所以一旦区块不及时发布,自私矿工采用自私挖矿策略等待下一个连续区块的产生,而在这段时间内诚实矿工在共识块后面又产生了新的区块,则很有可能导致私块的作废,损失将会十分惨重。考虑到双花攻击本身的收益不一定很高,所以发动自私攻击对区块链系统造成损害的案例很少。


http://www.hkcw.cn/article/QbFDwequkc.shtml

相关文章

【ZYNQ Linux开发】使用 boot.scr 启动 Linux 报错 Bad Linux ARM64 Image magic! 调试过程记录

文章目录 1 问题描述2 解决问题过程3 问题总结 1 问题描述 在编写我的系列博客&#xff1a;【ZYNQ Linux移植】6-搭建日常开发的环境 时&#xff0c;尝试在 ZYNQ MP上搭建开发用的镜像&#xff0c;尝试把比特文件和设备树文件从 BOOT.BIN 剥离&#xff08;只包含 fsblelf 、pmu…

NLP学习路线图(十二):停用词处理

一、 文本预处理的基石&#xff1a;为什么关注停用词&#xff1f; 在自然语言处理&#xff08;NLP&#xff09;的流程中&#xff0c;原始文本数据必须经过预处理才能被算法有效理解。文本预处理包括&#xff1a; 分词&#xff08;Tokenization&#xff09; 停用词过滤&#x…

vue3项目之大事件管理系统(三) 二级路由:文章分类页,文章管理页

文章目录 一.文章分类页1.封装pageContainer组件2.调用PageContainer组件3.渲染文章分类页ArticleChannel封装api接口页面调用动态渲染父传子优化:添加loading效果优化:无数据返回时的页面渲染 4.添加弹层并显示弹层组件封装ChannelEdit.vue组件在文章列表页ArticleChannel调用…

成都银行14年估值大逆转 政务类业务助力逆袭

2022年以来,中国银行业普遍面临信贷需求不足的难题,资产扩张明显放缓,但成都银行似乎并不存在这个烦恼。2021年至2024年间,上市银行(含港股)总资产合计增长了33%。其中,成都银行异军突起,成为扩张最快的商业银行——期间其总资产增长了63%,居上市银行首位。财报数据显…

端午快乐还是端午安康 祝福语之争引发热议

端午节这天,许多网友在互道祝福时犯了难,到底是祝“端午快乐”还是“端午安康”。其实不必太纠结。说“快乐”没问题,说“安康”也可以。设立端午节的初衷是欢乐喜庆、祛毒平安的。古诗词中也有描绘端午节快乐祥和的诗句,如《端午三殿宴群臣并序》中的“叹节气之循环,美君…

百年陈韵,三代匠心——陈汇堂新会陈皮的传承与新生

百年陈韵&#xff0c;三代匠心——陈汇堂新会陈皮的传承与新生 在五邑大地氤氲的柑橘香里&#xff0c;藏着一段跨越世纪的陈皮传奇。自清末民初的货郎担起第一篓新会柑皮&#xff0c;到如今现代化仓储中静默陈化的岁月瑰宝&#xff0c;陈汇堂三代人用双手编织出一张贯通历史与…

只剩几面烂墙的别墅拍出2683万 瑕疵房产高价成交

近日,在京东资产交易平台上,一栋存在瑕疵的别墅(国有建设用地使用权部分)进行了司法拍卖。起拍价为2073万元,最终以2683万元成交。照片显示,这栋别墅周围搭起了钢架,地面部分只剩几面墙,且部分墙体的钢筋裸露在外,地面散落着碎石,房屋结构已不完整。评估报告显示,此…

吴宣仪《浪姐》助阵嘉宾引粉丝不满 友谊助攻惹争议

近日,吴宣仪选择刘宇作为《乘风2025》总决赛的助演嘉宾,引发部分粉丝不满。吴宣仪在超话中回应称,不应将个人意愿强加于她,她的朋友来助阵应该受到热烈欢迎。她还表示未来还有很多机会,并喜欢听话不乱闹的可爱粉丝。吴宣仪1995年出生于海南海口,2016年正式出道。2018年参…

SkyWalking如何实现跨线程Trace传递

一、概述 SkyWalking 的中构建 Trace 信息时会借助 ThreadLocal来存储一些上下文信息&#xff0c;当遇到跨线程的时候&#xff0c;如果 Trace 的上下文信息没有传递到新线程的ThreadLocal 中&#xff0c;那么链路就断开了。那么SkyWalking是如何解决这个问题的呢&#xff1f; …

日本版安踏在中国“杀”疯了 复古潮流引领销量逆袭

亚瑟士这个品牌虽然名气不如耐克和阿迪达斯,但在地铁通勤、公园晨跑和马拉松比赛中却经常看到人们穿着。亚瑟士被称为“日本版安踏”,近两年在国内越来越受欢迎。亚瑟士的国际化战略与安踏有相似之处。自2006年进入中国市场以来,亚瑟士在中国的表现一直不佳,大部分时间都在…

大明湖一龙舟刚开赛就翻船 网友调侃 北方人不擅水战

北方人不擅长水战这一点再次得到了体现。5月31日,正值端午佳节,山东济南大明湖景区举办了一场龙舟赛,吸引了大量游客前来观赛。比赛于上午9时39分左右开始,两只龙舟敲鼓出发展开角逐。然而,刚一开始,围观的人群中就传来呼声,有游客发现一艘龙舟翻船了,比赛似乎在瞬间结…

杨丞琳发文为42岁陈妍希庆生 愿好友事事顺心

5月31日凌晨,杨丞琳发文为陈妍希庆生,祝福她事事顺心,每天都幸福快乐,并表示永远爱她。2月18日,陈晓和陈妍希在社交平台上宣布离婚。杨丞琳在接受采访时说,作为好友,她尊重陈妍希处理个人事务的方式。得知消息时,她和其他人一样感到意外,但作为姐妹,无论遇到什么转折…

保卫处招硕士研究生 扬州大学回应 非保安岗位需专业背景

近日,有教育机构发布了一则信息,扬州大学计划在2025年招聘人事代理工作人员。其中,学校保卫处需要招聘一名从事校园消防安全与应急管理工作的人员,该岗位要求硕士研究生学历。在扬州大学信息公开网上可以找到这则招聘信息,由学校人力资源处于5月28日发布。该岗位的主要职责…

专家:美断供航发漏算中国国产实力 自主创新迎突破

在当今全球化时代,科技竞争成为国际竞争的核心领域。美国作为科技强国,常利用技术优势对其他国家进行技术封锁以维护自身领先地位。近期,美国突然宣布停止向中国商飞公司提供航空发动机关键技术,目标直指中国自主研发的C919大飞机。这一举措是对中国航空产业的挑战,也是国…

六一儿童节前50份心愿在病房里点亮 为血液病儿童送上温暖

六一儿童节前夕,5月30日,成都市妇女儿童中心医院血液科的护士站忙碌起来。护士和志愿者们将病房里孩子们的心愿礼物包装整齐,准备开启一场特殊的旅程——这是成都市点亮微心愿血液病儿童关爱中心与成都市妇女儿童中心医院连续第七年发起的“心愿计划”,旨在儿童节期间为住院…

一文详谈Linux中的时间管理和定时器编程

&#xff08;目录&#xff09; 先说一些在计算机中需要用到时间的地方&#xff1a;系统日志log、OS调度(时间片、定时器)等等~~ 时间的计量 计时的方式发展&#xff1a;日晷、沙漏 -> 机械钟 -> 石英振荡器、晶振 -> 铯原子钟 -> 氢原子钟 计算机中的计时方式&…

88岁谢贤现身公园游玩 风采依旧

5月27日,媒体拍摄到88岁的演艺圈“常青树”谢贤外出逛公园。他坐着轮椅出行,由两位菲佣保姆细心照料。镜头下的谢贤状态不佳,身体状况明显不如从前,即使拄着拐杖也只能缓慢行走一小段路,且需要搀扶。尽管如此,四哥的帅气依旧不减当年。他戴着一顶黑色棒球帽,这个习惯多年…

泰一幼儿园发生食物中毒事件 数百学生受影响

当地时间5月29日,泰国乌隆他尼府一所幼儿园发生集体食物中毒事件,数百名学生出现呕吐、腹部绞痛、腹泻等症状。截至目前,已有超过200名学生出现食物中毒症状,其中88人住院治疗,3人病情严重。责任编辑:zx0001

吴宣仪回应刘宇粉丝 舞台合作我做主

《浪姐6》的舞台从来不缺话题,这次吴宣仪邀请刘宇作为助阵嘉宾,却意外引发粉丝争议。部分粉丝在社交平台表达不满,认为两人的风格不搭,甚至担心会影响吴宣仪的表现。面对质疑,吴宣仪直接回应:“朋友来助阵应该热烈欢迎,别把个人情绪强加到我身上。”这句话瞬间点燃讨论,…

被保姆拐走33年的男婴结婚了 命运的重逢

2018年初,重庆的朱晓娟接到一个电话,询问她26年前是否丢过一个儿子。朱晓娟肯定地回答“是”,并告诉对方丢失的儿子已经被公安机关找回,现在早已长大成人。随后,记者给她发了一张照片,照片上的小孩与朱晓娟的小儿子特别像。这勾起了朱晓娟对1992年的回忆。当时,她和丈夫…