Lightning HTTP 402 Protocol, also known as L402, is a way to charge for services and authenticate users in distributed networks. It combines two powerful tools — Macaroons, and of course, the Lightning Network.
Macaroons are special tokens used for authentication. They include permissions and can be verified using a root key. The documentation states this is important for systems where we want to avoid or cannot go about looking up the validity of each token.
Lightning is a Layer 2 solution for making fast and secure bitcoin payments. L402 leverages the capabilities of Macaroons and Lightning to create a mechanism that allows users to authenticate and make payments without needing a central database.
In L402, a Macaroon includes a payment hash. To be valid, the user needs to present the Macaroon and the preimage corresponding to the payment hash in the Macaroon. The preimage is obtained by paying a Lightning Network invoice.
A newly introduced software called Aperture acts as a middleman between the user and the service’s API. It forwards requests with valid L402 to the relevant API endpoint and can issue new Macaroons and Lightning invoices to new users.
L402 allows for metered APIs, where services can charge for their usage without requiring logins or passwords. The Macaroon, together with the preimage, guarantees that the payer has made the payment.
The L402 specification includes different characteristics such as the version of the Macaroon, a unique user identifier and a payment hash that links the Macaroon to the Lightning invoice. The Macaroon can also include caveats that define access to specific services, service capabilities and service constraints.
When verifying the L402, the server uses the root key to check that the Macaroon was issued by the appropriate authority and that each caveat was properly amended. The preimage is also verified against the payment hash to ensure that all outstanding invoices have been paid.
In summary, L402 is a protocol that combines Macaroons and the Lightning Network to enable charging for services and authenticating users. It allows for secure payments and authentication without relying on a central database. Aperture is a software that helps handle the process and allows services to issue Macaroons and Lightning Network invoices.