Is it possible to create a wallet service, which doesn't have all the blockchain downloaded? Like not running a full node itself?


Without any security trade-off vs. running validating nodes, there is no way to create a wallet-service without downloading and validating the blockchain.

If SPV node security trade-offs are acceptable, you may consider running the wallet service with these.

SPV nodes do not fully-validate the blockchain, and only download the longest header-chain. However, since they only validate POW in the header-chain, and do not index all transactions (only those related to the wallet service addresses), they need to obtain a proof that a tx of interest is confirmed via. another full-node peer. This proof can be delivered a merkle-proof, which represents a specific branch of the merlke-tree beginning with the txid of interest, of which the root is committed to each block header.

The security trade-off for SPV nodes is two-fold:

  • Privacy: Since the wallet service is interested in tx's pertaining to specific addresses, some information about addresses will necessarily leak to the queried full-nodes.
  • Potential for omission: Peers can always remain silent about specific confirmed transactions without the SPV client being able to prove this, potentially requiring cross-comparison heuristic across validating peers.
  • A SPV client does not validate any consensus rules, thereby not knowing whether the chain/branch it is following correctly validates according to the validation rule set the user supports.
  • so any waller service provider, like Electrum, let's say, has all blockchain on their server 200+ gb ? I mean, that costs a lot, which means that sooner or later the service of wallet itself will stop being free? Is it correct? – Frank Jan 21 at 11:09
  • It represents the cost of validating your transactions yes. Although once validated and indexed the chain can be pruned to reduce storage. Validating for others without revenue is not sustainable longterm, unless there are other ways the service is cross-subsidizing the validation. – James C. Jan 21 at 11:18

Yes it is possible. But as mentioned above there are trade-offs.

I do think it is better to not download the full blockchain when you want to prototype something quickly or just play around.

For that I know Bcoin has a full node you can point at (this is the pruned node)

There are some other services too like https://bitcore.io/ (I've never used it)

Your Answer

