区块链理论基础
货币的基础知识
- 货币的本质
- 价值交换的载体
- 一种交易的媒介
- 一种储藏价值和记账的一种工具
- 货币的发展
- 实物货币
- 金属货币
- 纸币
- 电子货币
- 数字货币
- 电子货币
- 电子货币的通俗理解:电子货币通俗的可以理解为微信,支付宝等APP内流通的货币(我没学过金融只是为了理解这么一说,学金融的朋友见谅呜呜呜)
- 电子货币的特点:必须要与真实世界的纸币一一对应
- 电子货币的缺陷:
- 中心化安全问题:账户信息都存在一台服务器上(通俗理解),假如有黑客黑进此台服务器篡改账户信息,则会产生难以预估的安全问题)
- 交易的验证问题:难以验证一笔交易是否由该用户授权
- 双花问题(double spending:所谓双花问题,顾名思义,就是一笔钱被重复花了两次。比如,我们微信钱包里有100块钱,我们先去饭店吃了顿饭,结果微信出了bug,这一笔钱并没有被银行同步,还留在钱包里,于是我们又能拿着同样的100块钱去看场电影,这就属于双花问题。
分布式账本
分布式账本:各个节点都有一份账本的记录
中心化和去中心化
![]
比特币的进一步理解
- 比特币不是真的存在,是一种分布式的总账系统(分布式账本)。
- 总账系统中有许多关于比特币的记录。
- 每一条记录是比特币从一个参与者到另一个参与者转移的记录。
hash函数
- hash函数的感性认识
- hash函数可以提取数据的特征
- hash函数的特点
- 单向的hash函数:由m可以得到H(m),但是由y=H(m)不能得到m(由原文到密文,但是不能由密文不能得到原文)
- 可以理解为有的函数可以求导,但不能积分
- 通过单向的hash函数,就可以保护隐私(见下面的隐私问题)
- 单向的hash函数:由m可以得到H(m),但是由y=H(m)不能得到m(由原文到密文,但是不能由密文不能得到原文)
- hash函数解决的问题
- 隐私问题
- 通过单向的hash函数,可以解决隐私问题
- 通过单向的hash函数,可以解决隐私问题
- 对账问题
- 如果两个信息的hash值是一致的,则可以说明这两个信息是相等。(hash函数的强对抗性可以用来解决队长问题)
- 隐私问题
- hash函数的安全性
- sha256算法对应的hash值长度是64,(64个16进制的书,2^4^64 = 2 ^256)也就是2的256次方,代表hash出来的可能性有2的256次方种
- sha512算法对应的hash值长度是128,(128个16进制的书,2^4^128 = 2 ^512)也就是2的512次方,代表hash出来的可能性有2的512次方种 特别的, hash算法中的MD5和sha1已经不再是安全的hash算法,他们可以被轻松的破解
- MD5算法早在11年前就可以被破解,破解的方法是建立原文和密文的数据库,大部分密文输入数据库中查询,都可以获得原文
- sha1算法在2017年被首次破解,谷歌在2017年发现,sha1算法出现了首个hash碰撞。也就是有H(m1) = H(m2), 但m1!=m2。但是谷歌计算出这个碰撞需要GPU跑110年的时间。
钱包的创建
- 一个人生成私钥后,根据私钥生成一个地址,那么这个地址就是一个人的钱包。通过这个地址(钱包),他就能交易了