【第二讲】比特币系统

在前面的话

这份笔记,省去了大量严谨的密码学知识,比如非对称加密的内容。

数字货币与电子货币

数字货币和电子货币的关键都在于记账,但是电子货币采用中心化记账,而数字货币通过去中心化特性来确保没有人能够操纵数字货币。

而比特币就是一种加密数字货币。

比特币工作原理

比特币钱包

  • 比特币钱包用于存储私钥和公钥,里面没有比特币
  • 私钥用于付款时的数字签名,公钥可以得到比特币地址用于收款
    在这里插入图片描述
    A从账户X中转账给账户Y的具体交易过程:
  1. A向全网发布广播,广播中的信息需要包含:
    • 原始交易信息(包含打款金额、打款账户地址、收款账户地址)
    • 原始交易信息经过Hash算法后得到的一条摘要信息
    • 签名(用私钥对交易信息摘要进行加密得到)
  2. 网络中其他节点收到广播后需要验证A是否有权转出账户X中的钱,步骤如下:
    • 得到原始交易信息中的打款者账户地址(这个就是公钥)
    • 以打款者账户地址为公钥对签名进行解密
    • 如果解密信息与原始交易信息的摘要信息一致,那么就认为A有账户X的所有权

比特币的核心问题(记账和发行)

  • 货币如何发行?由谁发行?
  • 交易由谁来记账

挖矿

比特币通过挖矿机制记账并且发行比特币。

  • 挖矿机制:
    • 记账有利润:比特币奖励(比特币发行的方式) + 交易手续费
    • 通过付出计算量解决一个难题,谁先解决谁获得记账权
    • 作恶成本高
  • 发行区块的过程就是比特币发行的过程
  • 发行时间间隔可控,不会发生通货膨胀
难题

难题的设计:

  1. 不容易完成
  2. 容易验证
  3. 具有随机性(能力越强,完成概率越大,但不一定)

挖矿的工具:hash算法

挖矿共识

挖矿过程:

  1. 根据当前链末端的数据块计算出prev_hash,这个值将作为新数据块的头部
  2. 矿工生成一个随机数nonce,并将新数据块的头部prev_hash、收集到的交易的merkle树根(可以理解为能记录多次交易的一个哈希值)、随机数nonce作为哈希函数的输入,计算H(prev_hash || merkle || nonce)
  3. 若 H( ) 的函数值小于某一个预设的阈值, 则 nonce 合法,否则重新生成 nonce,继续计算
  4. 找到合法的nonce后迅速进行广播,其他矿工在收到该消息后停止挖矿并进行验证,验证通 过后,认为新的区块已产生(达成共识);
  5. 矿工基于新产生的区块继续挖矿。
  • 总结一下,挖比特币的过程就是找出一个能够得到指定范围hash值的一个随机数。而通过调整这个预设的阈值,可以控制挖矿的速度。

比特币交易

  1. 所有者A利用他的私钥对前一次交易(比特货来源)和下一位所有者B签署一个数字签名,并将这个签名附加在这枚货币的末尾,制作成交易单
  2. A将交易单广播至全网,比特币就发送给了B,每个节点都将收到的交易信息纳入一个区块中(这里会进行对于交易的验证,该交易是否有效,有效才会打包,此时B还用不了这个比特币,直到区块验证成功)
  3. 每个节点通过解一道数学难题,从而去获得创建新区块权利,并争取得到比特币的奖励(新比特币会在此过程中产生)
  4. 当一个节点找到解时,它就向全网广播该区块记录的所有盖时间戳交易,并由全网其他节点核对
  5. 全网其他节点核对该区块记账的正确性,没有错误后他们竞争下一个区块(区块确认后B就可以用得到的比特币了),这样就形成了一个合法记账的区块链。

验证

验证的内容太过专业化。简单介绍一下
验证主要分为:

  1. 交易验证
  2. 区块验证
    SPV简单支付验证,可以轻量级的验证交易是否被确认,但是需要依靠全链获取数据。

分叉处理和双花问题

如果在相近时间内有多个打包好的临时区块被打包广播怎么办?
在这里插入图片描述

  • 某一节点若收到多个针对同一前续区块的后续临时区块,则该节点会在本地区块链上建立分支。
  • 直到下一个区块出现,其中的一条链就会被证实为较长的一条,另一条分支被放弃。

软分叉和硬分叉

​硬分叉(Hard Fork)和软分叉(Soft Fork)的区别​​:

  • 硬分叉和软分叉是区块链协议升级的两种方式,主要区别在于​​是否兼容旧版本节点​​,以及是否需要所有用户升级客户端。

​​硬分叉(Hard Fork)​​

  • ​​定义​​:硬分叉是​​不向后兼容​​的协议升级,旧节点无法识别新规则产生的区块,导致区块链永久分裂成两条独立的链。
  • 特点​​:​必须强制升级​​:所有节点(矿工、用户、交易所)必须更新软件,否则会被留在旧链上。

​​软分叉(Soft Fork)​​

  • ​​定义:​​软分叉是​​向后兼容​​的协议升级,旧节点可以接受新规则产生的区块(但无法完全参与新功能),不会导致链分裂。
  • ​​特点​​:无需强制升级​​:未升级的节点仍能验证交易,但可能无法使用新功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值