今天是看《Mastering Bitcoin》的第3天,每天20页,并同步笔记。
《精通比特币》(《Mastering Bitcoin》)全书182页。
预计完成时间:1 week
昨天和今天着重看了这两个算法。比特币使用的是哈希加密,发现这些算法的具体内容已经忘记。
往好处看,大学时代学过的好处就是,看到这些术语不会发憷,反而有点亲切。
—— “Hey,咱们又见面了!”
看到自己写下了“Byte”,还花了几秒钟确认“1个字节到底是4还是8个比特?”
私钥->公钥
两个单向算法:椭圆曲线和哈希函数【私钥 -> 公钥】
公式:K = k * G
运算:椭圆曲线方程
【公钥 -> 比特币地址】
公式:比特币地址 A = RIPEMD160(SHA256(K))
运算:哈希函数
比特币的区块链里比较常用的有RIPEMD160和SHA256。做双层的哈希运算。
【哈希加密算法】
HASH算法是密码学的基础,最重要的两条性质,就是不可逆和无冲突。
-- 所谓不可逆,就是当你知道x的HASH值y,但无法求出x;
-- 所谓无冲突,就是当你知道x,无法求出一个y, 使x与y的HASH值相同。
一个函数必然可逆,且由于HASH函数的值域有限,理论上会有无穷多个不同的原始值,它们的hash值都相同。哈希做到的是求逆和求冲突在计算上不可能。也就是正向计算很容易,而反向计算运算量太大,比如穷尽人类所有的计算资源还需要50年?
密码学的几个算法(HASH、对称加密、公私钥)授予了弱小的个人在强权面前信息的安全。举个例子,只要你一直使用https与国外站点通讯,并注意对方的公钥没有被篡改,G**W可以断开你的连接,但它永远不可能知道你们的传输内容是什么。
数据编码格式
Base58的数据产生过程【Base58Check编码】
好处是:1、提高可读性,2、自带校验降低出错率
所谓Base58编码就是从Base64编码(26小写字母+26个大写字母+10个数字+'+'+'/' = 64个字符)中去掉容易误读的,刚好还剩58个,加上生成的校验,头上加上版本号,成为最终的编码数据。
明天继续 。。。
网友评论