From 805adc39173316eeb3fd3f973e0ec8c25130495a Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Sat, 27 Apr 2024 08:05:38 -0400 Subject: [PATCH] Add a post on FCMP(++)s Requested by dEBRUYNE. --- _posts/2024-04-27-fcmps.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 _posts/2024-04-27-fcmps.md diff --git a/_posts/2024-04-27-fcmps.md b/_posts/2024-04-27-fcmps.md new file mode 100644 index 00000000..67ac634d --- /dev/null +++ b/_posts/2024-04-27-fcmps.md @@ -0,0 +1,31 @@ +--- +layout: post +title: Full-Chain Membership Proofs Development +summary: A CCS to develop Full-Chain Membership Proofs has been successfully funded. +tags: [crypto, community] +author: Luke "Kayaba" Parker +--- + +Full-Chain Membership Proofs, as a concept, is a replacement for rings within the Monero protocol. While rings have offered sender privacy to Monero since it launched, they're vulnerable to attacks such as the [EAE attack](https://www.youtube.com/watch?v=iABIcsDJKyM&list=PLsSYUeVwrHBnAUre2G_LYDsdo-tD0ov-y&index=9&pp=iAQB), [have difficulties upon chain reorganzations](https://www.youtube.com/watch?v=6CVcirD90pg&list=PLsSYUeVwrHBnAUre2G_LYDsdo-tD0ov-y&index=4&pp=iAQB), and in general enable statistical analysis (mitigated by distribution of the decoy selection algorithm). Full-Chain Membership Proofs prove the output spent is one of _any_ output on the chain, effectively removing all of these risks. This means every input goes from an immediate anonymity set of 16 to 100,000,000. + +Two proposals have been made for Monero offering such privacy, both under the "Full-Chain Membership Proofs" moniker (further mentions acronymed to "FCMPs"). The first was announced at [MoneroKon in 2023](https://www.youtube.com/watch?v=vrCAiLPfXlg), and was intended to be deployed with/after [Seraphis](https://www.getmonero.org/2021/12/22/what-is-seraphis.html). Seraphis distinguished between "membership", the output spent is one of some outputs, and "spend authorization", the output being spent is authorized by the private key holder. With that, much more efficient proofs for membership became possible, including the "Grootle" proofs it was originally proposed with (effectively a ring of 128). FCMPs further improved upon this, requiring Seraphis's new key/transaction format to do so. + +The second proposal was made in March of 2024 in response to the spam attacks ongoing at the time. "FCMPs+SA+L", later shortened to simply "FCMP++s", independently adds "Spend Authorization + Linkability", removing the dependency of Seraphis. With further research and development, it was found to add several new features to the Monero protocol, without requiring the migration to Seraphis. These features include, + +- Transaction Chaining + +Transaction chaining allows signing a transaction spending another transaction, before the spent transaction is published and mined on-chain. This enables certain layer-two designs for Monero (such as some payment channel protocols). + +- Outgoing View Keys + +Outgoing view keys allow anyone with the outgoing view key to detect when received outputs are spent. Currently, Monero only offers incoming view keys, which do allow detecting spends with extremely high likelihood over the current protocol, yet don't provide 100% certainty. This certainty will make cold wallet setups and multisignature wallets much more efficient, having to bring the private key online far less often. It also allows defining a single "view key", without delineation of "incoming" or "outgoing", simplifying wallet UX. + +- Forward Secrecy + +Forward secrecy means an adversary with a discrete log oracle, such as an adversary with a quantum computer, cannot break the privacy of the protocol. + +While Seraphis also introduces all of these features, it does so with a migration to a new anonymity set and a new address format (invalidating all prior addresses). The FCMP++ proposal not only aims to be faster to deploy yet to do so without the migration. This is enabled by the trade-off of not actually offering any of this functionality at launch however. + +The deployed protocol would support all of these features. The wallet code to take advantage of it would be delayed, ensuring that we keep our scope small and achieve the largest goal, full sender privacy, as soon as possible. Wallets could then start taking advantage of these features on their own timeline, without further hard forks nor privacy issues. This would likely be done by merging the Seraphis codebase into Monero, taking advantage of its years of development and improved design. With that, the migration to the new key structures would be optional, and if so, the work done for FCMP++s would provide most of the necessary work for FCMPs with Seraphis. + +FCMP++s are based off [Curve Trees](https://eprint.iacr.org/2022/756), and to make the overall proof much more efficient, [Eagen's work with elliptic curve divisors](https://eprint.iacr.org/2022/596). The [overall composition](https://github.com/kayabaNerve/fcmp-ringct/) has been largely specified, and is currently being reviewed and further detailed as appropriate. [The development of the composition was funded](https://ccs.getmonero.org/proposals/fcmp++-development.html), and an [earmarked fund for academic review and auditing is still raising](https://ccs.getmonero.org/proposals/fcmp++-research.html). If you are a member of the academic community and are interested in contributing, please feel free to reach out within the [Monero Research Lab on IRC or Matrix](https://www.getmonero.org/community/workgroups/).