Hosted Channels vs Fedimint


For those who want a comparison, here is the comparison.

I’ll start by listing how they are similar and then show some advantages of one versus the other and vice-versa.

Both are open protocols

  • Anyone can run a hosted channel node or a hosted channel wallet and connect to any other hosted channel node or wallet.
  • Anyone can run a Fedimint federation or any Fedimint wallet can connect to any Fedimint federation.

Of course one can also block others from connecting to them and vice-versa, but there is nothing in the protocols themselves that mandate anything. There is no central committee that must approve anything.

Both are protocols for IOU management (or what some like to call custodianship)

  • On any hosted channel, one side of the channel (the “host”) owes money to the the other (the “client”), i.e. the later must trust that the first won’t exit scam.
  • On any Fedimint federation the federation signers (the “guardians”) owe money to the holders of notes, i.e. the later must trust that the first won’t exit scam.

This is how both can provide scalability.

Both provide scalability

See point above. But in short they provide scalability by allowing people to transact without using the Bitcoin blockchain.

Both address the inherent sheer lack of privacy that normal custodians have

Normal custodial providers have a big privacy issue, which is that the users only tell their servers “I want to pay this invoice”, so the server knows who they’re paying, how much and so on.

  • On a hosted channel, the host doesn’t know where the client is sending payments to. The client does the onion routing just like a normal Lightning node so the host only sees an amount and the next hop in the route. Since the client may be paying using MPP (i.e. splitting the payment into multiple shards that go through different channels) they can’t be sure that amount is the actual amount of any payment anyway.
  • On Fedimint, although the Lightning gateway can see what is being paid and for how much, given the nature of Chaumian blindly-signed notes, there is no way to know which of the users is providing the money to pay that.

On normal custodian providers, when receiving, the users ask the server: “make an invoice for me with this amount and description”, so the server knows how much they’ve received and if there is a meaningful description, also for what purpose.

  • On a hosted channel, the invoice is generated by the client and the host only knows it must forward a payment it has received from elsewhere to a given hosted channel, it doesn’t see the description and it cannot know if that is the last hop or if that amount is the exact amount being received (because of MPP).
  • On Fedimint, the invoice is also generated on the client and the Lightning gateway only forwards the payment. Although it is sure that that payment is the final hop and the amount is complete, given the nature of Chaumian blindly-signed notes, there is no way to know which of the users is receiving that.

Hosted channels are much simpler

While a hosted channels host can be run by just attaching a simple process to a normal Lightning node, Fedimint is made to run in a federation so there is the overhead of setting up the federation environment with other people, each running their Fedimint server and establishing connections to them.

Similarly, the cryptography involved in Fedimint makes it so in practice only the reference implementation will ever be used, as a black box.

Hosted channels, on the other hand, are just some message passing through the same Noise protocol Lightning uses, with an occasional ECDSA signature, so it is much easiler to implement.

Fedimint custodianship is safer

Of course one highly-trusted individual is better than 3 or 5 scammers, but still, 3 or 5 averagely-trusted people are still better than 1 of the same kind. For that reason, the federation model provides a better way to store money than just putting it in one place.