MAKE(Minimal Actionable Knowledge and Experience)这个概念是李笑来提出的,意思是最小可实践的知识和能力,这个概念的重要意义在于当我们在做一件看起来有些困难的事情的时候可以观察总结其MAKE集,然后迅速入门,快速迭代,并进而快速结束这个过程。
有了最小实践集,就能在完成一些事情的时候迅速获得反馈,从而不断改进自己的方式方法,这样循环往复就能把很多事情给做成。
从学习区块链的角度,对很多人来讲,有些难度,比如没有计算机相关背景,理解不了一些深奥的数学理论,等等。当别人在问我零基础如何入门的时候,我一直给不出我自己认为最满意的答案。
有了李笑来提出的这个概念,我就在想,对于区块链学习这件事儿的MAKE集是什么呢?
在分析这个问题的时候我先尝试用一句话总结什么是区块链:
区块链是在去中心或多中心的网络里,采用密码学方法和共识算法保障网络可信的一种技术体系,同时是一种通过脚本语言或智能合约技术实现在这种可信的分布式网络可编程的技术架构。
通过上面的总结提炼,我认为区块链学习的MAKE集有以下三点内容:
1. 公私钥
公钥和私钥是密码学里的一个概念,在非对称加密算法里都需要这样的密钥对:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
最常见的使用场景是:
场景一:甲方使用乙方的公钥对消息进行加密,并将消息发送给乙方;乙方使用自己的私钥对消息进行解密,查看消息的明文。
场景二:甲方使用自己的私钥对消息进行签名,并将消息发送给乙方;乙方使用甲方的公钥对消息进行验签,证明该消息确实是由甲方发出的。
公私钥所代表的非对称加密算法是密码学里的重要内容,更是区块链最核心的内容之一,特别是对于数字货币方面来讲更是如此,因为数字货币最重要的场景就是转账,而转账就必然涉及到公钥和私钥的问题。公钥代表对方或自己的收款地址,私钥代表个人对货币资产的所有权。所以,我认为如何学习区块链,理解区块链,第一步就是把公私钥的基本概念和原理弄清楚。
通过了解公私钥,从而快速对其他的密码学知识的一些基本的认识,因为区块链的很多环节是构建在密码学的保证之上的,它是通过借助一些密码学方法保证破解区块链网络的安全性变得不可能或者概率极低。
密码学知识是区块链的基石,2008年比特币横空出世的白皮书也是在密码学圈子里发表的。几乎所有的区块链产品如果有什么创新的话,都要在这个密码学的理论上做文章,特别对于数字货币而言,都是针对比特币的某些加密算法进行改进或引入一些新的密码学成果,如零知识证明或同态加密算法等。
当然,哈希计算也是很重要的一个概念,但是我并没有把它作为MAKE之一,因为通过学习公私钥,自然会间接地了解到哈希计算的概念,比如比特币的公钥收款地址就是经过哈希计算之后的展现结果。
给大家看一个简单的图,请结合上面说的场景一进行理解:

2. P2P网络
这里的P2P并不是指互联网金融里所谓的P2P借贷,而是指在互联网里形成的一种没有中心节点的对等网络结构,虽然两者有某种内涵上的接近,比如P2P借贷没有类似银行的贷款中介机构,P2P网络里一般不存在一个中央服务器一样,但是,我还是在P2P加上了网络二字,意即我们要学习的区块链是网络领域里一个知识,更是互联网发展的延续。
其实,互联网本身就是一个广泛意义上的多中心或者完全分布式的P2P结构,比如在网络上两个人相互聊天,发邮件,视频都变得非常简单,这是一个非常通畅的点对点(P2P)状态,如果我们暂时不去深入考虑它的一些实现细节的话。
比特币在诞生的时候,中本聪的理想就是通过技术的手段,实现在没有一个中心节点的情况下,两个人之间能够相互转账的网络。比特币运行的这种网络,就是一种依托于互联网的点对点网络。这是一个最基本的背景,所以也是理解区块链的一个思考基础。
当然,比特币在不断发展后,很多人逐步认识到了它的价值,并进而将其底层的区块链技术进行发扬和应用到更广泛的领域里,使得不论在公网(公有链),企业之间(联盟链),企业内部(私有链)都可以利用这项技术。但是,不论哪种场景,其赖以运行的网络都是多节点的结构,也即一个所谓的P2P对等结构。大家可以看如下示意图:

