BTC密码学原理笔记

Crypto-currency

哈希
cryptographic hash func tion

Collision resistance
 

collision哈希碰撞

若x!=y,H(x)=H(y)
不可避免的,输入空间远大于输出空间

Resistance

给定x,没什么好方法可以找到y

好处

【无法篡改内容却不被检测出来】

对一个message求digest
用来检测对这个m的篡改;
若有人改m,H(m)也就是digest会发生变化;
上传文件前留其哈希值,届时下载下来可对该文件求哈希,若一致则未被篡改

Md5

可以人为制造collisiion所以不再安全

Hiding

单向-这个哈希值没有泄露有关x的所有信息

Digital commitment【hiding+collision resistance】[两者为密码学要求]

Digital equivalent of sealed envelope

把预测结果作为输入x,算出一个哈希值H(x),哈希值可以公布出去,因为有hiding的性质,无法从H(x)知道预测结果x;第二天公布x,因为有Collision resistance的性质,所以预测结果不可能篡改

输入空间需要足够大

常用方法是x后拼接随机数;
x->x||nonce->H(x||nonce);

整个输入是足够随机的,分布足够均匀

Puzzle friendly

【btc中要求的第三个性质】

哈希值的计算事先是不可预测的,光看输入,很难猜出来最后的哈希值是什么,因此若想要算出来的哈希值是落入某个范围内的,只能一个一个试,看哪个输入算出来恰好落在要求范围内。

挖矿

找nonce

Nonce

nonce和块头里的其他信息合在一起取哈希,该哈希要小于等于目标阈值。--工作量证明哈希

交易信息是通过计算 Merkle Root(默克尔根)的方式参与到块头的哈希计算中。
这两个哈希值都要算。

Difficult to solve, but easy to verify

SHA-256

SECURITY HASH algorithm

签名

比特币系统中的账户管理

过程

创建一个公私钥对——代表一个账户

非对称的加密体系【asymmetric encryption algorithm】

使用一对密钥,加密使用接收方的公钥,解密使用接收方的私钥。

对称的加密体系

两人通过encryption key【密钥】进行通讯,
对称:加密解密用的同一个密钥
弱点:密钥的分发并不方便

签名

签名用的是私钥验证,验证签名用的是公钥

在发布交易的时候,要用自己的私钥对这个交易签名,其他人收到这个交易之后,用我的公钥验证这个签名的正确性

生成公私钥的随机源要好,出现两个相同公私钥的概率几乎为0;
每一次签名也要有好的随机源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值