区块链学习笔记3——BTC协议

article/2025/9/15 13:25:04

区块链学习笔记3——BTC协议

学习视频:北京大学肖臻老师《区块链技术与应用》
笔记参考:北京大学肖臻老师《区块链技术与应用》公开课系列笔记——目录导航页

数字货币所面临的主要挑战

Double spending attack(双花攻击,同一张数字货币可以复制的使用)
防范:通过一个可信第三方(如央行)维护一个很大的数据库存储每张货币的所有人,对每张货币添加一个唯一编号,当一个人花掉这张货币的时候,这张货币的所有人也会相应的发生变化,

去中心化

  • 所谓去中心化即没有可信第三方的参与,那么就需要解决数字货币的发行由谁执行?如何发行?发行多少?什么时候发行?

在传统中心化货币体系中,这些问题我们可以交给第三方机构(如央行)。当引入去中心化思想后,系统中节点平等,交易不通过第三方,那么货币发行权的分配必然是一个需要解决的问题。
比特币通过挖矿来决定货币的发行权,发行量

  • 去中心化如何防范双花攻击,恶意用户等

该问题的解决,依赖于系统中维护的一个数据结构,记录货币的使用情况(是否被花过?被谁花过?)。该数据结构由系统中全体用户共同维护,保证了交易的有效性。该数据结构,便是区块链。

简单的区块链交易模型

在这里插入图片描述
在该模型中,A获得了铸币权,发行了十个币,在第一个交易中,A转给了B五个币,转给了C五个币,A对该交易签名,同时,通过一个指针指出了这十个币的来源,后面的两个交易类似。

在进行交易时,需要付款人的签名和收款人的地址,在比特币系统中,该地址即为收款人的公钥的哈希。可以将其视为银行账户,根据此进行转账交易。(虽然公钥可以公开,但实际中更多公开的是公钥的哈希)
在交易中,收款方需要知道付款方的公钥,从而验证A签名是否有效。即A需要提供自己的公钥(实际上其他节点都需要知道付款方公钥,验证交易合法性)实际中A转账时候提供的公钥需要和铸币交易中公钥对的上,这样就防止了恶意节点伪造A的公钥来“偷”走A的比特币。
在比特币系统中,通过执行脚本实现上述验证过程。将当前交易输入脚本与前一个交易输出脚本(说明币的来源的交易)拼接执行,如果可以正确执行,说明交易合法。
在该图中,一个区块仅含有一个交易,实际中一个区块中包含多个交易,交易通过Markle Tree组织起来,在区块中存储。

区块信息

Block header区块头
Version比特币的协议版本
Hash of previous block header区块链中指向前一个区块的指针
Merkle root hash整课Merkle tree的根哈希值
Target难度目标阈值(比特币有关)
nonce随机数(比特币有关)

Merkle root hash保证了block body内容不被篡改,所以只需要计算block header即可保证整个区块内容不会被篡改

Block body区块体
Transaction list交易列表

Full node:保存区块链的所有信息,验证每一个交易
Light node:只保存block header,不参与区块链的构造维护

Distributed consensus(分布式共识)

FLP impossibility result
系统网络传输是异步的,网络时延没有上限,哪怕系统中有一个成员是faulty的,那就无法达成共识。
CAP Theorem
C:consistency 一致性
A:Availability 可靠性
P:Partition tolerance 容错性
任何一个分布式系统中这三个性质最多只能满足两个。

Consensus in BitCoin(比特币中的共识协议)

