Return-Path: <willtech@live.com.au> Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 16CCC892 for <bitcoin-dev@lists.linuxfoundation.org>; Thu, 7 Dec 2017 08:13:19 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from APC01-HK2-obe.outbound.protection.outlook.com (mail-oln040092255084.outbound.protection.outlook.com [40.92.255.84]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 71E5D79 for <bitcoin-dev@lists.linuxfoundation.org>; Thu, 7 Dec 2017 08:13:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=K6rIiGbs5/TrXLgl7ObHk1akcQHGbAN0vNsDF5I0Uq0=; b=L4LG4vIYhjWrJJZlVls9biFz837SALl+Tzc9m/67pDWDsHSa/bAxe34OIszD2KLkW8OFA4Ad1H3O2RfpKap/p1qslS8Z1hEpX7XnP/z1d19X/sGvJ0EqLrblT8oOgvEcXmtjtRCduMjPv7twuixOdG4lMfvSeNJ18TMjlr9uVf0Qo2pV8y97QuwXGAa0WK7ATIEHyf2e7CYFazKkQvFQEfwdi9Q1vpaRkcX7HI1qkEMlqnC8XqPjJVAtLfvnNYDVhU65Ukn7nXH95KT/be+TKpY2oSFWtWMZqus1c5VCWSfzXM/aGfbKRSmB6qv+XCIL/krsmcnV3IhRjO6W/mZYbQ== Received: from PU1APC01FT015.eop-APC01.prod.protection.outlook.com (10.152.252.54) by PU1APC01HT177.eop-APC01.prod.protection.outlook.com (10.152.253.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.239.4; Thu, 7 Dec 2017 08:13:15 +0000 Received: from PS2P216MB0179.KORP216.PROD.OUTLOOK.COM (10.152.252.57) by PU1APC01FT015.mail.protection.outlook.com (10.152.252.227) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.282.5 via Frontend Transport; Thu, 7 Dec 2017 08:13:15 +0000 Received: from PS2P216MB0179.KORP216.PROD.OUTLOOK.COM ([10.171.225.19]) by PS2P216MB0179.KORP216.PROD.OUTLOOK.COM ([10.171.225.19]) with mapi id 15.20.0282.007; Thu, 7 Dec 2017 08:13:15 +0000 From: Damian Williamson <willtech@live.com.au> To: ZmnSCPxj <ZmnSCPxj@protonmail.com> Thread-Topic: [bitcoin-dev] BIP Proposal: UTWFOTIB - Use Transaction Weight For Ordering Transactions In Blocks Thread-Index: AQHTa+TfjIfbrac6DkW4WL8VVZ5YaaM102mAgAA9mEaAAWVUAIAAFHP0 Date: Thu, 7 Dec 2017 08:13:14 +0000 Message-ID: <PS2P216MB0179DD143E0558194295ADCC9D330@PS2P216MB0179.KORP216.PROD.OUTLOOK.COM> References: <PS2P216MB01791F54380CD03B3936399E9D3F0@PS2P216MB0179.KORP216.PROD.OUTLOOK.COM> <TUV8ZuUkjBRWx-C9y-MOdLBBzWKRLd9TalfSPE1qN6oEvup6uAeGVUUlabCDDHKvWh1GZXTPgj6eOjPngN4ACLX2vIoXcjICy2s8tZfh7JQ=@protonmail.com> <PS2P216MB0179BC1CDE30F00D73DAA10F9D320@PS2P216MB0179.KORP216.PROD.OUTLOOK.COM>, <oVWjxK8fBoFl02giOtDPEQ7kAnp9TIRlAJKT14xJ6-VRRVJhT6-UsYLXqBARKUZi-fgRuKgymoTpHuQB5pluZRauX9dPOniJLAC5F6d0jo4=@protonmail.com> In-Reply-To: <oVWjxK8fBoFl02giOtDPEQ7kAnp9TIRlAJKT14xJ6-VRRVJhT6-UsYLXqBARKUZi-fgRuKgymoTpHuQB5pluZRauX9dPOniJLAC5F6d0jo4=@protonmail.com> Accept-Language: en-AU, en-US Content-Language: en-AU X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:EE340025652C1522AFED52182E871BB62A9733517887786402E9C604D17B4BB0; UpperCasedChecksum:02F276195DCFFB54FD7FA9F413FBE7D42B8851ADC374FEF2D04773B061201E9E; SizeAsReceived:7612; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [ZcUw2IgsezeYkad86EUpz5spG1mO5mAf] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; PU1APC01HT177; 6:pgl9pXaqbWgLDX/07hdyWVocz+FVdVUnsE1P7HWAg4H7FzNFlT2XwFV855+h77YGgeLn4OVdijsHHlVLx9ZF6TbVNUYAsgf42vJ5Qc3egZsgMSKWvaCkbuTv9KV6j4wuMEjdvQg5C5b6WUxIt5Bf28jtQrsMyjJME4DQa2fpaz9Dor/nl+uE9Es7NiLPtKfBXyJZQfYpIu1v5TiBdeaIr1Nl40dLR2Ab+0yWI7ehiSXEeZa13mjpcCsTqRDdZfuNnpVvyu6ppPCP3pKYJm9iXuguP4oFmjQWKC7oaoI8g+5jYt4jERTW0AmGiIT4QvUozLF6Mvi3aJa8rsLwmCEPP4rgGRWDkEqX1LhuYoypA1U=; 5:dMjewmddtAyOR+cx+U46gVpxlZITyThGSW+bgApan5/jjrMMbw2jB+zRDRZysanPCKyXdupL0GGTsho88LQgkUECAzxjiV3uiaqpKwdq5wkNywtAcm05F5FEZcOyJxuQ6K4ZBlX/ET5U89WYdq/3MGhiInFQOeHqweuFEJr4Tmc=; 24:1tv2xxmWicZ6r7DdsYva2tZjahKJaPE7WZz1Axj1bMToCrnIaKDFmmFTisC8ycMqeyz4LJBctWE1IpI7p0aUqQ4VB6amZpyHbnU262t0EQY=; 7:pwNeRUUdkPSWVQ5Zo/IysWh2TNbtwL6ouKTMI3qgMeQXiNNgxuatSPV3z0LVBg1o3ehW9uOWKHmEBdPCl6Sma7HI+okBifUOIAUocyNI37UyQxSXYRu/R7WAAciA9mTyL2DU9tl0uJn5A+tL8BtzS46THHm/kSwZSSTsti7iJqN0qd1jvHUbXwyd+E2J2C+6i9k2ABIMmgG8eJknSG4nCS0HGVla3lvv+PruOo6kSH/nrcECk89rWpGxVff7+JSG x-incomingheadercount: 47 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045); SRVR:PU1APC01HT177; x-ms-traffictypediagnostic: PU1APC01HT177: x-ms-office365-filtering-correlation-id: 39b3b5c7-65f9-4ba6-63a6-08d53d4a5d9b x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:PU1APC01HT177; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:PU1APC01HT177; x-forefront-prvs: 05143A8241 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:PU1APC01HT177; H:PS2P216MB0179.KORP216.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/alternative; boundary="_000_PS2P216MB0179DD143E0558194295ADCC9D330PS2P216MB0179KORP_" MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39b3b5c7-65f9-4ba6-63a6-08d53d4a5d9b X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Dec 2017 08:13:14.9507 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: PU1APC01HT177 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, 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: Thu, 07 Dec 2017 13:49:33 +0000 Cc: "bitcoin-dev@lists.linuxfoundation.org" <bitcoin-dev@lists.linuxfoundation.org> Subject: Re: [bitcoin-dev] BIP Proposal: UTWFOTIB - Use Transaction Weight For Ordering Transactions In Blocks X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org> List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe> List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/> List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org> List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help> List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe> X-List-Received-Date: Thu, 07 Dec 2017 08:13:19 -0000 --_000_PS2P216MB0179DD143E0558194295ADCC9D330PS2P216MB0179KORP_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Good morning ZmnSCPxj, it must be where you are, I suppose that we are each missing each other's point some. I understand that nodes would not be expected to agree on the transaction p= ool and do not propose validating that the correct transactions are include= d in a block. I speak of probability and likelihood of a transaction being = included in a block, implying a random element. I do not propose rejecting = blocks on the basis that the next block size is stated too large or too sma= ll for the transaction pool, only that the block received conforms to the n= ext block size given on the previous block. Yes, it could be cheated. Also,= various nodes may have at times wildly different amounts of transactions w= aiting in the transaction pool compared to each other and there could be a = great disparity between them. It would not be possible in any case I can th= ink of to validate the next block size is correct for the current transacti= on pool. Even as it is now, nodes may include transactions in a block that = no other nodes have even heard of, nodes have no way to validate that eithe= r. If the block is built on sufficiently, it is the blockchain. I will post back the revised proposal to the list. I have fleshed parts of = it out more, given more explanation and, tried this time not to recycle ter= minology. Regards, Damian Williamson ________________________________ From: ZmnSCPxj <ZmnSCPxj@protonmail.com> Sent: Thursday, 7 December 2017 5:46:08 PM To: Damian Williamson Cc: bitcoin-dev@lists.linuxfoundation.org Subject: Re: [bitcoin-dev] BIP Proposal: UTWFOTIB - Use Transaction Weight = For Ordering Transactions In Blocks Good morning Damian, >As I understand it, each node would be aware independently of x transactio= ns waiting for confirmation, the transaction pool. Each long-running node would have a view that is roughly the same as the vi= ew of every other long-running node. However, suppose a node, Sleeping Beauty, was temporarily stopped for a day= (for various reasons) then is started again. That node cannot verify what= the "consensus" transaction pool was during the time it was stopped -- it = has no view of that. It can only trust that the longest chain is valid -- = but that means it is SPV for this particular rule. >If next blocksize is broadcast with the completed block it would be a simp= le matter to back confirm that. It would not. Suppose Sleeping Beauty slept at block height 500,000. On aw= akening, some node provides some purported block at height 500,001. This b= lock indicates some "next blocksize" for the block at height 500,002. How = does Sleeping Beauty know that the transaction pool at block 500,001 was of= the correct size to provide the given "next blocksize"? The only way, wou= ld be to look if there is some other chain with greater height that include= s or does not include that block: that is, SPV confirmation. How does Sleeping Beauty know it has caught up, and that its transaction po= ol is similar to that of its neighbors (who might be lying to it, for that = matter), and that it should therefore stop using SPV confirmation and switc= h to strict fullnode rejection of blocks that indicate a "next blocksize" t= hat is too large or too small according to your equation? OR will it simpl= y follow the longest chain always, in which case, it trusts miners to be ho= nest about how loaded (or unloaded) the transaction pool is? ------- As a general rule, consensus rules should restrict themselves to: 1. The characteristics of the block. 2. The characteristics of the transactions within the block. The transaction pool is specifically those transaction that are NOT in any = block, and thus, are not safe to depend on for any consensus rules. Regards, ZmnSCPxj --_000_PS2P216MB0179DD143E0558194295ADCC9D330PS2P216MB0179KORP_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"= > <style type=3D"text/css" style=3D"display:none;"><!-- P {margin-top:0;margi= n-bottom:0;} --></style> </head> <body dir=3D"ltr"> <div id=3D"divtagdefaultwrapper" style=3D"font-size:12pt;color:#000000;font= -family:Calibri,Helvetica,sans-serif;" dir=3D"ltr"> <p style=3D"margin-top:0;margin-bottom:0"></p> <p style=3D"margin-top:0;margin-bottom:0">Good morning ZmnSCPxj, it must be= where you are,</p> <p style=3D"margin-top:0;margin-bottom:0"><br> </p> <p style=3D"margin-top:0;margin-bottom:0">I suppose that we are each missin= g each other's point some.</p> <p style=3D"margin-top:0;margin-bottom:0"><br> </p> <p style=3D"margin-top:0;margin-bottom:0">I understand that nodes would not= be expected to agree on the transaction pool and do not propose validating= that the correct transactions are included in a block. I speak of probabil= ity and likelihood of a transaction being included in a block, implying a random element. I do not propose rej= ecting blocks on the basis that the next block size is stated too large or = too small for the transaction pool, only that the block received conforms t= o the next block size given on the previous block. Yes, it could be cheated. Also, various nodes may have at = times wildly different amounts of transactions waiting in the transaction p= ool compared to each other and there could be a great disparity between the= m. It would not be possible in any case I can think of to validate the next block size is correct for the cur= rent transaction pool. Even as it is now, nodes may include transactions in= a block that no other nodes have even heard of, nodes have no way to valid= ate that either. If the block is built on sufficiently, it is the blockchain.<br> </p> <p style=3D"margin-top:0;margin-bottom:0"><br> </p> <p style=3D"margin-top:0;margin-bottom:0">I will post back the revised prop= osal to the list. I have fleshed parts of it out more, given more explanati= on and, tried this time not to recycle terminology.</p> <p style=3D"margin-top:0;margin-bottom:0"><br> </p> <p></p> <p style=3D"margin-top:0;margin-bottom:0">Regards,</p> <p style=3D"margin-top:0;margin-bottom:0">Damian Williamson<br> </p> </div> <hr style=3D"display:inline-block;width:98%" tabindex=3D"-1"> <div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st= yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> ZmnSCPxj <ZmnSCPxj= @protonmail.com><br> <b>Sent:</b> Thursday, 7 December 2017 5:46:08 PM<br> <b>To:</b> Damian Williamson<br> <b>Cc:</b> bitcoin-dev@lists.linuxfoundation.org<br> <b>Subject:</b> Re: [bitcoin-dev] BIP Proposal: UTWFOTIB - Use Transaction = Weight For Ordering Transactions In Blocks</font> <div> </div> </div> <div> <div>Good morning Damian,<br> </div> <div><br> </div> <div>>As I understand it, each node would be aware independently of x tr= ansactions waiting for confirmation, the transaction pool.<br> </div> <div><br> </div> <div>Each long-running node would have a view that is roughly the same as t= he view of every other long-running node.<br> </div> <div><br> </div> <div>However, suppose a node, Sleeping Beauty, was temporarily stopped for = a day (for various reasons) then is started again. That node cannot v= erify what the "consensus" transaction pool was during the time i= t was stopped -- it has no view of that. It can only trust that the longest chain is valid -- but that means it is SPV for= this particular rule.<br> </div> <div><br> </div> <div>>If next blocksize is broadcast with the completed block it would b= e a simple matter to back confirm that.<br> </div> <div><br> </div> <div>It would not. Suppose Sleeping Beauty slept at block height 500,000.&n= bsp; On awakening, some node provides some purported block at height 500,00= 1. This block indicates some "next blocksize" for the block= at height 500,002. How does Sleeping Beauty know that the transaction pool at block 500,001 was of the correct size to provide t= he given "next blocksize"? The only way, would be to look i= f there is some other chain with greater height that includes or does not i= nclude that block: that is, SPV confirmation.<br> </div> <div><br> </div> <div>How does Sleeping Beauty know it has caught up, and that its transacti= on pool is similar to that of its neighbors (who might be lying to it, for = that matter), and that it should therefore stop using SPV confirmation and = switch to strict fullnode rejection of blocks that indicate a "next blocksize" that is too large or = too small according to your equation? OR will it simply follow the lo= ngest chain always, in which case, it trusts miners to be honest about how = loaded (or unloaded) the transaction pool is?<br> </div> <div><br> </div> <div>-------<br> </div> <div><br> </div> <div>As a general rule, consensus rules should restrict themselves to:<br> </div> <div><br> </div> <div>1. The characteristics of the block.<br> </div> <div>2. The characteristics of the transactions within the block.<br> </div> <div><br> </div> <div>The transaction pool is specifically those transaction that are NOT in= any block, and thus, are not safe to depend on for any consensus rules.<br= > </div> <div><br> </div> <div>Regards,<br> </div> <div>ZmnSCPxj<br> </div> <div><br> </div> </div> </body> </html> --_000_PS2P216MB0179DD143E0558194295ADCC9D330PS2P216MB0179KORP_--