背景
作为一名在JAVA行业摸爬滚打了10的中年人,尝试转行产品2年,但是这两年的产品业务专业性过强,无法适配到广泛的行业通用,相当于干这一行的产品,只能在这一行继续扎根深入,但是这一行又具有一定的垄断性质。加上最近工作不太顺心,不得不考虑到如果被开掉,或者哪天实在受不了了的情况下自己的出路。恰好小伙伴从事WEB3.0开发,薪资和工作模式都着实令人羡慕,了解到JAVA转3.0门槛相对而言较低,故而有了此文来鞭笞自己顺带记录下自己的学习过程与经历也希望有机会与大家多交流的机会。
区块链的技术与应用
学习课程
从多方路径了解到,对于一个完全没有行业经验的人来说,北大老师肖臻在B站的课程是非常好的入门资料,于是跟着北大老师肖臻进行了初步的学习
密码学原理
比特币中主要用到了密码学中两个功能:1.哈希 2.签名。密码学中的哈希函(cryptographtic hash function)
一、哈希函数哈希函数主要有三个特性:
特性1:碰撞特性(collision resistance);
解释:collision resistance collision resistance 即为输入两个输入值X,Y,经过哈希函数之后得到H(X)=H(Y),即为哈希碰撞。利用哈希碰撞,可以检测对信息的篡改。假设输入x1,哈希值为H(x1),此时很难找到一个x2,使得H(x1)=H(x2)。
特性2:隐秘性(Hiding);
解释:Hiding hiding 意思是哈希函数的计算过程是单向的,不可逆的。但前提要满足输入控件足够大,且分布均匀。通常我们在实际操作中会使用添加随机数的方法。假设给定一个输入值X,可以算出哈希值H(x),但是不能从H(x)推出X。
特性3、谜题友好(puzzle friendly)。
解释:puzzle friendly 通常我们限定输出的哈希值在一定范围内,即H(block header + nonce) < target (block header是区块链的链头),这个确定链头范围的过程即为挖矿。
二、签名签名就相当于每个人的开户行账号。公钥私钥对,相当于开户账号,加密用公钥,解密用私钥。以此来确保比特币的安全传输。
非对称加密(asymmetric encryption algorithm):好处:1.以一个密钥、一个公钥为一组,利用了哈希碰撞与hiding,使得安全性得到更好的保证、2.公钥无需要保密,私钥本地保密、互相私钥独立,解决了对称加密中密钥分发不方便的问题。


4410

被折叠的 条评论
为什么被折叠?



