主页 > 最新imtoken官网下载地址 > Fintech Science的“区块链”:(比特币第四项关键技术)

Fintech Science的“区块链”:(比特币第四项关键技术)

最新imtoken官网下载地址 2023-01-18 11:43:12

比特币系统不创造或发明新技术,它是对现有技术的创造性组合,自2009年以来一直零停机运行。这也可以说是IT技术史上的奇迹;正是因为这个“奇迹”,给世界带来了前所未有的欢呼;而源自比特币的区块链技术被一些机构或团体誉为改变世界的技术创新。目前很难得出这个结论。

作为一名IT从业者,我们首先要从技术原理层面了解比特币和区块链。如果没有对IT人员的了解,就会缺乏推广和实施的技术支持。那么“区块链改变世界”是怎么来的呢?本章简要分析了比特币系统中使用的主要技术,并期待吸引其他人。

一、HASH计算简介

散列函数是英文散列函数的翻译名称,有的翻译为散列函数。哈希函数的输入可以是任意长度的数据,输出值是固定长度的。设 H 表示散列函数,M 表示输入数据,h 表示输出值: h = H(M) 。

散列函数 H 必须具有的属性包括:

①、H可以作用于任意长度的数据。

② H 的输出值的长度是固定的。

③,对于任何x,H(x)都很容易计算。

比特币的三种关键技术_比特币交易技术_siteiotachina.com 比特币技术

④。给定 h,找到 x 使得 H(x)=h 在计算上是不可行的。

⑤。给定 x,要找到 y(x),满足 H(x)=H(y) 在计算上是不可行的。

⑥。找到任何对 x 和 y 使得 H(x)=H(y) 在计算上是不可行的。

具有上述性质的哈希函数计算出的输出值h通常被称为数据M的“指纹”。试图改变M中的任何一个位都会改变计算的输出值H(M) . 常用的哈希计算算法有:MD5、SHA-1、SH1-256等。

Message Digest Algorithm MD5(中文名称为Message Digest Algorithm 5th Edition)是一种广泛应用于计算机安全领域提供消息完整性保护的哈希函数;它的作用是让大容量的信息可以在数字签名软件中使用,在对私钥进行签名之前,将其“压缩”成机密格式(即将任意长度的字节串转换为一串十六进制数字)一定长度,计算任意长度数据对应的“指纹”)。

2004年8月17日,在美国加州圣巴巴拉国际密码学大会上,山东大学王晓云教授完成MD5、HAVAL-128、MD4和RIPEMD算法破译报告并宣布给出了MD系列算法的破解结果。然后在2005年2月,王晓云教授破解了另一个国际密码SHA-1。MD5 和 SHA-1 散列算法在不同行业中的应用更为广泛。被破解的消息一出,国际社会的反应惊天动地。

比特币的三种关键技术_比特币交易技术_siteiotachina.com 比特币技术

诞生于 2009 年左右的比特币为了保证安全性放弃了 MD5 和 SHA-1 哈希算法,采用了更安全的 SHA-256 算法。所谓“更安全”的算法也是相对的。面对未来的量子计算能力,目前的 SHA-256 可能显得微弱。

二、非对称加密/签名计算简介

非对称算法配对秘钥机制,PK公钥(Public key)和SK秘钥(Secret key)配对秘钥;保证PK和SK关系的数学算法,不仅可以保证PK不能通过公钥推导出SK秘钥(反之亦然);还可以保证PK公钥加密的内容只能用SK秘钥解密,SK加密的内容只能用PK解密。

非对称算法中的公钥PK可以公开发布,加密密钥不需要像对称算法那样严格保密;在非对称算法的实际应用过程中,不需要通过秘密方式传输解密密钥,从而对加密密钥进行加密。密钥管理非常简单高效。

非对称算法已被广泛应用比特币的三种关键技术比特币的三种关键技术,尤其是在现代电子支付和在线数据传输中;然而,由于计算复杂度高,非对称算法不适合大数据量的加密计算,但非常适合小数据量的计算。一般用于对超大数据流的“数据指纹”进行签名计算。首先计算大数据流的“数据指纹”(HASH值),然后用非对称密钥的私钥SK对HASH值进行加密。确保数据流在传输过程中不被修改,并确认发送者的身份,避免发送者的否认。

比特币的三种关键技术_siteiotachina.com 比特币技术_比特币交易技术

常用的非对称算法有国际的RSA算法和国内的SM2椭圆曲线算法。RSA算法由三个开发者组成:Ron Rivest、Adi Shamir、Leonard Adleman(分别取三个名字中的一个字母组成RSA);该算法的核心原理是基于“分解大数的难易度”,其安全性尚未获得。理论证明。

SM2是中国国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。随着密码破解技术和计算机计算能力的发展,常用的1024位RSA算法面临着严重的安全威胁(1024 -bit RSA 算法已在金融领域被禁用)。椭圆曲线算法取代了 RSA 算法。

