Oliver Gugger, Puzzle ITC
@gugol
github.com/guggero
Slides on guggero.github.io
- What are macaroons?
- How do they work?
- How are they used in LND?
- What features am I working on?
- Questions/discussion
- "Cookies with Contextual Caveats..."
- Paper from 2014 by Google employees and Brown university students
- https://ai.google/research/pubs/pub41892
Macaroons are based on a construction that uses nested,
chained MACs (e.g., HMACs) in a manner that is highly efficient...
- Root Key is stored in
macaroons.db
- Identifier contains nonce and read/write permissions
- Location is always
lnd
- Three pre-generated macaroons:
readonly
,invoice
,admin
- Supported caveat conditions:
time-before <utc-timestamp>
ipaddr <client-ip-address>
- Can be declared with
lncli
parameters
--macaroontimeout <in seconds, default 60>
--macaroonip <ip-address, default not set>
- Submitted PRs:
- Ideas:
- permissions for single RPC calls not just groups
- recurring payments (based on accounts)
- third party caveats