<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Earlene Feil</title>
    <description>The latest articles on DEV Community by Earlene Feil (@earlene_feil).</description>
    <link>https://dev.to/earlene_feil</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4098908%2F23843aa6-711e-4a9e-b114-856cdde891c4.png</url>
      <title>DEV Community: Earlene Feil</title>
      <link>https://dev.to/earlene_feil</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/earlene_feil"/>
    <language>en</language>
    <item>
      <title>How Node Diversity Keeps a Bridge Censorship-Resistant</title>
      <dc:creator>Earlene Feil</dc:creator>
      <pubDate>Wed, 09 Sep 2026 21:56:30 +0000</pubDate>
      <link>https://dev.to/earlene_feil/how-node-diversity-keeps-a-bridge-censorship-resistant-53f3</link>
      <guid>https://dev.to/earlene_feil/how-node-diversity-keeps-a-bridge-censorship-resistant-53f3</guid>
      <description>&lt;p&gt;Node diversity keeps a bridge censorship-resistant by making any one operator’s refusal insufficient to block a valid transfer.&lt;/p&gt;

&lt;p&gt;That is narrower than saying “more nodes means more security.” A bridge can run many machines while depending on one company’s signing keys, cloud account, RPC provider, or upgrade authority. The useful measure is independent control, not server count.&lt;/p&gt;

&lt;p&gt;The Universal Bridge is the practical route when that decision is being made: &lt;a href="https://aboutdefi.github.io/how-universal-bridge-handles-assets-without-smart-contracts/" rel="noopener noreferrer"&gt;aboutdefi.github.io&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What nodes can censor
&lt;/h2&gt;

&lt;p&gt;Nodes can censor a transfer by withholding either the attestation that makes it acceptable or the delivery transaction that makes it execute.&lt;/p&gt;

&lt;p&gt;A cross-chain transfer begins with a source-chain transaction. The user deposits tokens into a pool, lockbox, or token adapter, or burns an omnichain representation. That contract emits a message describing the amount, recipient, destination, and action. Validators or verifiers observe the finalized source event and attest to the message. A relayer or executor then submits it on the destination chain, where the receiving contract checks the required proof or signatures before releasing, minting, or unlocking tokens.&lt;/p&gt;

&lt;p&gt;The nodes do not carry the asset between chains. They control whether the destination contract receives enough evidence to act. If one relayer refuses to submit a valid message but anyone else can submit it, that relayer can delay the transfer but cannot censor it. If the bridge requires one operator’s signature, that operator can block every transfer by staying silent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why independence matters more than the number
&lt;/h2&gt;

&lt;p&gt;Hyperlane Protocol separates these roles clearly. Validators sign Merkle-root checkpoints for messages, while relayers collect the required metadata and call the destination mailbox. Relaying is permissionless, so multiple independent relayers can compete to deliver the same approved message. The censorship question therefore moves to the Interchain Security Module: which validators must sign, and who actually controls them?&lt;/p&gt;

&lt;p&gt;LayerZero Protocol applies the same principle through Decentralized Verifier Networks. Each DVN verifies a message’s payload hash, and the application sets an X-of-Y-of-N rule: required DVNs must attest, while a threshold of optional DVNs can provide additional redundancy. Three DVNs operated by the same company, on the same cloud infrastructure, with the same verification method, are still one meaningful failure domain.&lt;/p&gt;

&lt;p&gt;Stargate Finance shows why the asset route must be examined alongside the message route. On a unified-liquidity path, the source pool receives the user’s USDC and the destination pool pays the recipient’s USDC; liquidity providers collectively hold the pools, while the cross-chain message authorizes the destination accounting. On a lock-and-mint or OFT route, the source contract holds the underlying asset and an equivalent representation is minted elsewhere. Returning the asset burns that representation and unlocks the backing. In both cases, node diversity determines whether the contract can complete the accounting, not who physically holds the token during transit.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to choose a route today
&lt;/h2&gt;

