运行节点要符合加密世界无处不在的精神:去信任,要验证。
原文标题:《详解区块链节点:如何有效地运营自己的节点?》
撰文:SupraOracles
区块链节点通过它们的连接、交互组成网络,该网络通过共识机制将新区块添加到链上,本文将解释如何有效地运营自己的区块链节点。
01什么是区块链节点?
在深入讲解如何运行节点之前,我们有必要了解一下什么是区块链节点。通常在计算机网络中节点可以是计算机或任何涉及在计算机网络内接收和发送数据的设备,因此在区块链网络中每个账本参与者都是一个节点。
基于P2P网络的原理,公有链技术本质上是去中心化跟开源的,在大多数网络中,公有链没有专用服务器,不是一个授权机构,依赖于用户之间的共识。节点通常通过共享状态信息、对其协议的治理进行投票以及验证传入交易的新块来在网络内进行通信。
Beosin:Skyward Finance项目遭受攻击事件简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,Near链上的Skyward Finance项目遭受漏洞攻击,Beosin分析发现由于skyward.near合约的redeem_skyward函数没有正确校验token_account_ids参数,导致攻击者5ebc5ecca14a44175464d0e6a7d3b2a6890229cd5f19cfb29ce8b1651fd58d39传入相同的token_account_id,并多次领取了WNear奖励。本次攻击导致项目损失了约108万个Near,约320万美元。Beosin Trace追踪发现被盗金额已被攻击者转走。[2022/11/3 12:12:36]
来自不同地理位置的多样化和分散的节点有助于建立一个更强大的共识机制。如果有足够多的节点维护他们的区块链账本副本并继续区块生产,那么网络可以无限期地运行下去。
安全团队:获利约900万美元,Moola协议遭受黑客攻击事件简析:10月19日消息,据Beosin EagleEye Web3安全预警与监控平台监测显示,Celo上的Moola协议遭受攻击,黑客获利约900万美元。Beosin安全团队第一时间对事件进行了分析,结果如下:
第一步:攻击者进行了多笔交易,用CELO买入MOO,攻击者起始资金(182000枚CELO).
第二步:攻击者使用MOO作为抵押品借出CELO。根据抵押借贷的常见逻辑,攻击者抵押了价值a的MOO,可借出价值b的CELO。
第三步:攻击者用贷出的CELO购买MOO,从而继续提高MOO的价格。每次交换之后,Moo对应CELO的价格变高。
第四步:由于抵押借贷合约在借出时会使用交易对中的实时价格进行判断,导致用户之前的借贷数量,并未达到价值b,所以用户可以继续借出CELO。通过不断重复这个过程,攻击者把MOO的价格从0.02 CELO提高到0.73 CELO。
第五步:攻击者进行了累计4次抵押MOO,10次swap(CELO换MOO),28次借贷,达到获利过程。
本次遭受攻击的抵押借贷实现合约并未开源,根据攻击特征可以猜测攻击属于价格操纵攻击。截止发文时,通过Beosin Trace追踪发现攻击者将约93.1%的所得资金 返还给了Moola Market项目方,将50万CELO 捐给了impact market。自己留下了总计65万个CELO作为赏金。[2022/10/19 17:32:31]
也正因此,由于每一个用户对于整个网络的安全性和完整性都至关重要,成为某个加密项目社区的一员不仅是件令人兴奋的事,也是一种责任。
安全团队:Audius项目恶意提案攻击简析,攻击者总共获利约108W美元:7月24日消息,据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,Audius项目遭受恶意提案攻击。成都链安安全团队简析如下:攻击者先部署恶意合约并在Audius: Community Treasury 合约中调用initialize将自己设置为治理合约的监护地址,随后攻击者调用ProposalSubmitted 提交恶意85号提案并被通过,该提案允许向攻击合约转账1,856w个AudiusToken,随后攻击者将获得的AudiusToken兑换为ETH,总共获利约108W美元,目前获利资金仍然存放于攻击者地址上(0xa0c7BD318D69424603CBf91e9969870F21B8ab4c)。[2022/7/24 2:34:31]
02如何运营区块链节点?
Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。
1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。
2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。
3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。
4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。
此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]
通常来说,节点分两种主要类型:一种是存储完整账本的全节点,这种节点通过验证数据来保证区块链上数据的安全性和正确性;另一种是轻节点(lightweightnode),即每个参与的用户。每一个轻节点都需要连接到一个全节点,以便同步网络的当前状态并能够参与运行。
慢雾:Avalanche链上Zabu Finance被黑简析:据慢雾区情报,9月12日,Avalanche上Zabu Finance项目遭受闪电贷攻击,慢雾安全团队进行分析后以简讯的形式分享给大家参考:
1.攻击者首先创建两个攻击合约,随后通过攻击合约1在Pangolin将WAVAX兑换成SPORE代币,并将获得的SPORE代币抵押至ZABUFarm合约中,为后续获取ZABU代币奖励做准备。
2.攻击者通过攻击合约2从Pangolin闪电贷借出SPORE代币,随后开始不断的使用SPORE代币在ZABUFarm合约中进行`抵押/提现`操作。由于SPORE代币在转账过程中需要收取一定的手续费(SPORE合约收取),而ZABUFarm合约实际接收到的SPORE代币数量是小于攻击者传入的抵押数量的。分析中我们注意到ZABUFarm合约在用户抵押时会直接记录用户传入的抵押数量,而不是记录合约实际收到的代币数量,但ZABUFarm合约在用户提现时允许用户全部提取用户抵押时合约记录的抵押数量。这就导致了攻击者在抵押时ZABUFarm合约实际接收到的SPORE代币数量小于攻击者在提现时ZABUFarm合约转出给攻击者的代币数量。
3.攻击者正是利用了ZABUFarm合约与SPORE代币兼容性问题导致的记账缺陷,从而不断通过`抵押/提现`操作将ZABUFarm合约中的SPORE资金消耗至一个极低的数值。而ZABUFarm合约的抵押奖励正是通过累积的区块奖励除合约中抵押的SPORE代币总量参与计算的,因此当ZABUFarm合约中的SPORE代币总量降低到一个极低的数值时无疑会计算出一个极大的奖励数值。
4.攻击者通过先前已在ZABUFarm中有进行抵押的攻击合约1获取了大量的ZABU代币奖励,随后便对ZABU代币进行了抛售。
此次攻击是由于ZabuFinance的抵押模型与SPORE代币不兼容导致的,此类问题导致的攻击已经发生的多起,慢雾安全团队建议:项目抵押模型在对接通缩型代币时应记录用户在转账前后合约实际的代币变化,而不是依赖于用户传入的抵押代币数量。[2021/9/12 23:19:21]
首先,要部署区块链节点,新节点运营商必须要达到硬件和软件要求门槛,例如兼容的操作系统、足够的可用磁盘空间、RAM内存和网速。接着,运营商需根据他们所期望的参与程度下载所需的核心软件。
针对所有区块链,你都可以在运行节点上配置所需的设备、内存要求和处理能力。市场上有门槛较低的链,但也有其他一些链因为网络设计导致节点运行困难而昂贵。当然,昂贵的节点运行要求运营商的大量财务投入,可以在成本上筛掉一些试图投机的恶意节点。
例如,比特币的网络允许用户运行全节点或轻节点。对于比特币全节点来说,必须下载存储区块链历史记录并保存在本地文件中,在撰写本文时,其硬盘内存需超过380GB。
区块链节点通过它们的连接、交互和在全节点的情况下共同组成网络
再拿以太坊举个例子,根据复杂程度不一,可运行的节点为:全节点、轻节点和存档节点。
全节点更具独立性,对自己的数字资产拥有更完整的主权,不像轻节点那样需要依赖其他节点访问区块链。全节点可以连接到区块链的主网络,也可以在测试网或其他安全环境上运行,以测试和开发新软件。
轻节点对没有强大硬件或带宽能力的用户很友好,因为不需要下载以太坊的完整历史、钱包余额或智能合约代码。可以在手机或其他更小、功能更弱的设备上运行,但它们可以通过检验区块头的状态根,从而验证数据的有效性。
全节点对网络负有更大的责任,需要更复杂的硬件和软件,但他们的努力在金钱方面得到了更直接的回报。
就运营商资源而言,以太坊存档节点可能是运行难度最高的节点之一。它们需要更多的硬件设备来运行,也需要使用大容量的RAM和磁盘空间。即便使用先进的设备,新的以太坊存档节点同步也需要花费数周时间,如果使用速度较慢的HDD硬盘同步存档节点,则该节点将无法实现完全同步,因为新块生成的速度将超过这类计算机同步的速度。另外,如果客户端的节点版本出现任何错误,则该节点需要重新同步。无形的时间消耗,增加了整个运营成本。
当然,为了防止节点脱机,运行节点时应该进行定期检测,可以向兼容节点发送请求或从区块链请求数据。不然的话,如果遇到节点崩溃的情况需要手动重启设备,这很可能会之前通过验证或挖掘新块产生的收入都将丢失。
03节点运营的难点
节点运营商通常会有带宽限制与硬件性能方面的问题。很多节点运营商会向互联网提供商获取无流量限制的服务,值得注意是要警惕网络被其他不明原因占用的情况。在早期的比特币网络中,病签名曾被上传到区块链,导致Windows用户的病软件检测到病后仍遇到了问题。虽然用户的设备并没有受到感染,但他们运营节点的整体性能受到了损害。
为了解决技术以及操作门槛跟效率问题,许多区块链节点运营服务公司应运而生。节点运营商部署必要的资本和资源来连接其基础设施,并维护其与所需区块链相关的功能。
区块链服务提供商托管运行企业和其他实体的节点,为节点运营者提供诸多好处,降低了节点运营者的时间成本或专业知识要求。
根据每个客户的需求,区块链服务提供商可以达成对已集成公链的完全访问,只要运营者满足最低要求,包括在所需网络上的最低投资。服务提供商则会承担节点操作相关的繁琐内容,让客户可以专注于他们本身的专业领域而不用在操作上耗费精力。
目前市场上比较流行的区块链服务提供商有Blockdaemon、Infura、GetBlock、Alchemy、QuickNode、Figment等等。
04节点运营是否真的有利可图?
启动和维护节点有助于区块链的去中心化。在某些网络上,运行一个节点可以为运营商提供回报,因为该节点会因验证新交易和参与产生新区块的投票过程而获得报酬。
但同时,区块链节点运营也会消耗大量时间和资源,在投入和产出比上,对矿工或验证者来说是有利可图的。全节点的报酬丰厚,因为它们验证区块并存储整个区块链账本,因此验证节点可以产生可预期的收入。
尽管运行轻节点不会产生加密回报,但它仍然有助于增强用户和其他节点之间的信任、安全和隐私。拥有自己的节点意味着您无需信任第三方网络的状态或提交给网络进行验证的交易的真实性。
为了更好地说明这一点,假设您是一家仅接受实物黄金作为服务付款交易站的所有者,现在您想验证黄金是否是真实的并且确认具体的数量,您是会将其发送给检查员网络,还是安排在内部进行所有验证?换句话说,运行你自己的节点符合加密世界无处不在的精神:去信任;要验证。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。