如果没有中心节点,这种网络的问题是:不同的节点之间如何同步?在记账(区块链领域里数据登记都可以叫记账)的时候谁说了算?如果记账节点出现故障了怎么办?等等。
在这种结构下会有一系列的问题,这也是“分布式网络”(其实就是这里说的P2P网络,分布式显得更技术性,所以P2P这个词对入门理解更有帮助)里研究的重要内容。这个研究内容用专业术语讲,叫做“共识算法”,意思就是相互之间共同达成一种认识的方法。
所以,在学习区块链知识的时候,很多地方会提到共识或如何保持一致性的内容,因为没有中心节点,所有节点必须保证数据或账本内容的一致。随着技术的发展及相关理论研究的深入,有一系列的共识方法被探讨,只不过目前仍然没有一种放之四海而皆准的方法,也没有一种能百分之百保证网络可靠的方法,目前只能做到一定程度上的可靠,但足够了。
对于比特币而言,采用的是一种叫做“工作量证明”(POW)的方法来确定节点的记账权及数据一致性的。公网里还有一种叫做“基于权益的证明”(POS)的方法使用得比较多。这两种方法在我之前的课程里都提到过,另外,在联盟链里最常用的是“基于拜占庭容错的算法”(PBFT),这个内容在我以后的课程里会讲解到。
3. 会看书
区块链虽然对没有基础的人理解起来比较困难,但是当你反复研究和学习它之后你会发现其实它并没有多少内容,只是随着技术的不断发展,区块链的内涵也在不断发展,比如对共识算法的改进,对智能合约的不断完善,等等。
不论是从了解区块链诞生的历史背景,还是从理解它的基础原理,并进而学习和研究智能合约以及区块链应用开发上这类事情,购买一些书籍进行学习都是必不可少的。虽然在区块链研习社及我的公众号(李白话日常)都介绍了很多基础性的内容,并且在千聊系列课程里也对很多内容进行了深层次分析,并开展了一些实践上的尝试,但是这些还是远远不够的,自身在课外的学习永远都有必要。
所以,作为学习区块链的一个MAKE要素,会看书也显得相当重要的。我给大家罗列了一些我了解到的书籍,供大家参考:

不同的书有不同的侧重点,但从入门角度,有一本可经常翻阅类似“百科全书”这样的书籍比较好,比如上面的《区块链与新经济:数字货币2.0时代》这本。如果要深入钻研,就从学习《精通比特币》开始(暂时未在上面列出,一般都是电子版,网上应该也能搜索到)。另外,随着大家对区块链的关注度越来越高,区块链相关的书籍也越来越多,所以上面列的并非市面书籍的全部。
好了,到此就把我总结出的学习区块链知识的MAKE集介绍完了,作为一个经常研究和琢磨这事儿的人,作为一个带领区块链研习社1000多人共同学习的人,相信我总结的如上内容对你有些帮助。
有了这个MAKE集,在学习区块链碰到困难时就不要太过担忧,因为:如果你理解了公私钥的内容,如果你懂得了P2P网络里节点之间如何保持一致性的问题,另外,你自己还会看书学习,那么恭喜你,区块链知识这方面你入门了!
既然入门了,那还有什么好担心的呢?!入门完成之后,再下一步,就只剩下所谓的执行,一个字而已:
用!
去投资!去编程!去开发!去ICO!
MAKE里面每一项都有很多可扩展的内容,以后我会考虑在一块听听上继续开课,带领大家更快速入门,这个是可以速成的,相信我!
网友评论