邓肯白话——区块链系列
扫描二维码
随时随地手机看文章
上回我们聊了什么是比特币,今天我们聊聊区块链技术。
区块链和区块链技术其实是不一样的概念。区块本身就像是我们逛超市时候的物品存放柜,在比特币里区块就是用来存放比特币交易的,交易太多一个区块存放不下,就需要挖出新的区块(这就是挖矿),并且在新的区块第一个储物格里存放前一个区块的哈希值(可以理解为区块号),这样通过头尾连接起来就是区块链。在技术上来说,区块链可以存储为flat file或者简单数据库中,实现上并不复杂,也不是一个新概念。不同的点在于,比特币使用的区块链是去中心化的,也就是分布式的,并且形成了一整套区块链技术,这就引入了很多概念。
首先是区块链如何做到去中心化,这需要一个P2P(peer-to-peer)网络,以及网络上不同节点的支持。
在比特币网络中,每个节点都是路由、钱包、挖矿和区块链数据库这四个功能的集合,各节点上都会保留区块链的副本,节点之间通常采用TCP协议传输,通过8333端口建立连接。保留区块链全部副本的叫做全节点,保留区块链部分拷贝的叫做修剪节点,另外还有轻便式的比如手机端比特币钱包APP,这些叫做SPV节点。SPV是一个“简单支付认证”方式,主要就是打造轻量级节点。打个比方,我旅行带了3个行李箱,出入不方便,我就把2个大的行李箱寄存,随身带个小的行李箱,需要的时候我凭寄存条可以把另外2个大的行李箱取回。这就是轻量级节点的工作模式,当然SPV有更安全的机制验证行李箱是否被打开过。
比特币网络截止目前已经有超过上万个节点。如果有新的节点加入,如何识别和发现已有节点?一个比较好的办法是比特币客户端维护了一个长期稳定运行节点的列表,这些节点也可以被看做是比特币网络的“种子节点”,通过这些种子节点可以迅速发现网络中的其它节点。如果一个节点连续90分钟没有任何应答,那么会被认为网络中断,节点需要重启后再次启动连接加入网络。
既然节点多了,肯定需要一个共识机制来管理。目前区块链技术使用的共识机制主要有PoW(Proof of Work)工作量证明,PoS(工作权益证明),DPoS(委托权益证明)和传统一致性算法如PBFT(拜占庭容错)、PAXOS、RAFT等。比特币使用的是PoW,以太坊使用的是PoW+PoS,像比特股、EOS等使用的是DPoS,超级账本用的是PBFT。详细的共识机制我们放到下一章聊。
P2P网络架构,共识机制和区块链数据库,构成了区块链技术的基石。就像上回我们说到,这里还少了一样东西,就是激励机制。目前绝大部分基于区块链的应用,都使用Token作为激励机制的,Token本身的意义可能跟区块链同等重要。我们都知道,记账是产生财富的基础,个人生产的物品如果不进行交易就体现不出价值,正是因为可以记账,才可以进行等价交换,从而创造更多的财富。但在现实世界中,很多的事物是无法被量化的,或者量化的颗粒度太粗,也就没办法进行交换或者高效地交换。比如你的房子,不可能拆分成10份来卖。而在区块链技术中,Token的引入很好地解决了这个问题,所有实体的、虚拟的资产都可以通过Token来量化和交易,包括挖矿的收益、交易手续费、各种实物资产和数字资产如房子、母猪、博客、游戏装备、歌曲等等,并且基于Token的加密机制和私钥验证机制,保证了资产交易的安全性,而共识机制又避免了“双重支付”的问题,这些都是现实世界交易很头疼的问题,所以个人认为Token的引入是具有与区块链同等意义的创新。