比特币

1.挖矿

  • 挖矿是重复计算区块头的hash,不断修改随机数nonce,直到与难度目标匹配
  • 挖矿就是在争取记账权,对一段时间内比特币网络中的交易进行确认,并记录在区块链上的过程
  • 挖矿的人是矿工,挖矿过程就是争取记账的过程;矿工是记账员,区块链是账本,每个区块就是整个账本中的每一个账页
  • 挖矿成功,比特币系统会新产生一笔比特币,将这次奖励给挖矿成功的矿工
  • 挖矿成功,矿工争取到了区块的记账权,这10分钟内被打包的所有未确认的交易的手续费都会奖励给该矿工

2.比特币钱包

  • 广义上,钱包是一个应用程序,为用户提供交互界面。钱包控制用户访问权限、管理比特币地址及其秘钥、跟踪余额、创建交易签名交易
  • 狭义上,即从程序员的角度来看吗,“钱包”是指用于存贮和管理用户秘钥的数据结构
  • 钱包是私钥的容器,一般是通过结构化文件或简单数据库来实现。
  • 一个常见误解是,比特币钱包里含有比特币。事实上,钱包里只含有钥匙。“钱币”被记录在比特币网络的区块链中。用户通过钱包中的秘钥签名交易,从而来控制网络上的钱币。在某种意义上,比特币钱包是秘钥链。
  • 比特币钱包只含有秘钥,而不是钱币。每个用户有一个包含多个秘钥的钱包。钱包只包含私钥/公钥对的秘钥链。用户用秘钥签名交易,从而证明他们拥有交易输出(他们的钱币)

3.比特币节点

  • 运行区块链软件的计算机就是一个节点

    每个比特币钱包都是一个节点。

  • 全节点

    拥有完整区块链账本的节点,负责比特币转账交易的广播和验证
    同步整个区块链并对交易做验证,同事中继区块的在网络上的传播

  • 轻节点

    不保存所有区块,因爱全节点做交易

  • 挖矿节点

    带挖矿功能的全节点
    转账交易发生后由所有节点共同广播至全网,挖矿节点验证改交易正确后会记录至区块链账本

  • 因为不需要全节点也可以进行比特币转账,所以比特币全节点个数只占全部节点数的一部分

4.挖矿三部曲:记录、打包、挂链

5.发出交易到矿工打包需要几步?

  • 发起比特币转账,将交易广播到全网。
  • 挖矿节点接到交易后先将其放入本地内存池,进行一些基本验证,判断是否属于TUXO。如果通过验证,则将该笔交易放入未确认交易池,等待被打包;如果未通过验证,则被认为是无效交易,直接废弃,不会被打包。

未确认交易池是所有交易数据的集合,这些交易已经被比特币节点验证,但未被确认。

  • 挖矿节点在比拼算力的同时还需要及时验证每笔交易,更新自己的”未确认交易池“。矿工挖矿前,将从“未确认交易池”中抽取“未确认交易”进行打包。
  • 有时交易不能被及时打包,是因为“未确认交易池”中交易太多,每个区块能记录的交易数有限,就造成区块拥堵。

6.比特币交易验证过程

  • 一笔交易就是一个地址的比特币,转移到另一个地址。由于比特币的交易记录全部都是公开的,哪个地址拥有多少比特币,都是可以查到的。因此,支付方式是否拥有足够的比特币,完成这笔交易,这是可以轻易验证的。问题出在怎么防止其他人,冒用的的名义申报交易。
  • 比特币协议规定,申报交易的时候,除了交易金额,转出比特币的一方还必须提供以下数据。

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

  • 验证这笔交易是否属实,需要三步。

1.找到上一笔交易,确认支付放的比特币来源。
2.算出支付方公钥的指纹,确认与支付方的地址一致,从而保证公钥属实.
3.使用公钥去解开数字签名,保证签名属实、私钥属实.
经过上面三步,就可以认定这笔交易是真实的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容