区块链学习(一):区块链的发明
区块链是什么
从一个故事说起
区块链是一种分布式账本数据库,比特币是区块链的一种重要应用。区块链的核心思想是“分布式”,即削弱“中心”的职能,使得整个系统由系统所有成员(或多个成员)分担。讲一个简单的故事:在一个安静祥和的村子里,有一位羊村长,他负责记录和维护所有村民之间的交易往来信息。如上图左边所示,喜羊羊给美羊羊转了100元钱。羊村长知道了这一切,然后将这笔交易记录了下来。这一切看似美好,但是随着村民逐渐变多,且羊村长年岁已高,逐渐无法胜任这一职责。于是村民开始合计一套新的记账机制。
如上图右所示。同样是喜羊羊转账给美羊羊100元。这时喜羊羊开启小喇叭向村民们通告:“全体羊村村民注意!我是喜羊羊,在某月某日转给了美羊羊100元!!!”附近村民听到这个消息,需要检查两件事:首先判断这个消息是不是喜羊羊亲口说的,而不是别的羊冒充喜羊羊说的;第二是检查喜羊羊是否真的由100元可用于转账。
如果以上信息得到确认,听到消息的村民在自己的账本上记录下“某月某日喜羊羊向美羊羊转了100元”(注意右图中不止羊村长有了记账的小本本),同时将该信息口口相传。很快全村的羊就都知道喜羊羊向美羊羊转了100元这件事。
羊村设计的这种“去除村长权限,由村民共同负责”的思想就叫做“去中心化”。整个记账系统的原理就类似于区块链系统。
区块链的定义
区块链的定义有狭义和广义之分。
-
狭义的区块链:就是一种“块链式”数据结构,区块之间按照时间顺序相连,保证数据不易篡改,不易伪造,并在网络所有节点进行分布式存储的共享账本(划重点,区块链是一种有特殊结构的账本)。但是狭义的定义并不能完整描述区块链的技术体系。
-
广义的区块链是指:利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。(广义区块链 <-- 狭义区块链 + 共识算法 + 密码学保护 + 智能合约)
回到开头的故事
在开头的故事中,羊村构建了一个“人工版”区块链系统:首先羊村里所有人都有记账权限,这就是“分布式账本”;喜羊羊转账时需要大喊一声,然后村民们根据既定规则去同步账本,直到全村人达成共识,这个流程就是“共识算法”;为了确保没有坏人冒充喜羊羊发布假消息,村民需要根据“声纹”识别消息由喜羊羊发出,这就是密码学中的“防止伪造”(实际系统有时还要求加密传输信息,这可以用同态加密实现);整个流程要求自动执行,这就是“智能合约”。可以看到,区块链的四大技术之间有机结合,缺一不可。