01
交易是区块链的基石
交易是区块链的基石,我们每天都会接触到各种交易。无论您是操作DeFi、转账购买NFT,还是简单地从交易所取款/充值,交易都是上述操作的基础。
然而,很少有人知道内存池的重要性,内存池是事务的中转站。因为大量的教科书给你提供了“区块链是没有中介的交易账本”的概念(不是说这个概念错了,而且这个概念相当准确),如果你对区块链的技术细节没有深入的理解,你往往会忽略内存池,这会导致一些特殊的时刻出现都是不必要的损失。
比特币、以太坊和智慧链都有内存池设计。几乎所有区块链项目都离不开内存池。那么什么是内存池?内存池在事务处理过程中扮演什么角色?
02
什么是内存池?
为了理解内存池的概念,我们首先需要回顾事务的状态。
我相信,当你运营以太坊时,尤其是最近拥堵的以太坊,如果你设置了较低的手续费,那么交易将会等待一段时间后才会被矿工打包。
在等待期内,事务将存储在接收事务的miner节点中,miner节点将等待其打包的事务存储在“内存池”(也称为事务池)中。
对于存放在内存池中的交易,矿工会根据服务收费价格对交易进行排序,并优先考虑价格较高的交易。对于手续费少的交易,要排队。
但是,由于miners总是从其他节点接收新的事务,并且这些事务会不断地更新到内存池中,因此经过一段时间后,miners还会重新安排事务池中的顺序—换句话说,如果您的服务费太低,事务可能在整个生命周期内不会打包(除非整个网络的服务费用大大降低,或者您可以自己加速事务处理,这将在后面提到。
虽然以太坊和比特币采用了完全不同的结构,但它们的交易内存池设计是相似的。换句话说,内存池上所有区块链项目的设计都是相似的。我们以智慧链的记忆池为例:
以上参数定义了智慧链中内存池的特性。我们选择最重要的几点来解释:
1翻转
未决交易是指尚未被矿业公司打包的交易,这些交易已经过初步核实,等待矿业公司打包
2排队
Queued表示最初已验证的事务,但这些事务的优先级低于pending,并且处于“waiting to enter the pending”队列的状态。注意,挂起队列和排队队列也按nonce随机数排序。
3有效期
过期时间。如果事务超过某个时间段,它将从内存池中清除。用户需要再次向网络广播事务,以便将事务放入miner的内存池中
4服务费
费用,顾名思义,可以避免因大量无意义的交易而造成的拥堵。
5**交易数
**事务数。确保miner的内存池不会存储太多事务,从而导致节点停机。
无论是比特币还是以太坊,内存池的设计都离不开“交易队列”、“服务费门槛”、“内存池上限”三个概念,智慧链也是如此。
03
为什么我需要内存池?
想象一下没有内存池的区块链会发生什么?
虽然区块链作为点对点交易的媒介,但它似乎是一个用户和另一个用户之间的直接交易,就像线下的手牵手交付一样。作为中介媒介加入交易池似乎会增加摩擦成本。但事实上,内存池的存在不仅不会对网络造成负担,而且是降低网络负载的重要手段。
如果区块链对攻击没有抵抗力,它的区块链就会失去。所谓区块链上的灰尘攻击,意味着大量无意义的交易充斥整个区块网络,交易验证需要时间和算力。如果用户和矿工节点充满了大量的灰尘交换,他们将无法验证和打包本应正常的事务。
即使miner节点没有设置接收dust事务的上限,事务也会直接填满miner节点的内存,导致宕机。内存池的存在,通过**的事务数和处理费的阈值,保证了无用的灰尘攻击不会导致网络拥塞。
成交量少,数量大
其次,内存池的不足将对网络激励机制提出挑战。内存池设置了一个按随机数+服务费排列的事务队列,让矿工(也是大多数矿工的**)以网络、用户和矿工所期望的方式对交易进行打包,即对服务费高的交易优先。
如果存在内存池不足的情况,虽然从私利角度来看,矿工仍会选择手续费较高的交易进行打包,但恶意矿工可以利用较低的服务费门槛吸引大量交易,孤立其他矿工。如果交易过多的聚集在矿工控制的节点下,双花攻击的难度也会降低。
另一方面,如果矿工不按随机数对交易进行排名,那么交易/合同的执行也会出现问题。如果一个miner节点接收到一个用户的多个事务,那么在内存池的帮助下,事务将按照随机数的大小进行排列,这基本上符合事务的“理想启动时间”
由于内存池不足,如果用户发起的事务在网络环境中没有按实际发送时间延迟广播给矿工,如果矿工根据接收时间只执行一个用户的多个事务,那么对于该事务/契约,严格限制了交易顺序,用户无**常调用合同。
04
记忆是交易的场所
内存池是交易站或端口。所有交易在通过miners发送到区块链网络之前,都需要在内存池中进行验证、打包和排序。如果忽略内存池设计或忽略内存池的存在,在市场剧烈波动或网络环境不稳定的情况下,会发生类似3.12 makerdao 0价ETH竞拍乌龙的事件。
文章标题:内存池:交易站
文章链接:https://www.btchangqing.cn/104667.html
更新时间:2020年09月16日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。