Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 12A442F for ; 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 ; Sat, 29 Jun 2019 05:54:01 +0000 (UTC) Received: by mail-wr1-f49.google.com with SMTP id p11so8293635wre.7 for ; 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 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 Jun 2019 22:53:59 -0700 (PDT) From: Tamas Blummer 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 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 = --Apple-Mail=_6966DAA7-0226-4B47-BBDE-E8014BD42EE9 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; 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
= --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--