Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 74697305 for ; Tue, 18 Apr 2017 18:07:39 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f43.google.com (mail-wm0-f43.google.com [74.125.82.43]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 010981A6 for ; Tue, 18 Apr 2017 18:07:37 +0000 (UTC) Received: by mail-wm0-f43.google.com with SMTP id r190so3798467wme.1 for ; Tue, 18 Apr 2017 11:07:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=UODjKLtR1SXMW7S4f8sAIThq9bmKKCurgTvaX224+cQ=; b=GKilcBZLjdcTSs3iOvIrAOTj9NgFesgr88nUibPpgmBqUboTao5o5h6YwYqbu+S/5i 9yC50nT//2DqcdJ7OWQQdKue66qg1PaMiIPAPV39mnuAXX4dPZhk4bxfnyGYS+NcaGhF C4M0fTDE7i5Pm9noGlP7mlIXSSz8HWSOZIgnIJ1oVuVNRnQabPl3oqdMD7WE/f2SYMuC 5pBkIZU0RZ8OtoG+Zu4uNq0XEJQ+HRdelouOu6cxVUjSWJXEx42EngFcdOZgUKixyDvF 60U678HO9fqAEiD5nede3VP4UzZgwNkwyeuFNyyhWxRX5iWCwK4NkrCfJBhjzebrlbRi kf2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=UODjKLtR1SXMW7S4f8sAIThq9bmKKCurgTvaX224+cQ=; b=jnZ61plUG5hXjngESs5s576k6wWWIxZaPfqKuq6jCTOS7E4T4OLAKJfYrWN8QFYWkp /xQIGsKfM0yntStI5YgLuXWgULeFCNVJUF9qHixYMaaHKUp1VcMYrSh+JehPG9mMOATP ztMU0IenY4aaUEsu7mEu9xnABz2qEKxY6v/znYlm3qxHyf5rSPdnCFYSiSO9eflq8g+d y5HaddzT6n12wqNOwy0NqOblM3od5M2XgBCC7VK5HXoxA2w9FPTA2KZucHrmGpc5HVjq VlwflfJuN9xG3ru660rYYzMBDLDkLQGB6mnvPJs0/qz7anWTwLBHfprt6LNrB3L+KFYn 8S6Q== X-Gm-Message-State: AN3rC/5zLpK4giyr3XeNYonq0RJyDo+L1nl37P8Qj8kPmDdYJrehGnF9 HzyoZPP3CF63ICi6Hl4+0pkB+SmjH7LL X-Received: by 10.28.109.3 with SMTP id i3mr14546520wmc.121.1492538856593; Tue, 18 Apr 2017 11:07:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Christian Decker Date: Tue, 18 Apr 2017 18:07:25 +0000 Message-ID: To: Erik Aronesty , Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary=001a1147dd4e5c6578054d74c84b 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 Subject: Re: [bitcoin-dev] Transaction signalling 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: Tue, 18 Apr 2017 18:07:39 -0000 --001a1147dd4e5c6578054d74c84b Content-Type: text/plain; charset=UTF-8 I really like the idea of extending signalling capabilities to the end-users. It gives stakeholders a voice in the decisions we take in the network, and are a clear signal to all other involved parties. It reminds me of a student thesis I supervised some time ago [1], in which we explored various signalling ideas. I think we have a number of fields that may be used for such a signalling, e.g., OP_RETURN, locktime, and output scripts. I think OP_RETURN is probably not the field you'd want to use though since it adds data that needs to be transferred, stored for bootstrap, and outputs in the UTXO would need to be tagged with additional information. Locktime has the advantage of being mostly a freeform field for values in the past, but it clashes with other uses that may rely on it. Furthermore, it is the transaction creator that specifies the locktime, hence the signal trails one hop behind the current owner, i.e., the actual stakeholder. I think probably the best field to signal would be the output script. It is specified by the recipient of the funds, i.e., the current owner, and is already stored in the UTXO, so a single pass can tally up the votes. We could for example use the last 4 bits of the pubkey/pubkeyhash to opt in (3 leading 0 bits) and the vote (0/1 depending on the stakeholders desired signal). We'd need to define similar semantics for other script types, but getting the standard scripts to be recognized should be simple. In the spirit of full disclosure I'd like to also mention some of the downsides of voting this way. Unlike the OP_RETURN proposal, users that do not intend to signal will also be included in the tally. I'd expect the signals of these users to be random with a 50% chance of either outcome, so they should not influence the final result, but may muddy the water depending on what part of the population is signalling. The opt-in should make sure that the majority of votes are actually voluntary votes, and not just users that randomly select a pubkey/pubkeyhash, and can be adjusted as desired, though higher values require more grinding on behalf of the users. The grinding may also exacerbate some problems we already have with the HD Wallet lookahead, since we now skip a number of addresses, so we should not require too many opt-in bits. So there are some problems we'd need to tackle, but I'm really excited about this, as it could provide data to make informed decisions, and should put an end to the endless speculation about the will of the economic majority. Cheers, Christian [1] http://pub.tik.ee.ethz.ch/students/2015-HS/SA-2015-30.pdf --001a1147dd4e5c6578054d74c84b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I really like the idea of extending signalling capabi= lities to the
end-users. It gives stakeholders a voice in the dec= isions we take in
the network, and are a clear signal to all othe= r involved parties. It
reminds me of a student thesis I supervise= d some time ago [1], in
which we explored various signalling idea= s.

I think we have a number of fields that may be = used for such a
signalling, e.g., OP_RETURN, locktime, and output= scripts. I think
OP_RETURN is probably not the field you'd w= ant to use though since it
adds data that needs to be transferred= , stored for bootstrap, and
outputs in the UTXO would need to be = tagged with additional
information. Locktime has the advantage of= being mostly a freeform
field for values in the past, but it cla= shes with other uses that may
rely on it. Furthermore, it is the = transaction creator that specifies
the locktime, hence the signal= trails one hop behind the current
owner, i.e., the actual stakeh= older.

I think probably the best field to signal w= ould be the output
script. It is specified by the recipient of th= e funds, i.e., the
current owner, and is already stored in the UT= XO, so a single pass can
tally up the votes. We could for example= use the last 4 bits of the
pubkey/pubkeyhash to opt in (3 leadin= g 0 bits) and the vote (0/1
depending on the stakeholders desired= signal). We'd need to define
similar semantics for other scr= ipt types, but getting the standard
scripts to be recognized shou= ld be simple.

In the spirit of full disclosure I&#= 39;d like to also mention some of the
downsides of voting this wa= y. Unlike the OP_RETURN proposal, users
that do not intend to sig= nal will also be included in the tally. I'd
expect the signal= s of these users to be random with a 50% chance of
either outcome= , so they should not influence the final result, but may
muddy th= e water depending on what part of the population is
signalling. T= he opt-in should make sure that the majority of votes are
actuall= y voluntary votes, and not just users that randomly select a
pubk= ey/pubkeyhash, and can be adjusted as desired, though higher
valu= es require more grinding on behalf of the users.

T= he grinding may also exacerbate some problems we already have with
the HD Wallet lookahead, since we now skip a number of addresses, so
we should not require too many opt-in bits.

= So there are some problems we'd need to tackle, but I'm really exci= ted
about this, as it could provide data to make informed decisio= ns, and
should put an end to the endless speculation about the wi= ll of the
economic majority.

--001a1147dd4e5c6578054d74c84b--