Skip to content

Commit

Permalink
f change to .md file
Browse files Browse the repository at this point in the history
  • Loading branch information
valentinewallace committed Sep 8, 2021
1 parent 1e561d8 commit 3765e97
Showing 1 changed file with 13 additions and 11 deletions.
24 changes: 13 additions & 11 deletions blips/blip-0002.mediawiki → blips/blip-0002.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
<pre>
```
bLIP: 2
Title: Keysend
Status: Active
Type: Standards Track
Author: Valentine Wallace <vwallace@protonmail.com>
Created: 2021-05-21
Created: 2021-07-28
License: BSD-2-Clause, OPL
</pre>
```

==Abstract==
# Abstract

Keysend is a type of lightning payment that does not require the payee to
provide an invoice. Instead, the payer includes their payer-selected payment
Expand All @@ -19,12 +18,12 @@ Eclair, LDK, and possibly others. This bLIP serves to document what is already
well-supported in the wild, for posterity and so that new implementations don't
have to reverse-engineer keysend from existing implementations.

==Copyright==
# Copyright

This bLIP is dual-licensed under the Open Publication License and BSD 2-clause
license.

==Specification==
# Specification

Sender:
* MUST include a TLV record keyed by type `5482373484` with a TLV value of a
Expand All @@ -44,7 +43,7 @@ Receiver:
Note that because of the lack of a payment secret, basic MPP payments are not
supported with keysend.

==Motivation==
# Motivation

A convenience of layer 1 bitcoin is being able to spontaneously send to a
bitcoin address with no advance work required on the part of the payee. Keysend
Expand All @@ -59,7 +58,7 @@ official documentation for it.
Additionally, as of authoring this bLIP, keysend is used in multiple lightning
ecosystem projects such as Sphinx.chat.

==Rationale==
# Rationale

Design decisions for keysend were largely made by the original lnd keysend
implementation (e.g. the choice of `5482373484` for the TLV type).
Expand All @@ -81,7 +80,7 @@ implementation (e.g. the choice of `5482373484` for the TLV type).
keysend payment of identical payment hash to X and observing the processing
time discrepancies due to a hash collision with X.

==Keysend Drawbacks==
# Keysend Drawbacks

* Inability for the payee to specify their preferred `min_final_cltv_expiry`.
This is an issue because payer and payee may have differing security
Expand All @@ -100,9 +99,12 @@ implementation (e.g. the choice of `5482373484` for the TLV type).
[Offers](https://github.com/lightningnetwork/lightning-rfc/pull/798) or
[AMP](https://github.com/lightningnetwork/lightning-rfc/pull/658)

==Reference implementations==
# Reference Implementations

LDK: https://github.com/rust-bitcoin/rust-lightning/pull/967

C-Lightning: https://github.com/ElementsProject/lightning/blob/master/plugins/keysend.c

`lnd` original keysend PR: https://github.com/lightningnetwork/lnd/pull/3795

Eclair: https://github.com/ACINQ/eclair/pull/1485

0 comments on commit 3765e97

Please sign in to comment.