0%

比特币工作原理

1. Overview

比特币利用了区块链技术,从发展和技术角度来理解比特币

2. 发展过程

2.1. 1 账本

基本规则

  1. 每个人都能向账本添加信息
  2. 月底统一结算

问题:添加信息时无法保证信息准确

2.2. 2 加密账本

使用数字加密技术,利用公钥+密钥,解决信用问题

  • 产生的256位签名是根据内容和私钥,签名的验证是根据内容、签名和公钥
    $$
    Sign (Message, sk) = Signature
    $$

$$
Verify (Message, Signature, pk) =\mathrm{T} / \mathrm{F}
$$

所以要伪造签名是很难的

问题:虽然签名很难伪造,但是可以将同一个信息复制好几遍,这样就能达到修改账本又不需要私钥的效果

解决:对每笔交易进行编号,就是把编号信息加入到信息中,这样每次都会要求新的签名

2.3. 3 有启动金的加密账本

为了防止有的人只花钱不还钱,所以再加上一条规则

  1. 每个人都能向账本添加信息
  2. 月底统一结算
  3. 不允许会产生欠款的交易

2.4. 4 去中心的有启动金的加密账本

之前的加密账本只有一个,可能在一个网站上,那么要怎么信任这个网站呢?

  • 每个人都有这个账本
  • 在修改账单时向周围广播这个新的交易

问题:顺序很重要,如何保证其他人以相同的顺序获取新的信息

解决:选择信任消耗最多计算资源的那份账本

主要工具:加密哈希方程SHA256,使得伪造信息所需要的计算资源大到无法承受

:star:对账本的设计

  • 将账单分成多个区块,包含了一系列交易信息和工作量证明
  • 工作量证明就是一个特别数字满足其哈希值以一系列0开头
  • 为了保证账单是正确顺序的,规定前一区块的哈希值要加入到当前区块的头部信息中
  • 这样的话,如果要改变某一区块的信息,就要重新寻找工作量证明
  • 如果交易者收取到两个完全不同的账单,选取工作量证明较大的那个
  • 如果有两份长不多的,就都保留,直到一条区块链相比另一条要短得多
  • 除非伪造者拥有多余全部计算资源的$50%$,不然很难长时间伪造数据

使用步骤

  1. 某人广播了一笔账单

  2. 矿工听到了账单,开始寻找一个数,加到账本末尾,计算整个账本的SHA256值,使得其满足以一系列0开头的要求

  • 因为有很多人同时在找,所以要比谁算的快
  1. 广播新的区块
  2. 矿工获得奖励,普通交易者将听到的新区块加入到现存的账单上

使用书记