1、比特币要解决的核心问题是创造一种可信的数字凭证。由于这种凭证可信,所以能够当做货币。
2、比特币特点:不会被偷走;无法伪造;无法大批生成。
1、区块包含:区块头、区块体。
2、区块投包括:生成时间、区块体的Hash、上一个区块的Hash。。。
3、采矿,工作量证明:比特币平均每10分钟生成新区块,1小时也就6个。加大计算Hash的难度。保证各节点的同步。
4、只有满足条件的Hash才会被区块链接收。区块头包含1个难度系数,用1个常量除以难度系数,得到目标值。难度系数越大,目标值越小。
5、Hash有效性跟目标值密切相关,只有小于目标值的Hash才有效,否则重算。由于目标值非常小,Hash小于改值的机会非常小,可能计算10亿次才中1次。
6、难度系数每2周调整1次,保证区块产生速率为10分钟。难度系数越调越高,代表着挖矿越来越难。
7、如果同时产生2个区块写入区块链,选择最长的那条。如果有分叉,看哪条分支先达到6个区块。
8、区块链适用的场景:不存在所有成员都信任的管理当局;写入的数据不要求实时使用;挖矿的收益能够弥补本身的成本。
9、比特币钱包:不是用来存放比特币的,是用来存放公私钥的。
10、根据协议公钥的长度是256位,过长不方便传播,又为公钥生成1个160位的指纹(比较短易于传播),叫钱包的地址,唯一性。
11、双方交易时,只要相互知道对方钱包地址即可。
12、比特币交易就是1个地址的比特币转移到另一个地址。
13、比特币交易记录公开,哪个地址拥有多少比特币可查,支付方是否拥有足够用于交易的比特币,可轻易验证。
14、支付比特币方申报交易需提供数据:交易金额、上一笔交易Hash、本次交易双方的地址、支付方的公钥、支付方的私钥产生的数字签名。
15、验证交易步骤:找到上一笔交易,确认支付方的比特币来源;算出支付方公钥的指纹,确认与支付方的地址一致,保证公钥属实;使用公钥解开数字签名,保证私钥属实。确认交易真实性后,必须产生区块并写入区块链中才完成。
16、所有交易数据都会传到矿工,矿工负责把交易数据写入区块链。
17、根据协议,1个区块最大1M,1笔交易大概500字节,所以1个区块最多2000多笔交易。矿工负责2000多笔交易打包成区块,计算Hash,采矿。
18、谁先计算出Hash,谁就能第1个把新区块添加到区块链中,并获得全部收益,而其他矿工一无所获。