从零入门区块链和比特币(第三期)

欢迎来到我的区块链与比特币入门指南!如果你对区块链和比特币感兴趣,但不知道从何开始,那么你来对地方了。本博客将为你提供一个简明扼要的介绍,帮助你了解这个领域的基础知识,并引导你进一步探索这个激动人心的领域。

感兴趣的话可以看看第一期👉从零入门区块链和比特币(第一期)👈

                                 第二期👉从零入门区块链和比特币(第二期)👈

目录

密码学知识简介

为什么传统加密解密不安全

非对称加密简介

如何生成交易账号

交易解读

比特币没有余额

UXTO = Unspent Transaction Output

交易输入

交易输出

案例: Alice发送1 btc给Bob,签名和公钥是Alic的,交易必须验证Alic能不能使用自己上笔交易获得的收入。

更多支付方式


密码学知识简介

为什么传统加密解密不安全

传统加密使用同一个密码加密解密,一旦密码泄漏就毫无安全性。 即使密码安全,但是利用统计学原理,配合计算机暴力计算,依然可以轻松破解。 密码每天变就安全了吗?每个字变密码都没用,恩尼格码表示我想静静。

非对称加密简介

加密解密使用不同的秘钥,加密的密码无法用来解密,必须成对使用。

通讯双方A/B分别生成自己的公钥/私钥对,把公钥发送给对方。A发送信息时使用B的公钥加密,并使用自己的私钥签名。

B收到消息后,用A的公钥检查签名是否是A发出,确认成功后,用私钥解密查看信息。

B用A的公钥加密信息,并用自己的私钥签名。

最大缺点是速度慢,效率大大低于常规的对称加密。 一些技巧

如何生成交易账号

  1. 生成256位(64字节)私钥: 这个私钥是通过随机数生成器生成的,通常以十六进制表示。

  2. 非对称算法生成公钥: 通过私钥,使用非对称算法(如椭圆曲线加密算法)可以生成对应的公钥。

  3. 计算公钥的SHA-256: 对公钥进行 SHA-256 哈希计算,得到一个长度为 32 字节的哈希值。

  4. 计算ripemd-160: 将第 3 步的 SHA-256 哈希结果再进行 RIPEMD-160 哈希计算,得到一个长度为 20 字节的哈希值。

  5. 在头上加上地址版本: 在第 4 步的结果前面添加一个字节,用于表示地址的版本信息。比特币主网的地址版本通常为 0x00

  6. 计算SHA-256: 对第 5 步的结果进行两次 SHA-256 哈希计算。

  7. 取第6步的前4个字节,也就是8个16进制个位数,也就是字符串前8位: 从第 6 步得到的结果中取出前四个字节,通常以十六进制表示。

  8. 把第7步的4个字节内容添加到第5步结果后面作为校验: 将第 7 步得到的四个字节追加到第 5 步的结果后面。

  9. 对第8步的结果做base58编码,得到最终地址: 将第 8 步的结果进行 Base58 编码,得到最终的比特币地址。

这个过程中,私钥和公钥用于数字签名和验证,而最终的比特币地址用于接收和发送比特币。

交易解读

比特币没有余额

UXTO = Unspent Transaction Output

先了解一下流水账

         交易1: 系统发工资50元给A

        交易2(使用交易1获得的50元)

                        向B买包烟话费30元

                        给自己找零发20元

        交易3(使用交易2获得的20元)

                         叫外卖向C支付5元

                         给自己找零15元

        A的账户余额由多少?

著名的10,000个BTC买披萨的交易: 

交易输入

         上一笔交易输出的hash,钱从哪里来。

         scriptSig: 用来解锁上一笔交易的scriptPubKey用于这次交易的消费

交易输出

        金额,单位(聪)

         scriptPubKey:等下一笔教育的scriptSig来解锁

案例: Alice发送1 btc给Bob,签名和公钥是Alic的,交易必须验证Alic能不能使用自己上笔交易获得的收入。

        输出T1(钱从哪里来): TX1输出的scriptPubKey:OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

         输入T2(把T1的钱花掉): scriptSig:<签名> <公钥>

