summaryrefslogtreecommitdiff
path: root/00/fef39bb1f2522b7ec41ac041839090032b7856
blob: 5d19e6fee871da8a7af28e36510b6cb5fedb227b (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
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
Return-Path: <kristovatlas.lists@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 307D8120A
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 11 Sep 2015 15:13:20 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-ob0-f175.google.com (mail-ob0-f175.google.com
	[209.85.214.175])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 213CF1AD
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 11 Sep 2015 15:13:19 +0000 (UTC)
Received: by obbda8 with SMTP id da8so62715151obb.1
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 11 Sep 2015 08:13:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=TbR7+7WGi5VGkoxwmzNiwwX/v5xJVcToASidCE7akkk=;
	b=bcxKcpeuZkFrRGKgImucUY1JQvjf2onnko4D7F3IVZ5fw7M/e0FK9NOcqAm+ILIJtz
	HdjYJskM34MPFYc7yhcFBCLUvumfZa1YyDCGgJguJ4RspJsNcZLRIfJmzVEL/7JZHc5H
	jFOLdas75QLaCDSX6GOi0qIJGzV8B3A+GlH8A3zo9lviXFCIk0tiRwTMs/1qpikQs/nZ
	R5uqyMpM5qBLEmjARUiL6EK3yr4+CsztlNq+LMV/w5T5ebRJkD/OLZbobh8PUXikUJWp
	7hayjgvTGKSWDMtB7nTIXJsABGXnVwairGqr+0ckk1XzdzldH/QXx4v18/v9e89IruB9
	Ii5Q==
MIME-Version: 1.0
X-Received: by 10.182.120.72 with SMTP id la8mr37599144obb.7.1441984398564;
	Fri, 11 Sep 2015 08:13:18 -0700 (PDT)
Received: by 10.202.183.215 with HTTP; Fri, 11 Sep 2015 08:13:18 -0700 (PDT)
In-Reply-To: <CAOG=w-vsp6Oxx3WsjVoQ9xO41SqgUMw97h0Ba1jSd9s=KZL6wQ@mail.gmail.com>
References: <CAK8x=ZUhYQXGsrxZGDMQtXu80zqrejVnb01w=8s38-HF0VLXqA@mail.gmail.com>
	<CAOG=w-vsp6Oxx3WsjVoQ9xO41SqgUMw97h0Ba1jSd9s=KZL6wQ@mail.gmail.com>
Date: Fri, 11 Sep 2015 11:13:18 -0400
Message-ID: <CAGH37SKyw6hoJaL2bOHChFikW6R9T49rXxL=hCgjndjyuVAwLA@mail.gmail.com>
From: Kristov Atlas <kristovatlas.lists@gmail.com>
To: Mark Friedenbach <mark@friedenbach.org>
Content-Type: multipart/alternative; boundary=089e013a0778d9235f051f7a27ef
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
Cc: 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: Fri, 11 Sep 2015 15:13:20 -0000

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

I applaud your brainstorming efforts! :) But I dislike just about
everything about this proposal.

Bitcoin addresses should never be reused, for privacy and security reasons
documented extensively online.

I definitely do not want my computer to maintain a registry of every
address in the world any more than I want to maintain a list of all email
addresses, web addresses, etc. This cannot be scaled and is wasteful since
most participants in the network don't need to transact.

If we need naming conventions, I'd rather see a name registry system
off-chain attached to bip47 reusable payment codes.

-Kr
On Sep 10, 2015 5:32 PM, "Mark Friedenbach via bitcoin-dev" <
bitcoin-dev@lists.linuxfoundation.org> wrote:

> 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
>> concerning the fact that Bitcoin addresses are too complex to memorize a=
nd
>> 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=
 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 securel=
y
>> keeps all her Bitcoin. So now Bob needs to give Alice his Bitcoin addres=
s
>> 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 simply =E2=80=98SendBitcoinsToBob=E2=80=99 which can easily be writte=
n 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 addre=
ss.
>>
>> First Bob let=E2=80=99s his wallet know that he wants to create a new ad=
dress. 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 prefer=
red 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 rea=
dy 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 b=
e sending
>> her Bitcoins. The client does this by referencing a downloaded =E2=80=9C=
directory=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 viewabl=
e
>> on the blockchain) with the name appended to the transactions as an
>> OP_RETURN output. These transactions are downloaded or indexed, dependin=
g
>> 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 binar=
y
>> 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 a=
nd
>> 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 se=
nds
>> a transaction of 1 satoshi and a small fee to the address without a priv=
ate
>> 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 Bit=
coin 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 devic=
e 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 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.
>>
>> 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 o=
f 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
>>
>>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
>

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

