如何快速学习了解区块链
谈谈个人对区块链技术学习的一些路线看法:
前言
首先明确一点,区块链技术随比特币诞生,并支撑着比特币的运行,所以在理解区块链技术之前,应了解比特币。
基础入门
个人学习需要了解的知识点分以下几个步骤:
- 比特币是什么,对比特币的理解。
- 比特币的记账原理,主要是为了了解比特币的结构。
- 理解比特币所有权以及隐私问题,主要理解一些概率,如地址私钥、非对称加密应用。
- 比特币的挖矿原力,理解挖矿工作量证明。
- 比特币共识机制的理解。
- 知识点拓展学习,加深自己对比特币的理解:什么是拜占庭将军问题。
进阶阶段
进阶阶段主要是理解分布式网络、交易验证,有以下几点内容:
- 分析比特币网络:一种去中心化,点对点的网络架构。
- 比特币区块结构Merkle树及简单支付验证分析。
- 比特币脚本及交易分析,这个是智能合约的雏形,可以重点研究一下。
技术实践
通过上面这些知识点,大家应该可以理解区块链了,现在还缺乏一个实现的应用案例,推荐理解以太坊【以太坊是建立在区块链技术上的一个去中心化的应用平台】。
了解以太坊需要学习以下知识:
- 以太坊开发入门;
- 智能合约开发环境搭建及hello world合约;
- 以太坊客户端Geth命令用法;
- Geth控制台使用实践及Web3.js使用;
比特币
全球使用最广泛,真正意义上的去中心化区块链技术。
开源地址:
以太坊
图灵完备的区块链一站式开发平台,采用多种编程语言实现协议,并利用Go语言编写的默认客户端。
开源地址:
IBM HyperLedger fabric
带有可插入各种功能模块架构的区块链实施方案,目的打造成一个由全社会来共同维护的一个超级账本。
开源地址:
比特股BitShare
区块链里程碑产品之一,是完整度最高,功能最丰富,性能最强大的区块链产品之一;核心技术结构采用C++语言编写。
开源地址:
公证通Factom
利用比特币的区块链技术革新商业社会和政府部门的数据管理的数据记录方式,被理解为不可撤销的发布系统。
开源地址:
瑞波Ripple
世界上第一个开放式支付网络,是基于区块链的点对点全球支付网络。
开源地址:
未来币NXT
第二代去中心化虚拟货币,使用全新代码编写,非比特币的山寨币,技术架构采用JAVA编写。开源地址:
快速学习的话,入门可以比较快,但是要熟练掌握还是要花一阵子时间的。
具体怎么学要分情况讨论。
如果是非程序员出身:
入门阶段:对区块链没有任何基础认识,非常想要了解区块链是什么,有什么用,现在的发展情况是怎样的了。
这个阶段需要构建最基础的区块链认知,理解清楚区块链的机制,特点以及意义。
推荐:如果喜欢看书的话,推荐《区块链——领导干部读本(修订版)》,当然这本书的话,是包括入门阶段与掌握阶段的。
如果不喜欢看书,想看视频的话,这里也有一些圈内的大公司做的科普视频,比如OKEx与新浪联合出品的区块链基础课程。(可以长按下方链接,选择搜索,然后点击右上角“前往”,即可查看)
建议:不要去参加各种区块链大会,听不到干货的。许多演讲嘉宾都只是讲的观点和自己的一些“重新定义”,而在这个阶段,最需要的是静下心来,认真学习区块链的本质,需要的是事实,而不是观点。
掌握阶段:经过了入门阶段,可能对区块链的特点有所了解,但是可能会知其然不知其所以然。
所以,这个阶段需要深入地理解清楚区块链的原理,它是如何实现各种特点的,以及区块链的实际应用场景有哪些。
推荐:区块链的原理部分,可以看看《区块链:从数字货币到信用社会》的前面讲原理的部分。后半截因为是不同作者写的,个人主观的地方有点多,看看就好。
或者觉得自己理解能力强的,可以直接细看中本聪写的比特币的白皮书中文版,或者直接看《精通比特币 第2版》这本书。(可以跳过技术部分)
区块链应用方面可以继续看《区块链——领导干部读本(修订版)》。
以及可以看一些区块链行业报告和产业报告。
网站上的话,可以推荐国内一些区块链公司的官网,比如趣链科技,去看看他们实际案例是如何实现的。国外的公司推荐看IBM的(有中文),目前IBM已经与许多跨国企业协作,实践了许多区块链案例,这些是非常宝贵的经验。
当然,也可以关注我,每天我都会分享一些行业前沿的观点和案例。
建议:这个阶段,目前没有看到比较合适的视频,所以最核心的还是推荐的书和一些报告。
如果熟练掌握以上这些,之后就可以结合自身的专业去探索区块链与本专业的如何结合。
专业阶段:要达到专业阶段,深度要够还要有广度,深度就看是否有自己有一定专业度的见解,广度则在于是否了解整个行业的过去、现在和未来会是什么样的。
推荐:这个阶段很难有一般的书籍可以推荐了,基本上,属于自己去细看案例,比如各种区块链的白皮书,以及与从业人员对话,理解许多案例背后具体实现的逻辑是怎样的。
建议:如何检验自己深度和广度足够,可以多跟业内人士沟通,如果跟不上节奏,就说明水平还不够,要再接再厉地学习。
P.S.如果有人说不懂编程就学不会区块链的,说出这种话,那他基本上对区块链的意义是一知半解的。区块链是一门技术,只有与其他专业相结合,才能获得最好的效果。比如联盟链,都是一个传统的行业巨头去找到区块链技术解决方案提供商比如IBM、趣链科技,来解决一些行业问题的。这其中就需要懂传统的人,学习并深刻理解了区块链,双方才能更好地协作。
如果是程序员出身,那我就不按照最基础的介绍了,直接从代码层理解:
入门:《精通比特币 第2版》
掌握:学习ETH的solidity语言,IBM的Hyperledger Fabric,熟练掌握好这两款,这是基础。以后会遇到许多都是基于这两个语言来改的项目。
精通:要做到精通,就要多了解各个项目语言。
以后若是想了解公有链,可以学习rust语言,进而去学习 Substrate框架,了解polkadot这个项目,这个项目也是以太坊的CTO设计的。
若是想了解联盟链,可以学习国内的知名联盟链的代码,比如趣链科技的Hyperchain,腾讯和阿里的链,以及FISCO BCOS。
再往后就是自创一个区块链项目了。这个是最难的了。
不过一般来说学到精通就够用了。现在国内对区块链技术人才需求极大。如果学习联盟链的话,可以同时看看一些大厂,比如BAT或者银行对于区块链人才的需求,说不定还能找到份不错的工作呢。