第二讲 BTC-密码学原理(笔记)

本文详细介绍了区块链技术的基础——哈希函数的三大特性:抗碰撞、隐藏性和谜题友好性,并通过BTC(比特币)的例子阐述了其在密码学中的应用。哈希函数在消息验证、数字承诺和挖矿过程中起到关键作用。同时,文章还讲解了非对称加密体系下的公钥和私钥概念,以及签名在交易验证中的重要性。通过对哈希和签名的理解,读者能更好地掌握区块链的安全基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

北大肖臻《区块链技术与应用》公开课第二讲 BTC-密码学原理的笔记,第一讲是课程简介,没有笔记

BTC被称为crypto currency(加密货币)

但实际上区块链上的内容(地址、转账金额等)都是公开

BTC主要用到了密码学中的两个功能:哈希函数(cryptographic hash function)、签名

一、哈希函数的三个重要性质

1、collision resistance(无法人为产生哈希碰撞)

1)collision(哈希碰撞)

【解释:存在x!=y,使得H(x)=H(y)=> 不同的输入可能算出的哈希值相同】

理论上,哈希碰撞不可避免(鸽笼原理)

例如:一个256位的哈希值有2^256种情况(哈希值只有0/1),但输入是没有限制的,输入空间>输出空间,所以可能产生碰撞
但实际中,除了用brute-force(蛮力求解)的方法去寻找,没有更好的方法,而brute-force的工作量过大,所以现实中找不出,故有collision resistance这一性质

2)应用
Message digest【解释:没有办法篡改内容的同时不被检测出来】

例如:对一条message(m)求哈希值H(m),找不出m’使得H(m’)=H(m)

注意:collision resistance是无法从理论上(数学角度)被证明出来的,只是因为在不断的实践中找不出而得到的性质

2、hiding
(哈希函数的制造过程是单向的,不可逆的 => 输出推不出输入)

1)成立条件
1、输入空间足够大
2、取值足够随机且均匀

2)应用
hiding + collision resistance = digital commitment(digital of a sealed envelope)
【解释:先用一个x得到一个H(x),公布H(x),等到需要公布结果时,公布x,再验证这个x是否能算出相同的H(x),一样则是原来的保密值】

3、puzzle friendly
(哈希值的计算事先是不可预测的)

1)应用
挖矿:找一个nonce(随机数)与区块里的其他信息合在一起取哈希值,使其哈希值<=target(目标域值)
由于puzzle friendly 这一性质,挖矿过程无捷径,只能证明你的工作量
注意:困难的是寻找nonce,验证十分容易

p.s. BTC中用的哈希函数是SHA-256(Secure Hash Algorithm)

二、签名

1、BTC的开户

创立公钥和私钥对(public key,private key)(自己即可本地开户)
公私钥对应用到了非对称的加密体系,而最早的体系是对称的加密体系(symmetric encryption algorithm),加密解密用的是相同的密钥(encyption key)
但有应用前提:需要安全的渠道,提供密钥给信息传递的双方。
密钥的分发不便是对称加密体系的弱点

2、非对称的加密体系(asymmetric encryption algorithm)

加密和解密用的是同一个人的公钥和私钥,公钥可以公开,私钥存在本地
公钥相当于银行账户,私钥相当于账户密码

例如:我向他人转账,我需要将转账信息通过我的私钥加密后,记录在账本(区块链)上,如果别人要知道这一笔信息是否是由我发出的,只需要用我的公钥解密,即可验证

产生两个相同的公私钥的几率几乎为0,但前提:产生公私钥对有一个a good source of randomness (好的随机源),之后生成每一次的签名也需要好的随机源,不然容易泄露私钥

总的来说:
BTC中是先对message取哈希值,再对这个哈希值进行签名

补充: ① MD5(信息摘要算法 Message-Digest Algorithm)一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值