前言
块链技术从2017年已经开始爆发,2018年更是火热,可以预见未来也一定是一个重要的技术,绝对不是昙花一现,很多有远见的公司早已经在2015年开始布局区块链技术如BAT,TMD等。区块链技术确实会颠覆一些中心化的大公司,但是真正好的大公司是不会等着别人去颠覆,他们会自己先投入研究区块链技术,而密码学作为区块链技术的基石自然成为研究学习的重点。下面通过一张图看看目前区块链的就业情况:
截图.png.jpeg图中的“专家”,“高级研究员”,“总监”之类的岗位,密码学知识成为核心必备技能。
很多公司在发币热潮过去后,意识到区块链的底层技术才是真正有价值的,于是开始在密码学,公识算法,分布式存储,p2p网络系统这四方面招揽人才。
学习大纲推荐
密码学基础其实并没有想象的门槛那么高,具备初中以上数学知识就可以入门,如质数的特性,多项式分解因式等。学习时结合区块链中的使用到的密码学相关算法来研究推导,从而加深对区块链核心技术的理解。中间还要包含对称加密,非对称加密,哈希算法三类加密算法的研究。
可分两部分进行研究学习:
第一部分密码学基础知识和哈希算法原理,通过密码学的角度来看比特币
- 区块链中密码学基础
- 用密码学的角度去看比特币
- 哈希算法和MD5原理解析
- SHA系列加密算法
第二部分对称加密算法 3DES、AES 和非对称加密算法 RSA、ECC 椭圆曲线加密算法的原理
- 对称加解密算法3DES
- AES加密算法推导
- 非对称加密算法RSA的原理
- ECC椭圆曲线加解密算法
重点学习
区块链零知识证明
当理解了默克尔树的特性:任意一个叶子节点的细微变动,都会导致Root节点发生翻天覆地的变化;在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。好处是:
- 在使用零知识证明的时候,不降低安全性。
- 零知识证明工作高效,计算过程量小,双方交换信息少。
- 简单,安全,又有很好的隐私,减少计算量。
理解对称加密,非对称加密算法的特点
对称加密:
分组加密和序列加密。前者将明文切分为定长数据块作为基本加密单元,应用最为广泛。后者则每次只对一个字节或者字符进行加密处理,且密码不断变化,只用在一些特定的领域,如数字媒介的加密等。代表算法如MD5,SHA系列算法。
对称加密适用于大量数据的加解密过程;不适合用于签名场景,并且往往需要提前分发好密钥。
非对称加密:
缺点是处理速度比较慢,比对称加密慢了2,3个数量级;加密效率不如对称加密。
非对称加密的安全性需要基于数学问题来保障,目前有:大数质因子分解,离散对数,椭圆曲线等经典数学难题进行保护。代表算法:RSA,Diffie-Hellman,ElGamal,ECC,SM2
适用于签名场景或密钥协商,不适于大量数据加解密
课程推荐
作者最近出了一个达人课《区块链中的密码学》,感兴趣的朋友可以订阅学习一下(也可以微信扫描文章末尾二维码订阅)。希望学习本课程的同学能够产生对数学和算法的兴趣,对忘记掉的数学知识重新燃起学习的欲望,以前对算法感觉不重要的同学能够加强对算法的学习。
在数学方面强烈建议学习离散数学和微积分,对编程来说是相辅相成的,很难想象只有小学数学水平的人能把架构做好。微积分其实原理并不难理解,总的来说就是把整体拆分,然后根据拆分出的微小部分求和;先分割,再求和,分割就是微分,求和就是积分,剩下的就是找到公式去套用,重点是理解数学思想,公式都是全世界公认的几乎不会有变化,也不需要我们去发明一个公式,但是要理解数学思想之后才能合理运用合适的公式,排列组合等等。
之前听我的恩师胡老大说“编程到最后就是:数据结构+算法”,当时不理解,但是出于对老师的信任一直重视对算法的学习,工作到现在感受特别深。在计算机界,技术日新月异,学习到的技能可能是一时的,但是培养起终身学习的习惯和高效的学习方法,才是最有价值的。
201808182157360.jpg
网友评论