区块链与密码学第1-4讲:加密数字货币的交易

Posted Dig Quant

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链与密码学第1-4讲:加密数字货币的交易相关的知识,希望对你有一定的参考价值。

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义】

1.4 加密数字货币的交易

加密数字货币交易有两种类型,一种是Coinbase交易,也就是挖矿奖励的加密数字货币,这种交易没有发送人。另一种就是我们常见的普通交易了,即普通地址之间的转账交易。我们可以看到下图中有无数密密麻麻的字符组成的字符串,这些字符串有什么作用呢?

图1-比特币的Coinbase交易和普通交易

接下来我们看一组字符串:

18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

这看似毫无关联的字符串,其实是一对“拜把子兄弟”,「私钥」和「公钥」。在加密数字货币系统中,私钥相当于身份证,能够证明你的身份。而公钥相当于家庭住址,大家可以通过公钥找到你。公钥是通过私钥“转化”而来,所以具有唯一性。也就是说,你的家只能通过你的身份证打开,但是如果你的身份证丢了可不支持补办哦~那么私钥是如何转换为公钥的呢?

加密数字货币使用了secp256k1椭圆曲线,其描述参数为:

E : y^2 ≡ x^3 + ax + b (mod p)

p: 代表有限域Fp的那个质数

a,b:椭圆方程的参数

G: 椭圆曲线上的一个基点G = (xG, yG)

n:G在阶

椭圆曲线?有限域?基点?看不懂没关系,也不用在乎公式是怎样计算的,我们可以把它当做一个“转化方式”,可以从私钥转化为公钥,再起一个比较简单的名字,比如“乾坤大挪移”。

加密数字货币科普之非对称加密

1976年,W.Diffie和M.Hellman在IEEE Trans.on Information刊物上发表了“ New Direction in Cryptography”文章,提出了“非对称密码体制即公开密钥密码体制”的概念,开创了非对称加密的先河。

例如,我们要去取一份机密文件,输入苹果,对方显示苹果才可以解密,就像我们日常去银行取钱输入的六位密码,这是对称加密。而非对称加密则是,输入苹果,对方是香蕉才能解密。“天王盖地虎,宝塔镇河妖”可以说就是运用了非对称加密。

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。

注:部分说明来源百度百科

比特币地址产生的过程就像是在工厂的流水线上生产一瓶啤酒,需要经过多个计算步骤最后才能产生比特币地址。

说明:表情包为配图,未成年人请勿模仿

下面我们一起看看,在加密数字货币工厂,如何在流水线上产生一条质量合格的加密数字货币地址:

第一步:产生私钥  

随机选取32字节的数字,大小介于1~0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间

第二步:产生非压缩公钥(pubKey)

使用“乾坤大挪移”算法(椭圆曲线加密算法 ECDSA-secp256k1)计算私钥所对应的非压缩公钥。

第三步:X=SHA-256(pubKey)

得到公钥之后,进一步计算公钥的SHA-256哈希值

第四步:Y=RIPEMD-160(X)

取上一步结果,计算RIPEMD-160哈希值。

第五步:Z=addr version+Y

取上一步结果,前面加入地址版本号(比特币主网版本号“0 x 00”)

第六步:H=SHA-256(Z)

取上一步结果,计算SHA-256哈希值

第七步:K=SHA-256(H)

取上一步结果,计算SHA-256哈希值

第八步:len(K)[0:4]

取上一步结果的前4个字节(8位十六进制)

第九步:A=Z+ len(K)[0:4]

把这4个字节加在第五步的结果后面,作为校验。这就是比特币地址的16进制形态啦!

最后一步:base58(A)

用base58表示法变换一下地址,这就是最常见的比特币地址形态啦。

我们拿出这堂课最初展示的加密数字货币地址:

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM来举例说明加密数字货币地址的生产过程。

1、随机选取一个32字节的数作为私钥

(大小介于1~0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间) :

18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725

2、使用“乾坤大挪移”算法椭圆曲线加密算法 ECDSA-secp256k1计算私钥所对应的非压缩公钥:

(共65字节,1字节0x04,32字节为x坐标,32字节为y坐标)

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

3、计算公钥的SHA-256哈希值:

600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408

4、计算上一步哈希值的RIPEMD-160哈希值: 

010966776006953D5567439E5E39F86A0D273BEE

5、在上一步结果之间加入地址版本号:

(如比特币主网版本号"0x00")

00010966776006953D5567439E5E39F86A0D273BEE

6、计算上一步结果的SHA-256哈希值:

445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094

7、再次计算上一步结果的SHA-256哈希值:

D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30

8、取上一步结果的前4个字节:(8位十六进制数)D61967F6,把这4个字节加在第五步结果的后面,作为校验。

(这就是比特币地址的16进制形态)

00010966776006953D5567439E5E39F86A0D273BEED61967F6

9、用base58表示法变换一下地址,就变成我们最初的那个地址啦!

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

就是我们常说的公钥,也就是钱包地址。我们以为的钱包有可能是这样的:

但其实加密数字货币钱包是一个抽象的概念,就是保存和管理比特币地址以及对应公私钥对的软件。根据终端类型的不同,加密数字货币钱包可以分为桌面钱包、手机钱包、网页钱包和硬件钱包。

按照私钥的存储方式,可以分为冷钱包、热钱包两种。

冷钱包是指互联网不能访问到私钥的钱包:

冷钱包往往依靠“冷”设备确保加密数字货币私钥的安全,比如不联网的电脑、手机、写着私钥地址的小本本等。冷钱包避免了被黑客盗取私钥的风险,但是可能面临物理安全风险,比如电脑丢失损坏等。

图2-冷钱包

热钱包是指互联网能够访问私钥的钱包:

热钱包往往是在线钱包的形式。使用热钱包时,最好在不同平台设置不同密码,且开启二次认证,以确保自己的资产安全。

图3-热钱包

加密数字货币科普之Hash不是加密?

Hash是加密数字货币系统中很重要的一个概念,不少人认为Hash是加密,其实是一种误解。Hash和加密是两种不同的密码学技术加密是对传递数据进行编码处理的技术手段,使得编码后的数据对于未获知具体处理方式的其他方不可读。通常,我们将明文转换为密文的过程称为“加密”

而Hash(哈希)又称数字摘要、散列、杂凑、指纹,是以任意长度的数据为输入输出相应固定长度的值。在区块链中,账户与交易都涉及哈希函数的使用。

点宽课堂第1-4讲今天就讲到这里啦,加密数字货币让无数的“淘金者”疯狂,投身进入挖矿的大部队中,加密数字货币究竟是如何挖出来的呢?下一节课我们将详解加密数字货币的挖矿原理。敬请期待~

本教程内容选编自教材和互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。

【区块链与密码学】课堂回顾:

点宽课堂第1-1讲:加密数字货币的诞生

点宽课堂第1-2讲:“疯狂”的加密数字货币

点宽课堂第1-3讲:加密数字货币的通俗故事

-- 完 --

关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。

以上是关于区块链与密码学第1-4讲:加密数字货币的交易的主要内容,如果未能解决你的问题,请参考以下文章

区块链与密码学第1-3讲:加密数字货币的通俗故事

区块链与密码学第2-9讲:区块链与密码货币的“羁绊”

区块链猎头分析区块链与密码货币如何相辅相成?

区块链与密码学第6-6讲:基于身份的数字签名算法

区块链与加密货币

区块链与密码学第2-4讲:区块链基础技术大剖析之数字签名