本章将介绍有关比特币的基础知识。

非对称加密:

非对称加密有两把密钥,一把公钥一把私钥。顾名思义,公钥是公开的,任何人都能获取,而私钥是私密的,只有拥有者能使用。

举两个例子来说明一下公私钥是如何使用的:

  • 小王生成一对密钥,并将公钥公开,小明用公钥加密了一段信息,发送给小王,小王使用私钥进行解密,从而获取信息,在传输过程中这段加密信息被小张截获,但因为小张没有小王的私钥而无法解密。
  • 小王生成一对密钥,并将公钥公开,小王用私钥加密了一段信息,发送给小明,小明使用公钥进行解密,从而确认发送者是小王,且未被篡改。

比特币正是使用了对称加密的方式,你可以使用私钥打开钱包进行支付,而他人没有你的私钥,所以无法取走你的钱。

非对称性加密保障了数字货币的交易安全,其中最关键的一环就是私钥,一旦密钥丢失或者被盗,那么资产将不保。

钱包:

比特币交易时,交易双方实际上不是人,而是私钥,这就是比特币交易匿名性的根本原因,你无从得知私钥背后的主人是谁。

所以在进行比特币交易之前你首先需要一对公私钥,这时我们引入钱包这个定义,钱包并不是用来存储比特币的,因为众所周知比特币是存放在区块链上的,这里的钱包是用来存储你的公私钥,钱包会自动帮你生成一对公私钥并存储在内。

根据协议,公钥的长度是512位,由于公钥过长不方便传播,所以协议规定要为公钥生成一个160位(二进制)的指纹,将二进制转化为十六位制即为钱包的地址。

每个钱包都会有一个独有的地址,当别人需要向你转账时,你只需要告知对方你的钱包地址,让他向该地址转账,你即可收到该笔转账。

交易验证:

简单来说我们可以把一笔比特币交易看作:一定量的比特币从一个地址转移到了另一个地址。

这里会出现两个问题:

  • 如何检验支付方是否拥有足够的比特币?

  这个很简单,因为比特币上的交易记录是公开的,某个地址下拥有多少比特币一查便知,所以我们可以轻松验证支付方是否有相应支付能力。

  • 如何防止自己的地址被盗用,他人冒用你的名义进行交易?

  比特币协议规定:申报交易时,比特币支出方除了提供交易金额外,还需要提供以下数据:

  1. 上一笔交易的Hash(你获取这些比特币的途径)
  2. 本次交易双方的地址
  3. 支付方的公钥
  4. 支付方的私钥生成的数字签名

  接下来我们要验证这些数据:

  1. 检验上一笔交易,确认支付方的比特币的来源
  2. 计算支付方的公钥指纹,确认与支付方的公钥一致,确保公钥属实
  3. 使用公钥解开数字签名,确保私钥属实

交易确认:

我们验证完交易后,需要矿工把交易写入区块链才能算交易完成,这里我们就需要用到矿工,在学习笔记(一)中已经讲了很多关于矿工和挖矿的知识了,这里就不再赘述。

参考链接:http://www.ruanyifeng.com/blog/2018/01/bitcoin-tutorial.html

转载于:https://www.cnblogs.com/Cchblogs/p/9322172.html

区块链学习笔记(二)相关推荐

  1. 区块链学习笔记二之区块链的加密技术

    概述 区块链最常见的用途是消除交易双方的中间环节.举个例子来说,学位认证的过程.当你投递简历到企业时,企业一般需要验证你的学位在类似于学信网等第三方验证平台可查,这相当于依托第三方验证平台验证你的过往 ...

  2. 区块链学习笔记(三)——从商鞅变法谈“共识机制”

    区块链学习笔记(三)--从商鞅变法谈"共识机制" 前言 一.商鞅变法的故事 总结一下 二.共识机制 1)什么是共识机制 2)要点 总结 前言 区块链健康运行的灵魂是"共识 ...

  3. 区块链学习笔记23——ETH反思

    区块链学习笔记23--ETH反思 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 智能合约真的智能吗 ...

  4. 区块链学习笔记15——ETH状态树

    区块链学习笔记15--ETH状态树 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 引入 要实现的功 ...

  5. 区块链学习笔记19——ETH难度调整

    区块链学习笔记19--ETH难度调整 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 前面学过,比特 ...

  6. 区块链学习笔记4——BTC实现

    区块链学习笔记4--BTC实现 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 UTXO 区块链是一 ...

  7. 区块链学习笔记21——ETH智能合约

    区块链学习笔记21--ETH智能合约 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 智能合约简介 ...

  8. 区块链学习笔记16——ETH交易树和收据树

    区块链学习笔记16--ETH交易树和收据树 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 交易树和 ...

  9. 区块链学习笔记(一)——区块链和搓麻是一样一样的

    区块链学习笔记(一)--区块链和搓麻是一样一样的 新的开始 一个故事 要点 总结概念 几个搞笑的解释(真实性待查) 新的开始 你好! 这是我的第一篇学习笔记,想来想去就从近几年挺火的区块链开始吧,大多 ...

  10. 区块链学习笔记2——BTC中的数据结构

    区块链学习笔记2--BTC中的数据结构 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 本文主要介绍 ...

最新文章

  1. 字符串子串去重之后的个数
  2. Web API 安全问题
  3. 十六进制数转换成float类型数据数据的经典代码
  4. c# list 自定义排序
  5. 如何为您的AWS账户设置多因素身份验证(MFA)
  6. 混合云发展之路:前景广阔,巨头混战
  7. 华为ipd项目管理流程_IPD:一套卓越的产品开发经营体系
  8. linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)
  9. 汉字笔顺口诀_一帮40后理工男编出新型字典,《笔顺码字典》在汉首发
  10. 系统学习NLP(六)--语义分析
  11. 停止MySQL正在执行的SQL语句
  12. Python3的opencv环境搭建简易教程
  13. 关于HTTPS的简要内容
  14. 一起学libcef--搭建自己的libcef运行环境(Win32程序,错误C2220解决方案)
  15. linux 核显驱动程序,在Ubuntu系统上安装英特尔核显驱动安装器的方法
  16. 【磨刀不误砍柴工】(SCH-1217) Could not open “XXschematic“ for edit. Would you like to open it for read?问题。
  17. QQ音乐酷狗音乐竞品分析
  18. CAE(Convolutional Auto-Encode) 卷积自编码
  19. 通过python发送邮件
  20. PPT 如何取消幻灯片自动播放

热门文章

  1. 学html和css的感受
  2. usaco-1.1.1-PROB Your Ride Is Here
  3. 用Visual C#调用Windows API函数
  4. linux sftp 增加用户(centos)
  5. 二叉树的前中后序遍历的三种实现(java)以及一些小习题
  6. cron每两个小时_crontab 每隔 1 小时 2 小时的执行 job 写法
  7. python lambda表达式及用法_Python中lambda表达式的常见用法
  8. vue路由钩子函数(进入和离开钩子函数)
  9. sqlparser mysql_phpMyAdmin中sql-parser组件的使用
  10. vue 封装dialog_GitHub - 1014156094/vue-mobile-dialog: Vue移动端基础组件 - 对话框