区块链学习笔记(3)BTC协议

假设有一个大家都信任的中心化机构想要发行数字货币。
在这里插入图片描述
该机构由用自己的私钥签名后后发行,任何人都可以通过公钥验证该货币是否为真。
买东西的时候,购买者可以将数字货币发送给卖方,卖方可以也可以通过公钥验证该货币为真后即可完成支付的过程。
此方案没有用到区块链技术,使用的是密码学中的非对称加密公私钥体系。
但该方案存在一个明显漏洞:
不同于现实中的货币,交易者可以对手中的数字货币进行复制,使得一张数字货币可以重复使用。
花两次攻击/双花攻击(double spending attack)
数字货币面临的主要挑战就是怎么应对double spending attack
如果如下图所示,对每一个发行的数字货币进行编号。
在这里插入图片描述
同时,货币发行机构维护一个数据库,负责记录每一张数字货币的归属。
在这里插入图片描述
如上图,在进行交易的时候首先通过机构核实该货币目前的归属,如果发现该货币已经支付给了别人,则无法进行第二次支付,以此来避免double spending attack。
此方案可以实现,但属于一个中心化的方案。数字货币的发行和每一次交易都需要通过发行机构证明合法性。
能否实现一个去中心化的方案,将货币发行机构的职能由广大用户进行承担?这就是BTC数字货币系统要解决的问题。
一个去中心化的货币需要解决两个问题:
1.数字货币的发行。(谁有权力发行数字货币)
2.怎么验证交易的有效性。(怎样防止double spending attack)
对于第二个问题,解决方法也是需要维护一个数据结构,来检测这个币有没有被花过,被谁花过。但这个数据结构不是由中心化机构来维护,而是由所有的用户来维护。这个数据结构就是区块链。
BTC系统中每个交易都包含了输入和输出两部分。输入部分要说明币的来源,输出部分要给出收款人公钥的哈希。
在这里插入图片描述
如上图所示,A拿到了铸币权,发行了10个比特币,接着A给B和C每个人5个比特币,该交易需要A的签名,证明是A同意的。同时该交易还要说明花掉的10个比特币的来源。B接着转给C两个比特币,转给D3个比特币,同样B也要进行签名,同时说明币的来源。C将7个比特币转给E,签字,说明币的来源(两个来自前一个块,5个来自前前一个块)。
此处有两种哈希指针,一种负责连接整个区块,一种负责指向前面的某个交易,为了说明币的来源,防范double spending attack。
值得注意的是,如果A要向B转BTC,A需要向所有人公布自己的公钥,以此来使所有人能够通过A的公钥验证这笔交易(验证A的签名)。
但这里就存在一个问题,假设一个B’,声称自己为A,自己签名后发布自己的公钥声称是A完成的转账,其他人通过B’的公钥可以得到B’的签名,那如何分辨出该交易是伪造的呢?
每个交易分为输入和输出两部分,输入部分要说明币的来源和付款人的公钥,输出部分要给出收款人的公钥哈希。在上述情况中,A的币的来源于铸币交易,coinbase tx,输出里面有A的公钥哈希,因此A的转账中使用的公钥哈希要跟之前的公钥哈希对应,以此来验证是否真的为A发起的交易。
未完待续
原视频:北京大学肖臻老师《区块链技术与应用》公开课

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

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

相关文章

子网掩码和CIDR

CIDR是什么 网络标识相同的计算机必须同属于同一个链路。例如,架构B类IP网络时,理论上一个链路内允许6万5千多台计算机连接。然而,在实际网络架构当中,一般不会有在同一个链路上连接6万5千多台计算机的情况。因此,这种…

蓝桥杯刷题冲刺 | 倒计时7天

作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾最后一周,复习学过的知识,刷题冲刺🐾 文章目录1.高精度除法2.扫地机器人3.数的范围4.A-B 数对1.高精度除法 题目 链接: 794. 高精度除法 - AcWing题…

Java对象内存布局

文章目录1、对象头对象标记Mark Word类元信息(又叫类对象指针)Class Pointer数组长度(Array Length)(可选)2、实例数据(对象体)3、对齐填充4、指针压缩5、再聊对象头的MarkWord6、JO…

Android ART虚拟机 Space类体系

前言 在ART虚拟机实现中,内存分配和释放的算法是封装在不同的Space中来完成的。而外部使用者只能借助Space及派生类的接口来完成内存的分配与释放。通过阅读这些Space的实现,可以看出ART虚拟机的一个重要的特点就是大量使用映射内存,相较于D…

思维导图软件哪个好?安利八款好用的思维导图软件

当你需要表达和整理复杂的想法、计划和项目时,思维导图软件可以是非常有用的工具。不同的思维导图软件有不同的功能和特点,选择适合自己的软件可以让你更高效地工作和学习。但是你了解思维导图软件哪个好呢?下面就给大家安利八款简单好用的思…

