Search code examples
ethereum

Why can't transactions be sent directly to validators/mining pools?


Now 99% of all interactions with the blockchain occur through Infuria or Alchemy (MetaMask - API Infuria).

Nobody raises their geth nodes.

Because of this, most people are skeptical about the word "decentralization", since the application still has a point of failure.

Why is it impossible to send transactions directly from the browser to the validator? What prevents this?

After all, this is the last obstacle before decentralization. If the browser/extensions stored hundreds of addresses of mining pools to which you can send a transaction, then such an application is almost fail-safe.


Solution

  • Generally, a signed transaction is sent from a wallet software to a node (in the peer-to-peer Ethereum network) that broadcasts it to the rest of the network as a "transaction waiting to be mined" (i.e. placed in a mempool).

    Miners usually take transactions from the mempool and place them in blocks.

    It is technically possible for a miner to accept a transaction from another source (or create and sign it themselves), and place it in a block.

    But it comes with an inconvenience for the transaction sender - they need to wait until this specific miner mines a block containing their transaction. If they sent the transaction to the mempool instead, any miner could have picked it up and include in their block. And there is currently no standardized way of sending a transaction to the miner directly - so each might have a different channel and different rules.

    So to answer your question:

    Why can't transactions be sent directly to validators/mining pools?

    They can. But it's just faster (for the transaction sender) to use the mempool and let the transaction be mined by anyone, instead of waiting for one specific mining pool to mine a block.