本文所有源代码均来自Bitcoin Core 0.11 1.比特币的私钥 以下是《精通比特币》一书中关于私钥生成部分的描述: 生成密钥的第一步也是最重要的一步,是要找到足够安...
Full Story:
https://www.jianshu.com/p/d321137543c7
https://www.jianshu.com/p/d321137543c7
我可以给你举个最简单的hash函数,把字符串所有的ascii码排列后除17取余数, 举个栗子, 100/17=5 余 15, 这个15就是hash值,光给你个15,但是你能推倒出原来的字串是100么?不能。
这个就是经典的取模环群的hash函数, 当然都是用质数来保证proper群且cyclic的特性, 当然不能用来做密码啥的,因为碰撞太简单了。。。一般多用来java class里来做hasHash函数而已。
另外hash不是加密。。。
比特币用的是大质数分解,即 m^e=encrypted, encrypted^d=m, e是质数-1的模倒数,因为质数分解是无法被计算出来的,所以这2个质数是私钥,其积是公钥,当然实现上要复杂的多。比特币是用公钥验证你的矿石不是真的,然后将其连接上他人的区块。