逐步执行验证脚本,合法花掉UXTO:

         实际验证脚本: <签名> <公钥> OP_DUP OP_HASH160 <pubKeyHash>         OP_EQUALVERIFY OP_CHECKSIG 常数入栈,栈内容:<签名> <公钥>

        OP_DUP复制栈顶元素,栈内容:<签名> <公钥> <公钥>

        OP_HASH160对栈顶元素计算Hash,栈内容:<签名> <公钥> <公钥哈希> 常数入栈,栈内容:<签名> <公钥> <公钥哈希> <pubKeyHash>

        OP_EQUALVERIFY OP_CHECKSIG检查栈顶元素是否相等,相等的话再比较签名。

更多支付方式

        支付到公钥(早期做法) scriptPubKey:<公钥> OP_CHECKSIG scriptSig:<签名>

        支付给任何人 scriptPubKey:<空> scriptSig:OP_TRUE

        永久销毁 scriptPubKey:OP_RETURN 直接返回,没法消费了。 签名消费(要求提供一段数据,hash后与<hash>相等。) scriptPubKey:OP_HASH256 <hash> OP_EQUAL scriptSig:<data>

结语:看我这么努力的份上,麻烦点赞收藏加关注,有问题在评论区call爆我,我一定会改的。谢谢!

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

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

相关文章

【yolov8算法道路-墙面裂缝检测-汽车车身凹陷-抓痕-损伤检测】

yolo算法道路-墙面裂缝检测-汽车车身凹陷-抓痕-损伤检测 1. yolo算法裂缝检测-汽车车身凹陷-抓痕检测-汽车车身损伤检测2. yolo房屋墙面路面裂缝-发霉-油漆脱落-渗水-墙皮脱落检测3. 水泥墙面裂缝检测 YOLOv8算法是一种先进的目标检测技术&#xff0c;它基于YOLO系列算法的改进…

卓越体验的秘密武器:评测ToDesk云电脑、青椒云、天翼云的稳定性和流畅度

大家好&#xff0c;我是猫头虎。近两年随着大模型的火爆&#xff0c;我们本地环境常常难以满足运行这些大模型的硬件需求。因此&#xff0c;云电脑平台成为了一个理想的解决方案。今天&#xff0c;我将介绍并评测几款主流云电脑产品&#xff1a;ToDesk云电脑、天翼云电脑和青椒…

基于 SpringCloud 的在线交易平台乐优商城的设计与实现(四)

第 4 章 数据库设计 4.1 数据库设计原则 4.2.数据库概念结构设计 4.3 数据库表设计 4.4.本章小结 前面内容请移步 基于 SpringCloud 的在线交易平台乐优商城的设计与实现&#xff08;三&#xff09; 相关免费源码资源 乐优商城 第 4 章 数据库设计 4.1 数据库设计原…

现代永磁同步电机控制原理pdf及全套matlab仿真模型

现代永磁同步电机控制原理pdf及matlab仿真模型。全书包含SVPWM, DTC, Lun, smo, EKF, HFI等经典控制算法。将书中10章节涉及到的模型复原搭建模型。 模型获取链接&#xff1a;现代永磁同步电机控制原理pdf及全套matlab仿真模型

C语言 | Leetcode C语言题解之第56题合并区间

题目&#xff1a; 题解&#xff1a; /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ stru…

mintab计数型测量系统分析

计数型测量系统是一种在特定领域内广泛应用的测量工具&#xff0c;它主要用于对事件发生的次数进行计数&#xff0c;而不是提供具体的数值数据。这种类型的测量系统在工业生产、科研领域以及通信、电子和航空航天等多个领域都有广泛的应用价值。计数型测量系统的分析方法包括重…

matlab回归学习

前言 所谓回归学习即预测&#xff0c;便是由已知的数据推测未知的数据&#xff0c;利用转速与转矩来推测电流。 1、数据准备 下面虚拟一组转速转矩以及电流数据。 speed [100 220 330 440 550 660]; torque [200 300 400 500 700 900]; I [400 500 603 739 821 912]; arr …

职场进阶秘籍:张驰咨询的六西格玛黑带培训!

你们是否对“六西格玛黑带培训”感到好奇&#xff1f;别担心&#xff0c;这不是什么遥不可及的概念&#xff0c;而是一次能让你职场生涯焕然一新的机会&#xff01; 六西格玛黑带培训在张驰咨询 在张驰咨询&#xff0c;我们提供的六西格玛黑带培训&#xff0c;就像是一把为你量…

mysql-sql-练习题-2

