主页 > imtoken官网地址 > 区块链基础 - 区块链中使用了哪些技术

区块链基础 - 区块链中使用了哪些技术

imtoken官网地址 2023-01-17 15:26:05

上一期已经介绍了区块链使用了哪些技术,本期将一一介绍。

数据块

比特币交易记录将存储在数据块中。在比特币系统中,大约每 10 分钟就会产生一个区块。 -一般包括两部分:块头(Header)和块体(Body)

区块头封装了当前版本号和前一个区块的地址、时间戳、随机数、当前区块的目标哈希值、默克​​尔树的根值等。

区块体主要包含交易计数和交易详情。交易明细是比特币系统中的账本,每一笔交易都将永久包含在数据块中,开放给所有人查询。区块中的默克尔树会对每笔交易进行数字签名,确保每笔交易都不能被伪造,没有重复交易。

什么是时间戳和比特币时间戳服务器有什么区别

时间戳,英文叫做timestamp,首先是指一个物理橡皮图章区块链技术,它扣在一个文件上,表示这个文件在时间戳上比当前时间更早发布。但是在本文中,我们讨论的是数字时间戳,我们稍后将其称为时间戳。时间戳是计算机生成的时间,比如某年某月某日的时间和分钟,格式有很多种,但总之就是一个很短的字符串,用来表示时间。

一个区块的时间戳实际上只是该区块创建时的大概时间,不能作为判断交易先后顺序的依据。比特币上所谓的时间戳服务器其实就是它的整个 POW 系统,因为这个系统可以保证系统上每十分钟创建一个区块。同时,系统会计算每个区块的哈希值,每个区块存储前一个区块的哈希值。以这些哈希作为定位器,区块链是一条具有清晰顺序的单向链。 每个区块自然都有明确的顺序,也就是说其中包含的交易也有明确的交易顺序,这就是比特币时间戳服务器的基本原理。

p2p 网络和共识算法

P2P网络,字面意思是点对点网络或点对点网络,在中国已经使用了很长时间,比如大名鼎鼎的Seeds,也就是人们经常使用的迅雷,而已经死去的快游可以说是早在你之前就出现的P2P网络,只不过这里增加了一个共识算法,进一步稳定了点对点网络。安全。

挖矿和工作量证明机制

说到比特币就不得不提挖矿,而挖矿并不是传统意义上的在煤矿里挖矿,而是通过计算机的计算能力和特殊的算法模型来实现,在同样的情况下,谁拥有最快的算力和速度就有机会获得这个奖励,而工作量证明就是在挖矿的时候,比特率系统的算法会给出一个评价,每个矿工都一视同仁,一视同仁。最终只有多人会得到本次挖矿的奖励,也就是每个矿工的工作量证明。在工作量证明之后,也引入了很多新的模型,比如PoS、Dpos等新的权益算法,后面会一一介绍。

匿名交易机制和比特币钱包

为什么会首先出现匿名交易机制?中本聪在创建比特币时,作为一个极客,自然非常重视隐私。例如,10 年后,没有人知道中本聪是谁。或许这就是为什么比特币之所以附加匿名交易机制,是为了不被追踪,当然也是为了防止个人隐私泄露。

既然有匿名交易,那我们来分析一下传统意义上的匿名机制和Bitbi的匿名机制的区别?首先,在传统的隐私模型中,比如股票交易,每笔交易都会有一个交易订单,作为托管方,它知道双方的信息,但作为中介,信息不会泄露出去,这就导致针对虚假匿名现象。 ,而比特币的匿名机制是通过比特币的去中心化网络来协调双方的交易。对外唯一可见的信息只有双方的钱包地址,没有人知道这个地址属于谁,所以比特币的匿名性比较传统。交易有更强大的匿名机制,但如果通过交易地址和交易金额进行关联分析,也可以对交易者有所了解。比特币的匿名交易并没有实现完全匿名交易,目前市面上的匿名交易数字较好的币种有:Monero、zcash(Zcash)、horizen、grin(笑脸币)、verge、komodo(Comodo)、Zcoin(小币) 等。

目前比特币钱包的种类很多,有轻钱包、全节点钱包、冷钱包、在线钱包、硬件钱包等。对于初始投资者,如果需要长期投资,可以选择冷钱包或一些较大机构的钱包用于长期存储,如coinbase、火币钱包、信任钱包、luno、bitpay。当然你也可以直接选择硬件钱包,比如ledger、keepkay、trezor等。如果你只是玩玩,你不是Loyal HODL,那你可以存到交易所,当然需要一些知名的大型交易所,比如国内的Binance、火币、okex,国外的:coinbase、p网、B网、bitmex等平台,也有一种情况,如果你不是折腾的人,或者投资金额比较小,也可以直接用Binance、coinbase、luno作为存储,用去中心化钱包也很安全。

