summaryrefslogtreecommitdiff
path: root/0f/2204c669844831e199a592d5713c30349f65b5
blob: 291c651e6739bf32cf0f336f1e1cb338403ed30c (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
Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193]
	helo=mx.sourceforge.net)
	by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <mh.in.england@gmail.com>) id 1XAclW-0003O4-AI
	for bitcoin-development@lists.sourceforge.net;
	Fri, 25 Jul 2014 10:30:18 +0000
Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.218.47 as permitted sender)
	client-ip=209.85.218.47; envelope-from=mh.in.england@gmail.com;
	helo=mail-oi0-f47.google.com; 
Received: from mail-oi0-f47.google.com ([209.85.218.47])
	by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1XAclV-0003tN-1k
	for bitcoin-development@lists.sourceforge.net;
	Fri, 25 Jul 2014 10:30:18 +0000
Received: by mail-oi0-f47.google.com with SMTP id x69so3178058oia.34
	for <bitcoin-development@lists.sourceforge.net>;
	Fri, 25 Jul 2014 03:30:11 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.60.134.136 with SMTP id pk8mr20914322oeb.81.1406284211498;
	Fri, 25 Jul 2014 03:30:11 -0700 (PDT)
Sender: mh.in.england@gmail.com
Received: by 10.76.35.234 with HTTP; Fri, 25 Jul 2014 03:30:11 -0700 (PDT)
In-Reply-To: <53D1AF6C.7010802@gmail.com>
References: <53D1AF6C.7010802@gmail.com>
Date: Fri, 25 Jul 2014 12:30:11 +0200
X-Google-Sender-Auth: cezLy-c33Vajke1RywROu6fN8IA
Message-ID: <CANEZrP2N6zf7RUtPzA+7-X5+UKBmrY-D_8Md+_=8nssoFNng9A@mail.gmail.com>
From: Mike Hearn <mike@plan99.net>
To: Ron OHara <ron.ohara54@gmail.com>
Content-Type: multipart/alternative; boundary=047d7b471c2ee1336f04ff020e8c
X-Spam-Score: -0.5 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(mh.in.england[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	1.0 HTML_MESSAGE           BODY: HTML included in message
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1XAclV-0003tN-1k
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Time
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Fri, 25 Jul 2014 10:30:18 -0000

--047d7b471c2ee1336f04ff020e8c
Content-Type: text/plain; charset=UTF-8

>
> Ok... 'time' on the blockchain could be 'gamed' ... but with great
> difficulty.


Unfortunately not: miners have in the past routinely gamed the timestamp in
order to use it as an extra nonce and squeeze some more gigahashes out of
their hardware/pool.

Also remember that currently the chain could be dominated by a coalition of
just two pools.


> An application presented with a fake blockchain can use
> quite a few heuristics to test the 'validity' of the block chain.
>

The app cannot tell if it was given a truncated chain. You could keep such
an app stuck in the past forever. This is often a problem.


> Reliable 'time' has been impossible up until now - because you need to
> trust the time source, and that can always be faked.  Using the
> blockchain as an approximate time source gives you a world wide
> consensus without direct trust of any player.
>

Much though I hate to be a party pooper, you could currently get
Bitcoin-level trusted time by just polling at least two or three
independent servers e.g. google.com, baidu.cn, yandex.ru    (they all serve
time via HTTPS headers).

If we crack the mining decentralisation problem then this argument becomes
a lot stronger, but for now ......


> So if this presumption is correct, then we can now build time capsule
> applications that can not be tricked into exposing their contents too
> early by running them in a virtual environment with the wrong system time.


If you have a tamper resistant execution environment (TXT, SGX, Flicker
etc) then yes. However trusted execution environments sometimes have tamper
resistant clocks as well for exactly this reason. So whether this technique
makes sense depends a lot on the details of your configuration, I think.

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

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex">Ok... &#39;time&#39; on the blockchain could be =
&#39;gamed&#39; ... but with great<br>

difficulty.</blockquote><div><br></div><div>Unfortunately not: miners have =
in the past routinely gamed the timestamp in order to use it as an extra no=
nce and squeeze some more gigahashes out of their hardware/pool.</div>
<div><br></div><div>Also remember that currently the chain could be dominat=
ed by a coalition of just two pools.</div><div>=C2=A0</div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex">
 An application presented with a fake blockchain can use<br>
quite a few heuristics to test the &#39;validity&#39; of the block chain.<b=
r></blockquote><div><br></div><div>The app cannot tell if it was given a tr=
uncated chain. You could keep such an app stuck in the past forever. This i=
s often a problem.</div>
<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">Reliable &#39;time&#39; has=
 been impossible up until now - because you need to<br>
trust the time source, and that can always be faked. =C2=A0Using the<br>
blockchain as an approximate time source gives you a world wide<br>
consensus without direct trust of any player.<br></blockquote><div><br></di=
v><div>Much though I hate to be a party pooper, you could currently get Bit=
coin-level trusted time by just polling at least two or three independent s=
ervers e.g. <a href=3D"http://google.com">google.com</a>, <a href=3D"http:/=
/baidu.cn">baidu.cn</a>, <a href=3D"http://yandex.ru">yandex.ru</a> =C2=A0 =
=C2=A0(they all serve time via HTTPS headers).</div>
<div><br></div><div>If we crack the mining decentralisation problem then th=
is argument becomes a lot stronger, but for now ......</div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:=
1px #ccc solid;padding-left:1ex">
So if this presumption is correct, then we can now build time capsule<br>
applications that can not be tricked into exposing their contents too<br>
early by running them in a virtual environment with the wrong system time.<=
/blockquote><div><br></div><div>If you have a tamper resistant execution en=
vironment (TXT, SGX, Flicker etc) then yes. However trusted execution envir=
onments sometimes have tamper resistant clocks as well for exactly this rea=
son. So whether this technique makes sense depends a lot on the details of =
your configuration, I think.</div>
</div></div></div>

--047d7b471c2ee1336f04ff020e8c--