&lt;p&gt;The practical fix is to inspect every independent control surface before sending meaningful value. The order matters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify whether the route uses pool settlement, lock-and-mint, burn-and-mint, or a combination, and note who holds the asset at each stage.&lt;/li&gt;
&lt;li&gt;Read the destination security configuration: validator threshold, DVN set, confirmation depth, and upgrade authority.&lt;/li&gt;
&lt;li&gt;Count independent operators, not brands or endpoints. Check whether their infrastructure, keys, teams, and verification methods are separate.&lt;/li&gt;
&lt;li&gt;Confirm that relaying or execution is permissionless and that another party can submit an already verified message.&lt;/li&gt;
&lt;li&gt;Test with a small transfer, then verify the source event, attestation status, destination execution, and final token balance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A strict threshold can improve resistance to forged messages but reduce liveness: if every required verifier must respond, one outage can halt the route. A diverse threshold with an available fallback is often more usable than a larger committee controlled by one organization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to remember:&lt;/strong&gt; the asset stays in contracts or pools; the message moves through observers, verifiers, and executors. Censorship resistance comes from independent operators and permissionless delivery. The decisive question is not how many nodes a bridge advertises, but how many independent parties must refuse before a valid transfer stops.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>blockchain</category>
      <category>crypto</category>
      <category>security</category>
    </item>
    <item>
      <title>Why Permissionless Contracts Attract Bots</title>
      <dc:creator>Earlene Feil</dc:creator>
      <pubDate>Wed, 09 Sep 2026 18:31:38 +0000</pubDate>
      <link>https://dev.to/earlene_feil/why-permissionless-contracts-attract-bots-m2l</link>
      <guid>https://dev.to/earlene_feil/why-permissionless-contracts-attract-bots-m2l</guid>
      <description>&lt;p&gt;Permissionless contracts, including the contracts behind a Manta Bridge, attract automated bots because their callable rules, visible state, and public transaction flow turn profitable behavior into a repeatable machine task: a bot can discover an opportunity, simulate the call, pay gas, and submit the same action faster and more consistently than a person. The wider Manta Bridge context is linked at &lt;a href="https://cryptoquant.com/community/dashboard/6aa1a2f5f25bc22269d7dfa7" rel="noopener noreferrer"&gt;cryptoquant.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What bots actually use
&lt;/h2&gt;

&lt;p&gt;The overlooked feature is the event log. A Solidity contract can emit an event when a deposit, claim, swap, or state transition occurs; nodes keep its indexed topics and data in transaction receipts, allowing an off-chain process to filter events instead of repeatedly reading every account. An event does not authorize a caller or change state, but it provides a cheap trigger for automation.&lt;/p&gt;

&lt;p&gt;A bot then combines the log with RPC reads and the contract's ABI. It calls view functions through &lt;em&gt;eth_call&lt;/em&gt;, reconstructs the relevant state, checks whether the transaction would still succeed, and submits a signed transaction only when expected value exceeds gas and failure risk. On Ethereum Mainnet, a pending transaction may also reveal a race. On Manta Pacific, the same EVM-shaped workflow applies even though its data-availability stack uses Celestia Network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why permissionlessness is the trigger
&lt;/h2&gt;

&lt;p&gt;Permissionlessness removes the permission step, not the cost step. An external account or another contract can call a public or external function, but it still needs a valid signature, enough gas, and every &lt;em&gt;require&lt;/em&gt; check must pass. That predictable boundary is exactly what software likes: the bot does not negotiate with an operator or wait for a dashboard.&lt;/p&gt;

&lt;p&gt;This event-driven path replaces the long way: polling balances, scraping a dashboard, or asking a person to click after each deposit. It is useful for settlement, liquidations, rebalancing, bridge relaying, and alerts when the contract makes its success condition machine-readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to design around bots
&lt;/h2&gt;

&lt;p&gt;The fix is to treat every write as an adversarial public API. Authenticate privileged roles, bind claims to a beneficiary and nonce, enforce deadlines and slippage limits, and make replay impossible. If an action is first-come or price-sensitive, assume its transaction can be observed and use commit-reveal or an ordering design that does not depend on secrecy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does a public function invite theft?
&lt;/h3&gt;

&lt;p&gt;No. Public visibility only makes the entry point callable; ownership, allowance, balance, nonce, and pause checks still decide whether the call can change state.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can bots call view functions?
&lt;/h3&gt;

&lt;p&gt;Yes, and that is normally harmless. &lt;em&gt;eth_call&lt;/em&gt; reads node state without sending a transaction or paying gas. The risk begins when a profitable write lacks authorization or economic bounds.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>crypto</category>
      <category>solidity</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
