Return-Path: Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 26366C001A for ; Mon, 28 Feb 2022 14:56:15 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 070DC8142E for ; Mon, 28 Feb 2022 14:56:15 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.099 X-Spam-Level: X-Spam-Status: No, score=-2.099 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, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: smtp1.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=tutanota.de Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LGnqcpuMJB1o for ; Mon, 28 Feb 2022 14:56:13 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 Received: from w1.tutanota.de (w1.tutanota.de [81.3.6.162]) by smtp1.osuosl.org (Postfix) with ESMTPS id 7F88081443 for ; Mon, 28 Feb 2022 14:56:13 +0000 (UTC) Received: from w3.tutanota.de (unknown [192.168.1.164]) by w1.tutanota.de (Postfix) with ESMTP id 3DB4BFBF564 for ; Mon, 28 Feb 2022 14:56:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1646060171; s=s1; d=tutanota.de; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:Sender; bh=lUB2kJKAi6wCfNvxDT+Bno/5Ve3kf2YzsKoFEPB2xDU=; b=mNKqgzvBgikiNG+e/BDxd2eiTITCzMwjVrNwi+rrlACjwG2j08k/cEqcL6XlUBD8 hbc841GzW9pv4VSP5NBiedjJXnVRIUr1wcO1HtDKwh7ihWRPsecN0anCLKdnYF0cDCh IAlEb7z+bdLzGPRMCuX+xNEVz2LIQv8UF4w018VJSNbbPwv+8cO0VPgBeERbsiy+ZgZ lv9a5Rxqh5BQNTZzT+jf+H4l2v68+apiFE4SrCLs13v3RcyAt5b+T8sAjvIIwTIw5Gk IHXDb9OfUwqHwgdKCkoPS1fZzqq4eDc2IvP/zWHpVAZE94ZHcEz7v2fvODjVQUzSVdM lYJ4QjYK6g== Date: Mon, 28 Feb 2022 15:56:11 +0100 (CET) From: Prayank To: Bitcoin Dev Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_429697_1794254631.1646060171234" X-Mailman-Approved-At: Mon, 28 Feb 2022 16:02:59 +0000 Subject: [bitcoin-dev] Decentralized BIP 47 payment code directory 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, 28 Feb 2022 14:56:15 -0000 ------=_Part_429697_1794254631.1646060171234 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hello World, There was some discussion about BIP 47 on twitter recently: https://twitter.com/BitcoinQ_A/status/1356177927285714946 BIP 47 improves privacy however there are a few reasons why its less used: 1.Some developers consider it spams Bitcoin without improving anything: https://twitter.com/LukeDashjr/status/1280475865827151878 2.Paynym (a centralized directory managed by Samourai) and Samourai wallet is the only implementation used for BIP 47 right now. Centralized payment code directory isn't good for privacy and security. There can be few other important issues which I missed in this email. I have few ideas to solve these 2 problems with the use of TXT records and domains. Since buying domain, managing DNS etc. is mostly centralized I won't share the example using normal DNS. Below proof of concept uses GNS (GNU Name Service): ``` Payment code for Alice: PM8TJggVVXFKAmfkjnA1CQcrSbGScUKRsVohpfMpSM56f6jg5uQTPJvNS1wKDGV17d9NWLqoVzsJ8qURqpUECmSFLcUuC4g3aMtoXp2fChY1ZEqzG16f Start GNUnet: gnunet-arm -s Create identity: gnunet-identity -C alice Check public key: gnunet-identity -d alice - 000G005XCTRJ0DJGPVPNY66GAY52C61KA8A7CA92PKT51PHNVWY9JF8WB4 - ECDSA Add payment code as TXT record which expires in 90 days: gnunet-namestore -z alice -a -e "90 d" -p -t TXT -n pay -V "PM8TJTLJbPRGxSbc8EJi42Wrr6QbNSaSSVJ5Y3E4pbCYiTHUskHg13935Ubb7q8tx9GVbh2UuRnBc3WSyJHhUrw8KhprKnn9eDznYGieTzFcwQRya4GA" Check payment code: gnunet-gns -t TXT -u pay.alice pay.alice: Got `TXT' record: PM8TJTLJbPRGxSbc8EJi42Wrr6QbNSaSSVJ5Y3E4pbCYiTHUskHg13935Ubb7q8tx9GVbh2UuRnBc3WSyJHhUrw8KhprKnn9eDznYGieTzFcwQRya4GA ``` Similarly notification transaction can be replaced with `gnunet-publish`. Nostr is still a work in progress and I think it could also be used for such things in future. Everything looks achievable and involves basic things but we still see people posting their bitcoin address on social media to get donations. Related: Q&A: https://bitcoin.stackexchange.com/questions/106971/how-to-accept-donation-correctly/ New proposal: https://gist.github.com/Kixunil/0ddb3a9cdec33342b97431e438252c0a -- Prayank A3B1 E430 2298 178F ------=_Part_429697_1794254631.1646060171234 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello World,

