学习
实践
活动
工具
TVP
写文章

比特币及挖矿原理

2008年10月31日,中本聪公布了比特币白皮书《比特币:一个点对点的电子现金系统》,提出比特币网络,其特点如下:

防止双重支付(双花问题);

无铸币厂或其他信任方;

参与者可匿名;

通过工作量证明方式发行新币;

基于工作量证明的新币发行过程中,也同时组织了双重支付的发生。

次年一月,比特币软件诞生,创始区块被挖出。

比特币是在比特币网络中产生并流转的加密货币。比特币网络本质上是一个公开的分布式账本,即使在用户匿名情况下,也可以查看并审核某个用户是否造假、非法铸币、将一笔钱同时花给几个人(双重支付)。若半数以上人都否认某个账本(51%攻击/共识),那这个账本就会被丢弃。

比特币的基本结构

1.比特币有三重含义:既代表比特币网络,也指网络节点使用的比特币软件,也可以指网络中交易的数字货币单位(Token)。

2.比特币网络是一个由若干节点组成的用以广播交易信息和数据区块的P2P网络, 这个网络包括矿工、比特币软件、钱包、用户、交易所等。

3.矿工指通过不断重复哈希运算来产生工作量证明的各网络节点。矿工主要负责验证交易,并将交易打包成区块,获得区块奖励和交易手续费(也称矿工费)作为回报。

4.比特币软件是系统的核心软件,目前比特币软件的开发由Bitcoin Core团队完成,也有一些竞争团队。对核心软件的改进协议被称为BIP。

5.钱包指保存比特币地址和私钥的软件,可以用它来接受、发送、储存你的比特币。用户应保管好自己的钱包,防止丢失私钥。

6.比特币网络中,人们用比特币地址来接收和管理比特币,类似于邮件地址。地址看起来像一串乱码,因为长这样:19fJnPC4vsvXFkx77TB95GFLnMVKoTo45v,特征是以阿拉伯数字“1”开头。

7.处理交易是比特币网络的核心功能。一笔交易是指把比特币从一个地址转到另一个地址。更精确地,一笔“交易”指一个经过签名运算的、表达价值转移的数据结构。每一笔“交易”都经过比特币网络广播和传输,由矿工节点收集并封包至区块中,永久保存在区块链某处。

8.区块和区块链:一个区块就是若干交易数据的集合,它会被标记上时间戳和之前一个区块的独特标记。区块头经过哈希运算后会生成一份工作量证明,从而验证区块中的交易。有效的区块经过全网络的共识后会被追加到主区块链中。

9.比特币代表了数十年的密码学和分布式系统的巅峰之作,这是一个独特而强大的组合,汇集了四个关键的创新点。包括:

a. 一个去中心化的点对点网络(比特币协议)

b. 一个公共的交易账本(区块链)

c. 一个去中心化的数学和确定性的货币发行(分布式挖矿)

d.一个去中心化的交易验证系统(交易脚本)

这四点紧密协作,形成了整个比特币的软件系统

10.交易所是指提供数字货币与法币兑换平台的公司,是比特币生态系统的重要环节。交易所本身与比特币网络无关,可以将交易所理解为比特币网络的企业用户。目前多数用户买卖比特币是通过交易所来完成的(也可以选择线下交易)。目前全球有几千家交易所公司,国内也有几十家,均为小型创业公司,规模不一。

特点

去中心化

没有中心化的公司或组织来控制服务器,每个用户都可以选择自己信任获认可的【支持比特币协议】的程序,这个程序运行时就是一个服务器或节点,它与其他比特币程序或节点相连,权利与义务相同。这些节点共同维护比特币网络。部分节点的加入和退出不会影响整个网络的运行,除非所有节点同时掉线。

挖矿

【共识机制】比特币通过工作量证明的共识机制来决定记账权的。

工作量大小是通过计算符合某一个标准的比特币区块头的哈希散列值来体现的。试图争夺记账权的节点称为挖矿节点,挖矿节点会把网络节点上发来的交易进行验证,验证后会存入缓冲区,形成一定的交易存储结构(交易使用Merkle树存储),放在区块体中,然后根据区块的基本信息构造区块头,区块头通常包含前一个区块的哈希散列值、Merkle根、时间戳、难度目标、以及一个填充的随机值。这里面的随机值是随机产生并且填充的,挖矿过程就是求出一个能够填充本区块头的随机值,让区块头的哈希散列值符合某一个标准,例如:哈希散列值的前某些位为0,难度目标就是用来表达哈希散列值标准的难度系数,可以通过概率算法计算出难度值与挖矿成功的可能性。

网络上的每一个矿机接收并验证了一批交易,然后就开始进行挖矿,视图计算满足某一难度值的区块头的哈希散列值,如果计算成功,则挖矿成功,向全网广播挖矿所得,全网节点验证后,把这个区块连接到区块的最上端,并且在全网达成一致。矿机需要反复的试验随机填充值来进行求解,一般采用产生随机数,尝试把产生的随机数填充到区块头,然后计算哈希,后续文章会介绍矿机联盟,矿机联盟会把随机数分成多个小区间,分配给联盟中的成员,共同求解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180829G0VILH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券