Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 33820CAF for ; Fri, 9 Aug 2019 14:59:02 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 93B3E76F for ; Fri, 9 Aug 2019 14:59:01 +0000 (UTC) Received: by mail-lj1-f171.google.com with SMTP id z28so38148904ljn.4 for ; Fri, 09 Aug 2019 07:59:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=OrXwPovtRNpOojEZ4C1fcQS19IdXP8iR5enOqax+iq4=; b=BL4jAMQhwmspipIAptI+axFOpuvbbnduaF1BuB4m8P7tN+Nsi9ATHmJo2cwoqtsodA 8OhpSURQLbwATqXwCJ+QI9Byzv3PvuQ4kiqIRn+pLrSTJm90qmTY4kUj/xSEcSZpMUfS XLiGV6WG+6grQK922eoqBhPm1jsSom5nGmkPMcQ0aMBVqIvdNIJc3Njlt6/8kCfw9uMZ ahkHnmr+5rVlfH0/Z6d0jU2ilTCrgKn2UbSg6kAcw8QT2XMqzeJPTyF0+AfR90HTB4TI 6EoKjmN+iV/VU2GEfNCAJ9CX0m7KAwcQk7FzfG5bTofrIXEkhITbt9D4FLHIv/ri810z jOkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=OrXwPovtRNpOojEZ4C1fcQS19IdXP8iR5enOqax+iq4=; b=o9U3fDt91RctcJnTJ3uM23wGXCQJekpfh5wScUrKYRCMtlcznj0kO7LxPKXMV2xwix nvAEB0EJ2eFQVlHxCo9nH/dnTnTNPOyS5oAQE2+DGY0q6bN07wNYuiBR1bMcwR2cu7Nt ulc0Y2mlcsxismqaAVtPdlwZqT6Cnn2SoxYRsig0Pq7Qoe2twQ8Sj5rqndtrVwSpM7sg hpe31yHDtG6WeOnnid/BE2QpyFi5syp6JKFZjhZdIbChrOD5WYQ+MhQjqguC+VxOlZN1 IdhxmQ/u0MGGkM+aiXrlUVhgnLgF9DPCG3tljqGCMWHSIIRZaqn820Ghb+JMP8pamUkN WWxA== X-Gm-Message-State: APjAAAUcMPPN8hTyWAaKGG9/F0g096dJjBdNcTGAJWaen4gnP6Sd15Gm gdzAP+PWEb32zNKGQm2ZDacABqtOE02DgrOJhcCr6gf18LJIDw== X-Google-Smtp-Source: APXvYqwYVJnLpwYbfZRt0RKaU1YGctTrEsWqDZj/R8jq1Cx1nSgDynXGreqPamdFVJduDtg6+yU/VZA/KmM/Ch7HGKM= X-Received: by 2002:a2e:2b57:: with SMTP id q84mr11668074lje.105.1565362739378; Fri, 09 Aug 2019 07:58:59 -0700 (PDT) MIME-Version: 1.0 From: Elichai Turkel Date: Fri, 9 Aug 2019 10:58:58 -0400 Message-ID: To: bitcoin-dev@lists.linuxfoundation.org Content-Type: multipart/alternative; boundary="000000000000067f27058fb06aba" 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: Fri, 09 Aug 2019 15:01:41 +0000 Subject: Re: [bitcoin-dev] Taproot proposal 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: Fri, 09 Aug 2019 14:59:02 -0000 --000000000000067f27058fb06aba Content-Type: text/plain; charset="UTF-8" Hi, I want to add to John Newbery's suggestion of using implicit even/odd only public keys and tweaked public keys in taproot and suggest the following: If everything is implicit then the only reason for the first byte of the control block(`c[0]`) is the tapscript leaf version. I suggest that this is moved to be the first OP_CODE of the tapscript itself (i.e. OP_0/OP_1 etc.) That way having the script *tells* you what does it mean without needing to check the control block. That way there's a separation between the tapscript+leaf version and the control block being the merkle path to the script. -- PGP: 5607C93B5F86650C --000000000000067f27058fb06aba Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,
I want to add to=C2=A0John Newbery's suggestio= n of using implicit even/odd only public keys and tweaked public keys in ta= proot and suggest the following:

If everything is = implicit then the only reason for the first byte of the control block(`c[0]= `) is the tapscript leaf version.
I suggest that this is moved to= be the first OP_CODE of the tapscript itself (i.e. OP_0/OP_1 etc.)
That way having the script *tells* you what does it mean without needing= to check the control block.
That way there's a separation be= tween the tapscript+leaf version and the control block being the merkle pat= h to the script.
--
PGP: 5607C93B5F86650C

--000000000000067f27058fb06aba--