比特币1m 包含什么意思(1m比特币是什么意思-)

什么是比特币(BTC)?

按照中本聪的比特币白皮书,比特币是一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。

通俗的来讲,比特币并不是真正的币,而是一种虚拟的加密数字货币,是电脑里一串虚拟的数字,这种数字货币不由某个国家发行,而由比特币软件通过一定的机制发行,这种货币可以点对点交易,不需要权威机构的认可,而由整个比特币运行的节点鉴证(即共识),人人可查可验证交易是否合法。

在详解比特币之前,先了解几个名词:。

私钥(SK):256位的随机数,个人秘钥,不可泄露,一定要保管好。

公钥(PK):512位,由私钥经过特定的函数生成,可以公布。

公钥哈希值:公钥(PK)经过哈希运算后的值,257位。

哈希函数:密码学中的一种数学函数,比特币采用的是SHA-256函数。

比特币如何实现去中心化和分布式共识呢?首先,比特币的发行不由中央权威机构决定,而是由算法决定,即矿工挖矿成功的奖励。其次,比特币的交易记录人人可查,且不可篡改。又如何保障呢?比特币采用了密码学的哈希函数,哈希函数有三大特点,即碰撞阻力(collision-resistance),隐秘性(hiding)和谜题友好(puzzle-friendliness)。碰撞阻力保证了交易记录不可篡改,隐秘性保证了交易信息的安全,谜题友好保证了挖矿的难度和可行性。

比特币交易及区块链。

比特币所有的交易都包含在区块链中,都有据可查,没有凭空产生的币,所有的币都可追溯其根源。2009年1月中本聪挖到了比特币的第一个区块,即创世区块。比特币最小单位为聪,1聪=0.000 000 01 BTC.

比特币交易及区块链图解

比特币的区块大小为1M,其中包括(1)上一个区块的哈希值,用于追溯前一个区块;(2)本区块的梅克尔数哈希值,包含本区块的所有交易和币基交易(给矿工的奖励);(3)随机数(32位),用于计算本区块的哈希值;(4)本区块的哈希值,需要满足一定的难度要求;(5)版本号,目前区块所用的版本,以前计算哈希值只是更改随机数,最新研究可以更改版本号计算本区块哈希值,目前还在研究阶段;(6)时间戳,记录本区块产生的时间。

比特币的交易以梅克尔树的形式存在区块链中,并且交易经过哈希运算,保证交易的安全和不可篡改。具体到某个交易,在比特币的底层,是以脚本运行的。如A to B的比特币交易脚本如下,这笔交易存在于某区块:

ScriptSig: //输入

sig(A's SK, Mes)

A's PK

ScriptPubkey://输出

OP_DUP

OP_HASH160

455yrfa…(hash(B's PK))

OP_EQUALVERIFY

OP_CHECKSIG

B to C的交易脚本如下,这笔交易存在于另一个区块中:

ScriptSig: //输入

sig(B's SK, Mes)

B's PK

ScriptPubkey://输出

OP_DUP

OP_HASH160

454sdf34…(hash(C's PK))

OP_EQUALVERIFY

OP_CHECKSIG

现解析B to C的交易过程:B把自己公钥地址(B's PK)里的比特币要转给C,而B's PK里的比特币是由之前A转给B的,B转给C的过程,实际是用B to C的输入去验证A to B的输出,如果验证通过,则B公钥地址里的比特币现在属于C的公钥地址,即属于C所有。具体堆栈执行过程如下

比特币交易堆栈执行过程

(1) 首先把B对C交易信息的签名入栈,这个签名由B的私钥和这笔交易信息经过哈希运算而生成。

(2) 再把B的公钥入栈

(3) 复制B的公钥

(4) 对顶端B的公钥进行二次哈希运算,第一次用SHA-256函数,第二次用椭圆曲线函数RIPEMD160

(5) 检验上一步B公钥的二次哈希运算结果是否与A to B的输出中B公钥的哈希值一致。

(6) 如果一致移除这俩值,进行下一步

(7) 用椭圆曲线函数验证堆栈顶端俩项返回值是否为真,如果为真交易成功,如果验证为否,则交易失败。具体如何验证,采用的函数,是怎么实现验证的?可以图中链接文献。

注意B公钥地址里的比特币所有节点都可以看到,但是只有用B的私钥才可以用掉这些比特币,

比特币区块大小为1M,每个交易大小约250字节,所以每个块最多容纳4000个交易。平均大约每10分钟产生一个区块,所以比特币网络每秒只能处理7比交易。

在比特币交易中,没有找零这么一说,如A有10比特币,需要支付给B的地址8比特币,不像传统的法币,给B钱10,B找给A钱2,而是A向B的公钥地址支付8比特币,然后再向自己的另一个公钥地址支付2比特币。

全节点和轻量节点。

全节点即完全有效的节点,这些节点需要存储完整的共识区块链,需要永久在线,全节点担任着广播交易和验证交易的使命。全节点必须维护未被消费掉的比特币的完整列表(即UTXO, Unspended Transaction Outputs)(上边例子里B to C的交易过程就是验证A to B的输出,当交易完成后,A to B的输出就不在UTXO里了,B to C的输出加入UTXO),这个列表最好放在内存而非硬盘中,这样在收到一个交易信息时,节点才能快速查看、运行脚本、验证签名是否有效。比特币现有区块链需要200多G的存储空间。

轻量节点即简单付款验证客户端(SPV, Simple Payment Verification)。在比特币系统中大部分节点是轻量节点,这些节点不存储整个比特币区块链,之存储他们所关心的、需要进行核验的部分交易。轻量节点只验证那些和他们相关的交易,所以他们必须依赖全节点去验证网络上的其他所有交易。轻量节点只需要几十M的存储空间。