比特币中的密码学详解

image.png

上图描述了密码学的全部分类,以及其对应解决的信息安全分类。

比特币中涉及的密码学知识有:

  • SHA-256(哈希函数)
  • RIPEMD-160(哈希函数)
  • Base58 Encode
  • Base58Check Encode
  • Elliptic Curve

1. 私钥、公钥、钱包地址

私钥是一个256bits的二进制随机数。
私钥通过椭圆曲线乘法这个单向加密函数产生一个公钥;公钥再通过SHA256和RIPEMD160进行double hash产生比特币钱包地址。
私钥、公钥、钱包地址之间的关系如下图所示:


私钥、公钥、钱包地址

公钥产生钱包地址:
分为两步。


1.公钥哈希

2.公钥哈希编码为钱包地址

关于SHA256可以参考:
https://blog.csdn.net/u011583927/article/details/81432863
SHA256简单概括,包括三个部分:

  1. 常量的初始化

SHA256算法中用到了8个哈希初值以及64个哈希常量
这些初值是对自然数中前8个质数(2,3,5,7,11,13,17,19)的平方根的小数部分取前32bit而来

  1. 信息预处理

SHA256算法中的预处理就是在想要Hash的消息后面补充需要的信息,使整个消息满足指定的结构。

信息的预处理分为两个步骤:附加填充比特和附加长度

  1. 使用到的逻辑运算

SHA256散列函数中涉及的操作全部是逻辑的位运算

2. 非对称加密

在比特币系统中,我们使用公开密钥加密(非对称加密)创建一个密钥对来控制比特币的获取。这个密钥对包含了一个私钥和一个(由私钥导出的唯一)公钥。公钥被用来接收款项,私钥被用来签署一笔交易来花费比特币。

2.1 椭圆曲线算法

https://blog.csdn.net/u011583927/article/details/81432863

2.2 RSA算法

https://blog.csdn.net/u011583927/article/details/81432863

2.3 数字签名

比特币系统中,一笔交易归属以及真伪的验证使用了数字签名技术。

数字签名指的是对一段信息制作签名表示对其的认可,这个认可只对该信息有效,并且第三方无法根据该签名构造你对其他信息的签名。数字签名方案包括:
生成公钥私钥对,私钥用于签名,必须安全保存;公钥可以公开,用于他人验证签名有效性

把信息和私钥作为输入,输出即为签名

使用公钥,信息和签名作为输入,进行验证

在实践中,我们往往通过对哈希值进行签名,这样可以实现对任意长度信息的签名。

详细过程可以阅读What is a Digital Signature?

以及非对称加密概述中的数字签名部分

2.4 数字证书

数字证书是非对称加密的又一个重要应用,据我所知在比特币系统中并没有直接应用。但也确实是个重要的概念,作为链圈币圈的人,如果感兴趣不妨了解下什么是数字证书?

推荐看这篇文章数字证书原理,讲的很清晰

3. Base58编码

Base58编码在比特币的密钥和地址的编码中被广泛使用,用来增强密钥或地址的可读性以及防止传输或转录过程中发生错误。


image.png

3.1 Base58 Encode

Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。

Base58是在base64编码的基础上得到的,去掉了容易混淆的字母(不使用数字”0”,字母大写”O”,字母大写”I”,和字母小写”l”),以及影响双击选择字符串的字母(”+”和”/”符号)。

我们首先要需要了解什么是Base64编码

wiki : base64

Base64笔记(阮一峰的网络日志)

然后再来学习base58编码

wiki : base58

learn me a bitcoin : Base58

3.2 Base58Check Encode

而 Base58Check 编码其实就是在Base58编码的基础上,添加了校验的过程。流程并不复杂,如下图所示:

image.png

其实上图已经将 Base58Check 编码的过程描述清楚了,更多的细节请参考:

bitcoinwiki : Base58Check encoding

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,538评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,800评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,329评论 0 238
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,725评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,089评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,449评论 1 212
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,758评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,448评论 0 195
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,152评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,432评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,933评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,289评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,921评论 3 234
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,023评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,781评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,477评论 2 270
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,381评论 2 263

推荐阅读更多精彩内容