<oembed><type>rich</type><version>1.0</version><author_name>npub18xqykhf26udeq2nyk98ee0a5q4w3s2f75m405a6zswpdy573lxeqmhg6zk</author_name><author_url>https://nostr.ae/npub18xqykhf26udeq2nyk98ee0a5q4w3s2f75m405a6zswpdy573lxeqmhg6zk</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-01-14&#xA;📝 Original message:Hello Peter et. al.&#xA;&#xA;As I read more into this stealth discussion I am curious to know what you&#xA;think of the background microdonation concept I posted recently.&#xA;&#xA;It is shown in full here&#xA;http://sourceforge.net/mailarchive/message.php?msg_id=31837430&#xA;&#xA;Given the lengthy nature of the concept as presented I would be happy to&#xA;distill it further, but I am interested in your thoughts as to the idea&#xA;generally and how to further present it.&#xA;&#xA;-Odinn&#xA;&#xA;&gt; On Mon, Jan 13, 2014 at 01:13:08AM -0800, Jeremy Spilman wrote:&#xA;&gt;&gt; It&#39;s a given this will be implemented for Payment Protocol. The question&#xA;&gt;&gt; is whether it&#39;s also usable outside of PP.&#xA;&gt;&#xA;&gt; I think what stealth addresses is showing is that the concept of an&#xA;&gt; address being &#34;instructions on how to generate a txout/tx that results&#xA;&gt; in me getting Bitcoins&#34; is actually quite valuable; it and&#xA;&gt; BIP32-derivation addresses with chaincodes are pretty clear cases where&#xA;&gt; just replacing address with scriptPubKey isn&#39;t sufficient.&#xA;&gt;&#xA;&gt;&gt; I was kind of imagining that we could encourage people to replace all&#xA;&gt;&gt; their static address text that live on Github pages, and README.me, and&#xA;&gt;&gt; forum signatures, etc. with new &#39;href=bitcoin:xSTL...&#39; URIs. Convention&#xA;&gt;&gt; could be to require only transporting xSTL addresses within a URI, even&#xA;&gt;&gt; going so far as to not support them copy/pasted. 101 characters is not&#xA;&gt;&gt; much longer (and sometimes shorter) than PaymentRequest URIs end up&#xA;&gt;&gt; being.&#xA;&gt;&#xA;&gt; Yeah, I don&#39;t see anything wrong with stealth addresses whatever length&#xA;&gt; they wind up being. It&#39;s a good intermediate step, and without them&#xA;&gt; people will just pass around unsigned payment requests and other stuff.&#xA;&gt;&#xA;&gt;&gt; I think there are ways to make stealth addresses easy enough to use that&#xA;&gt;&gt; people actually prefer using them for P2P payments which do not involve&#xA;&gt;&gt; a&#xA;&gt;&gt; full-stack merchant. In that case, if it was a PaymentRequest it would&#xA;&gt;&gt; almost certainly not be signed, and would be more easily shared over&#xA;&gt;&gt; email&#xA;&gt;&gt; or SMS as a URI than as a file attachment or, even worse, putting the&#xA;&gt;&gt; unsigned PR file up on a third-party server which probably won&#39;t do a&#xA;&gt;&gt; good&#xA;&gt;&gt; job securing it.&#xA;&gt;&#xA;&gt; At the DarkWallet hackathon we had discussed how to integrate stealth&#xA;&gt; addresses into OpenPGP keys as a new user id type for instance, and&#xA;&gt; similarly into x.509 certs.&#xA;&gt;&#xA;&gt; The big advantage here is the identity of *who* you are paying is&#xA;&gt; important, not just &#34;I got this signed payment request&#34;. Basically the&#xA;&gt; concept becomes &#34;identity signed payment address&#34; and the signature&#xA;&gt; binding the identity to the address is a one time and offline thing; an&#xA;&gt; issue with the payment protocol as it stands is that it encourages&#xA;&gt; signing keys to be kept online to issue payment requests. If you have a&#xA;&gt; scheme where the private keys that bound the identity to the address can&#xA;&gt; be kept offline you&#39;re much better off, because the attacker can only&#xA;&gt; create a fake payment request, they can&#39;t divert the funds to&#xA;&gt; themselves.&#xA;&gt;&#xA;&gt; So with that in mind, I strongly suggest sticking with defining a&#xA;&gt; reasonable stealth address spec. But when you do, keep in mind that you&#xA;&gt; may want to upgrade it in the future, preferably in a backwards&#xA;&gt; compatible way. Also, it shouldn&#39;t be limited to exactly 2-of-2&#xA;&gt; CHECKMULTISIG, there&#39;s no reason why n and m can&#39;t be picked as needed.&#xA;&gt; Sure, it means the addresses are not fixed length, but for something&#xA;&gt; that is mostly an internal detail and only occasionally visible to&#xA;&gt; advanced users, I see no issues there.&#xA;&gt;&#xA;&gt; Along those lines: what would a BIP32 chain code address look like? What&#xA;&gt; happens when you want to use that with a multisig-protected wallet?&#xA;&gt;&#xA;&gt;&gt; * PP Implementation Overview *&#xA;&gt;&gt;&#xA;&gt;&gt; The basic PaymentRequest&gt;PaymentDetails is expecting &#39;output&#39; containing&#xA;&gt;&gt; one or more TxOuts with script and amount. I believe the general&#xA;&gt;&gt; approach&#xA;&gt;&gt; is to put a fallback address into &#39;output&#39; for backward compatibility,&#xA;&gt;&gt; and&#xA;&gt;&gt; put Q and Q2 into an extension field.&#xA;&gt;&gt;&#xA;&gt;&gt; So we add a new optional field to PaymentDetails which contains the one&#xA;&gt;&gt; or&#xA;&gt;&gt; two PubKeys. Not sure if we want different protobuf tags, or if the&#xA;&gt;&gt; difference in length of the value makes it obvious enough which approach&#xA;&gt;&gt; is being used;&#xA;&gt;&gt;&#xA;&gt;&gt;     optional bytes stealthOnePubKey = 1000&#xA;&gt;&gt;     optional bytes stealthTwoPubKey = 1001&#xA;&gt;&#xA;&gt; I think you&#39;re missing the bigger picture here, not least of which is&#xA;&gt; that backwards compatibility is a bit of a misnomer for an unreleased&#xA;&gt; standard. :)&#xA;&gt;&#xA;&gt; Why put this into the PaymentDetails? That a stealth address is to be&#xA;&gt; used for the payment is a property of the outputs being requested, not&#xA;&gt; the payment itself. We&#39;re better off if that goes into the Output&#xA;&gt; message, and further more it suggests that the Output message shouldn&#39;t&#xA;&gt; contain raw scriptPubKey&#39;s but rather addresses. After all, IsStandard()&#xA;&gt; means we have to inspect the scriptPubKey to see if we can even pay to&#xA;&gt; what the sender is requesting.&#xA;&gt;&#xA;&gt; Once you establish that it&#39;s addresses that Outputs specify, then it&#39;s&#xA;&gt; easy enough to make a stealth address type, or a BIP32-chain-code&#xA;&gt; address type, or whatever else comes up in the future.&#xA;&gt;&#xA;&gt;&#xA;&gt;&gt; Also, ideally I think I would want multiple different stealth payments&#xA;&gt;&gt; within a single wallet to the same merchant / pubkeys to be identifiable&#xA;&gt;&gt; as such.&#xA;&gt;&#xA;&gt; Agreed.&#xA;&gt;&#xA;&gt; --&#xA;&gt; &#39;peter&#39;[:-1]@petertodd.org&#xA;&gt; 00000000bda8ab55740699711a11572c4eec9dc9f714e4896559aac310a115ff&#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; CenturyLink Cloud: The Leader in Enterprise Cloud Services.&#xA;&gt; Learn Why More Businesses Are Choosing CenturyLink Cloud For&#xA;&gt; Critical Workloads, Development Environments &amp; Everything In Between.&#xA;&gt; Get a Quote or Start a Free Trial Today.&#xA;&gt; http://pubads.g.doubleclick.net/gampad/clk?id=119420431&amp;iu=/4140/ostg.clktrk_______________________________________________&#xA;&gt; Bitcoin-development mailing list&#xA;&gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt;</html></oembed>