summaryrefslogtreecommitdiff
path: root/06/816be581825d9f1281e8d4e7b160b6ce8c7314
blob: a566aaf1e72859937d4921289caab0c9b19771b1 (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
Return-Path: <tamas.blummer@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 12A442F
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 29 Jun 2019 05:54:03 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com
	[209.85.221.49])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id C23F92C6
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 29 Jun 2019 05:54:01 +0000 (UTC)
Received: by mail-wr1-f49.google.com with SMTP id p11so8293635wre.7
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 28 Jun 2019 22:54:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
	h=from:mime-version:subject:message-id:date:to;
	bh=v6nhFRLUxfti+Xg5ciGB02EeRd11Xw2YX/PYXgQ1Vew=;
	b=P89y9u+8h83eyfwEO1fezonfLZcFcDDuHSpD7LHyWwMVyjFLzPhFozTywQFrpRILPa
	tbQB7xGeqDYl1Dt4mO3x9y0n3oY5Xz6cMonCHcci19049HTQsg9zTLdUfyCFikG80NJl
	++BfvDAphLzKn+CMR+SgooB+ne05iOxVsyQLsPaZgYVbOuDBIZqEBfoYKb6Xo5E1xJP8
	OHjmmVkQtqAQaIoI8lmTVTffSvqX6efLnOuQnZ6LxqUyfUReuTufVBEDFt9uwctSJvZr
	DD4x5L7IrmVdU37kOxdQPCiA75fybon5vkCDIJhAOm2r/3TONC/SYHH+mfcT+a8FoyAL
	fW6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:from:mime-version:subject:message-id:date:to;
	bh=v6nhFRLUxfti+Xg5ciGB02EeRd11Xw2YX/PYXgQ1Vew=;
	b=CP8RAeDRzxotusmfD+hxXRPDBDrRORw1LDxBgO02bMN4uDfNbY4TVL5qKjNwuBAzOA
	0lUni/3i2mgz1CvbdrdmQ/tYxrksrWSDyLU8ZkIx9xkjL5L63cPwjY+aAfH4KNGBts5m
	brKjci6RmCweePf49zc32pXH2cwT/22AqArlxa5arEVpXVXRkHJt0vqty0TsJbUZ8BWn
	9fnWKsVFmtOam0KHA8MFsIvhhQPHhAVtJyHB7FIheU1ND0r9PNkZDjECzSCSlSBd36HB
	QDFPlfnsuF4VUVuL9b4Mg9QqMzEesP7qTv2az17ct0Ge7Yqj/bgR1oUkLPo6xKf9sDld
	6C6Q==
X-Gm-Message-State: APjAAAUTW2fpjgT/HuLvieD3DM79GXAh0Q04MAXN9402auQyXQBlh1Kw
	1bxtSYtsiiyIT3fMmeO9ONOSmxvm
X-Google-Smtp-Source: APXvYqyCoFGc2bDGVjOJ8qFUxoPC5caNj8ED39cgoHWRGSA/mMH+PdpByGkx+DlOqoba9sFB3oJuTw==
X-Received: by 2002:a5d:518c:: with SMTP id k12mr10532311wrv.322.1561787640160;
	Fri, 28 Jun 2019 22:54:00 -0700 (PDT)