存在的问题:系统中存在恶意结点
1.直接投票
某个结点发布交易到区块链中,其他结点检查该区块,通过投票决定是否将其加入到区块链中,如果赞成票数超过一半,则加入区块链。
问题1——恶意结点不断打包不合法区块,导致一直无法达成共识,时间全浪费在投票上
问题2——无激励机制,有些节点不会投票
问题3——网络延迟为止,投票等待时间不确定,效率上会产生问题
女巫攻击——比特币系统允许任何人加入,只需要本地创建公私钥对即可创建账户。这样,恶意用户只需不断产生新的节点,当节点数达到一半以上时就会有区块链的控制权,操纵投票结果。
2.算力投票
算力投票是比特币使用的共识协议,即通常所说的“挖矿”,每个结点都可以自行组装区块,尝试各种nonce值,当找到某个符合条件的nonce时便获得了记账权,从而将区块发布到系统中,其中节点收到区块后可以验证其合法性,如果系统中大多数结点验证通过,则接受该区块。
forking attack(分叉攻击)
在这里插入图片描述
如上图所示,A对同时给两个用户转账。在两条链上,发现交易都合法,这是典型的双花攻击。A先给B转账后,通过分叉攻击将交易回滚,把钱又转回来,这在验证上是可以通过的。
但在实际的比特币系统中,这种情况很难发生,因为大多数矿工认可的是最长的合法链,会沿着上面的链继续挖下去,如果A想回退这个记录,就必须使得下面的链比上面的还要长,理论上需要达到51%的算力才能攻击成功,实际中这是很困难的。

在这里插入图片描述
如上图所示,在区块链正常的工作中,也可能会发生分叉,当连个节点同时获得记账权时,会有两个区块同时上链,此时会有两个等长的合法链。在缺省情况下,节点接受最先听到的区块,该节点会沿着该区块继续延续,但随着时间延续,必然有一个链胜出,由此保证了区块链的一致性。

Block reward(出块奖励)

出块奖励是比特币中的激励机制,获得记账权的结点在发布的区块中可以加一个特殊的交易(铸币交易),这是发布比特币的唯一方法,不需要指明币的来源。
最开始每个区块可以发布50个比特币,每过21万个区块比特币会减半,现在只有12.5个比特币。


http://chatgpt.dhexx.cn/article/F9QObyT3.shtml

相关文章

区块链学习1-证书

加密和签名: 在现实生活中,如果想在某个银行存钱或者取钱,首先要开立账户,这是中心化系统的标准流程。在区块链中,我们同样需要具备这样一个账户: 公链是去中心化的,每个用户自己决定是否开户…

区块链学习笔记及总结【二】

区块链总述 区块链是比特币的核心技术,在比特币系统里用来记录有序且带有时间戳的交易记录。主要用于防止(double spend)双花攻击和篡改以前的交易记录。 这里需要注意是防止篡改,不是防止更改。实际上区块链某些情况还鼓励更改…

区块链学习心得

暑假在杭州一家区块链网络公司实习,由于工作原因,学习了区块链的一些基础知识,关于区块链的知识,我是学习的《区块链基础知识25讲》,这本书真的非常不错,有时间的小伙伴可以拿来学习一下。当然我这里也就是…

区块链学习路线

泛读精读,建立框架 区块链的创新在于老技术的组合创新,也正是区块链技术的系统之美,包括:分布式系统、拜占庭问题、密码学、数据结构、P2P网络等技术,以及博弈论、经济学等思想。针对这个特点要系统化学习,…

【区块链】区块链技术学习总结

文章目录 一、区块链技术简介1.1 区块链概念1.2 区块链应用1.2.1 区块链1.0技术:比特币1.2.2 区块链2.0技术:以太坊1.2.3 区块链3.0技术:价值互联网 二、区块链1.0技术比特币2.1 比特币2.1.1 比特币概念2.1.2 比特币性质2.1.3 比特币解决的问…

注意力机制综述

注意力最近几年在深度学习各个领域被广泛使用,无论是图像分割、语音识别还是自然语言处理的各种不同类型的任务中,注意力机制都在其中大放异彩 介绍 注意力(attention)机制最初应用于机器翻译任务,现在已被广泛地应用…

注意力机制原理

Attention机制在近几年来在图像,自然语言处理等领域中都取得了重要的突破,被证明有益于提高模型的性能。Attention机制本身也是符合人脑和人眼的感知机制,这次我们主要以计算机视觉领域为例,讲述Attention机制的原理,应…

GAM注意力机制

