summaryrefslogtreecommitdiff
path: root/3d/49dbc6e4409c66347ddfbba38695ea5081c0a3
blob: 25e4ff629e2527c2e5e2ab0b21feaf55aa14793f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
Return-Path: <d.dehueck@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id A8EB112FE
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu, 10 Sep 2015 21:12:31 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-yk0-f170.google.com (mail-yk0-f170.google.com
	[209.85.160.170])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 4F79528C
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu, 10 Sep 2015 21:12:30 +0000 (UTC)
Received: by ykdu9 with SMTP id u9so72436447ykd.2
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu, 10 Sep 2015 14:12:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=rNH2I/v0CfjBK8p3YYH68InJ7P11s1c3oe4ww8D9vyM=;
	b=c35w5Fmnvhg3116tfJcDuW6vhFJxgkI2kbRUTMMzM5sZlQEsH0iCRFFp/SMhZwqvl1
	mF0PIZXKntEzQlMIl/khceHn+iPYBclBB5iCGBrHUmHLPtfE9zb0DdHajbAJneBgwCUD
	Mli8zQobh77/LjPFXYt1xupepYfmJI8kEi11573+MLtH2clKZBhhWJO5sm6rZmF1D9ec
	fmLBFnHRD29XqW+BCvf4IwIyMNDxVjqsrJWek03pdO6rRn1n0/k6D+i4ED+LMWE4TOh8
	PYtOMCf4TeQCCW6aK1RtWfu1kHSHMTrlmOYiX3OR3W+WuXHpC+n6hvoF1sR4gtvoMLh0
	G9mA==
MIME-Version: 1.0
X-Received: by 10.129.114.86 with SMTP id n83mr39085947ywc.43.1441919549552;
	Thu, 10 Sep 2015 14:12:29 -0700 (PDT)
Received: by 10.13.226.150 with HTTP; Thu, 10 Sep 2015 14:12:29 -0700 (PDT)
Date: Thu, 10 Sep 2015 16:12:29 -0500
Message-ID: <CAK8x=ZUhYQXGsrxZGDMQtXu80zqrejVnb01w=8s38-HF0VLXqA@mail.gmail.com>
From: "essofluffy ." <d.dehueck@gmail.com>
To: bitcoin-dev@lists.linuxfoundation.org
Content-Type: multipart/alternative; boundary=001a11473b908bc0b1051f6b0e55
X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,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
Subject: [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:12:31 -0000

--001a11473b908bc0b1051f6b0e55
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Everyone,

An issue I'm sure everyone here is familiar with is the problem concerning
the fact that Bitcoin addresses are too complex to memorize and share.
Current Bitcoin addresses can be very intimidating to new users. As Bitcoin
grows it's necessary to provide a much more user friendly experience to the
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 Ad=
dress.
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 he can give her
an easy to memorize and hard to mess up address. Bob=E2=80=99s address is s=
imply
=E2=80=98SendBitcoinsToBob=E2=80=99 which can easily be written down or mem=
orized. 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 address.

First Bob let=E2=80=99s his wallet know that he wants to create a new addre=
ss. 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 ava=
ilable.
If it=E2=80=99s available the name is broadcasted to the network and ready =
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 sendin=
g her
Bitcoins. The client does this by referencing a downloaded =E2=80=9Cdirecto=
ry=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 and
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 sends
a transaction of 1 satoshi and a small fee to the address without a private
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 Bitcoi=
n 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 a=
nd searches for
the OP_RETURN output of =E2=80=98SendBitcoinsToBob=E2=80=99 using a very si=
milar 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 return =
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

--001a11473b908bc0b1051f6b0e55
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<font size=3D"2"><span style=3D"background-color:rgba(255,255,255,0)">Hi Ev=
eryone,=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"><s=
pan style=3D"background-color:rgba(255,255,255,0)">An issue I&#39;m sure ev=
eryone here is familiar with is the problem concerning the fact that=C2=A0B=
itcoin addresses are too complex=C2=A0to memorize and share. Current Bitcoi=
n addresses can be very intimidating to new users. As Bitcoin grows it&#39;=
s necessary to provide a much more user friendly experience to the end user=
. I think that having the capability to assign a unique=C2=A0name to a Bitc=
oin address is in the best interest of Bitcoin and it&#39;s users.<br></spa=
n></font></div><div><font size=3D"2"><span style=3D"background-color:rgba(2=
55,255,255,0)">I&#39;ve recently come up with a method for assigning a uniq=
ue 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><d=
iv><font size=3D"2"><span style=3D"background-color:rgba(255,255,255,0)"><b=
r></span></font></div><div><font size=3D"2"><span style=3D"background-color=
:rgba(255,255,255,0)">Let=E2=80=99s run through Bob and Alice transacting w=
ith a=C2=A0Named Bitcoin Address.</span></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/good he is selling, but Alice wants to pa=
y from her home computer where she securely keeps all her Bitcoin. So now B=
ob needs to give Alice his Bitcoin address and because Bob is using a Named=
 Bitcoin Address and a=C2=A0supported wallet he can give her an easy to mem=
