Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Topics: add several new topic pages #1467

Merged
merged 1 commit into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions _data/schemas/topics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ properties:
- Contract Protocols
- Developer Tools
- Fee Management
- Invoicing
- Lightning Network
- Lightweight Client Support
- Liquidity Management
Expand Down
61 changes: 61 additions & 0 deletions _topics/en/annex.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: Annex

## Optional. Shorter name to use for reference style links e.g., "foo"
## will allow using the link [topic foo][]. Not case sensitive
# shortname: foo

## Optional. An entry will be added to the topics index for each alias
#aliases:
# - Foo

## Required. At least one category to which this topic belongs. See
## schema for options
categories:
- Scripts and Addresses

## Optional. Produces a Markdown link with either "[title][]" or
## "[title](link)"
primary_sources:
- title: "BIP341: Taproot"
link: bip341

## Optional. Each entry requires "title" and "url". May also use "feature:
## true" to bold entry and "date"
optech_mentions:
- title: "Bitcoin Inquisition #22 adds an `-annexcarrier` runtime option"
url: /en/newsletters/2023/03/29/#bitcoin-inquisition-22

- title: Discussion about the taproot annex
url: /en/newsletters/2023/06/14/#discussion-about-the-taproot-annex

- title: Suggestion to store fee-dependent timelock parameters in the taproot annex
url: /en/newsletters/2024/01/03/#fee-dependent-timelocks

## Optional. Same format as "primary_sources" above
see_also:
- title: Taproot
link: topic taproot

## Optional. Force the display (true) or non-display (false) of stub
## topic notice. Default is to display if the page.content is below a
## threshold word count
#stub: false

## Required. Use Markdown formatting. Only one paragraph. No links allowed.
## Should be less than 500 characters
excerpt: >
The taproot **annex** is an optional field in the witness structure of
segwit v1 (taproot) inputs that currently has no defined purpose.
If an annex is present, any taproot and tapscript signatures must
commit to its value.

---
As of the implementation and activation of taproot, the annex was
reserved for future upgrades. Transactions containing an annex were not
relayed or mined by default by Bitcoin Core. There have been several
ideas for using the annex, as well as at least one attempt to define an
extensible data structure for the field.

{% include references.md %}
{% include linkers/issues.md issues="" %}
1 change: 1 addition & 0 deletions _topics/en/bip70-payment-protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ title: BIP70 payment protocol
## schema for options
categories:
- Wallet Collaboration Tools
- Invoicing

## Required. Use Markdown formatting. Only one paragraph. No links allowed.
## Should be less than 500 characters
Expand Down
81 changes: 81 additions & 0 deletions _topics/en/bls-signatures.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
title: BLS signatures

## Optional. Shorter name to use for reference style links e.g., "foo"
## will allow using the link [topic foo][]. Not case sensitive
# shortname: foo

## Optional. An entry will be added to the topics index for each alias
#aliases:
# - Foo

## Required. At least one category to which this topic belongs. See
## schema for options
categories:
- Scripts and Addresses

## Optional. Produces a Markdown link with either "[title][]" or
## "[title](link)"
#primary_sources:
# - title: Test
# - title: Example
# link: https://example.com

## Optional. Each entry requires "title" and "url". May also use "feature:
## true" to bold entry and "date"
optech_mentions:
- title: Library announced for BLS signatures
url: /en/newsletters/2018/08/07/#library-announced-for-bls-signatures

- title: "Presentation: compact multisignatures for smaller blockchains"
Copy link
Contributor

@vostrnad vostrnad Jan 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The actual title of the presentation:

Suggested change
- title: "Presentation: compact multisignatures for smaller blockchains"
- title: "Presentation: Compact Multi-Signatures for Smaller Blockchains"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gonna leave this as-is.

url: /en/newsletters/2018/10/09/#compact-multi-signatures-for-smaller-blockchains

- title: "Using Bitcoin-compatible BLS signatures for Discree Log Contracts (DLCs)"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- title: "Using Bitcoin-compatible BLS signatures for Discree Log Contracts (DLCs)"
- title: "Using Bitcoin-compatible BLS signatures for Discreet Log Contracts (DLCs)"

url: /en/newsletters/2022/08/17/#using-bitcoin-compatible-bls-signatures-for-dlcs

- title: "Question about schnorr signatures versus BLS signatures"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- title: "Question about schnorr signatures versus BLS signatures"
- title: "Question about Schnorr signatures versus BLS signatures"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving as-is per our style guide.

url: /en/newsletters/2023/01/25/#bls-signatures-vs-schnorr

## Optional. Same format as "primary_sources" above
see_also:
- title: Scriptless multisignatures
link: topic multisignature

## Optional. Force the display (true) or non-display (false) of stub
## topic notice. Default is to display if the page.content is below a
## threshold word count
#stub: false

