区块链实际上是多种技术的结合。非区块链技术人员想入门需要掌握哪些知识?让我们来看看思维导图。
区块链知识图谱
眼睛里有一些花和树?搞技术这么辛苦,要不断学习学习。简单总结一下这张图,图中有些知识点其实没有列出来。
1.程序设计语言
要懂C是因为比特币的源代码是用C写的,想要懂比特币,就要懂C;
了解golang是因为以太坊和超级账本的架构是用go写的;
坚固是以太坊的智能契约语言,想发展DApp必须学会;
2.分布式基础
区块链的基础是P2P网络,所以需要掌握P2P网络相关的知识:
KAD算法,这是以太坊的P2P路由查询算法;
洪泛机制,这是比特币使用的P2P路由查询算法;
NAT穿透,比如比特币使用的upnp协议;
3.比特币的运行机制:
交易原理,交易验证原理,比特币的交易脚本等。
4.共识算法:
区块链的核心之一是共识。通用共识算法:
Paxos算法:非拜占庭一致性算法,常用私有链;
Pbft算法:拜占庭容错一致性算法,一般用于联盟链;
Pow/pos/dpos算法:公共链中使用的一些共识算法。比特币和以太坊使用的是PoW,也就是常说的挖矿。
5.算法:
加密算法,特别是非对称加密和数字签名技术,以及哈希算法,这些都在区块链使用;
零知识证明:区块链常用的算法:
此外,如默克尔树、布鲁姆过滤器等。还需要掌握以下内容;
6.以太坊工具:
Web3.js、geth、truffle等以太坊开发工具需要熟练使用,会用到它们来构建私有链,部署自己的契约。
7.区块链安全:
一些与区块链安全相关的知识也要了解,比如比特币的双花攻击原理,以太坊的经典安全事件和原理等等;
8.数据库资料库
NoSql数据库需要掌握,比如google的level db,redis等。许多区块链公司被要求掌握这些非关系数据库。
9.源代码:
源代码是最好的教程。源代码面前没有秘密。比特币、以太坊等经典的区块链都是开源的,所以学习源代码是必不可少的。
简而言之,非区块链岗位的技术人员如果想在区块链起步,还有很多知识要学。从最近找工作的经验来看,一般从事后台开发的技术人员加入公会比较容易,其他的相对比较难。他们可以考虑做一些更高层次的方向比如钱包、交易所。