比特币是目前为止最成功的区块链应用,是进入区块链世界的入口,也是电子货币金融市场的标杆,如果你想学习区块链技术,比特币是不得不学的基础。在github上有一个bitcoinbook的开源项目,它是《精通比特币》这本书的开源版本,让我们从这里开始,更深入的认识比特币吧。
什么是比特币
比特币是一组概念和技术,它构成了电子货币生态系统的基础。用户可以通过网络,将比特币转移到其他用户,通俗点说,就是比特币可以做任何传统货币可以做的事,包括买卖商品,给个人或企业转账。同时,在电子货币世界,通过交易所,我们可以买卖比特币,以及用比特币兑换其他电子货币。
密钥就是账户的一切
不像实体货币,比特币是虚拟的,它不可见,你甚至看不到一个虚拟账户,比特币隐藏在每笔交易中。比特币用户使用一组密钥来证明他们持有一定量的比特币。如果你想花费手中的比特币,整个过程可以描述为:
- 用你的密钥在一笔交易上签名,通过系统验证,可证明你拥有这笔交易里等数额的比特币
- 你可以花费这些比特币,将它们转移给其他用户,我们假设转账给小明,此时会在系统中新增一笔交易,这笔交易只有小明的密钥才能打开。
上面说的密钥,存储在钱包中,钱包是计算机或手机中的应用程序。如果你有比特币,可以看到使用你的比特币的唯一办法是用密钥解锁交易,那么为了保护你的资产,你唯一需要做的就是保护好你的密钥不被泄漏出去。
去中心化中的一致性问题
比特币是一个去中心化的p2p网络,没有任何中心服务器或控制节点,这就带来一个问题,如何保证所有节点中的数据都是一致的?答案是“挖矿”,“挖矿”是一个类比,实际上是p2p网络中的计算机(全节点)同时解决同一个数学问题,谁先解决出来谁胜出,胜出者可以记录从上次胜出开始到这次胜出(一般为10分钟),这段时间内产生的交易,这10分钟产生的交易记录存储在block区块中,所有的区块形成一条相互制约的链条——分布式账本,这就是blockchain的由来。这个算法保证了10分钟内只有一个人胜出,只有一个人记账,那么这个网络中的所有节点的数据就是一致的。
比特币具有银行的发行货币功能
参与挖矿的机器被称作矿工,在挖矿过程中胜出的矿工,他会获得一定量的新产生的比特币,产生比特币的这个过程和中央银行发行货币类似:
只不过它没有中央银行,只有发行货币。
比特币的“挖矿”算法是动态调整的,即无论有多少矿工,它都会以每10分钟产生一个区块的速度进行,这个算法还加入了一个限制,即每4年每区块产生的新比特币的数量会减半,这个算法会限制总的比特币的产生数量,通过计算可以算出,到2140年,不会再有新的比特币产生,总的比特币数量大约为2100万,即,比特币不会因为新发行货币而通货膨胀。
比特币也是这种p2p网络中的协议的名字,是分布式计算的发明,同时,它还是近几十年来密码学和分布式网络的研究成果,总结一下:
- 比特币是一个区中心化的p2p网络(协议)
- 比特币是一个公开的交易账本(区块链)
- 比特币是独立的交易验证和货币发行的机制(规则)
- 比特币发明了去中心化的网络共识(一致性)方法(Proof-Of-Work算法)
数字货币需要解决的基本问题
数字货币需要解决的基本问题是信任问题,包括:
- 我能相信这钱是真实可信的,而不是伪造的吗?(假币问题)
- 我能相信这个数字货币只能支付一次吗(双重支付问题)
- 我能保证没有人会声称这个钱是他的,而不是我的吗?
在实物货币中,这3个问题很容易解决,银行会利用复杂的纸张和打印技术来解决第1个问题,而由于是实物货币,第2个问题和第3个问题天然就不存在。
在虚拟货币中,密码学提供了信任的基础,资产所有者可以在交易上附加上自己的数字签名,来证明这个资产是他的,同时,通过一定的架构设计,可以解决假币问题和双重支付问题,例如通过每个节点存储一份账本来杜绝假币问题,而比特币的最小记账单元-UTXO(Unspent Transaction Output)的设计来保证一笔钱不会被花费两次,因为记账算法被设计为每一笔交易的输入,都是上一笔交易的输出,这笔交易只能串行,无法并行,且区块链的“链”机制保证了这笔交易的输入无法被复制为多份。
早期的数字货币
早期的数字货币诞生于1980年代,他们常常使用贵金属或黄金做信用背书,但由于这种货币会威胁到政府对货币的管理,同时它又是中心化的,很容易被黑客攻击,所以最终灭绝,由于以上种种原因,数字货币系统需要具备一个去中心化的需求,于是,比特币孕育而生,它天生具备防攻击、绕过审查的特点。
我建立了一个收费的知识星球,在这里,我会为大家营造一个沉下心来学习的环境,在今年,我至少会做三件事情:
- 精通比特币的实现原理
- 精通EOS的实现原理,并着手在EOS上建立应用
- 学习其他项目的白皮书,寻找有创意、有价值的项目
以上内容会不定期的输出分享,同时也会在能力范围内解答同学的问题,期待你的加入