Return-Path: <contact@taoeffect.com> Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 281DCB2A for <bitcoin-dev@lists.linuxfoundation.org>; Thu, 13 Jul 2017 03:24:13 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from homiemail-a3.g.dreamhost.com (homie.mail.dreamhost.com [208.97.132.208]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 64AB510A for <bitcoin-dev@lists.linuxfoundation.org>; Thu, 13 Jul 2017 03:24:11 +0000 (UTC) Received: from homiemail-a3.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a3.g.dreamhost.com (Postfix) with ESMTP id C9C77284078; Wed, 12 Jul 2017 20:24:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=taoeffect.com; h=from :content-type:mime-version:subject:message-id:date:references:to :in-reply-to; s=taoeffect.com; bh=gAXQUKynjMciZW5h6RU6m1zJB6M=; b=Qh457lAIu+YSG78IEHfM9kunAoJbwJcrB03qeZcu0pPVRPRh8Q/sCGnVxO581 Cue/RvnV68Ihfrv+qEOkH46IPEdDfdOG9HtbzlvKMwPZTmDedaVTQXdZndjH4y7s mbQJL2L8TRSz/J5Ko9kx0fTQcUmrDWC3ADcCGHc+S+0bo8= Received: from [192.168.42.67] (184-23-252-118.fiber.dynamic.sonic.net [184.23.252.118]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: contact@taoeffect.com) by homiemail-a3.g.dreamhost.com (Postfix) with ESMTPSA id 96FB228406C; Wed, 12 Jul 2017 20:24:10 -0700 (PDT) From: Tao Effect <contact@taoeffect.com> Content-Type: multipart/signed; boundary="Apple-Mail=_00D64527-0324-4692-826A-5D68957184F5"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Mao-Original-Outgoing-Id: 521609049.7779-a6449991ad806af44a20e278efcee780 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Message-Id: <3F1802B5-FDD5-4E4F-9A5D-238C5F83116F@taoeffect.com> Date: Wed, 12 Jul 2017 20:24:10 -0700 References: <24f2b447-a237-45eb-ef9f-1a62533fad5c@gmail.com> <83671224-f6ff-16a9-81c0-20ab578aec9d@gmail.com> <AAC86547-7904-4475-9966-138130019567@taoeffect.com> <6764b8af-bb4c-615d-5af5-462127bbbe36@gmail.com> <F2C3A9F4-07AB-41B9-B915-9E33EE313F9E@taoeffect.com> <117f6a96-6d90-778a-d87a-be72592e31c5@gmail.com> <42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com> <3277f4ef-a250-d383-8b00-cb912eb19f8b@gmail.com> To: Paul Sztorc <truthcoin@gmail.com>, Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org> In-Reply-To: <3277f4ef-a250-d383-8b00-cb912eb19f8b@gmail.com> X-Mailer: Apple Mail (2.3273) X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, 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, 13 Jul 2017 03:51:41 +0000 Subject: Re: [bitcoin-dev] Drivechain RfD -- Follow Up 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, 13 Jul 2017 03:24:13 -0000 --Apple-Mail=_00D64527-0324-4692-826A-5D68957184F5 Content-Type: multipart/alternative; boundary="Apple-Mail=_8CD43468-0A58-49E7-82A4-666B949AE531" --Apple-Mail=_8CD43468-0A58-49E7-82A4-666B949AE531 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Dear Paul, > In point of fact, he is wrong, because nodes do the counting. When = miners find a block, they can choose to move the counter up, down, or = not at all. But nodes do the counting. I may very well have confused who counts what, but for this discussion = on *theft* it's irrelevant, so I won't push further on this. Let's move on to the theft. > Again, keep in mind that Greg continually conflates two different = things: > 1. Whether the soft fork rules have been followed, and > 2. Whether the WT^ submitted by a majority hashrate matches the one = calculated by sidechain nodes. >=20 > The first case is exactly equal to P2SH. Just as old nodes accept = every P2SH transaction, so too will [DC#0] users accept every WT^ = transaction. To be crystal clear: I am entirely uninterested in the un-upgraded = nodes, what you call [DC#0]. They are irrelevant to my argument. > In the second case, it so happens that [DC#1], [DC#2], and [DC#3] = would also accept any WT^ *that followed the Drivechain rules*, even if = they did not like the outcome (because the outcome in question was = arbitrarily designated as a "theft" of funds -- again, see the second = case in the list above). In this way, it is exactly similar to P2SH = because nodes will accept *any* p2sh txn **that follows the p2sh = rules**, even if they don't "like" the specific script contained within = (for example, because it is a theft of "their" BitFinex funds, or a = donation to a political candidate they dislike, etc). This is false. For miners to steal P2SH funds, the P2SH script would have to be coded = to explicitly allow them to do it. How many P2SH scripts are you aware of that are used for the purpose of = facilitating such theft? I know of none, and I bet there are none. Whereas in DC, every single usage of DC allows miners to steal funds. >> In P2SH, all upgraded nodes will reject invalid P2SH transactions, = period. >=20 > In DC, all upgraded nodes will reject invalid DC transactions, period. It appears you are playing games with the meaning of "invalid" here, so = that sentence is invalid. I was very clear what I meant by "invalid" in my email: WT^ transactions = that represent miners stealing funds. Please stick to that and do not = play word games. > The [DC#2] and [DC#3] nodes would do exactly what the [DC#0] and = [DC#1] nodes do. This is what I mean by "every withdrawal is valid". So, here you are again re-affirming that WT^ transactions representing = stolen funds are allowed in DC, and by tying them all together you are = also affirming that the SPV proofs mentioned in DC are completely = irrelevant / pointless / unused. >> Again, in P2SH miners cannot steal funds, because all full nodes have = a fully automatic enforcement policy. >=20 > In DC, miners cannot steal funds, because all full nodes have a fully = automatic enforcement policy. >=20 > However, DC *allows* users to choose to place some of their BTC at the = relative mercy of the miners in creative ways, if they wish (as does = P2SH -- someone could write a script which donates funds to miners, and = then fund it... "paying" to that script). This is another example of = conflating [DC#1] and [DC#3]. So in the first sentence you say they "cannot steal funds", but = everything else you've said, including the following paragraph, and your = specification, indicates they can. I've finally collected all my thoughts / concerns and have also = summarized them in this document: https://gist.github.com/taoeffect/9ff64cf78cf1408ec29f13ed39e534c9 = <https://gist.github.com/taoeffect/9ff64cf78cf1408ec29f13ed39e534c9> Kind regards, Greg Slepak -- Please do not email me anything that you are not comfortable also = sharing with the NSA. > On Jul 12, 2017, at 7:58 PM, Paul Sztorc via bitcoin-dev = <bitcoin-dev@lists.linuxfoundation.org = <mailto:bitcoin-dev@lists.linuxfoundation.org>> wrote: >=20 > I will repeat that Drivechain can sometimes be confusing because it is = different things to different people. >=20 > Here is my attempt to break it down into different modes: >=20 > [DC#0] -- Someone who does not upgrade their Bitcoin software (and is = running, say, 0.13). However, they experience the effects of the new = rules which miners add (as per the soft fork[s] to add drivechain = functionality and individual drivechains). > [DC#1] -- Someone who always upgrades to the latest version of the = Bitcoin software, but otherwise has no interest in running/using = sidechains. > [DC#2] -- Someone who upgrades to the latest Bitcoin version, and = decides to also become a full node of one or more sidechains, but who = ever actually uses the sidechains. > [DC#3] -- Someone who upgrades their software, runs sidechain full = nodes, and actively moves money to and from these. >=20 > Greg is still conflating modes [DC#1] and [DC#3]. Specifically, he = equivocates on the team "steal", using it to mean two different things: = [a] spending an invalid transaction, and [b] a withdrawal that would not = match the report given by a sidechain node. >=20 > The two are quite different, see my comments below: >=20 >=20 > On 7/12/2017 9:15 PM, Tao Effect wrote: >>> FYI that document is nearly two years old, and although it is still = overwhelmingly accurate, new optimizations allow us (I think) to push = the waiting period to several weeks and the total ACK counting period up = to several months. >>=20 >> What does that have to do with my question? The counting period, if I = understood correctly, is something miners do, not full nodes. >=20 > Greg quoted a passage that contained an older parameter estimate of "a = few days", and I thought it would be helpful and informative if I = clarified that the parameter estimate had been updated to a new (more = secure) value. >=20 > In point of fact, he is wrong, because nodes do the counting. When = miners find a block, they can choose to move the counter up, down, or = not at all. But nodes do the counting. >=20 >=20 >> Also, if the document is old and/or outdated, do you happen to have a = link to a more update-to-date version of the spec? It would be helpful = for review. >=20 > As I stated above, the document is mostly accurate. There is no other = more up to date version. >=20 >=20 >>> Because if a node doesn't have the sidechain's information, it will = just assume every withdrawal is valid. This is comparable to someone who = still hasn't upgraded to support P2SH, in cases [DC#0] and [#1]. >>=20 >> Right, for [DC#0] and [DC#1], but for [DC#2] an [DC#3] you marked it = as "Yes" without substantiating why you did so. >=20 >=20 > Above, Greg omitted his original question. For reference, it was: >=20 >> The Drivechain spec seems to claim that its use of anyone-can-pay is = the same as P2SH >=20 > The answer is that both DC and P2SH use transactions which are 'always = valid' to some group of people (un-upgraded users) but which are = sometimes invalid to new users. So the only difference would be for = [DC#0] vs other versions, but this difference is trivial as miners will = censor invalid txns. >=20 > It is your classic soft fork situation. >=20 >=20 >>> Again, from the perspective of a mainchain user, every withdrawal is = valid. >>=20 >> And that is not how P2SH works. >=20 > Again, keep in mind that Greg continually conflates two different = things: > 1. Whether the soft fork rules have been followed, and > 2. Whether the WT^ submitted by a majority hashrate matches the one = calculated by sidechain nodes. >=20 > The first case is exactly equal to P2SH. Just as old nodes accept = every P2SH transaction, so too will [DC#0] users accept every WT^ = transaction. >=20 > In the second case, it so happens that [DC#1], [DC#2], and [DC#3] = would also accept any WT^ *that followed the Drivechain rules*, even if = they did not like the outcome (because the outcome in question was = arbitrarily designated as a "theft" of funds -- again, see the second = case in the list above). In this way, it is exactly similar to P2SH = because nodes will accept *any* p2sh txn **that follows the p2sh = rules**, even if they don't "like" the specific script contained within = (for example, because it is a theft of "their" BitFinex funds, or a = donation to a political candidate they dislike, etc). >=20 >=20 >>> [DC#2] and [DC#3] would certainly have an interest in understanding = what is going on, but that has absolutely nothing whatsoever to do with = Bitcoin Core and so is off-topic for this mailing list. >>=20 >> How is that an answer to my question? >=20 > Greg is, of course, not entitled to an answer to irrelevant questions = -- just as he would not be entitled to an answer if he asked for my = favorite color or my home address. And such answers would needlessly = consume the mailing list's scarce time. >=20 >=20 >> What does "[DC#2] and [DC#3] would certainly have an interest in = understanding what is going on" mean? >=20 > It is clear to me that, if we are not clear on the basics first, we = cannot hope to tackle anything intermediate. We will come back to this = after clearing up soft fork part. >=20 >=20 >> In P2SH, all upgraded nodes will reject invalid P2SH transactions, = period. >=20 > In DC, all upgraded nodes will reject invalid DC transactions, period. >=20 >=20 >> What exactly would [DC#2] and [DC#3] nodes do when faced with an = invalid WT^ transaction =E2=80=94 invalid in the sense that it contains = funds which miners are stealing? >=20 > The [DC#2] and [DC#3] nodes would do exactly what the [DC#0] and = [DC#1] nodes do. This is what I mean by "every withdrawal is valid". >=20 >=20 >> Again, in P2SH miners cannot steal funds, because all full nodes have = a fully automatic enforcement policy. >=20 > In DC, miners cannot steal funds, because all full nodes have a fully = automatic enforcement policy. >=20 > However, DC *allows* users to choose to place some of their BTC at the = relative mercy of the miners in creative ways, if they wish (as does = P2SH -- someone could write a script which donates funds to miners, and = then fund it... "paying" to that script). This is another example of = conflating [DC#1] and [DC#3]. >=20 > Paul --Apple-Mail=_8CD43468-0A58-49E7-82A4-666B949AE531 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dutf-8"><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D"">Dear Paul,<div class=3D""><br class=3D""></div><div = class=3D""><blockquote type=3D"cite" class=3D""><span class=3D"" = style=3D"background-color: rgb(255, 255, 255); float: none; display: = inline !important;">In point of fact, he is wrong, because nodes do the = counting. When miners find a block, they can choose to move the counter = up, down, or not at all. But nodes do the counting.</span><br class=3D"" = style=3D"background-color: rgb(255, 255, 255);"></blockquote><div = class=3D""><br class=3D""></div>I may very well have confused who counts = what, but for this discussion on *theft* it's irrelevant, so I won't = push further on this.</div><div class=3D""><br class=3D""></div><div = class=3D"">Let's move on to the theft.</div><div class=3D""><br = class=3D""></div><div class=3D""><div class=3D""><blockquote type=3D"cite"= class=3D""><span class=3D"" style=3D"background-color: rgb(255, 255, = 255); float: none; display: inline !important;">Again, keep in mind that = Greg continually conflates two different things:</span><br class=3D"" = style=3D"background-color: rgb(255, 255, 255);"><span class=3D"" = style=3D"background-color: rgb(255, 255, 255); float: none; display: = inline !important;">1. Whether the soft fork rules have been followed, = and</span><br class=3D"" style=3D"background-color: rgb(255, 255, = 255);"><span class=3D"" style=3D"background-color: rgb(255, 255, 255); = float: none; display: inline !important;">2. Whether the WT^ submitted = by a majority hashrate matches the one calculated by sidechain = nodes.</span><br class=3D"" style=3D"background-color: rgb(255, 255, = 255);"><br class=3D"" style=3D"background-color: rgb(255, 255, = 255);"><span class=3D"" style=3D"background-color: rgb(255, 255, 255); = float: none; display: inline !important;">The first case is exactly = equal to P2SH. Just as old nodes accept every P2SH transaction, so too = will [DC#0] users accept every WT^ transaction.</span></blockquote><br = class=3D""></div><div class=3D"">To be crystal clear: I am entirely = uninterested in the un-upgraded nodes, what you call [DC#0].</div><div = class=3D""><br class=3D""></div><div class=3D"">They are irrelevant to = my argument.</div><div class=3D""><br = class=3D"webkit-block-placeholder"></div><div class=3D""><blockquote = type=3D"cite" class=3D""><span class=3D"" style=3D"background-color: = rgb(255, 255, 255); display: inline !important;">In the second case, it = so happens that [DC#1], [DC#2], and [DC#3] would also accept any WT^ = *that followed the Drivechain rules*, even if they did not like the = outcome (because the outcome in question was arbitrarily designated as a = "theft" of funds -- again, see the second case in the list above). In = this way, it is exactly similar to P2SH because nodes will accept *any* = p2sh txn **that follows the p2sh rules**, even if they don't "like" the = specific script contained within (for example, because it is a theft of = "their" BitFinex funds, or a donation to a political candidate they = dislike, etc).</span></blockquote><br class=3D""></div><div = class=3D"">This is false.</div><div class=3D""><br class=3D""></div><div = class=3D"">For miners to steal P2SH funds, the P2SH script would have to = be coded to explicitly allow them to do it.</div><div class=3D""><br = class=3D""></div><div class=3D"">How many P2SH scripts are you aware of = that are used for the purpose of facilitating such theft?</div><div = class=3D""><br class=3D""></div><div class=3D"">I know of none, and I = bet there are none.</div><div class=3D""><br class=3D""></div><div = class=3D"">Whereas in DC, every single usage of DC allows miners to = steal funds.</div><div class=3D""><br class=3D""></div><div = class=3D""><blockquote type=3D"cite" class=3D""><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" class=3D""= style=3D"background-color: rgb(255, 255, 255);"><div class=3D"">In = P2SH, all upgraded nodes will reject invalid P2SH transactions, = period.</div></blockquote><br class=3D"" style=3D"background-color: = rgb(255, 255, 255);"><span class=3D"" style=3D"background-color: = rgb(255, 255, 255); float: none; display: inline !important;">In DC, all = upgraded nodes will reject invalid DC transactions, period.</span><br = class=3D"" style=3D"background-color: rgb(255, 255, = 255);"></blockquote><br class=3D""></div><div class=3D"">It appears you = are playing games with the meaning of "invalid" here, so that sentence = is invalid.</div><div class=3D""><br class=3D""></div><div class=3D"">I = was very clear what I meant by "invalid" in my email: WT^ transactions = that represent miners stealing funds. Please stick to that and do not = play word games.</div><div class=3D""><br class=3D""></div><div = class=3D""><blockquote type=3D"cite" class=3D""><span class=3D"" = style=3D"background-color: rgb(255, 255, 255); display: inline = !important;">The [DC#2] and [DC#3] nodes would do exactly what the = [DC#0] and [DC#1] nodes do. This is what I mean by "every withdrawal is = valid".</span></blockquote><br class=3D""></div><div class=3D"">So, here = you are again re-affirming that WT^ transactions representing stolen = funds are allowed in DC, and by tying them all together you are also = affirming that the SPV proofs mentioned in DC are completely irrelevant = / pointless / unused.</div><div class=3D""><br class=3D""></div><div = class=3D""><blockquote type=3D"cite" class=3D""><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" class=3D""= style=3D"background-color: rgb(255, 255, 255);"><div class=3D"">Again, = in P2SH miners cannot steal funds, because all full nodes have a fully = automatic enforcement policy.</div></blockquote><br class=3D"" = style=3D"background-color: rgb(255, 255, 255);"><span class=3D"" = style=3D"background-color: rgb(255, 255, 255); float: none; display: = inline !important;">In DC, miners cannot steal funds, because all full = nodes have a fully automatic enforcement policy.</span><br class=3D"" = style=3D"background-color: rgb(255, 255, 255);"><br class=3D"" = style=3D"background-color: rgb(255, 255, 255);"><span class=3D"" = style=3D"background-color: rgb(255, 255, 255); float: none; display: = inline !important;">However, DC *allows* users to choose to place some = of their BTC at the relative mercy of the miners in creative ways, if = they wish (as does P2SH -- someone could write a script which donates = funds to miners, and then fund it... "paying" to that script). This is = another example of conflating [DC#1] and [DC#3].</span><br class=3D"" = style=3D"background-color: rgb(255, 255, 255);"></blockquote><br = class=3D""></div><div class=3D"">So in the first sentence you say they = "cannot steal funds", but everything else you've said, including the = following paragraph, and your specification, indicates they = can.</div><div class=3D""><br class=3D""></div><div class=3D"">I've = finally collected all my thoughts / concerns and have also summarized = them in this document:</div><div class=3D""><br class=3D""></div><div = class=3D""><a = href=3D"https://gist.github.com/taoeffect/9ff64cf78cf1408ec29f13ed39e534c9= " = class=3D"">https://gist.github.com/taoeffect/9ff64cf78cf1408ec29f13ed39e53= 4c9</a></div><div class=3D""><br class=3D""></div><div class=3D"">Kind = regards,</div><div class=3D"">Greg Slepak</div><div class=3D""><br = class=3D""></div><div class=3D""><span style=3D"color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = font-variant-ligatures: normal; font-variant-position: normal; = font-variant-numeric: normal; font-variant-alternates: normal; = font-variant-east-asian: normal; line-height: normal; orphans: 2; = widows: 2;" class=3D"">--</span><br style=3D"color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = font-variant-ligatures: normal; font-variant-position: normal; = font-variant-numeric: normal; font-variant-alternates: normal; = font-variant-east-asian: normal; line-height: normal; orphans: 2; = widows: 2;" class=3D""><span style=3D"color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; = font-variant-ligatures: normal; font-variant-position: normal; = font-variant-numeric: normal; font-variant-alternates: normal; = font-variant-east-asian: normal; line-height: normal; orphans: 2; = widows: 2;" class=3D"">Please do not email me anything that you are not = comfortable also sharing</span><span style=3D"color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = font-variant-ligatures: normal; font-variant-position: normal; = font-variant-numeric: normal; font-variant-alternates: normal; = font-variant-east-asian: normal; line-height: normal; orphans: 2; = widows: 2;" class=3D""> with the NSA.</span> </div> <br class=3D""><div><blockquote type=3D"cite" class=3D""><div = class=3D"">On Jul 12, 2017, at 7:58 PM, Paul Sztorc via bitcoin-dev = <<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" = class=3D"">bitcoin-dev@lists.linuxfoundation.org</a>> wrote:</div><br = class=3D"Apple-interchange-newline"><div class=3D""><div = class=3D"moz-cite-prefix" style=3D"font-family: Helvetica; font-size: = 14px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">I = will repeat that Drivechain can sometimes be confusing because it is = different things to different people.<br class=3D""><br class=3D"">Here = is my attempt to break it down into different modes:<br class=3D""><br = class=3D"">[DC#0] -- Someone who does not upgrade their Bitcoin software = (and is running, say, 0.13). However, they experience the effects of the = new rules which miners add (as per the soft fork[s] to add drivechain = functionality and individual drivechains).<br class=3D"">[DC#1] -- = Someone who always upgrades to the latest version of the Bitcoin = software, but otherwise has no interest in running/using sidechains.<br = class=3D"">[DC#2] -- Someone who upgrades to the latest Bitcoin version, = and decides to also become a full node of one or more sidechains, but = who ever actually uses the sidechains.<br class=3D"">[DC#3] -- Someone = who upgrades their software, runs sidechain full nodes, and actively = moves money to and from these.<br class=3D""><br class=3D"">Greg is = still conflating modes [DC#1] and [DC#3]. Specifically, he equivocates = on the team "steal", using it to mean two different things: [a] spending = an invalid transaction, and [b] a withdrawal that would not match the = report given by a sidechain node.<br class=3D""><br class=3D"">The two = are quite different, see my comments below:<br class=3D""><br = class=3D""><br class=3D"">On 7/12/2017 9:15 PM, Tao Effect wrote:<br = class=3D""></div><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div = class=3D""><blockquote type=3D"cite" class=3D""><div text=3D"#000000" = bgcolor=3D"#FFFFFF" class=3D"">FYI that document is nearly two years = old, and although it is still overwhelmingly accurate, new optimizations = allow us (I think) to push the waiting period to several weeks and the = total ACK counting period up to several = months.</div></blockquote></div><div class=3D"">What does that have to = do with my question? The counting period, if I understood correctly, is = something miners do, not full nodes.</div></blockquote><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><span = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255); float: none; display: inline = !important;" class=3D"">Greg quoted a passage that contained an older = parameter estimate of "a few days", and I thought it would be helpful = and informative if I clarified that the parameter estimate had been = updated to a new (more secure) value.</span><br style=3D"font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">In point of fact, he is wrong, because nodes do the counting. = When miners find a block, they can choose to move the counter up, down, = or not at all. But nodes do the counting.</span><br style=3D"font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div class=3D"">Also, = if the document is old and/or outdated, do you happen to have a link to = a more update-to-date version of the spec? It would be helpful for = review.</div></blockquote><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">As I stated above, the document is mostly accurate. There is = no other more up to date version.</span><br style=3D"font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div = class=3D""><blockquote type=3D"cite" class=3D""><div text=3D"#000000" = bgcolor=3D"#FFFFFF" class=3D"">Because if a node doesn't have the = sidechain's information, it will just assume every withdrawal is valid. = This is comparable to someone who still hasn't upgraded to support P2SH, = in cases [DC#0] and [#1].<br class=3D""></div></blockquote><br = class=3D""></div><div class=3D"">Right, for [DC#0] and [DC#1], but for = [DC#2] an [DC#3] you marked it as "Yes" without substantiating why you = did so.</div></blockquote><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">Above, Greg omitted his original question. For reference, it = was:</span><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><blockquote type=3D"cite" style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><pre style=3D"white-space: pre-wrap; font-style: normal; = font-variant-ligatures: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; orphans: 2; text-align: start; = text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; = -webkit-text-stroke-width: 0px;" class=3D""> The Drivechain spec seems = to claim that its use of anyone-can-pay is the same as = P2SH</pre></blockquote><br style=3D"font-family: Helvetica; font-size: = 14px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><span style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); = float: none; display: inline !important;" class=3D"">The answer is that = both DC and P2SH use transactions which are 'always valid' to some group = of people (un-upgraded users) but which are sometimes invalid to new = users. So the only difference would be for [DC#0] vs other versions, but = this difference is trivial as miners will censor invalid txns.</span><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><span = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255); float: none; display: inline = !important;" class=3D"">It is your classic soft fork = situation.</span><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div = class=3D""><blockquote type=3D"cite" class=3D""><div text=3D"#000000" = bgcolor=3D"#FFFFFF" class=3D"">Again, from the perspective of a = mainchain user, every withdrawal is valid.</div></blockquote></div><div = class=3D"">And that is not how P2SH works.</div></blockquote><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><span = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255); float: none; display: inline = !important;" class=3D"">Again, keep in mind that Greg continually = conflates two different things:</span><br style=3D"font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">1. Whether the soft fork rules have been followed, = and</span><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><span style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); = float: none; display: inline !important;" class=3D"">2. Whether the WT^ = submitted by a majority hashrate matches the one calculated by sidechain = nodes.</span><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><span style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); = float: none; display: inline !important;" class=3D"">The first case is = exactly equal to P2SH. Just as old nodes accept every P2SH transaction, = so too will [DC#0] users accept every WT^ transaction.</span><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><span = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255); float: none; display: inline = !important;" class=3D"">In the second case, it so happens that [DC#1], = [DC#2], and [DC#3] would also accept any WT^ *that followed the = Drivechain rules*, even if they did not like the outcome (because the = outcome in question was arbitrarily designated as a "theft" of funds -- = again, see the second case in the list above). In this way, it is = exactly similar to P2SH because nodes will accept *any* p2sh txn **that = follows the p2sh rules**, even if they don't "like" the specific script = contained within (for example, because it is a theft of "their" BitFinex = funds, or a donation to a political candidate they dislike, = etc).</span><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div = class=3D""><blockquote type=3D"cite" class=3D""><div text=3D"#000000" = bgcolor=3D"#FFFFFF" class=3D"">[DC#2] and [DC#3] would certainly have an = interest in understanding what is going on, but that has absolutely = nothing whatsoever to do with Bitcoin Core and so is off-topic for this = mailing list.<br class=3D""></div></blockquote></div><div class=3D"">How = is that an answer to my question?</div></blockquote><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><span = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255); float: none; display: inline = !important;" class=3D"">Greg is, of course, not entitled to an answer to = irrelevant questions -- just as he would not be entitled to an answer if = he asked for my favorite color or my home address. And such answers = would needlessly consume the mailing list's scarce time.</span><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><blockquote = type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div class=3D"">What = does "[DC#2] and [DC#3] would certainly have an interest in = understanding what is going on" mean?</div></blockquote><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><span = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255); float: none; display: inline = !important;" class=3D"">It is clear to me that, if we are not clear on = the basics first, we cannot hope to tackle anything intermediate. We = will come back to this after clearing up soft fork part.</span><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><br = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><blockquote = type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div class=3D"">In = P2SH, all upgraded nodes will reject invalid P2SH transactions, = period.</div></blockquote><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">In DC, all upgraded nodes will reject invalid DC = transactions, period.</span><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div class=3D"">What = exactly would [DC#2] and [DC#3] nodes do when faced with an invalid WT^ = transaction =E2=80=94 invalid in the sense that it contains funds which = miners are stealing?</div></blockquote><br style=3D"font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">The [DC#2] and [DC#3] nodes would do exactly what the [DC#0] = and [DC#1] nodes do. This is what I mean by "every withdrawal is = valid".</span><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><br style=3D"font-family: Helvetica; font-size: 14px; = font-style: normal; font-variant-caps: normal; font-weight: normal; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""><blockquote type=3D"cite" = cite=3D"mid:42C03DFC-C358-4F8C-A088-735910CCC60E@taoeffect.com" = style=3D"font-family: Helvetica; font-size: 14px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; = background-color: rgb(255, 255, 255);" class=3D""><div class=3D"">Again, = in P2SH miners cannot steal funds, because all full nodes have a fully = automatic enforcement policy.</div></blockquote><br style=3D"font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">In DC, miners cannot steal funds, because all full nodes have = a fully automatic enforcement policy.</span><br style=3D"font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">However, DC *allows* users to choose to place some of their = BTC at the relative mercy of the miners in creative ways, if they wish = (as does P2SH -- someone could write a script which donates funds to = miners, and then fund it... "paying" to that script). This is another = example of conflating [DC#1] and [DC#3].</span><br style=3D"font-family: = Helvetica; font-size: 14px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><br style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-family: Helvetica; = font-size: 14px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: = rgb(255, 255, 255); float: none; display: inline !important;" = class=3D"">Paul</span><br style=3D"font-family: Helvetica; font-size: = 14px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" = class=3D""></div></blockquote></div><br class=3D""></div></body></html>= --Apple-Mail=_8CD43468-0A58-49E7-82A4-666B949AE531-- --Apple-Mail=_00D64527-0324-4692-826A-5D68957184F5 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- iQIcBAEBCgAGBQJZZufZAAoJEOxnICvpCVJHMVsP/3zhz0TdnxnYj3m3xQkyZwyP 3eEikrTTlbdyrqf9Az6Lfyn1G6ubDR0+E/GhfSkL1ib7viBOywAglSLQhlGQ1dk3 AyPzET+EaAa9+LMb2i9QK8GGuR7HUgeyAjOAlLENRO6hbE01s+Fxv4O9+CIph1QY K4Sb2VcN+0A0t3mLdFEWbEFUx5EIHp+ORkIxVfD4XezjoDbYP15LW68KAscgH1bz yU7zcYcFo7jjEU/edWIEgSsPcuG+nuMRlDYR+5Fy84twm5T/K4wPdKb/2btz7wQt bUid5V7HRMn6QN2ydg4ypC6tybiqnsm1HToSo8XiU8YQqzBnXxLwslb8YNTCo8rc TqMA80kau1aClQpUROJ3g4CtgPsPGxYSWWREKcpHDE/J+y+EHGBF/jpaj6Ibaozc eJHapFBMeYdnWLItEVQRM33LcJbK0E/8r31wL28efLu2w9tubJm5rjkSnT3Q1mbx mK/BqVYPgpMn5IDvHOz1h90NbZ4LB8LEuNXbXYYsx7dNxlkBD7vzr6baf1bY0UUV LXn05w+LMDhzdnSTYpuyXBDCQbdksB02BTiBfEi3XjSyJT6vwHwR8xUsnUKYAj5d wXSsnb/xcKdkjiaW5kBWbFA9tMSiBRKRc2cLVb2uF59IGs1peVlwflD+lJch7L1C DIsbj00bi+ArthSGXwNe =ClwE -----END PGP SIGNATURE----- --Apple-Mail=_00D64527-0324-4692-826A-5D68957184F5--