Th= ere was some discussion about BIP 47 on twitter recently: https://twitter.c= om/BitcoinQ_A/status/1356177927285714946

BIP 47 improves privacy however there are a few reasons why its less us= ed:

1.Some developer= s consider it spams Bitcoin without improving anything: https://twitter.com= /LukeDashjr/status/1280475865827151878

2.Paynym (a centralized directory managed by Samourai) a= nd Samourai wallet is the only implementation used for BIP 47 right now. Ce= ntralized payment code directory isn't good for privacy and security.

There can be few other im= portant issues which I missed in this email. I have few ideas to solve thes= e 2 problems with the use of TXT records and domains. Since buying domain, = managing DNS etc. is mostly centralized I won't share the example using nor= mal DNS. Below proof of concept uses GNS (GNU Name Service):

```
Payment code for Alice: PM8TJggVVXFKAmfkjnA1CQcrSb= GScUKRsVohpfMpSM56f6jg5uQTPJvNS1wKDGV17d9NWLqoVzsJ8qURqpUECmSFLcUuC4g3aMtoX= p2fChY1ZEqzG16f

Star= t GNUnet:

gnunet-ar= m -s

Create identity= :

gnunet-identity -C= alice

Check public = key:

gnunet-identity= -d

alice - 000G005X= CTRJ0DJGPVPNY66GAY52C61KA8A7CA92PKT51PHNVWY9JF8WB4 - ECDSA

Add payment code as TXT record which= expires in 90 days:

gnunet-namestore -z alice -a -e "90 d" -p -t TXT -n pay -V "PM8TJTLJbPRGxS= bc8EJi42Wrr6QbNSaSSVJ5Y3E4pbCYiTHUskHg13935Ubb7q8tx9GVbh2UuRnBc3WSyJHhUrw8K= hprKnn9eDznYGieTzFcwQRya4GA"

Check payment code:

gnunet-gns -t TXT -u pay.alice

pay.alice:
Got `TXT' record= : PM8TJTLJbPRGxSbc8EJi42Wrr6QbNSaSSVJ5Y3E4pbCYiTHUskHg13935Ubb7q8tx9GVbh2Uu= RnBc3WSyJHhUrw8KhprKnn9eDznYGieTzFcwQRya4GA

=
```

Similarly notification transaction can be replaced with `gnunet-p= ublish`. Nostr is still a work in progress and I think it could also be use= d for such things in future. Everything looks achievable and involves basic= things but we still see people posting their bitcoin address on social med= ia to get donations.

Related:

Q&A: h= ttps://bitcoin.stackexchange.com/questions/106971/how-to-accept-donation-co= rrectly/
New proposal: https://gist.github.com/K= ixunil/0ddb3a9cdec33342b97431e438252c0a


--
Prayank
=
A3B1 E430 2298 178F
------=_Part_429697_1794254631.1646060171234--