Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 41ED1C0011 for ; Mon, 21 Feb 2022 13:16:21 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 1B65B4015A for ; Mon, 21 Feb 2022 13:16:21 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1BFUKbAzi_SP for ; Mon, 21 Feb 2022 13:16:19 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-yw1-x1131.google.com (mail-yw1-x1131.google.com [IPv6:2607:f8b0:4864:20::1131]) by smtp2.osuosl.org (Postfix) with ESMTPS id 9C74640117 for ; Mon, 21 Feb 2022 13:16:19 +0000 (UTC) Received: by mail-yw1-x1131.google.com with SMTP id 00721157ae682-2d07ae0b1bfso137438687b3.6 for ; Mon, 21 Feb 2022 05:16:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=Igikw/hLsIjJuLAF2nwfNtlIrKbPVEGIb70R71m1Ou0=; b=TkCJC9oG+deoh3QwMtFOdOmyq/fQPkY+TpfybW1+pG65/kISdtn0wY/LNbHwZfoMP6 990maNBQFUy/kbUg20IwACHrNQH6Bpj8WIKdits2T/ayp5JNAofX5plPQAwHBV92tjek gA6Vzo3fU9gGn1s3KXCCyn2D2ZeDTTtSUDbK9HHc/w5ajfJ9DUe+dtFtVv3synG5QX9X MAuE5PmueXH1ybD1d0G22vys2+M05Aq5T5IHN6M3XGxIc2hz0WKEJfrRasMZKFXgDz2a hgAiLJDfctwHUhzvmGrqJXjTkNkn1uu44686PYOsKC19p+tyecnQV4ri/lHS5PZd21bi h+oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Igikw/hLsIjJuLAF2nwfNtlIrKbPVEGIb70R71m1Ou0=; b=F8qppyrGtth027jbGT/QRIyM9Sy6lHbXS6xv39ZMUSAomyL2PKJc934eZUVdtU/xlP V5ep9y1XAmanC+FgXzM5Nxlf3ctcptDKDEIkjxyjOgFpLNBqACvFvLuHkCWm+cUP77RQ QB8dZMsu7U2PLeSnqBeiLXJJ+qQ/+vXSaDDWBVRFKKpATlbm8d1au5WTsswgWWR/iTHe fyua+efiIuzgtLhQ5kvCJVNQt/dr7tGjL+JHiGLYE+uumVBw35bO1FHeHgtNcqn3LIre sbo/j+All2ZJCNXQq8TjCQ8QYuDEQboJR0y7r1469+Q+sHJKgdnUXvvXUVQWbvigHkjc hUOA== X-Gm-Message-State: AOAM531wfqwePrEmd7UBffVqcmm3mab03L4sBGJg5FflZCblxDto3drd dp9+mbI6ZnkKtX1a+Py17wlok69Wdvly0mfyHVKAK9r7y8c= X-Google-Smtp-Source: ABdhPJzFl1dPMeAQv9HJ++r5XwV3f5Yp0pw7a6fxsrqpG+1F1IR7/eGy+OxQgj04mq49YLD1HDDH88528R3jnX7MifY= X-Received: by 2002:a81:f611:0:b0:2cf:aa3c:ab17 with SMTP id w17-20020a81f611000000b002cfaa3cab17mr13315536ywm.410.1645449378290; Mon, 21 Feb 2022 05:16:18 -0800 (PST) MIME-Version: 1.0 From: Antoine Riard Date: Mon, 21 Feb 2022 08:16:06 -0500 Message-ID: To: Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="000000000000b05ef505d8870928" X-Mailman-Approved-At: Mon, 21 Feb 2022 14:17:43 +0000 Subject: [bitcoin-dev] A Dive into CoinPool : Bitcoin Balances for Billions X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Feb 2022 13:16:21 -0000 --000000000000b05ef505d8870928 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, We (Gleb+ me) would like to present the following of our research on payment pools [0]. Abstract: CoinPool is a new multi-party construction to improve Bitcoin onboarding and transactional scaling by orders of magnitude. CoinPool allows many users to share a UTXO and make instant off-chain transfers inside the UTXO while allowing withdrawals at any time without permission from other users. In-pool accounts can be used for advanced protocols (e.g., payment channels). Connecting them to other CoinPool instances, or even to the Lightning Network, makes in-pool funds highly liquid. CoinPool construction relies on SIGHASH_GROUP, SIGHASH_ANYPREVOUT and OP_MERKLESUB changes to Bitcoin. It also assumes a high degree of interactivity between pool participants. CoinPool provides an interesting alternative to the LN: it allows locking more people in a single UTXO and potentially lets them stay in the same UTXO for longer. In the end, this expands Bitcoin payment throughput, via better use of the block space. CoinPool accounts can be also plugged into the LN, making them complementary and benefiting from each other. CoinPool explores what can be achieved with covenants, lately explored by a few of us. It is exploration =E2=80=9Cin-depth=E2=80=9D: what kind of proto= col could be achieved by Merkle tree subtraction check. We hope this work can inform thinking on future softforks. We think the 7.9 billion people could be distributed across 1000-sized CoinPool instances. Assuming perfect cooperation among the participant, a liquidity exhaustion rate of 6 months and a refulfillment footprint of 100 inputs (at 106 bytes each), 167 GB of blockchain space would be required by year to enable everyone in the world to transact on Bitcoin in a non-custodial fashion, unless one order of magnitude beyond the current block size. By fine-tuning the pools off-chain sustainability parameters further, it is realistic to think to satisfy current full-node validation requirements, thus preserving the decentralization of the network. . We're eager to hear everyone's feedback, what we missed, what can be improved. We hope the ideas presented sound interesting to the community. If so, we acknowledge it will likely take a decade of patient engineering before we see mature payment pools in the wild. The paper is available here : https://coinpool.dev/v0.1.pdf [1] The OP_MERKLESUB and SIGASH_GROUP BIPs are available here: https://github.com/ariard/bips/blob/coinpool-bips/bip-group.mediawiki https://github.com/ariard/bips/blob/coinpool-bips/bip-merklesub.mediawiki The code for the pool withdraw tree is available here: https://github.com/ariard/bitcoin/tree/2022-02-coinpool-withdraw The transaction/scripts formats for the CoinPool transaction are available here: https://gist.github.com/ariard/713ce396281163337c175d9122163e8f Sincerely, Gleb & Antoine PS: Thanks to the reviewers. [0] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-June/017964.ht= ml [1] Always have a backup plan in Bitcoin : https://github.com/coinpool-dev/paper/blob/master/coinpool-v0.1.pdf --000000000000b05ef505d8870928 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