Received: from p200300dd6712645440cf41c9eae14e3e.dip0.t-ipconnect.de
	(p200300DD6712645440CF41C9EAE14E3E.dip0.t-ipconnect.de.
	[2003:dd:6712:6454:40cf:41c9:eae1:4e3e])
	by smtp.gmail.com with ESMTPSA id
	x83sm4524369wmb.42.2019.06.28.22.53.59
	for <bitcoin-dev@lists.linuxfoundation.org>
	(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 28 Jun 2019 22:53:59 -0700 (PDT)
From: Tamas Blummer <tamas.blummer@gmail.com>
Content-Type: multipart/signed;
	boundary="Apple-Mail=_05ED2CAE-02FA-42F2-82B0-04638939F790";
	protocol="application/pgp-signature"; micalg=pgp-sha512
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Message-Id: <7856AC5A-D2AD-4C94-99BC-AA0F948E2B40@gmail.com>
Date: Sat, 29 Jun 2019 07:53:57 +0200
To: Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
X-Mailer: Apple Mail (2.3273)
X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE,
	RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
X-Mailman-Approved-At: Sat, 29 Jun 2019 06:20:23 +0000
Subject: [bitcoin-dev] Generalized covenant to implement side chains
 embedded into the bitcoin block chain
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol 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: Sat, 29 Jun 2019 05:54:03 -0000


--Apple-Mail=_05ED2CAE-02FA-42F2-82B0-04638939F790
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_6966DAA7-0226-4B47-BBDE-E8014BD42EE9"


--Apple-Mail=_6966DAA7-0226-4B47-BBDE-E8014BD42EE9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

I introduced you to gerneralized covenants[1] earlier, but in a domain =
specific context that de-routed us from technical discussion. Let me =
demonstrate the concept in a more generic use:

A covenant

or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) covenant =
drop)

would put a coin under the alternative control of a Transfer and Exit =
keys together with the script in control of the current owner.
Additional transaction level validations of transactions spending input =
with covenants apply as in [1]

Owner of such coins would be able to transfer them to others provided an =
addtional Transfer signature, in which case the coin remains encumbered =
with the same covenant.
If Exit and owner signs the covenant is dropped on the output, it =
becomes a plain Bitcoin again.

The Thransfer and Exit signatures could be threshold signatures of a =
federation, whereby member decide if the proposed transfer transaction =
complies with whatever unique rules they impose.

The result is a federated side chain embedded into the Bitcoin block =
chain.

Bob could purchase some asset guarded by the federation with a =
transaction:

Inputs
100.0001 pk(Bob)

Outputs
0.1 or(and(pk(Transfer), pk(Bob)), and(pk(Exit), pk(Bob)) covenant =
or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) covenant =
drop)
99.9 pk(Transfer)

Transfer to Alice with consent of the transfer validators:

Inputs
0.1 or(and(pk(Transfer), pk(Bob)), and(pk(Exit), pk(Bob)) covenant =
or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) covenant =
drop)
100.001 pk(Alice)

Outputs
0.1 or(and(pk(Transfer), pk(Alice)), and(pk(Exit), pk(Alice)) covenant =
or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) covenant =
drop)
100 pk(Bob)

Alice might be approved to exit with the exit signature of the =
federation:

Inputs
0.1 or(and(pk(Transfer), pk(Alice)), and(pk(Exit), pk(Alice)) covenant =
or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) covenant =
drop)
99.9 pk(Transfer)

Outputs
99.9999 pk(Alice)

Tamas Blummer
[1] =
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-June/017059.h=
tml =
<https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-June/017059.=
html>