注意:为什么推荐币安而不是火币?作为投资者,你懂的。

UTXO 和账户模型

缺点:

帐户模型

优点:

缺点:

默克尔树

Merkle 树是一种数据结构中的树,可以是二叉树,也可以是多叉树。具有树结构的所有特征。 Merkle 树由 Ralph Merkle 于 1980 年首次提出,在区块链系统出现之前被广泛应用于文件系统和 P2P 系统中。

一般来说,Merkle 树是一种对大量聚合“块”数据进行散列的方式,它依赖于将那些“块”拆分成更小的单元(桶),每个桶块只包含少量数据” blocks”,然后对每个bucket单元数据块进行再次hash,重复同样的过程,直到剩余hash总数变为1:root Hash(根哈希)。

矿工将区块内所有交易(约2000或更多)的hash值排成一行,让相邻两笔交易的hash值联手(相加),然后计算出新的hash(as如上图红框所示,交易A和交易B计算出的哈希值N0和N1,然后将N0和N1相加,计算出一个新的哈希值N4)。继续类似的操作,直到底部只剩下一个A节点,即Merkle根,存储在区块头中,矿工对交易进行验证、记录和排序的过程称为“打包”,哈希值叠加在顶部,直到顶点完成包装过程。

Merkle 树有两个特殊功能。一是逆向生长,先有叶,后有枝,最后有根;其次,它的整个形状就像一棵倒立的树区块链技术,叶子留在了底部。对于所有的交易记录,树的根在顶部生长并存储在块头中。超过 2000 笔交易需要超过 2000 个叶子节点来存储,所以真正的默克尔树要茂盛得多。

双重付款

双花问题又称为“双花”问题,即利用货币的数字特性,用“同样的钱”完成两次或多次支付。在传统的金融货币体系中,由于货币货币是具有客观性和独特性的物理实体,因此可以避免双重支付。但在其他电子货币系统中,需要一个受信任的第三方管理机构来提供保证。区块链技术是去中心化的,系统不依赖任何第三方组织,仅通过分布式节点之间的相互验证和共识机制,有效解决双重支付问题,在信息传递的同时完成价值传递。由此产生的时间戳技术,再加上验证比特币是否满足UTXO(未花费交易)和数字签名,有效避免了双重支付的问题。如果有人使用相同的 UTXO 构造两个交易给不同的当事人,比特币客户端只会转发最先听到的那个。矿工将选择将该交易包含在未来的区块中。当一笔交易所在的区块后有 5 个链接区块时,该笔交易将被确认 6 次。在比特币区块链上,通常的做法是6次确认后,比特币被双花的概率会很小。根据比特币白皮书中本聪的计算,6 确认后双花的概率约为0.024%

哈希函数

哈希函数在区块链的比特币系统中也有一个重要的应用,其数据不仅仅是原始数字或交易记录,还有它们的哈希函数值,即将原始数据编码成一串数字和字母后特定长度,然后将它们记录到区块链中。哈希函数有很多。适合存储区块链数据的优点。

1)哈希函数处理的数据是单向的,通过处理后的输出值几乎不可能计算出原始输入值。

2)SHA 256等哈希函数,将要处理的数据划分,每个块为512字节,然后使用Merkle-Damgard转换函数输入初始向量(256字节)和第一个块,生成256字节,然后将其作为初始向量和下一个数字。块经历 Merkle-Damgard 变换,依此类推,直到最后一个数据块。最终结果是一个 256 字节的散列。因此,输入数据越长,哈希函数处理的时间就越长。

3)哈希函数输入值仅相差一个字节,输出值结果会相差很大。比特币系统中最常用的哈希函数是双 SHA256 哈希函数。一般来说,就是将不同长度的原始数据用SHA256哈希函数处理两次,然后输出一个长度为256的二进制数进行统一。识别和存储。总之,哈希函数是比特币系统中的一项关键技术,为比特币系统提供了很多便利。哈希函数将在本主题后面的章节中详细介绍,此处不再讨论。

秘密加密算法

数字签名

参考:区块链技术指南--邹军、张海宁、唐毅、李磊等