主页 > imtoken国内怎么下 > 【区块链与密码学】第1-4讲:比特币交易

【区块链与密码学】第1-4讲:比特币交易

imtoken国内怎么下 2023-01-17 02:54:17

火币比特币交易手续费_比特币程序化交易_1比特币怎么交易

介绍

本课程通过一系列通俗易懂的内容来呈现区块链和密码学领域的相关知识。 这里有知识,有故事,从兴趣到乐趣,点宽课堂等你来学。

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

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

1.4

比特币交易

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

比特币程序化交易_火币比特币交易手续费_1比特币怎么交易

图 1 - Coinbase 交易和比特币的正常交易

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

18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

这个看似无关的字符串其实是一对“兄弟”、“私钥”和“公钥”。 在比特币系统中,私钥相当于一张身份证,可以证明你的身份。 公钥就相当于你的家庭住址,每个人都可以通过公钥找到你。 公钥是通过私钥“转化”而来的,因此是唯一的。 也就是说,你的家只能通过你的身份证才能打开,但是如果你的身份证丢了,是不会补发的~那么私钥是怎么转换成公钥的呢?

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

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

p:代表有限域Fp的素数

a,b:椭圆方程的参数

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

n:G是有序的

火币比特币交易手续费_比特币程序化交易_1比特币怎么交易

椭圆曲线? 有限域? 基点? 看不懂没关系,也不需要关心公式是怎么计算的。 我们可以把它当作一种“转换方法”,可以把私钥转换成公钥,然后给它起一个更简单的名字,比如“Great Teleportation”。

比特币程序化交易_1比特币怎么交易_火币比特币交易手续费

比特币科普之非对称加密

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

比如我们要获取一份机密文件,需要进入苹果进行解密。 就像我们每天去银行取钱时输入的六位密码一样。 这就是对称加密。 非对称加密就是你输入一个苹果,对方只有是香蕉才能解密。 “天王覆虎,宝塔镇河妖”可以说是采用了非对称加密。

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

1比特币怎么交易_比特币程序化交易_火币比特币交易手续费

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

注:部分描述来自百度百科

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

火币比特币交易手续费_比特币程序化交易_1比特币怎么交易

注:表情为图解,未成年人请勿模仿

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

第一步:生成私钥

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

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

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

第 3 步:X=SHA-256(公钥)

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

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

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

第五步:Z=地址版本+Y

取上一步的结果,在前面加上地址版本号(比特币主网版本号“0×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个字节加到第五步的结果中作为验证。 这是比特币地址的十六进制形式!

最后一步:base58(A)

将地址改成base58,这是最常见的比特币地址形式。

让我们以此类最初显示的比特币地址为例:

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM。 下面举个例子来说明比特币地址的产生过程。

1比特币怎么交易_比特币程序化交易_火币比特币交易手续费

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个字节加到第五步结果的末尾作为校验。

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

00010966776006953D5567439E5E39F86A0D273BEED61967F6

9

把地址改成base58编码,就变成我们原来的地址了!

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

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

1比特币怎么交易_火币比特币交易手续费_比特币程序化交易

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

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

冷钱包是一种无法从互联网上获取私钥的钱包:

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

1比特币怎么交易_火币比特币交易手续费_比特币程序化交易

图 2 - 冷钱包

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

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

1比特币怎么交易_比特币程序化交易_火币比特币交易手续费

图 3 - 热钱包

Hash of Bitcoin Science 不是加密?

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

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

点宽课堂1-4讲到此结束。 比特币让无数“淘金者”为之疯狂,纷纷加入挖矿大军。 比特币到底是怎么挖出来的? 下一课,我们将详细讲解比特币的挖矿原理。 敬请期待~

火币比特币交易手续费_比特币程序化交易_1比特币怎么交易