BTC密码学原理
在BTC中,加密主要涉及到两方面的内容:哈希(hash)和签名
哈希(hash)
哈希碰撞(collision resistance)
如果有 x ≠ y, 但是H(x) = H(y), 两个不同的输入,却可以得到相同的输出,我们就称之为哈希碰撞。
输入空间是可以无限大的,但是输出空间总是会小于输入空间。因此,H(x) = H(y),x ≠ y 的情况是不可避免的。在这种情况下,如果只给出x,要求去找到y,是极其困难的。当然除非使用暴力求解。
作用:在我们需要发布自己的消息m,但却不想让其他人知道,可以只告诉他H(m),因为通过H(x)是无法(极其困难)推断出我们的消息m具体是什么
单向性(个人这样称呼)hiding
成立前提:1. 输入空间足够大,2. 输入值分布比较分散(否则x!=y一下就找到了)
hash函数的计算过程是单项的,不可逆的。正如哈希碰撞(collision resistance)中所说,知道H(x)是无法(极其困难)推断出x的。
签名
在传统的中心化中,我们申请账号需要去特定机构申请账号密码,但是在去中心化之后,我们创建账户的时候,自己就能创建账号密码。但是不在叫做账号密码,我们称之为公钥和密钥。其作用与账号密码有所不同,公钥是所有人都知道的,但是密钥只存在本地中,只有自己知晓。当我们需要转账的时候,需要使用密钥进行验证,别人可以通过公钥来查看你是否转账。但是别人无法通过公钥来转移你的财产。(此处涉及到密码学中的对称加密和非对称加密,可自行了解)