<div dir=3D"ltr"><p dir=3D"ltr">I applaud your brainstorming efforts! :) Bu=
t I dislike just about everything about this proposal.</p>
<p dir=3D"ltr">Bitcoin addresses should never be reused, for privacy and se=
curity reasons documented extensively online. </p>
<p dir=3D"ltr">I definitely do not want my computer to maintain a registry =
of every address in the world any more than I want to maintain a list of al=
l email addresses, web addresses, etc. This cannot be scaled and is wastefu=
l since most participants in the network don&#39;t need to transact. </p>
<p dir=3D"ltr">If we need naming conventions, I&#39;d rather see a name reg=
istry system off-chain attached to bip47 reusable payment codes. </p>
<p dir=3D"ltr">-Kr</p>
<div class=3D"gmail_quote">On Sep 10, 2015 5:32 PM, &quot;Mark Friedenbach =
via bitcoin-dev&quot; &lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundati=
on.org" target=3D"_blank">bitcoin-dev@lists.linuxfoundation.org</a>&gt; wro=
te:<br type=3D"attribution"><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir=3D"ltr">A=
re 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" target=3D"_blank">bitcoin-dev@lists.linuxfoundation.org</a>&gt; wrote:<=
br type=3D"attribution"><blockquote class=3D"gmail_quote" style=3D"margin:0=
 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font size=3D"2"><sp=
an style=3D"background-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,2=
55,0)"><br></span></font></div><div><font size=3D"2"><span style=3D"backgro=
und-color:rgba(255,255,255,0)">An issue I&#39;m sure everyone here is famil=
iar with is the problem concerning the fact that=C2=A0Bitcoin addresses are=
 too complex=C2=A0to memorize and share. Current Bitcoin addresses can be v=
ery intimidating to new users. As Bitcoin grows it&#39;s necessary to provi=
de a much more user friendly experience to the end user. I think that havin=
g the capability to assign a unique=C2=A0name to a Bitcoin address is in th=
e 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 specifi=
c Bitcoin address. I&#39;m looking to get some feedback/criticism on this m=
ethod that I have detailed below.</span></font></div><div><font size=3D"2">=
<span style=3D"background-color:rgba(255,255,255,0)"><br></span></font></di=
v><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 with a=C2=A0Named Bit=
coin Address.</span></font></div><div><font size=3D"2"><span style=3D"backg=
round-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 pay from her home comp=
uter where she securely keeps all her Bitcoin. So now Bob needs to give Ali=
ce his Bitcoin address 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 me=
ss 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 h=
ome 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"ba=
ckground-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 l=
ook at how Bob=E2=80=99s supported wallet made that address.</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)">First Bob let=E2=80=99s his wallet know that h=
e wants to create a new address. In response, his wallet simply asks him wh=
at he wants that address to be named. Bob then enters =E2=80=98SendBitcoins=
ToBob=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 avail=
able 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,25=
5,0)"><br></span></font></div><div><font size=3D"2"><span style=3D"backgrou=
nd-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 st=
yle=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 take=
n or else who knows where Alice will be sending her Bitcoins. The client do=
es this by referencing a downloaded =E2=80=9Cdirectory=E2=80=9D of names ch=
osen by people using this system. This directory of names are transactions =
sent to an address without a private key (but still viewable on the blockch=
ain) with the name appended to the transactions as an OP_RETURN output. The=
se transactions=C2=A0are=C2=A0downloaded or indexed, depending on whether o=
r 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 verifie=
d that the name has not been taken and is valid (valid meaning it&#39;s und=
er 35 bytes long and only using chars 0-9 and a-z) it sends a transaction o=
f 1 satoshi=C2=A0and a small fee to the address without a private key as ta=
lked about earlier. The transaction&#39;s=C2=A0OP_RETURN output=C2=A0consis=
ts=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 th=
e transaction is broadcasted to the network and confirmed the name is=C2=A0=
ready to be used.</span></font></div><div><font size=3D"2"><span style=3D"b=
ackground-color:rgba(255,255,255,0)"><br></span></font></div><div><font siz=
e=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 her 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></di=
v><div><font size=3D"2"><span style=3D"background-color: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 similar binary search method =
as used for the verification of the availability of an address name. If a n=
ame isn=E2=80=99t found the client would simply return an error. If the nam=
e is found then the client will pull the information of that transaction an=
d 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:rgb=
a(255,255,255,0)"><br></span></font></div><div><font size=3D"2"><span style=
=3D"background-color:rgba(255,255,255,0)">Essentially what this idea=C2=A0d=
escribes=C2=A0is a method to assign a name to a Bitcoin address in a way th=
at is completely verifiable and independent of a third party.</span></font>=
</div><div><font size=3D"2"><span style=3D"background-color:rgba(255,255,25=
5,0)"><br></span></font></div><div><font size=3D"2"><span style=3D"backgrou=
nd-color:rgba(255,255,255,0)">Please ask your questions and provide feedbac=
k.</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 s=
tyle=3D"background-color:rgba(255,255,255,0)">- Devin</span></font></div><d=
iv><font size=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" target=3D"_blank">=
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>
<br>_______________________________________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">=
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>
</div>

--089e013a0778d9235f051f7a27ef--