区块链与比特币(2)
比特币协议的五大核心特征包括:数字签名(Digital Signature),公共账本(the ledger is the currency.) ,去中心化存储(Decentralize), 工作量的证明(Proof of work),区块链(block chain)。
区块链则是比特币的存储形式,账本分成区块的形式进行放置,位置具有前后关系,后一个区块会存储前一个区块的哈希值,形成链表的形式。前面区块发生修改后,包括交易记录和前一区块的哈希值,后面所有的区块都得随之发生变化。每个区块内部依然记录交易信息,当有新的交易被记录在区块内时,区块的工作量证明的数字需要重新计算以满足N个0的要求,所以每次交易耗费很大,需要一定的手续费。

如果找到特殊值能够让新的区块满足256bit前N个位为0的条件时,提交给网站,将新区块加入链表中,每次产生新区块的时间大约是10min。矿工每次探索出新的区块后,会获得一定量的bitcoin奖励,每个新区块所包含的奖励bitcoin逐渐减少,这些bitcoin也就是当前区块的交易内容总和。一个区块相当于记录这些bitcoin的流向,包含签名在内就组成了一次交易,每次交易需要缴纳一部分手续费给矿工,单个区块的交易记录数有上限,2400笔。
所有人都能参与建设区块链,发现前N位为0即探索出新的区块,区块的发现者会凭空得到一笔bitcoin的奖励,此时没有支付人和奖励要求。
当用户接受到不同来源的多个区块链条发生冲突时,本地账本经过一段时间等待后只保留一条最长的区块链,这就是工作量更大的原则。
在某个区块内伪造交易记录,更新一个假区块,计算工作量数,满足N位0要求后,在局域内进行广播,使得周边用户暂时相信虚假区块链条账本,但当用户接受到其他用户广播的更长的真实链条账本时,此虚假链条即会作废。不用相信偶然性发现的情况,除非能拥有网络内超过50%算力资源,否则其他真实的账本记录一定会取代虚假记录。
虚假记录是不能广播的,首先需要通过hash值前N位0的检测,其次一旦大家都接受并认可了此区块链账本,根据去中心化的要求,此交易记录就会被认为是真实发生的。