We (Gleb+ me) would like to present the followi= ng of our research on payment pools [0].

Abstract:

CoinPool i= s a new multi-party construction to improve Bitcoin onboarding and transact= ional scaling by orders of magnitude.
CoinPool allows many users to shar= e a UTXO and make instant off-chain transfers inside the UTXO while allowin= g withdrawals at any time without permission from other users.
In-pool a= ccounts can be used for advanced protocols (e.g., payment channels). Connec= ting them to other CoinPool instances, or even to the Lightning Network, ma= kes in-pool funds highly liquid.
CoinPool construction relies on SIGHASH= _GROUP, SIGHASH_ANYPREVOUT and OP_MERKLESUB changes to Bitcoin. It also ass= umes a high degree of interactivity between pool participants.

CoinP= ool provides an interesting alternative to the LN: it allows locking more p= eople in a single UTXO and potentially lets them stay in the same UTXO for = longer. In the end, this expands Bitcoin payment throughput, via better use= of the block space.
CoinPool accounts can be also plugged into the LN, = making them complementary and benefiting from each other.

CoinPool e= xplores what can be achieved with covenants, lately explored by a few of us= . It is exploration =E2=80=9Cin-depth=E2=80=9D: what kind of protocol could= be achieved by Merkle tree subtraction check.
We hope this work can inf= orm thinking on future softforks.

We think the 7.9 billion people co= uld be distributed across 1000-sized CoinPool instances. Assuming perfect c= ooperation among the participant, a liquidity exhaustion rate of 6 months a= nd a refulfillment footprint of 100 inputs (at 106 bytes each), 167 GB of b= lockchain space would be required by year to enable everyone in the world t= o transact on Bitcoin in a non-custodial fashion, unless one order of magni= tude beyond the current block size. By fine-tuning the pools off-chain sust= ainability=C2=A0 parameters further, it is realistic to think to satisfy cu= rrent full-node validation requirements, thus preserving the decentralizati= on of the network.
.
We're eager to hear everyone's feed= back, what we missed, what can be improved. We hope the ideas presented sou= nd interesting to the community. If so, we acknowledge it will likely take = a decade of patient engineering before we see mature payment pools in the w= ild.

The paper is available here :
https://coinpool.dev/v0.1.pdf [1]

The OP_MERKL= ESUB and SIGASH_GROUP BIPs are available here:
https://github.com= /ariard/bips/blob/coinpool-bips/bip-group.mediawiki
https= ://github.com/ariard/bips/blob/coinpool-bips/bip-merklesub.mediawiki
The code for the pool withdraw tree is available here:
https://gi= thub.com/ariard/bitcoin/tree/2022-02-coinpool-withdraw

The trans= action/scripts formats for the CoinPool transaction are available here:
= https://gist.github.com/ariard/713ce396281163337c175d9122163e8f
Sincerely,
Gleb & Antoine

PS: Thanks to the reviewers.
[0] https://lists.linuxfoundation.org/pipermail/bitcoin-de= v/2020-June/017964.html
[1] Always have a backup plan in Bitcoin : <= a href=3D"https://github.com/coinpool-dev/paper/blob/master/coinpool-v0.1.p= df">https://github.com/coinpool-dev/paper/blob/master/coinpool-v0.1.pdf=
--000000000000b05ef505d8870928--