日期topN 日期最值 topN 任意区间topN 每年温度top2建表排名函数万能公式&#xff08;条关&#xff09; 任意区间 各科第1,3,5名排名函数万能公式 日期 本周过生日 -- 本周表示 加减日期 格式化 拼接 select * from student where date_format(s_age,concat(year(curdate()),…

微信小程序开发:2.小程序组件

常用的视图容器类组件 View 普通的视图区域类似于div常用来进行布局效果 scroll-view 可以滚动的视图&#xff0c;常用来进行滚动列表区域 swiper and swiper-item 轮播图的容器组件和轮播图的item项目组件 View组件的基本使用 案例1 <view class"container"&…

【FPGA】优化设计指南(一):设计原则

目录 避免采用不可综合的语句设计时采用同步的时钟组合逻辑与毛刺异步复位与同步复位动态分析与静态分析功能流水线时序违例乒乓操作面积和速度的平衡避免采用不可综合的语句 1.#1000延时语句 2.除法运算/,除非除数为2的整次幂 3.实数类型不可综合(real) 4.综上,使用可综合…

远程连接docker,实现本地发布版本到服务器

最近在学jenkins的时候&#xff0c;发现涉及到了docker的远程发布调用。后续应该还要自己搭建一个docker的本地仓库。 简单描述一下具体是如何实现的&#xff1a; 1、将docker的服务器开启2375端口&#xff08;注意&#xff0c;这里的开启是将端口直接暴露出去&#xff0c;不用…

【python技术】akshare爬取A股最新业绩预告保存进excel的简单示例

最近A股上市公司陆续在出年报和一季度报了&#xff0c; 心里寻思着要不用python把这些数据爬取下来分析下&#xff0c;说干就干。 数据来源网站东方财富&#xff1a;https://data.eastmoney.com/bbsj/ 我这个人比较懒&#xff0c;直接用akshare封装的方法来搞定 之前用aksha…

uniapp 对接谷歌第三方登录

1.登录谷歌开发者后台 https://console.developers.google.com/ 2.添加凭证 3.拿到客户端id后&#xff0c;项目中配置google登录&#xff1a; 示例代码&#xff1a; async googleLogin(){const { provider } await uni.getProvider({ service:oauth })if(provider.includes…

【WBS工作分解结构】项目管理必会的思维分析工具 09

关于工作中“量”的分解&#xff0c;最核心的问题是投入工作量如何相对准确的评估。&#xff1a; WBS工作包分解法&#xff1a;将重点工作任务拆分为具体的子任务&#xff0c;然后分别对各个子任务进行估算&#xff0c;最后将各子任务时间求和&#xff08;原则上每个子任务不可…

Springboot+Vue项目-基于Java+MySQL的非物质文化网站设计与实现(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

机器学习高频问答题总结

机器学习问答题总结 第一章 线性回归1.什么是线性回归&#xff1f;解释主要原理2.解释线性回归中最小二乘法的原理吗&#xff1f;3.如何评估线性回归模型的性能&#xff1f;4.线性回归中正则化的目的是什么吗&#xff1f;L1正则化和L2正则化有什么不同&#xff1f; 第二章 逻辑…

北京人形机器人创新中心发布新款人形机器人平台,奔跑速度可达6km/h,可适应多种地形环境...

今天&#xff0c;北京人形机器人创新中心发布了一款人形机器人&#xff0c;名叫“天工”&#xff0c;拥有更加自然和拟人的步行姿态&#xff0c;支持奔跑&#xff0c;且奔跑速度可达到6km/h&#xff0c;也可以适应不同的地形环境&#xff0c;比如楼梯和坡道地形。 下面是这款机…

探索矿业数字化平台:实现智能化采矿与管理

随着信息技术的迅猛发展&#xff0c;矿业领域也在逐步实现数字化转型。数字化平台的出现为矿业企业带来了更高效、更智能的采矿与管理方式。本文将探讨矿业数字化平台的意义、特点以及未来发展方向。 ### 1. 数字化平台的意义 传统的矿业生产和管理方式存在诸多问题&#xff…

基于ERNIR3.0模型的向量计算的开发与实践

参考&#xff1a;飞桨PaddlePaddle-源于产业实践的开源深度学习平台 自然语言处理 Paddle NLP - 检索式文本问答-理论 - VipSoft - 博客园 (cnblogs.com) 词向量&#xff08;Word Embedding&#xff09;是表示自然语言里单词的一种方法&#xff0c;即把每个词都表示为一个N维…
最新文章