由于比特币诞生于2009年并由国际人士开发,因此不能使用SM2算法,而比特币使用的是ESDSA(secp256k1的椭圆曲线算法)非对称算法。在比特币钱包端生成一个RSA密钥对,同时对公钥进行变体操作,得到比特币地址。私钥文件);当比特币持有者进行交易时,比特币钱包使用私钥对交易信息进行签名。比特币交易环节的详细流程将在后面的专题中介绍。

三、默克尔树简介

C语言编程中的指针是指内存中数据存储区域的存储地址。通过指针告诉你数据存储位置,可以快速获取存储区的数据,但是存储区的数据是否被修改过,C语言指针无能为力;区块链的特性之一是“不可变性”,因此需要引入“哈希指针”的概念。“哈希指针”的含义理解如下。

为了在单链表中存储不同的数据块,需要设置一个“指针”。每个数据块都需要保存一个指向前一个数据块的“指针”,同时存储自己的“指针”,这样端到端的连接就形成了一个“单链表”,也很时髦称为区块链。为了验证每个区块中的数据是否被篡改,需要保存数据的“指纹”,也就是HASH值,可以使用上面提到的(Secure Hash Algorithm 256)SHA256 算法)。

siteiotachina.com 比特币技术_比特币交易技术_比特币的三种关键技术

每个数据块计算出来的HASH值作为数据块的存储地址(或“指针”),称为哈希指针;哈希指针也作为数据链的寻址和定位,还可以和它一起用来验证对应的数据块是否被篡改。

如果上图中的每个数据块包含多个不相关的数据(例如比特币的每个块包含 10 分钟内的所有交易),则引入 Merkle Merkle 树。请参见下面的示意图:

组成区块的所有子块(如比特币中的交易)成对分组,在其父节点计算每个子块的哈希指针,得到两个子块的哈希指针,以此类推直到A根哈希指针(Merkle Root Hash),只需要得到根哈希,任何修改子块的行为都会被检测到。当然,理论上来说,没有默克尔树的区块链当然可以保证不可篡改,只需计算包含所有子块(所有交易)的巨大块的哈希指针,比如上面图例中的数据根哈希区块=Hash(交易0+交易1+交易2+交易3),也可以防篡改;另外每个子块的HASH值也可以单独计算保存,Hash(交易<

但是Merkle Merkle树最大的优点是可以快速验证某个子块是否属于这个数据块。验证下图中的 TX3 交易是否属于该区块,无需获取该区块的所有子区块数据。,只需要获取区块的Merkle HASH树中的HASH01、HASH2,以及TX3的对应位置,就可以快速重新计算根HASH,并将本次计算的根HASH和保存的Merkle HASH该区块,如果一致,则表示TX3属于该区块。

比特币交易技术_比特币的三种关键技术_siteiotachina.com 比特币技术

如果不使用 Merkle 树,验证 TX3 是否属于区块,需要获取区块的全部数据或整个子数据的 HASH 值。

比特币的区块数据存储方式与基于哈希指针的数据结构非常巧妙的结合;第一个数据结构是基于区块区块链,通过哈希指针,将比特币的每个区块链接在一起,每个区块的头部数据结构包含前一个区块的哈希指针和本区块的哈希指针;第二种数据结构是基于 Merkle 树的,每笔交易的 HASH 值都存储在 Merkle 树中。

四、P2P分布式网络简介

比特币 P2P 点对点网络中的所有节点都是平等的,没有层次结构,没有特殊节点(没有所谓的主节点),每个节点随机连接到其他节点,新节点可以加入或者随时退出,如果一个节点超过3小时没有响应,就会被其他节点慢慢遗忘。

当比特币客户端发送一笔交易时,它会通过 GOSSIP 协议发送出去。收到交易的节点会验证交易的有效性。验证通过后,节点会继续向其他节点广播交易。节点会将经过验证的交易包含在交易缓冲池中。缓冲池中的交易不会被打包到区块链中。如果事务已经存在于缓冲池中,则不会发送到其他节点(通过检测事务的HASH值可以判断是否重复)。由于网络传输的延迟,比特币节点有不同内容的交易缓冲池。

块转移过程类似于交易过程。如果同时“挖”出两个有效区块,则只有一个区块会被包含在区块链中;至于包含哪个块,则取决于其他节点选择哪个块来扩展该块,不包含的块将被丢弃。

五、总结

本文简要介绍了比特币使用的四种基本技术,HASH算法,非对称加密,Merkle树,比特币P2P网络。“默克尔树”部分详细介绍了“哈希指针”的作用,它可以作为链指针,也可以用来验证节点数据是否被篡改,从而引出了比特币区块的数据结构:使用“哈希指针”链接块+用默克尔树组织的块内交易。