比特币
1、什么是比特币?
比特币是一种可以在P2P网络(比特币网络)中发行和使用的虚拟货币。
2、比特币实现原理
比特币底层是通过区块链实现的,而区块链具备去中心化、数据不可篡改和共同维护等特点。区块链主要依托于P2P网络、密码学技术和共识算法。
2.1什么是区块链?
区块链是一个全网(加入某一种币网络,比如区块链网络)节点共同维护的一个公共账本。基于P2P网络,所有加入网络的节点都可以进行记账操作(也就是挖矿),账务记录一经写入,就不能更改(密码学技术实现)。这个公共账本是由一个个区块组成的,区块之间通过哈希指针连接。每个区块包括区块头和区块体,其中区块体主要包括两部分,一条条交易数据和这个区块包含的区块总条数(其中有一个交易比较特殊,是矿工挖矿成功,一笔没有输入并且输出为矿工自己地址的交易,也就是区块奖励,该交易叫 coinbase,),区块头主要包括版本号、前一区块的哈希指针、梅克尔跟、时间戳、随机数和当前网络的目标难度值。
2.1.1P2P网络
P2P网络是去中心化的基础,基于P2P网络,全世界的比特币节点才能共同维护比特币网络上产生的区块链账本。
2.1.2 密码学技术
区块链主要用到公钥密码技术,每一个区块(账务记录)加入区块链,必须有记账人的签名,需经过其他至少6个承认,才能加入区块链账本中(6个承认区块奖励冻结到记账人账户,经过100个承认才能解冻)。
2.1.3共识算法
比特币网络设计成平均每十分钟生成一个1MB大小的区块,为了鼓励大多数矿工诚实的记账,比特币网络会给诚实记账的矿工经济激励,因此,比特币记账竞争相当激烈,为了公平竞争,比特币网络设计者一开始使用工作量证明(POW)共识算法来选举出最先生成区块的矿工。
2.1.4工作量证明
POW(Proof of work),即工作量证明。工作量证明就是通过穷举(穷举过程只有两个数值可以改变,一个是区块头中的随机数,一个是区块体中的 coinbase 交易中 extraNonce 会改变)计算当前组装的区块的哈希值,如果计算出当前区块的哈希值在目标哈希(也就是当前网络的目标难度值)范围内,说明挖矿成功。