delvingbitcoin
Combined summary - Expanding on BOLT12
The discussion opens with the observation that in BOLT12 specifications, there is no human-readable prefix defined for invoices, leading to the proposal of using lni
as a prefix.
This suggestion is underscored by its current utilization in CLN's fetchinvoice and pay RPC commands, as detailed in their documentation. The proposal itself is considered more appropriate as a Bitcoin Lightning Improvement Proposal (bLIP) rather than an amendment to the existing BOLT specifications, highlighting its optional nature and ensuring that the foundational operations of BOLT12 are not impacted for users who may opt out of this feature. For those interested in exploring this concept further, a detailed examination is provided at delvingbitcoin.org, offering insights into the implementation of trusted contacts within BOLT12 that aims to extend its capabilities without compromising its core functionality.
The narrative progresses by acknowledging a significant milestone in BOLT12's development, marked by its integration into the main repository, an action documented in a specific pull request. This incorporation signifies the beginning of its practical application and opens discussions on potential enhancements to refine its utility. A focal point of these discussions is the structural flexibility of BOLT12, particularly the requirement for invoice_request
and invoice
writers to duplicate all fields from their predecessors, including unknown ones. This aspect suggests a pathway for introducing additional backward-compatible fields. Among the notable suggestions is the inclusion of a user
field within the invoice_request
, alongside the proposition of a boolean refund_invoice_required
field for offer
writers, aimed at simplifying the refund process by automating it through encoded invoices prefixed with lni
.
Further proposals include the establishment of an offer_max_amount
within the offer
structure to set transaction limits, addressing operational concerns such as inventory and liquidity issues, and managing customer expectations. While direct enforcement through HTLCs might be challenging, setting clear upfront limits could mitigate attempts to exceed agreed transaction volumes. Additionally, the absence of an expiration mechanism for invoice_request
s is highlighted, suggesting the need for an expiry similar to that of offers
and invoices
to manage offer lifecycles more effectively and ensure transaction relevance remains within a mutually understood timeframe.
In summary, these discussions and proposals reflect a concerted effort within the community to enhance BOLT12, inviting feedback to guide its evolution in addressing the diverse needs and challenges faced in real-world implementations.