summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Friedenbach <mark@friedenbach.org>2015-09-10 14:32:37 -0700
committerbitcoindev <bitcoindev@gnusha.org>2015-09-10 21:32:39 +0000
commit122b2fab9e29e79f1c140b307e1e4c3b1b71e9a7 (patch)
tree9be5f1fb8a2779f4e44f1d704482920c66f475ab
parent7c9827f2bad3c014ea3c7a0a6f09c167c607549a (diff)
downloadpi-bitcoindev-122b2fab9e29e79f1c140b307e1e4c3b1b71e9a7.tar.gz
pi-bitcoindev-122b2fab9e29e79f1c140b307e1e4c3b1b71e9a7.zip
Re: [bitcoin-dev] Named Bitcoin Addresses
-rw-r--r--ed/e41cb2e54597b401edd1e19782610136eb998b286
1 files changed, 286 insertions, 0 deletions
diff --git a/ed/e41cb2e54597b401edd1e19782610136eb998b b/ed/e41cb2e54597b401edd1e19782610136eb998b
new file mode 100644
index 000000000..a5592dc36
--- /dev/null
+++ b/ed/e41cb2e54597b401edd1e19782610136eb998b
@@ -0,0 +1,286 @@
+Return-Path: <mark@friedenbach.org>
+Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
+ [172.17.192.35])
+ by mail.linuxfoundation.org (Postfix) with ESMTPS id AAC9E120B
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Thu, 10 Sep 2015 21:32:39 +0000 (UTC)
+X-Greylist: whitelisted by SQLgrey-1.7.6
+Received: from mail-io0-f177.google.com (mail-io0-f177.google.com
+ [209.85.223.177])
+ by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 6EA95137
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Thu, 10 Sep 2015 21:32:38 +0000 (UTC)
+Received: by ioii196 with SMTP id i196so77014751ioi.3
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Thu, 10 Sep 2015 14:32:38 -0700 (PDT)
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:mime-version:in-reply-to:references:date
+ :message-id:subject:from:to:cc:content-type;
+ bh=J+caJ4jwUC/wWwQXsoXRlTuWXnOg88YPCbED2cUkzJY=;
+ b=kjTL4gBjiujIhB4+N/QmrbArJz2bOJi7mIPMc90ipPaYgXGsJqXm/qmWe90/11XhlI
+ QTqUg2bWA1yCzuUF8Si85pre717l77C3RoBnGicEJQBFWfazEgztdmvjIOGTJxZ7ZjZC
+ KlgJ5lOGuga98VVaYg0GQs6MtocXpz+zyk1QwmdzpqtEX/82Fb4HpwW9aB3YkTkMZOHP
+ o55GBxhaqbsK4zSk5Kz5gIlvy57x8xqhaz4HA4pvZ+vAv4H2lFgKI4v/3YPfaW4/DGgp
+ aBJgd/J505AYp+xbtExr6vWCKXttvpbGU8KMcQ21FeAPF74IYTcZRgEFZFR3nIDX+nEr
+ sCKw==
+X-Gm-Message-State: ALoCoQlRAp1j9EhlfH8mLYzH5foZ2U/RLDH+xMiuEoDBaSMrsJI6bLOf89ejep0uZmOMNKC+qwOU
+MIME-Version: 1.0
+X-Received: by 10.107.15.159 with SMTP id 31mr57287190iop.159.1441920757689;
+ Thu, 10 Sep 2015 14:32:37 -0700 (PDT)
+Received: by 10.107.135.104 with HTTP; Thu, 10 Sep 2015 14:32:37 -0700 (PDT)
+X-Originating-IP: [172.56.16.178]
+Received: by 10.107.135.104 with HTTP; Thu, 10 Sep 2015 14:32:37 -0700 (PDT)
+In-Reply-To: <CAK8x=ZUhYQXGsrxZGDMQtXu80zqrejVnb01w=8s38-HF0VLXqA@mail.gmail.com>
+References: <CAK8x=ZUhYQXGsrxZGDMQtXu80zqrejVnb01w=8s38-HF0VLXqA@mail.gmail.com>
+Date: Thu, 10 Sep 2015 14:32:37 -0700
+Message-ID: <CAOG=w-vsp6Oxx3WsjVoQ9xO41SqgUMw97h0Ba1jSd9s=KZL6wQ@mail.gmail.com>
+From: Mark Friedenbach <mark@friedenbach.org>
+To: "essofluffy ." <d.dehueck@gmail.com>
+Content-Type: multipart/alternative; boundary=001a113ee8688e8c7e051f6b567c
+X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,HTML_MESSAGE,
+ RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+ smtp1.linux-foundation.org
+Cc: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
+Subject: Re: [bitcoin-dev] Named Bitcoin Addresses
+X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
+X-Mailman-Version: 2.1.12
+Precedence: list
+List-Id: Bitcoin Development Discussion <bitcoin-dev.lists.linuxfoundation.org>
+List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
+ <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
+List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
+List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
+List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
+List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
+ <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
+X-List-Received-Date: Thu, 10 Sep 2015 21:32:39 -0000
+
+--001a113ee8688e8c7e051f6b567c
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: quoted-printable
+
+Are you aware of the payment protocol?
+On Sep 10, 2015 2:12 PM, "essofluffy . via bitcoin-dev" <
+bitcoin-dev@lists.linuxfoundation.org> wrote:
+
+> Hi Everyone,
+>
+> An issue I'm sure everyone here is familiar with is the problem concernin=
+g
+> the fact that Bitcoin addresses are too complex to memorize and share.
+> Current Bitcoin addresses can be very intimidating to new users. As Bitco=
+in
+> grows it's necessary to provide a much more user friendly experience to t=
+he
+> end user. I think that having the capability to assign a unique name to a
+> Bitcoin address is in the best interest of Bitcoin and it's users.
+> I've recently come up with a method for assigning a unique name to a
+> specific Bitcoin address. I'm looking to get some feedback/criticism on
+> this method that I have detailed below.
+>
+> Let=E2=80=99s run through Bob and Alice transacting with a Named Bitcoin =
+Address.
+> Bob wants to collect a payment from Alice for a service/good he is
+> selling, but Alice wants to pay from her home computer where she securely
+> keeps all her Bitcoin. So now Bob needs to give Alice his Bitcoin address
+> and because Bob is using a Named Bitcoin Address and a supported wallet h=
+e
+> can give her an easy to memorize and hard to mess up address. Bob=E2=80=
+=99s address
+> is simply =E2=80=98SendBitcoinsToBob=E2=80=99 which can easily be written=
+ down or
+> memorized. Now Alice can go home send the Bitcoin from her own supported
+> wallet and be positive that she sent it to Bob.
+>
+> Let=E2=80=99s look at how Bob=E2=80=99s supported wallet made that addres=
+s.
+>
+> First Bob let=E2=80=99s his wallet know that he wants to create a new add=
+ress. In
+> response, his wallet simply asks him what he wants that address to be
+> named. Bob then enters =E2=80=98SendBitcoinsToBob=E2=80=99 as his preferr=
+ed address name.
+> The wallet then let=E2=80=99s Bob know if his preferred address name is a=
+vailable.
+> If it=E2=80=99s available the name is broadcasted to the network and read=
+y to use.
+>
+> Now let=E2=80=99s get a little more technical.
+>
+> When Bob inputs his preferred address name the client has to make sure
+> this name hasn=E2=80=99t been taken or else who knows where Alice will be=
+ sending
+> her Bitcoins. The client does this by referencing a downloaded =E2=80=9Cd=
+irectory=E2=80=9D
+> of names chosen by people using this system. This directory of names are
+> transactions sent to an address without a private key (but still viewable
+> on the blockchain) with the name appended to the transactions as an
+> OP_RETURN output. These transactions are downloaded or indexed, depending
+> on whether or not the wallet contains the full Blockchain or is an SPV
+> wallet. Because of such a large amount of possible address names a binary
+> search method is used to search through all this data efficiently. The
+> names could be sorted in two ways, the first being the first character an=
+d
+> the second being the total length of the name (I will being exploring
+> additional methods to make this process more efficient). So now that Bob=
+=E2=80=99s
+> client has verified that the name has not been taken and is valid (valid
+> meaning it's under 35 bytes long and only using chars 0-9 and a-z) it sen=
+ds
+> a transaction of 1 satoshi and a small fee to the address without a priva=
+te
+> key as talked about earlier. The transaction's OP_RETURN output consists =
+of
+> two parts. The implementation version of this method (up to 8 characters)
+> and the name itself (up to 32 characters). Once the transaction is
+> broadcasted to the network and confirmed the name is ready to be used.
+>
+> Let=E2=80=99s look at how Alice=E2=80=99s supported wallet sends her Bitc=
+oin to Bob=E2=80=99s
+> Named Bitcoin Address.
+>
+> When Alice enters in Bob=E2=80=99s address, =E2=80=98SendBitcoinsToBob=E2=
+=80=99 Alice=E2=80=99s client
+> references the same =E2=80=9Cdirectory=E2=80=9D as Bob only on her device=
+ and searches for
+> the OP_RETURN output of =E2=80=98SendBitcoinsToBob=E2=80=99 using a very =
+similar binary
+> search method as used for the verification of the availability of an
+> address name. If a name isn=E2=80=99t found the client would simply retur=
+n an
+> error. If the name is found then the client will pull the information of
+> that transaction and use the address it was sent from as the address to
+> send the Bitcoin to.
+>
+> Essentially what this idea describes is a method to assign a name to a
+> Bitcoin address in a way that is completely verifiable and independent of=
+ a
+> third party.
+>
+> Please ask your questions and provide feedback.
+>
+> - Devin
+>
+>
+> _______________________________________________
+> bitcoin-dev mailing list
+> bitcoin-dev@lists.linuxfoundation.org
+> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
+>
+>
+
+--001a113ee8688e8c7e051f6b567c
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: quoted-printable
+
+<p dir=3D"ltr">Are you aware of the payment protocol?</p>
+<div class=3D"gmail_quote">On Sep 10, 2015 2:12 PM, &quot;essofluffy . via =
+bitcoin-dev&quot; &lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.o=
+rg">bitcoin-dev@lists.linuxfoundation.org</a>&gt; wrote:<br type=3D"attribu=
+tion"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
+eft:1px #ccc solid;padding-left:1ex"><font size=3D"2"><span style=3D"backgr=
+ound-color:rgba(255,255,255,0)">Hi Everyone,=C2=A0</span></font><div><font =
+size=3D"2"><span style=3D"background-color:rgba(255,255,255,0)"><br></span>=
+</font></div><div><font size=3D"2"><span style=3D"background-color:rgba(255=
+,255,255,0)">An issue I&#39;m sure everyone here is familiar with is the pr=
+oblem concerning the fact that=C2=A0Bitcoin addresses are too complex=C2=A0=
+to memorize and share. Current Bitcoin addresses can be very intimidating t=
+o new users. As Bitcoin grows it&#39;s necessary to provide a much more use=
+r friendly experience to the end user. I think that having the capability t=
+o assign a unique=C2=A0name to a Bitcoin address is in the best interest of=
+ Bitcoin and it&#39;s users.<br></span></font></div><div><font size=3D"2"><=
+span style=3D"background-color:rgba(255,255,255,0)">I&#39;ve recently come =
+up with a method for assigning a unique name to a specific Bitcoin address.=
+ I&#39;m looking to get some feedback/criticism on this method that I have =
+detailed below.</span></font></div><div><font size=3D"2"><span style=3D"bac=
+kground-color:rgba(255,255,255,0)"><br></span></font></div><div><font size=
+=3D"2"><span style=3D"background-color:rgba(255,255,255,0)">Let=E2=80=99s r=
+un through Bob and Alice transacting with a=C2=A0Named Bitcoin Address.</sp=
+an></font></div><div><font size=3D"2"><span style=3D"background-color:rgba(=
+255,255,255,0)">Bob wants to collect a payment from Alice for a service/goo=
+d he is selling, but Alice wants to pay from her home computer where she se=
+curely keeps all her Bitcoin. So now Bob needs to give Alice his Bitcoin ad=
+dress and because Bob is using a Named Bitcoin Address and a=C2=A0supported=
+ wallet he can give her an easy to memorize and hard to mess up address. Bo=
+b=E2=80=99s address is simply =E2=80=98SendBitcoinsToBob=E2=80=99 which can=
+ easily be written down or memorized. Now Alice can go home send the Bitcoi=
+n from her own supported wallet and be positive that she sent it to Bob.</s=
+pan></font></div><div><font size=3D"2"><span style=3D"background-color:rgba=
+(255,255,255,0)"><br></span></font></div><div><font size=3D"2"><span style=
+=3D"background-color:rgba(255,255,255,0)">Let=E2=80=99s look at how Bob=E2=
+=80=99s supported wallet made that address.</span></font></div><div><font s=
+ize=3D"2"><span style=3D"background-color:rgba(255,255,255,0)"><br></span><=
+/font></div><div><font size=3D"2"><span style=3D"background-color:rgba(255,=
+255,255,0)">First Bob let=E2=80=99s his wallet know that he wants to create=
+ a new address. In response, his wallet simply asks him what he wants that =
+address to be named. Bob then enters =E2=80=98SendBitcoinsToBob=E2=80=99 as=
+ his preferred address name. The wallet then let=E2=80=99s Bob know if his =
+preferred address name is available. If it=E2=80=99s available the name is =
+broadcasted to the network and ready to use.</span></font></div><div><font =
+size=3D"2"><span style=3D"background-color:rgba(255,255,255,0)"><br></span>=
+</font></div><div><font size=3D"2"><span style=3D"background-color:rgba(255=
+,255,255,0)">Now let=E2=80=99s get a little more technical.</span></font></=
+div><div><font size=3D"2"><span style=3D"background-color:rgba(255,255,255,=
+0)"><br></span></font></div><div><font size=3D"2"><span style=3D"background=
+-color:rgba(255,255,255,0)">When Bob inputs his preferred address name the =
+client has to make sure this name hasn=E2=80=99t been taken or else who kno=
+ws where Alice will be sending her Bitcoins. The client does this by refere=
+ncing a downloaded =E2=80=9Cdirectory=E2=80=9D of names chosen by people us=
+ing this system. This directory of names are transactions sent to an addres=
+s without a private key (but still viewable on the blockchain) with the nam=
+e appended to the transactions as an OP_RETURN output. These transactions=
+=C2=A0are=C2=A0downloaded or indexed, depending on whether or not the walle=
+t contains the full Blockchain or is an SPV wallet. Because of such a large=
+ amount of possible address names a binary search method is used to search =
+through all this data efficiently. The names could be sorted in two ways, t=
+he first being the first character and the second being the total length of=
+ the name (I will being exploring additional methods to make this process m=
+ore efficient). So now that Bob=E2=80=99s client has verified that the name=
+ has not been taken and is valid (valid meaning it&#39;s under 35 bytes lon=
+g and only using chars 0-9 and a-z) it sends a transaction of 1 satoshi=C2=
+=A0and a small fee to the address without a private key as talked about ear=
+lier. The transaction&#39;s=C2=A0OP_RETURN output=C2=A0consists=C2=A0of two=
+ parts. The implementation version of this method=C2=A0(up to 8=C2=A0charac=
+ters) and the name itself (up to 32=C2=A0characters). Once the transaction =
+is broadcasted to the network and confirmed the name is=C2=A0ready to be us=
+ed.</span></font></div><div><font size=3D"2"><span style=3D"background-colo=
+r:rgba(255,255,255,0)"><br></span></font></div><div><font size=3D"2"><span =
+style=3D"background-color:rgba(255,255,255,0)">Let=E2=80=99s look at how Al=
+ice=E2=80=99s supported wallet sends her Bitcoin to Bob=E2=80=99s Named Bit=
+coin Address.=C2=A0</span></font></div><div><font size=3D"2"><span style=3D=
+"background-color:rgba(255,255,255,0)"><br></span></font></div><div><font s=
+ize=3D"2"><span style=3D"background-color:rgba(255,255,255,0)">When Alice e=
+nters in Bob=E2=80=99s address, =E2=80=98SendBitcoinsToBob=E2=80=99 Alice=
+=E2=80=99s client references the same =E2=80=9Cdirectory=E2=80=9D as Bob on=
+ly on her device and searches for the OP_RETURN output of =E2=80=98SendBitc=
+oinsToBob=E2=80=99 using a very similar binary search method as used for th=
+e verification of the availability of an address name. If a name isn=E2=80=
+=99t found the client would simply return an error. If the name is found th=
+en the client will pull the information of that transaction and use the add=
+ress it was sent from as the address to send the Bitcoin to.</span></font><=
+/div><div><font size=3D"2"><span style=3D"background-color:rgba(255,255,255=
+,0)"><br></span></font></div><div><font size=3D"2"><span style=3D"backgroun=
+d-color:rgba(255,255,255,0)">Essentially what this idea=C2=A0describes=C2=
+=A0is a method to assign a name to a Bitcoin address in a way that is compl=
+etely verifiable and independent of a third party.</span></font></div><div>=
+<font size=3D"2"><span style=3D"background-color:rgba(255,255,255,0)"><br><=
+/span></font></div><div><font size=3D"2"><span style=3D"background-color:rg=
+ba(255,255,255,0)">Please ask your questions and provide feedback.</span></=
+font></div><div><font size=3D"2"><span style=3D"background-color:rgba(255,2=
+55,255,0)"><br></span></font></div><div><font size=3D"2"><span style=3D"bac=
+kground-color:rgba(255,255,255,0)">- Devin</span></font></div><div><font si=
+ze=3D"2"><span style=3D"background-color:rgba(255,255,255,0)">=C2=A0</span>=
+</font></div>
+<br>_______________________________________________<br>
+bitcoin-dev mailing list<br>
+<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.=
+linuxfoundation.org</a><br>
+<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
+rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.org/mail=
+man/listinfo/bitcoin-dev</a><br>
+<br></blockquote></div>
+
+--001a113ee8688e8c7e051f6b567c--
+