--Apple-Mail=_6966DAA7-0226-4B47-BBDE-E8014BD42EE9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">I introduced you to gerneralized covenants[1] earlier, but in =
a domain specific context that de-routed us from technical discussion. =
Let me demonstrate the concept in a more generic use:<div class=3D""><br =
class=3D""></div><div class=3D"">A covenant&nbsp;</div><div class=3D""><br=
 class=3D""></div><div class=3D"">or(and(pk(Transfer), _) covenant =
transitive, and(pk(Exit),_) covenant drop)&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">would put a coin under the alternative =
control of a Transfer and Exit keys together with the script in control =
of the current owner.&nbsp;</div><div class=3D"">Additional transaction =
level validations of transactions spending input with covenants apply as =
in [1]</div><div class=3D""><br class=3D""></div><div class=3D"">Owner =
of such coins would be able to transfer them to others provided an =
addtional Transfer signature, in which case the coin remains encumbered =
with the same covenant.</div><div class=3D"">If Exit and owner signs the =
covenant is dropped on the output, it becomes a plain Bitcoin =
again.</div><div class=3D""><br class=3D""></div><div class=3D"">The =
Thransfer and Exit signatures could be threshold signatures of a =
federation, whereby member decide if the proposed transfer transaction =
complies with whatever unique rules they impose.&nbsp;</div><div =
class=3D""><br class=3D""></div><div class=3D"">The result is a =
federated side chain embedded into the Bitcoin block chain.</div><div =
class=3D""><br class=3D""></div><div class=3D"">Bob could purchase some =
asset guarded by the federation with a transaction:</div><div =
class=3D""><br class=3D""></div><div class=3D"">Inputs<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span></div><div class=3D"">100.0001 pk(Bob)</div><div class=3D""><br =
class=3D""></div><div class=3D"">Outputs</div><div class=3D"">0.1 =
or(and(pk(Transfer), pk(Bob)), and(pk(Exit), pk(Bob)) covenant =
or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) covenant =
drop)&nbsp;</div><div class=3D"">99.9&nbsp;pk(Transfer)</div><div =
class=3D""><br class=3D""></div><div class=3D""><div class=3D"">Transfer =
to Alice with consent of the transfer validators:</div><div class=3D""><br=
 class=3D""></div><div class=3D"">Inputs</div><div class=3D"">0.1 =
or(and(pk(Transfer), pk(Bob)), and(pk(Exit), pk(Bob)) covenant =
or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) covenant =
drop)&nbsp;</div><div class=3D"">100.001 pk(Alice)</div><div =
class=3D""><br class=3D""></div><div class=3D"">Outputs</div><div =
class=3D"">0.1 or(and(pk(Transfer), pk(Alice)), and(pk(Exit), pk(Alice)) =
covenant or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) =
covenant drop)&nbsp;</div><div class=3D"">100 pk(Bob)</div><div =
class=3D""><br class=3D""></div><div class=3D"">Alice might be approved =
to exit with the exit signature of the federation:</div><div =
class=3D""><br class=3D""></div><div class=3D"">Inputs</div><div =
class=3D"">0.1 or(and(pk(Transfer), pk(Alice)), and(pk(Exit), pk(Alice)) =
covenant or(and(pk(Transfer), _) covenant transitive, and(pk(Exit),_) =
covenant drop)&nbsp;</div><div class=3D"">99.9 pk(Transfer)</div><div =
class=3D""><br class=3D""></div><div class=3D"">Outputs</div><div =
class=3D"">99.9999 pk(Alice)</div><div class=3D""><br =
class=3D""></div><div class=3D"">Tamas Blummer</div><div =
class=3D"">[1]&nbsp;<a =
href=3D"https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-June/=
017059.html" =
class=3D"">https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-Ju=
ne/017059.html</a></div></div></body></html>=

--Apple-Mail=_6966DAA7-0226-4B47-BBDE-E8014BD42EE9--

--Apple-Mail=_05ED2CAE-02FA-42F2-82B0-04638939F790
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEE6YNJViYMM6Iv5f9e9nKRxRdxORwFAl0W/PUACgkQ9nKRxRdx
ORxU+Af/Wvx3J668Fwxw3qU0Y+H0af9dPogSeM1kuasD4CMkwBHdoZZTTDBNPjXp
WFUfT0dsjI1nbN86PTyeePAHzz0VBCH4X8bwH8fRo00duykmqHszsVX97giiQlJ1
YMx+1cev3RGYERS89l7HyKG4rwwKppIZv/GHV8WA0cULeN60Tjc5aCKfZgB3lUTA
+pqoUF5rXBbG9boXBdhuIPDnny0RMU2dLVcIAlQQIq2FmZz2kXvBfdL5NgnUDyg6
/CeQm1hkMzJB9YjG3sZh+G+rbAvDXoELzql93pGaL9RBS6t+clWtRwqG1GVSffvr
sdazsBtNI6eYZl7yS0q4zwpSDs/mzQ==
=V+7f
-----END PGP SIGNATURE-----

--Apple-Mail=_05ED2CAE-02FA-42F2-82B0-04638939F790--