orize 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.</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)">Let=E2=80=99s look at how Bob=E2=80=99s supported wallet made that add=
ress.</span></font></div><div><font size=3D"2"><span style=3D"background-co=
lor:rgba(255,255,255,0)"><br></span></font></div><div><font size=3D"2"><spa=
n style=3D"background-color:rgba(255,255,255,0)">First Bob let=E2=80=99s hi=
s wallet know that he wants to create a new address. In response, his walle=
t 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 wall=
et 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"><s=
pan 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><fon=
t 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 has=
n=E2=80=99t been taken or else who knows where Alice will be sending her Bi=
tcoins. The client does this by referencing a downloaded =E2=80=9Cdirectory=
=E2=80=9D of names chosen by people using this system. This directory of na=
mes are transactions sent to an address without a private key (but still vi=
ewable on the blockchain) with the name appended to the transactions as an =
OP_RETURN output. These transactions=C2=A0are=C2=A0downloaded or indexed, d=
epending 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 bin=
ary 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 and =
the second being the total length of the name (I will being exploring addit=
ional 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 (val=
id meaning it&#39;s under 35 bytes long and only using chars 0-9 and a-z) i=
t sends a transaction of 1 satoshi=C2=A0and a small fee to the address with=
out a private key as talked about earlier. The transaction&#39;s=C2=A0OP_RE=
TURN output=C2=A0consists=C2=A0of two parts. The implementation version of =
this method=C2=A0(up to 8=C2=A0characters) and the name itself (up to 32=C2=
=A0characters). Once the transaction is broadcasted to the network and conf=
irmed the name is=C2=A0ready to be used.</span></font></div><div><font size=
=3D"2"><span style=3D"background-color:rgba(255,255,255,0)"><br></span></fo=
nt></div><div><font size=3D"2"><span style=3D"background-color:rgba(255,255=
,255,0)">Let=E2=80=99s look at how Alice=E2=80=99s supported wallet sends h=
er Bitcoin to Bob=E2=80=99s Named Bitcoin 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 size=3D"2"><span style=3D"background-co=
lor:rgba(255,255,255,0)">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 simila=
r 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 retu=
rn 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.</span></font></div><div><font size=3D"2"><span style=
=3D"background-color:rgba(255,255,255,0)"><br></span></font></div><div><fon=
t size=3D"2"><span style=3D"background-color:rgba(255,255,255,0)">Essential=
ly what this idea=C2=A0describes=C2=A0is a method to assign a name to a Bit=
coin address in a way that is completely verifiable and independent of a th=
ird party.</span></font></div><div><font size=3D"2"><span style=3D"backgrou=
nd-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)">Please ask your quest=
ions and provide feedback.</span></font></div><div><font size=3D"2"><span s=
tyle=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)">- Dev=
in</span></font></div><div><font size=3D"2"><span style=3D"background-color=
:rgba(255,255,255,0)">=C2=A0</span></font></div>

--001a11473b908bc0b1051f6b0e55--