What is Fedimint:
Personas in Fedimint
- The guardians (aka. custodians, aka. federation members)
- technical community members
- runs a federation which holds funds on behalf of the community
- jointly manage an onchain bitcoin wallet (threshold multisig)
- coordinate through distributed consensus
- The clients
- users of a fedimint
- benefit from shared custody and other functionality provided by the federation
- join one / more fedimint federations from a client app like Fedi
- guardians are also users!
- The gateways
- economic actors that provide lightning swap service to federations
- bridge the fedimint federation instance, to the rest of the world via lightning
- one gateway can serve any number of federations
- future: There can be other variants of gateways
- See community lightning workshop, btc++
Technology components of Fedimint
- Ref
- Distributed Consensus as the Federation
- Federation guardians coordinate through Honey Badger Byzantine Fault Tolerant Consensus (HBBFT)
- Each member guardian is running a node, that automatically takes part in the concensus cycles (epochs)
- Each node in a federation is running the same set of Fedimint Modules (more on this, below)
- Lightning Gateways
- specialized to send/receive lightning payments on behalf of other clients in the fed
- built on top of the Fedimint Lightning module.
Extensibility of Fedimints (Modules)
- Extends functionality of Fedimints
- Modules plug in to the fedimint consensus system,
- define new transaction types
- define new consensus rules
- plugs into the same distributed consensus algorithm of Fedimint
- Anyone can build a module :)
- Default Modules
- Wallet Module
- the threshold multisig bitcoin wallet
- uses Shamir Secret Sharing in distributed key generation (DKG)
- Mint Module
- blinded mint for generating e-cash
- replaceable by any other desirable accounting system, say ZCash
- Lightning Module
- contracts for swapping between bitcoin, e-cash to/from lightning
- Wallet Module
- Other Module Examples, see fedimint discussions
The Fedimint Flow
- Community selects it's guardians
- Guardians set up the federation
- Someone adds a lightning gateway to the federation
- multiple gateways can be added to a federation
- All community members join the federation from their client app of choice
- Fedi is the first of Fedimint user clients
Hands-on
- Join Fedi Alpha federation and sling sats
Next-time
- Set up a federation
- Set up a fedimint gateway
- Build a fedimint module