Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id D163CC6C for ; Wed, 9 Dec 2015 14:30:25 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from s47.web-hosting.com (s47.web-hosting.com [199.188.200.16]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 56813165 for ; Wed, 9 Dec 2015 14:30:25 +0000 (UTC) Received: from localhost ([::1]:36284 helo=server47.web-hosting.com) by server47.web-hosting.com with esmtpa (Exim 4.85) (envelope-from ) id 1a6flA-003XBs-05 for bitcoin-dev@lists.linuxfoundation.org; Wed, 09 Dec 2015 09:30:24 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 09 Dec 2015 09:30:23 -0500 From: jl2012@xbt.hk To: bitcoin-dev@lists.linuxfoundation.org Message-ID: X-Sender: jl2012@xbt.hk User-Agent: Roundcube Webmail/1.0.5 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server47.web-hosting.com X-AntiAbuse: Original Domain - lists.linuxfoundation.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - xbt.hk X-Get-Message-Sender-Via: server47.web-hosting.com: authenticated_id: jl2012@xbt.hk X-Source: X-Source-Args: X-Source-Dir: X-From-Rewrite: unmodified, already matched X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW 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: Wed, 09 Dec 2015 16:14:13 +0000 Subject: [bitcoin-dev] Impacts of Segregated Witness softfork X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Development Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Dec 2015 14:30:25 -0000 Although the plan is to implement SW with softfork, I think many important (but non-consensus critical) components of the network would be broken and many things have to be redefined. 1. Definition of "Transaction ID". Currently, "Transaction ID" is simply a hash of a tx. With SW, we may need to deal with 2 or 3 IDs for each tx. Firstly we have the "backward-compatible txid" (bctxid), which has exactly the same meaning of the original txid. We also have a "witness ID" (wid), which is the hash of the witness. And finally we may need a "global txid" (gtxid), which is a hash of bctxid|wid. A gtxid is needed mainly for the relay of txs between full nodes. bctxid and wid are consensus critical while gtxid is for relay network only. 2. IBLT / Bitcoin relay network: As the "backward-compatible txid" defines only part of a tx, any relay protocols between full nodes have to use the "global txid" to identify a tx. Malleability attack targeting relay network is still possible as the witness is malleable. 3. getblocktemplete has to be upgraded to deal with witness data and witness IDs. (Stratum seems to be not affected? I'm not sure) 4. Protocols relying on the coinbase tx (e.g. P2Pool, merged mining): depends on the location of witness commitment, these protocols may be broken. Feel free to correct me and add more to the list.