1.GAM注意力机制: 图像解析: 从整体上可以看出,GAM和CBAM注意力机制还是比较相似的,同样是使用了通道注意力机制和空间注意力机制。但是不同的是对通道注意力和空间注意力的处理。 2.CBAM注意力解析 CBAM CAM BAM 对于通道注意…

注意力机制详解系列(三):空间注意力机制

👨‍💻作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。 🎉专栏推荐: 目前在写CV方向专栏,更新不限于目标检测、OCR、图像分类、图像分割等方向,目前活动仅19.9,虽然付费但会长期更新,感兴趣的小伙伴可以…

注意力机制+注意力汇聚

学习《动手学习深度学习》注意力机制 之后,简单做个总结。 注意力提示 假设坐在一个物品很多的房间里,我们容易受到比较显眼的物品的吸引,进而将注意力倾注在那个物品上,这样我们就忽略了周围物品;换一种情形&#x…

LSTM(RNN)中的注意力机制

一、示例代码 目的是让网络“注意”到 index2 的特征 """ 参考: https://blog.csdn.net/weixin_44791964/article/details/104000722?spm1001.2014.3001.5501 """import matplotlib.pyplot as plt import numpy as np import pand…

Tensorflow (6) Attention 注意力机制

参考: 细讲 | Attention Is All You Need 关于注意力机制(《Attention is all you need》) 一步步解析Attention is All You Need! - 简书(代码) The Illustrated Transformer – Jay Alammar – Visualizing machine learnin…

注意力机制attention图解

来自对https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/的笔记 注意力机制核心观点就是让RNN每一步都监视一个更大的信息集合并从中挑选信息。例如:如果你使用RNN去为一个图像生成注释,…

注意力机制Attention详解

注意力机制Attention详解 一、前言 2018年谷歌提出的NLP语言模型Bert一提出,便在NLP领域引起热议,之所以Bert模型能够火出圈,是由于Bert模型在NLP的多项任务中取得了之前所有模型都不能达到的出色效果。那么Bert模型它是如何提出的呢&#x…

注意力机制(Attention Mechanism)

注意力机制起源于应用于NLP的RNN模型,但也在其他的领域有所应用。对注意力机制的理解也是算法面试经常提及的一道基础面试题,在这篇博文里我们汇总吴恩达深度学习视频序列模型3.7和3.8以及台大李宏毅教授对Attenion Mechanism以及相关参考文献对注意力机…

注意力机制总结

导读 注意力机制,其本质是一种通过网络自主学习出的一组权重系数,并以“动态加权”的方式来强调我们所感兴趣的区域同时抑制不相关背景区域的机制。在计算机视觉领域中,注意力机制可以大致分为两大类:强注意力和软注意力。由于强…

深度学习之注意力机制(Attention Mechanism)和Seq2Seq

这篇文章整理有关注意力机制(Attention Mechanism )的知识,主要涉及以下几点内容: 1、注意力机制是为了解决什么问题而提出来的? 2、软性注意力机制的数学原理; 3、软性注意力机制、Encoder-Decoder框架与Seq2Seq 4、自注意力模型的原理。 一、注意力机制可以解决什么问…

神经网络学习小记录73——Pytorch CA(Coordinate attention)注意力机制的解析与代码详解

神经网络学习小记录73——Pytorch CA(Coordinate attention)注意力机制的解析与代码详解 学习前言代码下载CA注意力机制的概念与实现注意力机制的应用 学习前言 CA注意力机制是最近提出的一种注意力机制,全面关注特征层的空间信息和通道信息…

【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码

目录 前言一、注意力机制:Attention二、自注意力机制:Self-Attention三、多头注意力机制:Multi-Head Self-Attention四、位置编码:Positional EncodingReference 前言 最近在学DETR,看源码的时候,发现自己…

注意力机制详解系列(一):注意力机制概述

👨‍💻作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。公众号: GoAI的学习小屋,免费分享书籍、简历、导图等资料,更有交流群分享AI和大数据,加群方式公众号回复“加群”或➡️点击链接。 🎉专栏推荐: 目…