Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 56ADA414 for ; Thu, 13 Jul 2017 00:00:29 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-qt0-f177.google.com (mail-qt0-f177.google.com [209.85.216.177]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id D8310AC for ; Thu, 13 Jul 2017 00:00:28 +0000 (UTC) Received: by mail-qt0-f177.google.com with SMTP id i2so25789882qta.3 for ; Wed, 12 Jul 2017 17:00:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=rldDsvQWkRipqHsAF+51TsvAT1qlcxx7v9NEitI5clw=; b=c9eN8TeVIXq0mxBQZZUiDAwtVvJ/7byIzIT3604qyWj0CkNg4xH1ty57JeApJRmRms 6UjhIUdZHDo1isfeGVko0f5vnygjcgwTxoOqNW/D/oIZLrdKS7RI0ZzmQSLUuVT0dSUV m4o38T4yxg0OnCtThliz+38WXZy6IQ+yv7QV7QN4ut2Rmjn15+aDnrltRe3kEx86IqBR 1LRSdpEnrmzitkLaK/SbaXuXkPqnXu2HfkfhQJU661sun6mMZ87RNhyyaQe6IUnMaeDi YMaq0udTUZuWmq36CKcSxCxFsCNZdZlPOjYZCujh+3rZ8JBvI8AVMwwAHzhL8spSZzkM IB3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=rldDsvQWkRipqHsAF+51TsvAT1qlcxx7v9NEitI5clw=; b=DJl9ZF6EI2rsMtx25S3RYiIWWuvvbYb5zEpIRsBZvOFORxR1VLlIhMl9T3nVriVLf+ RcIQhnsFFGMzwxtpLp2MFpQUYxSONVX+x8QyiHSUgC3us4Yawxoa827045VhdMq5AN0L JHyMka7Kaum9aEFV5WPZv7QQJRqYqfq2TDENAXPch6LiFpHfr6azhb0Fbx+Rwfuk3fMY OuxMv4ZlcuqjFXhGfmytSnEi15uZdkyzuuu5TEZSELjdxa55P3TRAwAaQJOR9cNVxAdG Gu2lGOt5MXW0gM52O27af9T6mGGDOf7kaC7gwcEVGzL3ekSbpin0qRh1ulMpp+tN0Cq5 MxHQ== X-Gm-Message-State: AIVw112QOEfRq94jj10/HBTWx6cx1gbDUvZx0cSE8RMWamtPhzbMr5mB 4KlWGaclwryKNQ== X-Received: by 10.200.9.55 with SMTP id t52mr1444111qth.107.1499904027498; Wed, 12 Jul 2017 17:00:27 -0700 (PDT) Received: from [192.168.1.104] (ool-45726efb.dyn.optonline.net. [69.114.110.251]) by smtp.googlemail.com with ESMTPSA id q40sm3213022qtf.42.2017.07.12.17.00.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Jul 2017 17:00:26 -0700 (PDT) To: Chris Stewart , Bitcoin Protocol Discussion , Russell O'Connor References: <2f2e6b7c-2d47-518a-5a8f-0b5333607aac@gmail.com> <98d35291-5948-cb06-c46a-9d209276cee2@gmail.com> From: Paul Sztorc Message-ID: <7fc82c47-c03a-f489-55c2-b7d6830c1a74@gmail.com> Date: Wed, 12 Jul 2017 20:00:29 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------7706548FCFD2FF1F5F7FE708" Content-Language: en-US X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Thu, 13 Jul 2017 00:05:18 +0000 Subject: Re: [bitcoin-dev] BIP: OP_BRIBVERIFY - the op code needed for Blind Merge Mined drivechains 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: Thu, 13 Jul 2017 00:00:29 -0000 This is a multi-part message in MIME format. --------------7706548FCFD2FF1F5F7FE708 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I still think it may be more inefficient, in equilibrium. (In other words, in the future steady state of Bitcoin that includes LN or something LN-like). Assume there are N sidechains. In the coinbase version: 1. There is some single event, per N, that causes nodes to notice that a new sidechain has been created. 2. Per block, there are N hash commitments (32 bytes) and N instances of the ratchet's block counter (2 bytes). 3. Per block, some node operator _may_ have BMMed the block, and a miner therefore might want redeem an OP Bribe that pays BTC from a sidechain node operator to the miner. But they are likely to negotiate the payment through the Lightning Network (when this is possible). 4. Sidechains running in SPV mode know exactly where to find the information they need in order to discover the "longest" chain. In the OP RETURN version: 1. [same] There is some single event, per N, that causes nodes to notice that a new sidechain has been created. 2. [+30 bytes (+more?)] Per block, there are N hash commitments (32 bytes) and also N prevBlockHashes (32 bytes). Also, to make this transaction, someone needs to spend something in the UTXO set (or select no inputs in a kind of 'hollow transaction'), whereas one coinbase will always exist per block. 3. [same] No need for a new transaction. 4. [same?] Due to Rusty's soft fork rule of only one h* per sidechain per block, sidechains need just a merkle tree path, but they don't necessarily know where it is. They must store extra [?] data to help them find the data's location? On 7/12/2017 2:02 PM, Chris Stewart via bitcoin-dev wrote: > Hi Russell/ZmnSCPxj, > > I think you guys are right. The only problem I can see with it is > replaceability of the bribe transaction. If the 'Bribe' is the fee on > the transaction it isn't clear to me what the best way to > replace/remove it is. I think that that is the purpose of Rusty's soft fork rule about only including one per sidechain -- miners would have one "slot" per sidechain, and they would therefore have an incentive to make the slot count, and would be only selecting the highest fee txn to fill each slot.= --------------7706548FCFD2FF1F5F7FE708 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit
I still think it may be more inefficient, in equilibrium. (In other words, in the future steady state of Bitcoin that includes LN or something LN-like).

Assume there are N sidechains.

In the coinbase version:
1. There is some single event, per N, that causes nodes to notice that a new sidechain has been created.
2. Per block, there are N hash commitments (32 bytes) and N instances of the ratchet's block counter (2 bytes).
3. Per block, some node operator _may_ have BMMed the block, and a miner therefore might want redeem an OP Bribe that pays BTC from a sidechain node operator to the miner. But they are likely to negotiate the payment through the Lightning Network (when this is possible).
4. Sidechains running in SPV mode know exactly where to find the information they need in order to discover the "longest" chain.

In the OP RETURN version:
1. [same] There is some single event, per N, that causes nodes to notice that a new sidechain has been created.
2. [+30 bytes (+more?)] Per block, there are N hash commitments (32 bytes) and also N prevBlockHashes (32 bytes). Also, to make this transaction, someone needs to spend something in the UTXO set (or select no inputs in a kind of 'hollow transaction'), whereas one coinbase will always exist per block.
3. [same] No need for a new transaction.
4. [same?] Due to Rusty's soft fork rule of only one h* per sidechain per block, sidechains need just a merkle tree path, but they don't necessarily know where it is. They must store extra [?] data to help them find the data's location?


On 7/12/2017 2:02 PM, Chris Stewart via bitcoin-dev wrote:
Hi Russell/ZmnSCPxj,

I think you guys are right. The only problem I can see with it is replaceability of the bribe transaction. If the 'Bribe' is the fee on the transaction it isn't clear to me what the best way to replace/remove it is.

I think that that is the purpose of Rusty's soft fork rule about only including one per sidechain -- miners would have one "slot" per sidechain, and they would therefore have an incentive to make the slot count, and would be only selecting the highest fee txn to fill each slot.
--------------7706548FCFD2FF1F5F7FE708--