主页 > 苹果版imtoken > 区块链与密码学国家级讲座1-4:比特币交易

区块链与密码学国家级讲座1-4:比特币交易

苹果版imtoken 2024-01-26 05:12:34

本系列课程内容从对比特币的介绍开始,然后延伸到区块链的相关技术原理和发展趋势,再简单介绍区块链中应用的各种密码学技术。欢迎大家订阅本公众号,继续学习。

【本课内容均选自PlatON首席密码学家、武汉大学国家网络安全研究所教授、博士生导师何德彪教授《区块链与密码学》讲义]

1.4.比特币交易

比特币交易有两种,一种是coinbase交易,即挖矿奖励的比特币,该交易没有发送者。另一种是我们常见的普通交易,也就是普通地址之间的转账交易。我们可以看到下图中有无数个字符串。这些字符串有什么作用?

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

18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725

16UwLL9Risc3QfPqBUvKofHmBQ7wMt > 这个看似无关的字符串实际上是一对“兄弟”、“私钥”和“公钥”。在比特币系统中,私钥相当于一张身份证,可以证明你的身份。公钥相当于家庭住址,每个人都可以通过公钥找到你。公钥是通过私钥“变换”出来的,所以是唯一的。也就是说,你家只能通过你的身份证才能开户,但是如果你的身份证丢了,是不支持重新申请的~那么私钥是怎么转换成公钥的呢?

比特币使用secp256k1椭圆曲线,其描述参数为:

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

p:表示有限域Fp的素数

a,b:椭圆方程的参数

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

n: G 有序

比特币收益计算_2016比特币汇率计算_比特币如何计算出来

椭圆曲线?有限域?基点?看不懂也没关系,也不用关心公式是怎么计算出来的。我们可以把它当做一种“转化法”,可以将私钥转化为公钥,然后赋予一个更简单的名字,比如“天地大运”。

比特币普及的非对称加密

1976 年,W.Diffie 和 M.Hellman 在 IEEE Trans.on Information 期刊上发表了《密码学的新方向》一文,提出了“非对称密码体制,即公钥密码体制”的概念,开创了非对称密码体制的先河。加密。

比如我们要拿到一份机密文件,输入一个苹果,对方显示苹果可以解密,就像我们每次去银行取钱时输入的六位数密码一样天,这是对称加密。非对称加密就是当你输入一个苹果时,对方是一根香蕉来解密。 “天王覆地虎,宝塔镇河妖”可以说是使用了非对称加密。

非对称加密算法需要两个密钥:公钥(publickey:简称public key)和私钥(privatekey:简称private key)。公钥和私钥是一对。如果数据用公钥加密,则只能用对应的私钥解密。因为加密和解密使用两个不同的密钥,所以这种算法称为非对称加密算法。

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

注:部分解释来自百度百科

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

我们来看看如何在比特币工厂的流水线上生成一个合格的比特币地址:

第一步:生成私钥

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

第二步:生成未压缩的公钥(pubKey)

使用“Great Shift”算法(椭圆曲线加密算法ECDSA-secp256k1)计算私钥对应的未压缩公钥。

2016比特币汇率计算_比特币如何计算出来_比特币收益计算

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

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

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

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

第 5 步:Z=addr 版本+Y

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

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

取上一步的结果比特币如何计算出来,计算SHA-256哈希值

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

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

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

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

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

将这 4 个字节添加到第五步的结果中作为检查。这是比特币地址的十六进制形式!

比特币如何计算出来_比特币收益计算_2016比特币汇率计算

最后一步:base58(A)

使用base58表示法转换地址,这是比特币地址最常见的形式。

我们取出这个类中显示的原始比特币地址:

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM。来说明比特币地址的产生过程。

例如

1. 随机选择一个32字节的数字作为私钥

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

18e14a7b6a307f426a94f8 114701e7c8e774e7f9a47e2c2035db29a206321725

2.使用“Big Shift”算法(椭圆曲线加密算法ECDSA-secp256k1)计算私钥对应的未压缩公钥:

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

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

3.计算结果的SHA-256哈希值:

600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408

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

比特币收益计算_2016比特币汇率计算_比特币如何计算出来

010966776006953D5567439E5E39F86A0D273BEE

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

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

00010966776006953D5567439E5E39F86A0D273BEE

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

445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094

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

D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30

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

(这是比特币地址的十六进制形式)

00010966776006953D5567439E5E39F86A0D273BEED61967F6

9. 将地址用base58转换,就变成了我们原来的地址!

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

2016比特币汇率计算_比特币如何计算出来_比特币收益计算

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

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

根据私钥的存储方式,可以分为冷钱包和热钱包两种。

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

冷钱包往往依靠“冷”设备来保证比特币私钥的安全,比如没有联网的电脑和手机。 ,带有私钥地址的小笔记本等。冷钱包避免了私钥被黑客窃取的风险,但可能面临物理安全风险,例如计算机丢失和损坏。

热钱包是可以通过互联网访问私钥的钱包:

热钱包通常采用在线钱包的形式。使用热钱包时比特币如何计算出来,最好在不同平台设置不同的密码,并开启二次认证,以确保您的资产安全。

比特币普及的Hash不是加密吗?

哈希是比特币系统中一个非常重要的概念。很多人认为Hash是加密,其实是个误区。哈希和加密是两种不同的加密技术。加密是对传输的数据进行编码的技术手段,使不知道具体处理方法的其他方无法读取编码后的数据。通常,我们将明文转换为密文的过程称为“加密”。

散列,也称为数字摘要、散列、散列和指纹,使用任意长度的数据作为输入和输出对应的固定长度值。在区块链中,账户和交易都涉及到哈希函数的使用。

国家课堂的第1-4课今天在这里。比特币让无数“淘金者”疯狂,投身挖矿大军。比特币究竟是如何被开采的? 在下一课中,我们将详细解释比特币挖矿的工作原理。敬请期待~