一、
加密的性质:
collision resistance :尽量使他不发生哈希碰撞,即不能人为地高效的找出产生碰撞地输入。
hiding :不能从加密后的结果倒推出输入值。(有个疑问:ai是否能通过处理大数据找出因果从而倒推呢,GAN的是否既可作加密也可作解密呢?)
puzzle friendly : 不能很快地找出在某个输出值附近的输入,只能不断地去尝试nouce。所以挖矿地过程可以证明工作量。所以挖矿很难,验证很容易(difficult to solve , but easy to verify)
比特币中用的哈希函数是:SHA-256
比特币地去中心化:开户不需要去某个机构,只需要创建一对公钥和私钥。
非对称加密:我给一个人发信息时,用他地公钥加密内容,他收到后,用他的私钥解密。加密和解密用的是同一个人的公钥和私钥。好处是公钥不需要保密,解决了对称加密时密钥分发不方便的问题。
签名时:签名用的是私钥,验证签名用公钥。
比特币中一般是先对信息做哈希运算,然后对这个哈希值签名。
二、
区块链与普通链表的区别:
1、用哈希指针代替了普通的指针
普通的链表在改变一个内容时并不会影响后面的指针。但是哈希链表其中的哈希指针是,根据前面一个块的内容做哈希操作后生成后一块的指针,所以当其中某一块的内容改变后就会改变后面的哈希指针,从而一连串的影响最后的指针。
2、Merkle Tree
类似于二叉树的数据结构,但是用了哈希指针。
PS:只要数据结构终无环,都可以用哈希指针代替普通的指针。