一、比特币项目简介
特点:
去中心化:没有任何独立个体可以对交易进行破坏,任何交易请求都需要大多数参与者的共识
匿名性:账户地址是匿名的,无法从交易信息关联到具体的个体,这也意味着很难进行审计
通胀预防:发行量上限2100万个,无法超发,每四年减半。
1. 比特币大事记
2008.10.31,中本聪发布比特币白皮书
2009.1.3 18:15:05,中本聪挖出第一批50个币
2010.5.21 佛罗里达的程序员用1万个币买了价值25美元的披萨优惠券
2012.11.28 产量第一次减半
2016.7.9 产量第二次减半
2. 其他数字货币
超过700种,比较出名有以太币和瑞波(Ripple)币
二、原理和设计
1. 基本交易过程
用户将新交易记录写到比特币区块链网络中,等网络确认后即可认为交易完成。
交易过程中,转账方需要通过签名脚本来证明自己是UTXO(Unspent Transaction Outputs),并生成新的输出的过程。
2. 重要概念
账户/地址:比特币采用了非对称加密算法,用户自己保留私钥,对自己发出的交易进行签名确认,并公开公钥。账户地址其实就是用户公钥经过一系列的Hash及编码去处后生成的160位(20字节)的字符串。
交易:包括付款人地址、付款人对交易的签字确认、付款人资金的来源交易ID、交易的金额、收款人地址、收款人的公钥、时间戳
交易脚本:输出脚本和认领脚本
区块:4字节的区块大小信息、80字节的区块头信息、交易个数计数器(1~9字节)、交易的具体内容(可变长)
3. 创新设计
避免作恶:在一个开放的网络中,无法通过技术手段来保证每个人都是合作的。但是可以通过经济博弈来让合作者得到利益,让非合作者遭受损失和风险
负反馈调节:
共识机制
三、挖矿
1. 基本原理
挖矿是参与维护比特币网络的节点,通过协助生成新区块来获取一定量新增比特币的过程。
现在是每10分钟生成一个不超过1M大小的区块(记录了这10分钟内发生的验证过的交易内容),每个区块的成功提交者可以得到12.5个比特币的奖励。
2. 挖矿过程
参与者综合上一个区块的Hash值,上一个区块生成之后的新的验证过的交易内容,再加上自己猜测的一个随机数X,一起打包到一个候选新区块,让新区块的Hash值小于比特币网络中给定的一个数。这是一道面向全体矿工的“计算题”,这个数越小,计算出来就越难。
3. 如何看待挖矿
中国有超过全世界一半的算力。
4. 共识机制
四、共识机制
1. 工作量证明
工作量证明(PoW)通过计算来猜测一个数值(nonce),使得拼凑上交易数据后内容的Hash值满足规定的上限(来源于hashcash)。
2. 权益证明
五、闪电网络
全网每秒7笔左右的交易速度,远低于传统金融交易系统。
RSMC即“可撤销的顺序成熟度合同”。
HTLC即“哈希的带时钟的合约”
六、侧链
简单来讲,以比特币区块链作为主链 (parent chain),其他区块链作为侧链,二者通过双向挂钩 (two-way peg),实现比特币从主链转移到侧链进行流通。
七、热点问题
1. 设计中的权衡
区块容量:更大的区块容量可以带来更高的交易吞吐率,但会增加挖矿成本,带来中心化的风险,同时增大存储的代价。兼顾多方面的考虑,当前的区块容量上限设定为1MB。
出块间隔时间:更短的出块间隔可以缩短交易确认的时间,但也可能导致分叉增多,降低网络可用性。
脚本支持程度:更强大的脚本指令集可以带来更多的灵活性,但也会引入更多的安全风险。
2. 分叉
如果旧节点仍然能够验证接受新节点产生的交易和区块,则称为软分叉
如果旧节点不接受新节点产生的交易和区块,则称为硬分叉
3. 交易延展性
是指当交易发起者对交易签名(sign)之后,交易ID仍然可能被改变。
4. 扩容之争
隔离见证方案:是指将交易中的签名部分从交易的输入中隔离出来,放到交易末尾的被称为见证(Witness)的字段当中。
Bitcoin Unlimited方案(简称BU):指扩展比特币客户端,使矿工可以自由配置他们想要生成和验证的区块容量。
5. 比特币的监管和追踪
八、相关工具
1. 客户端
2. 钱包
3. 矿机