一.比特币的本质:
1.比特币的本质就是点对点(去中心化)的数字现金系统。
2.利用数字签名可以防篡改和伪造交易。
百度百科的定义:
比特币是一种P2P形式的数字货币。点对点的传输意味着一个去中心化的支付系统。
与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在2100万个。
3.详细了解最好看一下比特币白皮书:http://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system
二、双花问题:
1.什么是双花:
在数字化货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况,这也称之为双花。
2.如何阻止双花问题
1. 支付过程全网广播,所有人都可见,所有人都看到相同的交易
2. 需要一种表达形式来达到这个目标
3.坏人能做什么
①. 一个矛盾的交易
②. 给一部分人这个交易
③. 给另外一部分人那个交易
④. 出现了double spending(双花,复制)
4.如何不让坏人干坏事
①. 不要相信发出的交易,直到确认。即:大部分人同意一个交易(少部分同意不行,交易有
非确认的交易,有确认的交易)。
②. 把坏人变成好人。即:通过激励机制(比特币的伟大发明:破坏系统需要投资大但是获益不大,
支持系统获益大)。
5.没有中心节点,如何阻止双花?
①. 两个矛盾的交易,如果能够排序的话,前面的交易确认,后面的交易不确认,作废
②. 确认的交易都构成一条链(区块链)
③. 这个链还可以被记上标记,第0块,第1块(创始区块?)
6.双花问题的总结:
①. 数字货币有双花问题
②. 防止双花要有全局的顺序账本
③. 区块链就是全局的顺序账本!(一句话说明白区块链)
三、组块的问题(挖矿原理)
什么是块呢?关于“共识机制”、“块”、“节点”的概念参考这个链接可以一目了然:http://baijiahao.baidu.com/s?id=1585201189019078926&wfr=spider&for=pc
看一下我们账本的形状
我们的期望是:
1. 所有的确认的交易都一样的,即区块链上面的东西都是一样的
2. 但是,网络有延迟,每一个人拿到的块可能不一样,交易也不一样。
3. 上面的交易网络和下面的区块链都有可能是不一样的
那么,谁来组下一个块呢?
比特币的方法是:依据每个人的块的信息大家一起来抽奖。
怎么抽:
1. 万一如果所有的人都没有抽中,我系统还工不工作了呀
2. 所以,每个人都有很多次机会去抽奖
3. 因为抽完奖之后,块就放进去了(交易被确认了)必须要有人抽中
4. 没有抽中,继续瞎猜(就是手工换一个X放到抽奖函数里面去)
5. 保证大概10分钟完成一次抽奖,有人抽中的
如果我抽中了怎么办?(就是挖到矿了怎么办)
1. 赶紧广播,网络中很多的人都知道有人抽中奖了
2. 在这个时候,抽中奖的人广播,因为抽中了真的有奖,抽中一个奖励12.5个比特币 货币发行
3. (因为给你比特币奖励了,所以这个过程又被称为是挖矿)
4. 一次完成:下一个块的确认,货币的发行(奖励确认的工作)
如果别人抽中了,广播给我了怎么办?
1. 把对应的块放到自己确认列表中
2. 赶紧开始进行下一个抽奖==>所有的人都会在最长的链上进行抽奖的工作
3. 因为协议这样规定,你再在原来的位置上抽奖,别人也不认啊
同时抽中了怎么办?
1. 奖券都是计算出来的,有很小的概率同时抽中
2. 变成两个链了
3. 两个人都广播,每个收到的人都工作在第一个收到的链上(更长)
4. 随时间推移,两个更长的链的概率就更小
5. 迅速回到一个链(抛弃掉那个短的链)