## Required. Use Markdown formatting. Only one paragraph. No links allowed.
## Should be less than 500 characters
excerpt: >
Boneh--Lynn--Shacham signatures (**BLS signatures**) are digital
signatures that provide a different set of tradeoffs compared to the
ECDSA and schnorr signatures currently used in Bitcoin.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ECDSA and schnorr signatures currently used in Bitcoin.
ECDSA and Schnorr signatures currently used in Bitcoin.

---
Probably the most interesting property of BLS signatures is that they
allow non-interactive signature aggregation. For example, if Alice and
Bob both independently sign the same transaction, a third party can
combine their signatures into a single signature that proves both of
them signed. By comparison, using a Bitcoin's existing [schnorr
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
them signed. By comparison, using a Bitcoin's existing [schnorr
them signed. By comparison, using Bitcoin's existing [Schnorr

signatures][topic schnorr signatures], a single signature proving both
of them signed can only be produce through an interactive protocol like
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
of them signed can only be produce through an interactive protocol like
of them signed can only be produced through an interactive protocol like

[MuSig2][topic musig] where at least one of them receives the other's
partial signature before producing their own partial signature and
producing the complete signature.

In theory, if other changes to Bitcoin were made and if support for BLS
signatures was added, miners could aggregate all signatures together
before producing a block, allowing blocks to contain only a single
signature, which would moderately improve onchain capacity and might
speed block verification when cached verification was unavailable (e.g.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
speed block verification when cached verification was unavailable (e.g.
speed up block verification when cached verification is unavailable (e.g.

during initial block download).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that with assumevalid the vast majority of signatures already aren't validated during IBD.


BLS signatures are not directly compatible with the elliptic curve used
by Bitcoin and are not as well studied as [schnorr signatures][topic
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
by Bitcoin and are not as well studied as [schnorr signatures][topic
by Bitcoin and are not as well studied as [Schnorr signatures][topic

schnorr signatures]. It would not be possible to use [signature
adaptors][topic adaptor signatures] and technology based on them (such
as [PTLCs][topic ptlc]) with BLS signatures.

{% include references.md %}
{% include linkers/issues.md issues="" %}
76 changes: 76 additions & 0 deletions _topics/en/cross-input-signature-aggregation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: Cross-input signature aggregation (CISA)

## Optional. Shorter name to use for reference style links e.g., "foo"
## will allow using the link [topic foo][]. Not case sensitive
shortname: cisa

## Optional. An entry will be added to the topics index for each alias
aliases:
- Half aggregation

## Required. At least one category to which this topic belongs. See
## schema for options
categories:
- Scripts and Addresses
- Soft Forks

## Optional. Produces a Markdown link with either "[title][]" or
## "[title](link)"
primary_sources:
- title: "Cross-input signature aggregation research repository"
link: https://github.com/BlockstreamResearch/cross-input-aggregation

## Optional. Each entry requires "title" and "url". May also use "feature:
## true" to bold entry and "date"
optech_mentions:
- title: "Taproot to not include cross-input signature aggregation"
url: /en/newsletters/2019/05/14/#no-cross-input-signature-aggregation

- title: "Question: why does signature aggregation interefer with signature adaptors?"
url: /en/newsletters/2021/06/30/#why-does-blockwide-signature-aggregation-prevent-adaptor-signatures

- title: Draft BIP about half aggregation of BIP340 schnorr signatures
url: /en/newsletters/2022/07/13/#half-aggregation-of-bip340-signatures

## Optional. Same format as "primary_sources" above
see_also:
- title: Schnorr signatures
link: topic schnorr signatures

- title: BLS signatures
link: topic bls signatures

## Optional. Force the display (true) or non-display (false) of stub
## topic notice. Default is to display if the page.content is below a
## threshold word count
#stub: false

## Required. Use Markdown formatting. Only one paragraph. No links allowed.
## Should be less than 500 characters
excerpt: >
**Cross-input signature aggregation** is a proposal to reduce the
number of signatures a transaction requires. In theory, every
signature required to a make a transaction valid could be combined into a
single signature that covers the whole transaction.

---
For example, Alice controls two [P2TR][topic taproot] UTXOs. Normally,
if she creates a transaction spending both UTXOs with a keypath spend,
she'll need to include one 16-vbyte signature in each output. However,
any node could aggregate both public keys from the UTXOs and Alice could
produce a single 16-vbyte [MuSig]topic musig]-style [scriptless
multisigature][topic multisignature] that corresponded to the aggregate
public key, proving that she controlled the private key for both of the
original public keys.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I’m wrong, but I thought that full aggregation must be interactive, and only half-aggregation can be non-interactive, because only the s values can be aggregated non-interactively, aggregating the r values requires interaction.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, the two concepts are a bit mixed up in this paragraph I think. In the case of halfagg any node can aggregate but the resulting signature would be 24-vbytes, see 2nd paragraph in the halfagg bip draft (motivation section): https://github.com/BlockstreamResearch/cross-input-aggregation/blob/master/half-aggregation.mediawiki. For fullagg only Alice can aggregate but the result would be a 16 vbyte signature. To make the (interactivity) downsides of fullagg clearer it would probably also be good to let the two outputs be controlled by different users.

I can suggest a bit more detailed version of the paragraph that distinguishes between halfagg and fullagg if that's ok for you @harding ? I am not sure if you were aiming for this to only be about halfagg for now though :)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@murchandamus @fjahr thanks for the reviews! I've almost totally rewritten that topic page to separate full and half agg and describe other tradeoffs I'm aware of.


Although inputs would still need to include a significant amount of
other data, such as the 36-vbyte outpoint that uniquely identifies the
UTXO being spent, CISA could provide a modest reduction in the size of
transactions with multiple inputs. It could make the per-participant
transaction fees for a [coinjoin][topic coinjoin] moderately cheaper than each
participant creating a transaction on their own, which could lead to
more people using coinjoin-style privacy.

{% include references.md %}
{% include linkers/issues.md issues="" %}
92 changes: 92 additions & 0 deletions _topics/en/lnurl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
title: LNURL

## Optional. Shorter name to use for reference style links e.g., "foo"
## will allow using the link [topic foo][]. Not case sensitive
# shortname: foo

## Optional. An entry will be added to the topics index for each alias
aliases:
- Lightning Addresses

## Required. At least one category to which this topic belongs. See
## schema for options
categories:
- Lightning Network
- Invoicing

## Optional. Produces a Markdown link with either "[title][]" or
## "[title](link)"
primary_sources:
- title: "LNURL Documents (LUDs)"
link: https://github.com/lnurl/lud

## Optional. Each entry requires "title" and "url". May also use "feature:
## true" to bold entry and "date"
optech_mentions:
- title: "Discussion about a BIP70 replacement, including a version that works with LNURL"
url: /en/newsletters/2021/03/03/#discussion-about-a-bip70-replacement

- title: "Phoenix v1.4.12 adds support for the LNURL-pay protocol"
url: /en/newsletters/2021/06/23/#phoenix-adds-lnurl-pay

- title: "Stacker News launched with LNURL authentication"
url: /en/newsletters/2021/07/21/#lightning-powered-news-site-stacker-news-launches

- title: "Lightning Address identifiers announced based on LNURL"
url: /en/newsletters/2021/09/22/#lightning-address-identifiers-announced

- title: "BTCPay Server #3083 allows administrators to log in using LNURL authentication"
url: /en/newsletters/2022/01/26/#btcpay-server-3083

- title: "C-Lightning #5121 updates its `invoice` RPC for improved LNURL compatibility"
url: /en/newsletters/2022/04/06/#c-lightning-5121

- title: Large size of blinded paths may make them dependent on invoice protocols like LNURL or offers
url: /en/newsletters/2022/06/15/#blinded-paths

- title: Dicussion about how to make LNURL and offers compatible
url: /en/newsletters/2022/06/15/#lnurl-plus-bolt12

- title: "BTCPay Server #3709 adds support for pull payments to be received via a LNURL withdraw"
url: /en/newsletters/2022/07/06/#btcpay-server-3709

- title: Discussion about offers-compatible Lightning addresses
url: /en/newsletters/2023/11/22/#offers-compatible-ln-addresses

## Optional. Same format as "primary_sources" above
see_also:
- title: Offers
link: topic offers

## Optional. Force the display (true) or non-display (false) of stub
## topic notice. Default is to display if the page.content is below a
## threshold word count
#stub: false

## Required. Use Markdown formatting. Only one paragraph. No links allowed.
## Should be less than 500 characters
excerpt: >
**LNURL** is a set of protocols for communicating information using
URLs and HTTPS. Perhaps the most common use of LNURL is transferring
BOLT11 invoices. A related protocol is **Lightning Addresses** which
allow transforming a static identifier that looks like an RFC822 email
address into a BOLT11 invoice.
---
An upside of LNURL is their flexibility and use of widely understood
HTTP: a web developer can use their existing skills to interact with LN
clients. This allows web developers to handle business logic on the web
side of their application and only use a LN node to send and receive
payments. It also makes it easy for web developers to use LN node
capabilities in new and interesting ways, such as LNURL-based
authentication.

A downside of LNURL is that hosted LNURL services may learn information
about their users' payments and other actions. For example, many
Lightning Addresses are managed by centralized services that have the
capability to intercept payments and potentially track how much a user
receives through their Lightning Address. For this reason, alternatives
to LNURL or additional layers on top of it have been proposed.

{% include references.md %}
{% include linkers/issues.md issues="" %}
2 changes: 2 additions & 0 deletions _topics/en/offers.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ aliases:
## schema for options
categories:
- Lightning Network
- Invoicing
- Wallet Collaboration Tools

## Required. Use Markdown formatting. Only one paragraph. No links allowed.
## Should be less than 500 characters
Expand Down