01交易是区块链的基石
交易是区块链的基石,我们每天都会接触到各式交易,不论你是操作DeFi,还是转账购买NFT,或者只是单纯的从交易所提现/充值,交易都是上述操作的基础。
不过,鲜有人知晓交易的中转站——内存池的重要性,由于大量教材为大家提供了“区块链是一个不需要中介的交易账本”这个概念,如果不深入了解区块链的技术细节往往会忽略内存池,并导致在一些特殊时刻出现不必要的损失。
比特币、以太坊、WisdomChain都有内存池设计,几乎所有的区块链项目都离不开内存池,那么究竟什么是内存池?内存池又在交易过程中扮演了什么角色呢?
02内存池是什么?
要了解内存池的概念,首先我们需要回顾交易的状态。
比特币网络NFT协议Ordinals已造成自FTX和3AC破产以来最严重的内存池拥堵:2月9日消息,据Dune Analytics数据显示,基于比特币的NFT协议Ordinals自推出以来,比特币网络用于Inscriptions(铭文)的花费持续攀升。截至2月7日,Ordinals协议已占据比特币网络交易总费用的12%和区块奖励的0.3%,并且仍呈指数级增长,造成自FTX和3AC破产以来最严重的比特币内存池拥堵。[2023/2/9 11:57:07]
相信大家在操作以太坊,尤其是近期拥堵的以太坊时,如果设置了较低的手续费,那么交易将会被等待一段时间才会被矿工打包。
等待的这段时间交易将会储存在收到这笔交易的矿工节点中,而矿工节点则会将这些等待被它打包的交易存放在“内存池”中。
乌克兰政客清内存时误删私钥文件,损失400个BTC:乌克兰议会成员Davyd Arakhamia最近在一次采访中分享说,他已经很久都无法打开自己那个有400个比特币的加密钱包。据Arakhamia介绍,当他还是一名企业家时,他的公司开始接受比特币付款。他在清理硬盘内存时误删了包含私钥的加密文件,该文件的格式看起来像电影,他忘记了它的实际内容,并将其与其他电影一起删除。(U.today)[2021/4/15 20:23:43]
放在内存池中的交易,矿工一般会按照手续费价格的多少来进行排序,优先打包价格较高的交易,至于手续费比较少的交易自然就必须排队了。
不过由于矿工每时每刻都会接收到其他节点发来的新交易,这些交易也会不断的更新到内存池中,因此矿工也会在一定时间后重新排列交易池中的顺序——换句话说,如果你的手续费太低,那么交易有可能一辈子都不会被打包。
Blockchain.com昨日系统故障,比特币内存池跟踪器骤降至零:金色财经报道,3月13日,加密钱包服务和区块链数据供应商Blockchain.com突发系统故障,其比特币内存池跟踪器骤降至零。在未经确认的比特币交易大幅增加之后,Blockchain.com上的内存池图表从32MB急剧下降至零。其他跟踪器(如Satoshi.info)指出,在Blockchain.com图表崩溃期间,其内存池的大小约为35 MB。截至目前,图表已恢复到30 MB左右。Satoshi.info指出,这显然是Blockchain.com独有的一个系统漏洞。[2020/3/14]
以太坊和比特币虽然采用了完全不同的结构,但他们的交易内存池设计都是大同小异的,或者说,所有的区块链项目在内存池上的设计都大同小异,我们以WisdomChain的内存池作为例子:
声音 | Bgain Digital 总裁:本轮行情是场内存量资金在加杠杆进场:在本期金色沙龙中,Bgain Digital 总裁 Leon Lin发言指出:这一轮行情启动的时候,我们看了一个很有意思的现象——增量资金不多,是场内的存量资金在加杠杆进场。我们觉得这是本次行情启动非常重要的直接原因。存量资金加杠杆基本上可以把BTC推到1万美金左右,但是进一步的拉升则需要增量资金进场。
减半更重要的是带给投资者对于市场的一致性预期判断,每一次周期性的大行情,其实就是共识的结果。高潮就是散户们害怕错过的情绪,而此时将是爆炸的开始,很多的获利盘将开始变现,离场。[2020/2/19]
上述各个参数定义了WisdomChain中内存池的各个特点,我们挑选其中最重要的几点进行解释:
1Pending
pending代表着尚未被矿工打包的交易,这些交易已经经过了初次校验并等待被矿工打包
2Queued
queued代表着初步被验证过的交易,但这些交易的优先级比pending低,处于”等待进入pending“队列的状态。需要注意的是pending和queued队列也会按照Nonce随机数来进行排序。
3过期时间
过期时间。交易如果超过了一段时间将会从内存池中清除,用户需要重新向网络广播交易才能让交易被放入到矿工的内存池中
4手续费
手续费,顾名思义,避免大量无意义的交易填塞网络导致拥堵。
5最大事务数
最大事务数。确保矿工的内存池不会储存过多交易,导致节点宕机。
不论比特币、以太坊,内存池的设计都离不开”交易队列“,”手续费门槛“,”内存池上限“三大概念,WisdomChain中也是如此。
03为什么需要内存池?
试想一下,如果没有内存池,区块链会发生什么?
虽然作为点对点交易的媒介,区块链看起来是一个用户同另一个用户直接交易,就像线下一手交钱一手交货一样,加入交易池作为中介媒介似乎是徒增摩擦成本。但实际上,内存池的存在不仅没有对网络造成负担,甚至还是网络减负的重要手段。
如果没有内存池,首先区块链就丧失了对粉尘攻击的抵抗性。所谓区块链上的粉尘攻击,指的是大量毫无意义的交易填充了整个区块网络,而交易验证是需要花费时间和算力的,如果用户和矿工节点被大量的粉尘交易所填塞,那么他们将无法正常的验证并打包本应当正常的交易。
甚至如果矿工节点不设上限地接收粉尘交易,交易将会直接填满矿工节点的内存导致宕机。内存池的存在,通过最大事务数和手续费门槛,确保无价值的粉尘攻击不会让网络陷入拥堵状态。
交易额低数量大
其次,缺乏内存池,网络激励机制将会受到挑战。内存池设置了按照随机数手续费进行排列的交易队列,为的是让矿工尽可能以网络、用户还有矿工个人所期望的方式打包交易——即优先高手续费的交易。
如果缺乏内存池,虽然从利己角度矿工依然会选择较高手续费的交易进行打包,但恶意矿工可以通过以低手续费门槛吸引大量的交易并孤立其他矿工,如果交易过多的聚集在某个矿工控制的节点下,发动双花攻击的难度也会有所下降。
另一方面,如果矿工对交易不按照随机数进行排序,那么事务/合约的执行也会存在问题。如果一个矿工节点收到了来自一个用户的多笔交易,在内存池的辅助下交易将会按照随机数大小进行排列,本质上也符合交易的”理想发起时间“。
缺乏内存池,如果在网络存在延迟的环境下,用户发起的交易并不会按照实际发送时间广播到矿工手中,矿工如果单纯按照接收时间来执行某一用户的多笔交易,那么对于事务/合约这种严格限定交易先后顺序的设计,错序交易会让用户无法正常的调用合约。
04?内存是交易的驿站
内存池是交易的驿站,或者说港口。所有的交易都需要在内存池进行校验、打包、排序,之后才会经由矿工发送到区块链网络中。如果忽视内存池设计,或者忽视内存池的存在,在市场剧烈波动或者网络环境不稳定的情况下,是会发生类似3.12MakerDAO0价格ETH拍卖乌龙事件的。
本文来自WisdomChain公链社区
矿机,是一个神奇的存在。作为功能单一的运算设备,为何有时它的价格可以和成本无关,而是随着某种商品的价格不停变动?在偌大的行业版图中,为何又是它率先走出了第一家区块链领域的上市公司?要回答这些问题.
1900/1/1 0:00:00亲爱的CoinW用户:HyperPay钱包将于2020年7月13日开启IPFS云算力预挖功能。用户在主网上线之前购买HyperPayIPFS云算力产品即可获得FIL6额外收益,不影响主网上线后挖.
1900/1/1 0:00:00亲爱的CoinW用户:近日,CoinW接到用户举报,有不法分子盗用CoinW名义,目前尚未对用户资产造成实质损害。该行为已涉嫌刑事,CoinW已向机关举报.
1900/1/1 0:00:009月16日,去中心化交易所Uniswap宣布协议治理现已生效,尽管Uniswap对金库的控制将持续到2020年10月17日20点.
1900/1/1 0:00:00尊敬的用户:CoinBene满币近期将对DVC进行智能合约更换对接,为配合DVC项目方此次合约更换升级,CoinBene满币已暂停DVC充提、平台内转账功能.
1900/1/1 0:00:00尊敬的用户:Hotbit即将开启UNC(UniCrypt)数字资产服务,并开放UNC理财产品。预计年化收益:10%;计息:T1.
1900/1/1 0:00:00