cryptographic hash function

collision resistance

存在hash碰撞,但是无法人为制造 : 两个不同的输入,存在相同的输出 ; 因为输入空间远大于输出空间 , 所以必存在hash碰撞 ,但是现在没有高效的方法可以人为的制造hash 碰撞。 目前仅存在蛮力操作。

但是上述性质,数学上无法证明。

hiding

hash 函数的计算过程是单向不可逆的。 hiding 性质要求输入空间很大且很均匀。

Hiding + collision resistance 可以实现 digital commitment : 公布出去的hash值 ,因为存在 hiding ,所以无法知道原值 ; 实现一个 sealed envelope

puzzle friendly

hash 值的计算是不可以被预测的 , 只能一一的尝试。没有任何的捷径。 所以这个过程才可以被作为一个工作量证明。

虽然找到nonce很难,但是验证nonce很容易 ,即 difficult to solve , but easy to verify

H(black header) <= target


目前使用的是 sha256 - secure hash algorithm

签名

本地创建一个 (public key , private key) 对 即是一个账户

对称加密实现的前提就是存在一个理论安全的渠道传递密钥; 非对称加密使用双方的公钥加密,都不需要知道对方的私钥。 加密

当开始发起一个交易,使用我的私钥去签名,其他人使用我的公钥去验证 签名基础

目前不考虑公私钥对的相同的情况,前提是有好的随机源。 同时签名的时候存在好的随机源。

比特币系统一半是对message取hash ,然后对hash内容进行签名。

#web3