Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 484AB504 for ; Wed, 28 Jun 2017 04:07:46 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-ua0-f173.google.com (mail-ua0-f173.google.com [209.85.217.173]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id D945218A for ; Wed, 28 Jun 2017 04:07:45 +0000 (UTC) Received: by mail-ua0-f173.google.com with SMTP id j53so30651628uaa.2 for ; Tue, 27 Jun 2017 21:07:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=ppkcSqJ940MkGjqIMbnHV3nI0qkqX4PKbASa8xUc/Ro=; b=b25f6YFFIIsyrIPc0bku0ADt+xnUvae7LSbTsBexicZ0eXAY+ZYSF+Ow4MmsUFnA8X NrO7d90V+UDrXmIGZeQzeREgtTAuYEMOpY+z609MZIcO/WQQe2Er/cewYUaJylUpamxx yZuPhYSVd7z3m2PqtQU32VClxQECl1TdSGZNEXa1gaobfngy9zAkyVrZf1m+S1gR6Vqe /puCxqyoS5JtS1XPpWdQ+Yoj7Ndu7lGMGmf7PgDbvBrldUjzsnt4UX1Y9jxwOfkt9s/l omJOOZp5jJX263bICsEjC5nTqz/uuAONMOuQYig3uXbM//LBFHpfoMe4sxXo1XUpMshF wgAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=ppkcSqJ940MkGjqIMbnHV3nI0qkqX4PKbASa8xUc/Ro=; b=ewJTZ79kKMeQgEV4rWXhcgr1vbQL80ve1K3ASkMGOvwhXhwJ6+V1/oWRDRADasm/FZ zWcaVe5WOQWvngKVDLYm+m8pp9BxEgDOdjTfavvSYBxA7DD/yNKyUttxGpf1tDFF6QQW qmphSFp9G+feHfucQcxVieaG+xStfLWkO0ejiFYIt65PKMypkSv5JRjwnRmC/34kYxzk l1Hgt+OiIUFiFodEfBBqllQaoNf1iGST2dKRtKVKG/H9oVEzI/GeqftCPdZJl7opRroA JEQckNGNdy81/M2IKi/xG/6JXnVHdxqQny7HiH22K8/xs/lb92CqlHFR5D5IO3iyuYXZ 6nnA== X-Gm-Message-State: AKS2vOzoX1FQMLAqls9XHlynlUzFmVSl9qzcJl23uVODcCpcmAJQtXRL KEZuWvKihtggHJ+pT8WYOemcP8z5kVsA X-Received: by 10.176.5.138 with SMTP id e10mr5334686uae.30.1498622864958; Tue, 27 Jun 2017 21:07:44 -0700 (PDT) MIME-Version: 1.0 Sender: gmaxwell@gmail.com Received: by 10.103.13.7 with HTTP; Tue, 27 Jun 2017 21:07:43 -0700 (PDT) In-Reply-To: References: From: Gregory Maxwell Date: Wed, 28 Jun 2017 04:07:43 +0000 X-Google-Sender-Auth: 6TAF351x0ixPGtdHXJ5fTjlmyrc Message-ID: To: Chris Stewart Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, 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 Cc: Bitcoin Protocol Discussion 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: Wed, 28 Jun 2017 04:07:46 -0000 On Wed, Jun 28, 2017 at 12:37 AM, Chris Stewart via bitcoin-dev wrote: > A new block rule is added which requires that the miner's coinbase reward be > at index 0 in the coinbase transaction's output vector. This is an absurd restriction-- I hope it was not your intent to directly ban P2Pool and probably any other form of decentralized or less centralized mining pooling... but thats what doing that does. > It also fixes the witness commitment output to be at index 1 of the coinbase transaction's output vector. This removes important flexibility that was intentionally preserved. What happens when an additional commitment is needed for bitcoin? must some sidechain be irreparably destroyed? looks like it in your proposal. > For instance, the mimblewimble sidechain could correspond to index 2 of the vector outputs on the coinbase transaction. And what happens if index 1 isn't present? if index 35 is used must there be 34 dummy outputs? > This op code looks into the coinbase transaction's output vector at the given index (which is derived from the sidechain id) and checks to see if the hash in the block matches the hash inside of the BRIBEVERIFY progra This is not monotone/reorg safe. It means that the output coins (if any) are not equivalently fungible with other bitcoins (for, e.g. 100 blocks) because if there is a reorg this transaction cannot be restored to the chain. It's also impure and not compatible with caching, which would be unfortunate and slow block propagation.