分享99个ASP影音娱乐源码,总有一款适合您

分享99个ASP影音娱乐源码,总有一款适合您 99个ASP影音娱乐源码下载链接:https://pan.baidu.com/s/1pYpAqFUX0xD8KR8GDRyiug?pwd3lja 提取码:3lja Python采集代码下载链接:采集代码.zip - 蓝奏云 我的博客地址:亚…

1Panel开源面板项目GitHub Star数量突破2,000!

截至2023年4月4日18:00,FIT2CLOUD飞致云旗下开源项目——1Panel开源Linux服务器运维管理面板GitHub Star数超过2,000个!

IDE装上ChatGPT,一天开发一个系统

昨天白天在写代码,晚上看了一场直播,是两个技术的直播: 一个是技术总监,一个是号称Java之父的余**。 结果Java之父被技术总监吊打。然后匆匆下播。 技术这玩意,真的就是真的! 白天我开发了一个系统&…

LeetCode.每日一题 2427. 公因子的数目

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

ModuleNotFoundError: No module named ‘gdal‘

目录 一、问题描述 二、解决方法 一、问题描述 在win系统下使用gdal包的时候,使用下面代码pip安装: conda install glob -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 安装过程中没有报错,但是 import 的时候还是报错了…

Vicuna:与ChatGPT 性能最相匹配的开源模型

Vicuna (由stable diffusion 2.1生成)前言最近由UC Berkeley、CMU、Stanford, 和 UC San Diego的研究人员创建的 Vicuna-13B,通过在 ShareGPT 收集的用户共享对话数据中微调 LLaMA获得。其中使用 GPT-4 进行评估,发现Vicuna-13B 的性能达到了ChatGPT 和 …

脑外伤最怕后遗症?做好这6大家庭护理措施,防止后遗症

脑外伤是生活中常见的一种情况,主要也就是由于意外或者是其他原因造成的脑部外伤。脑外伤也属于神经系统疾病的一种,最主要是因为对脑部的组织细胞以及神经造成了巨大伤害,从而引起的一系列不良症状的疾病,这种时候也就需要做护理…

憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台

憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台学习前言什么是HRNetV2模型代码下载HRNetV2实现思路一、预测部分1、主干网络介绍a、Section-1b、Section-2c、Section-3d、Section-42、特征整合部分3、利用特征获得预测结果二、训练部分1、训练文件详解2、LOSS…

python123

文章目录温度转换异常处理百分制成绩转换五分制F正整数AB奇偶求和判断数据类型温度转换异常处理 描述‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪…

数组切分 蓝桥杯 DFS DP

⭐ 数组切分 输入 4 1 3 2 4输出 5⭐ 区间最大值 - 区间最小值 区间长度:说明该区间为连续的自然数 🤠 暴馊dfs (过 50 % 的案例) import java.util.*;public class Main {static int mod 1000000007, n;static int res 0…

OBCP第七章 OB迁移-备份恢复技术架构及操作方法

为什么需要备份恢复 为满足监管要求 防止管理员误操作后,错误数据同步到所有副本,导致数据无法恢复 防止数据库因各种故障而造成数据丢失,降低灾难性数据丢失的风险,从而达到灾难恢复的目的 硬盘驱动器损坏 黑客攻击、病毒 …

九龙证券|券商积极布局A股 新进171家公司前十大流通股东

随着上市公司2022年年报连续出炉,券商自营盘的操作途径同步浮现。Choice数据显示,到4月4日,券商新进171家上市公司前十大流通股东之列,有48家上市公司获加仓。从装备方向来看,制造业、非银金融、电子、电力设备等板块依…

【电源专题】充电过程中指示灯怎么就红绿闪烁或是同时亮

本案例是在工作中发现的,同事测试的时候发现产品充电时指示灯红绿闪烁。正常的表现应该是充电为红灯,充满为绿灯。怎么会出现红绿闪烁的情况呢? 首先前提条件是产品已经量产,并且出货数量巨大,因此是否为个例性问题?通过排查后发现,最终现象是跟着充电器走,使用正常产品…

chatGPT的未来应用有哪些-ChatGPT对未来工作的影响

ChatGPT对未来的影响 ChatGPT 是一种先进的自然语言处理技术,能够处理和理解大量的自然语言数据和信息,具有广泛的应用价值。以下是 ChatGPT 可能对未来的影响: 改变人与计算机的交互方式。ChatGPT 的普及应用,将使得人们可以通过…

聊聊移动端动态化的由来和各流派的优缺点

移动端动态化的由来 “动态化”并不是最近几年才产生的名词,而是从从互联网诞生的初期,这个词就已经出现了。大家所认知的早期互联网,其实就是各种各类的“动态网站”,内容数据和页面外观都不是固定的,都是随着服务器…