随着区块链技术接管网络,用户仍然很难理解传统网络技术和web3技术之间的区别。
在本文中,我们将分解区块链的位置、区块链的存储位置以及数据在其中的处理方式。
区块链技术基础
简单地说,区块链是一个在网络中的多台计算机之间共享和同步的数据库。在区块链,交易被安全地存储在对等计算机网络中,也称为节点。它使用哈希,这是一个不可变的加密签名。哈希将每种类型的数据转换为一组唯一的字符,这提高了区块链的完整性。区块链技术的关键特征是透明性、安全性和不变性。这意味着交易一旦记录,就不能更改或删除。
为了清楚地了解区块链存储在哪里,我们必须首先清楚地了解传统网络是如何存储和处理信息的。
数据的传统存储方式
在传统的Web中,计算机将数据存储在具有表、行和列的集中式数据库中,数据库管理员可以读取、写入、更新或删除这些数据。
集中式数据库更易于管理和扩展;然而,它缺乏透明度、安全性和完整性。这与透明且不可改变的区块链网络截然不同。
区块链中的交易是如何发生的
要在区块链交易,区块链必须有三个组成部分:节点、区块和矿工。
1. 节点
节点可以是连接到区块链网络的任何计算机,用于验证和中继事务。区块链中的所有节点都链接在一起,它们经常相互交换最新数据,以确保所有节点都是最新的。
节点的三个主要作用是:验证区块链上的交易,并根据交易的真实性接受或拒绝交易。区块链上的存储大宗交易。与区块链上的其他节点共享事务信息。
2. 区块
在区块链,块是单个且唯一的交易记录单位。块可以根据它们在网络中的角色来区分。
创建块:网络中的创建块。换句话说,区块链的第一个街区。该块通过允许创建和链接后续块,使网络不可变。有效区块:已经开采的区块,现在是区块链的一部分。该块有效地包含已经被矿工验证的交易。孤儿:不再属于区块链网络的街区。孤立区块是在同时开采多个区块时创建的废弃区块,但未添加到区块链中。矿工将新交易加入区块链的过程称为采矿。矿工核实/验证交易,然后将其添加到区块链。
交易如何发生
区块链事务生命周期分为三个阶段:身份验证、授权和工作量证明(PoW)。
1. 认证
在进行任何交易之前,用户必须使用其钱包的私钥成功验证其身份。最流行的认证方法是使用助记符。
种子短语是一组随机选择的单词,代表一长串随机数字和字母(您的私钥)。
私钥如下所示:
0 c 8 FCA 386 c 227600 b 2 Fe 50 b 7 CAE 11 c 86d 3 BF 1 FBE 471 be 89827 e 19d 72 aa 1d这个有点难记,所以我们用这样的助记符:
州长霍克永远拒绝会议负荷恩典农民西讨价还价总是草甸保证质量山忽视手扔歌词音响打电话快照通常,用助记符比用你的私人钥匙更容易进入你的钱包,因为它更容易记住。Seed身份验证增强了区块链交易的匿名性和私密性,因为没有中央权威机构来管理身份验证。
2.授权
授权意味着网络上的每个节点彼此同意批准交易。换句话说,在区块链,必须达成共识才能验证交易。一旦满足智能合约设置的标准,节点将批准交易。
交易获得批准后,将存储在区块链上。交易一旦存储在区块链上,就不能更改。
3.工作证明(PoW)
简而言之,工作量证明是加密货币矿工用来验证交易的复杂算法。用这个算法,你可以确认在区块链创建一个新块的事务。
矿工们互相竞争来完成这个复杂的算法,因为每增加一个新的区块到链上,他们就得到经济补偿。这是因为求解这些复杂的算法需要大量的计算能力。
股权证明(PoS):股权证明是区块链使用的一种替代性共识机制。通过股权证明,持有最多网络原币的成员对交易的验证权力最大。
数据如何存储在区块链中
在区块链,数据由网络中的所有节点访问、验证和记录。那么,数据块的实际内容是什么?区块链中存储了哪些类型的数据?
块有两部分:标题和正文。报头是块的一部分,包含用于识别块的信息,而主体是包含数据(事务)的块的一部分。
块头
块头包含与块相关联的元数据。
元数据是:
块的版本。包含块版本号的4字节字段。块的版本号指定了验证块的规则。比如比特币,有4个区块版本,每个版本都是对之前区块规则的改进。前一个块的哈希。块的标识。它是一组独特的字符串,用于标识特定的块,并将其与下一个块相关联以形成区块链。换句话说,每个新块都是从前一个块的散列中生成的。
时间。区块被散列时的时间戳。默克尔树。Merkle tree是一种数据结构算法,其中每个节点都标有该块的加密哈希。Merkle树使用Merkle根数学公式来验证网络中的数据。这是为了在区块链高效、安全地验证数据。有点。存储难度目标,这是一个4字节的文件,指定矿工为了验证交易而解决的数学问题的难度。随机数。随机数(使用一次的数)是用于获得块的散列值的随机数。定位随机数是矿工在验证块时要做的事情。难度必须等于或小于要验证的块的随机数。这些元数据在比特币网络中是公开的,并且总是可以使用区块链浏览器如以太扫描[1]或区块链[2]进一步探索和查看。
块体
块的主体是存储块的所有事务的地方。一个区块最多可以容纳500笔交易,比特币网络就是这样。块越大,区块链中的交易越快。
区块链的类型及其存储数据的方式
不同区块链具有不同的数据结构。我们来回顾一下比特币和以太坊网络中数据的结构。
比特币
比特币是第一种加密货币,也是区块链技术的第一次实际应用。比特币中的交易可以使用未使用的交易输出(UTXO)来建模。UTXO是指交易发生后剩余的比特币数量。
UTXO数据库存储比特币交易的变化。数据库的初始状态为0。随着事务数量的增加,数据库中充满了来自多个事务的更改条目。
事务结束时尚未使用的任何输出都将作为输入保存回数据库,供后续事务使用。
每笔比特币交易都会提供以下元数据:
Tx _ incount:事务输入的总数。Tx _ ins:保存所有事务输入的列表。Tx _ outcount:事务输出的总数。Tx _ outs:所有事务输出的列表。Witness:该文件包含所有SegWit事务见证数据的序列化。锁定时间:指定事务处理何时可以包括在区块链中。它是一个4字节的值,用于指定事务被锁定之前的块号或时间戳。它通常设置为0,这意味着事务在块完成后立即生效。
以太坊
比特币的主要限制是可扩展性,这意味着比特币网络中的单个块只能容纳1MB的数据。以太坊网络采用trie数据结构构建,解决比特币网络面临的性能和可扩展性挑战。
Trie,俗称数字树,是一种数据结构方法,它包含一组由节点间的链接连接起来的字符串。以太坊网络有四种尝试:状态、存储、交易和接收尝试。
StateTrie:存储临时网络数据,如帐户密钥、交易号、地址和帐户余额。随着事务的发生,状态树的数据将不断更新。基本上,状态树将地址映射到帐户状态。存储Trie:存储智能合同数据。它保存帐户数据,如帐户余额和与帐户相关的交易数量。每个以太坊账号都有自己的存储尝试。Transactiontrie:事务树特定于每个块。事务trie捕获事务请求向量,例如gas值、事务值、gas限制、接收者和nonce。收据Trie:保存交易后数据,如用气量、交易后状态、交易日志等。
结论
在本文中,我们将分析区块链网络中的事务是如何发生的,以及它需要哪些组件来工作。我们还讨论了区块链的类型及其存储数据的方式。
以太扫描:https://etherscan.io/
[2]木椅:https://blockchair.com/