<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated></updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub1mlpmsc5sm93tw2fp2dhhuwmxcqm59wz6hjg5g3afq5rucfll3f9sh4yf8d.rss" />
  <link href="https://nostr.ae/npub1mlpmsc5sm93tw2fp2dhhuwmxcqm59wz6hjg5g3afq5rucfll3f9sh4yf8d" />
  <id>https://nostr.ae/npub1mlpmsc5sm93tw2fp2dhhuwmxcqm59wz6hjg5g3afq5rucfll3f9sh4yf8d</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsgklk76j2ak8j7rrw65qmy4ttf8ek0f628z7vw2d2cah6v89rlmrqzyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79yktyjyu9</id>
    
      <title type="html">📅 Original date posted:2019-03-12 📝 Original message:Also, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgklk76j2ak8j7rrw65qmy4ttf8ek0f628z7vw2d2cah6v89rlmrqzyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79yktyjyu9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyuphn8t5j4ntm83gyr4t5cmmymr00a69zxnhztg5gkkzshfpju8sn4q4nn&#39;&gt;nevent1q…q4nn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-03-12&lt;br/&gt;📝 Original message:Also, if future disabling isn&amp;#39;t the point of making a tx type like&lt;br/&gt;OP_CODESEPARATOR non-standard - what is?  If we&amp;#39;re committed to indefinite&lt;br/&gt;support of these oddball features, what do we gain by making them hard to&lt;br/&gt;use/mine?&lt;br/&gt;&lt;br/&gt;I see questions like &amp;#34;Is it possible someone&amp;#39;s existing tx relies on this?&amp;#34;&lt;br/&gt;as overly black-and-white.  We all agree it&amp;#39;s possible: the question is how&lt;br/&gt;likely, vs the harms of continued support - including not just security&lt;br/&gt;risks but friction on other useful changes, safety/correctness analyses,&lt;br/&gt;etc.&lt;br/&gt;&lt;br/&gt;It is so easy to say stuff like this when one&amp;#39;s own money isn&amp;#39;t what is at&lt;br/&gt;risk.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Stepping back for a second here:  I dispute this framing.  My money *is* at&lt;br/&gt;risk, because the value of my bitcoins depends on adoption and feature&lt;br/&gt;growth.  And I&amp;#39;ve long viewed an absolutist, actual-known-user-indifferent&lt;br/&gt;approach to backwards compatibility as the #1 impediment to Bitcoin&amp;#39;s&lt;br/&gt;adoption and growth.&lt;br/&gt;&lt;br/&gt;Again, the point being not to throw caution to the wind, but that a case&lt;br/&gt;like this where extensive research unearthed zero users, is taking caution&lt;br/&gt;too far.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Mar 12, 2019, 5:48 PM Matt Corallo via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Note that even your carve-outs for OP_NOP is not sufficient here - if you&lt;br/&gt;&amp;gt; were using nSequence to tag different pre-signed transactions into&lt;br/&gt;&amp;gt; categories (roughly as you suggest people may want to do with extra sighash&lt;br/&gt;&amp;gt; bits) then their transactions could very easily have become&lt;br/&gt;&amp;gt; un-realistically-spendable. The whole point of soft forks is that we&lt;br/&gt;&amp;gt; invalidate otherwise-unused bits of the protocol. This does not seem&lt;br/&gt;&amp;gt; inconsistent with the proposal here.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; On Mar 9, 2019, at 13:29, Russell O&amp;#39;Connor &amp;lt;roconnor at blockstream.io&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; Bitcoin has *never* made a soft-fork, since the time of Satoishi, that&lt;br/&gt;&amp;gt; invalidated transactions that send secured inputs to secured outputs&lt;br/&gt;&amp;gt; (excluding uses of OP_NOP1-OP_NOP10).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190312/a6624dfa/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190312/a6624dfa/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:16:48&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrcllepz5prps3rts5wmp2a5ehm5q9v892yflgsulq38jnme6zkcczyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79yknrhfru</id>
    
      <title type="html">📅 Original date posted:2019-03-10 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrcllepz5prps3rts5wmp2a5ehm5q9v892yflgsulq38jnme6zkcczyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79yknrhfru" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9dh6jx0e8wnd9ex2xla772x3kp4vnn38p9teuh5pa7p8dd40954s72myz9&#39;&gt;nevent1q…myz9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-03-10&lt;br/&gt;📝 Original message:&amp;gt;&lt;br/&gt;&amp;gt; Instead, it is this soft-fork proposal that is unprecedented. Let me&lt;br/&gt;&amp;gt; reiterate what I posted in another thread:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Bitcoin has *never* made a soft-fork, since the time of Satoishi, that&lt;br/&gt;&amp;gt; invalidated transactions that send secured inputs to secured outputs&lt;br/&gt;&amp;gt; (excluding uses of OP_NOP1-OP_NOP10).&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;This principle was only ever a rule of thumb to protect users, not a&lt;br/&gt;commandment from God.  It shouldn&amp;#39;t be violated lightly, but that&amp;#39;s why&lt;br/&gt;Matt did the legwork to show that the tradeoffs around OP_CODESEPARATOR&lt;br/&gt;justify removing it.&lt;br/&gt;&lt;br/&gt;Huh?! The whole point of non-standardness in this context is to (a) make&lt;br/&gt;&amp;gt;&amp;gt; soft-forking something out safer by derisking miners not upgrading right&lt;br/&gt;&amp;gt;&amp;gt; away and (b) signal something that may be a candidate for soft-forking&lt;br/&gt;&amp;gt;&amp;gt; out so that we get feedback. Who is getting things disabled who isn&amp;#39;t&lt;br/&gt;&amp;gt;&amp;gt; bothering to *tell* people that their use-case is being hurt?!&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; People have told me that they are hurt by some other non-standardness&lt;br/&gt;&amp;gt; changes and I understand that they have been sitting on those funds for&lt;br/&gt;&amp;gt; years.  Maybe they don&amp;#39;t realize their is some place to complain or maybe&lt;br/&gt;&amp;gt; they think there must be a good reason why they are not allowed to do what&lt;br/&gt;&amp;gt; they were previously allowed to do.  Perhaps others don&amp;#39;t want to risk&lt;br/&gt;&amp;gt; blowing their pseudonymity.  Perhaps they think that attempting to undo&lt;br/&gt;&amp;gt; some of these non-standardness changes is futile.  I can bring up the&lt;br/&gt;&amp;gt; specific cases I&amp;#39;ve encountered in a new thread if you think it is&lt;br/&gt;&amp;gt; worthwhile.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Like Matt, I understand non-standardness to be specifically for making a&lt;br/&gt;transaction type more difficult to set the stage for a future disabling.&lt;br/&gt;&lt;br/&gt;If anyone is actually harmed by this change, let them at least speak up&lt;br/&gt;pseudonymously as others have before.  Backwards compatibility shouldn&amp;#39;t&lt;br/&gt;mean letting imaginary implausible cases veto net-beneficial changes.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Sat, Mar 9, 2019 at 5:21 PM Russell O&amp;#39;Connor via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi Matt,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Fri, Mar 8, 2019 at 1:35 PM Matt Corallo &amp;lt;lf-lists at mattcorallo.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Replies inline.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On 3/8/19 3:57 PM, Russell O&amp;#39;Connor wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; On Thu, Mar 7, 2019 at 2:50 PM Matt Corallo &amp;lt;lf-lists at mattcorallo.com&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;mailto:lf-lists at mattcorallo.com&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; It&amp;#39;s very easy to construct a practical script using OP_CODESEPARATOR.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; IF &amp;lt;2&amp;gt; &amp;lt;ALICEPUBKEY&amp;gt; &amp;lt;BOBPUBKEY&amp;gt; &amp;lt;2&amp;gt; CHECKMULTISIGVERIFY ELSE&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; CODESEPARATOR &amp;lt;ALICEPUBKEY&amp;gt; CHECKSIGVERFY ENDIF&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Now when someone hands Alice, the CFO of XYZ corp., some transaction,&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; she has the option of either signing it unilaterally herself, or&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; creating a partial signature such that the transaction additionally&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; needs Bob, the CEOs signature as well, and Alice&amp;#39;s choice is committed&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; to the blockchain for auditing purposes later.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Now, there are many things you might object about this scheme, but my&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; point is that (A) regardless of what you think about this scheme, it,&lt;br/&gt;&amp;gt;&amp;gt; or&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; similar schemes, may have been devised by users, and (B) users may have&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; already committed funds to such schemes, and due to P2SH you cannot&lt;br/&gt;&amp;gt;&amp;gt; know&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; that this is not the case.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; The common way to set that up is to have a separate key, but, ok, fair&lt;br/&gt;&amp;gt;&amp;gt; enough. That said, the argument that &amp;#34;it may be hidden by P2SH!&amp;#34; isn&amp;#39;t&lt;br/&gt;&amp;gt;&amp;gt; sufficient here. It has to *both* be hidden by P2SH and have never been&lt;br/&gt;&amp;gt;&amp;gt; spent from (either on mainnet or testnet) or be lock-timed a year in the&lt;br/&gt;&amp;gt;&amp;gt; future. I&amp;#39;m seriously skeptical that someone is using a highly esoteric&lt;br/&gt;&amp;gt;&amp;gt; scheme and has just been pouring money into it without ever having&lt;br/&gt;&amp;gt;&amp;gt; tested it or having withdrawn any money from it whatsoever. This is just&lt;br/&gt;&amp;gt;&amp;gt; a weird argument.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; No one is required to test their Scripts on a public testnet; they can use&lt;br/&gt;&amp;gt; regtest. Because these transactions are non-standard on mainnet, it could&lt;br/&gt;&amp;gt; take years to arrange for these funds to be recovered by having their&lt;br/&gt;&amp;gt; transactions mined directly, or take years to become valuable enough to be&lt;br/&gt;&amp;gt; worth bothering having them directly mined.  As I have noted elsewhere, you&lt;br/&gt;&amp;gt; cannot first make transactions non-standard and then use the fact that you&lt;br/&gt;&amp;gt; don&amp;#39;t see them being used on mainnet to justify a soft-fork.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; My argument isn&amp;#39;t weird; it is principled.  You are skeptical that any&lt;br/&gt;&amp;gt; uses of OP_CODESEPARATOR have P2SH commitments.  I am also skeptical, and&lt;br/&gt;&amp;gt; so is everyone reading this mailing list.  But none of us know this with&lt;br/&gt;&amp;gt; certainty, and it is /wrong/ for any of us to gamble with other people&amp;#39;s&lt;br/&gt;&amp;gt; money that our assumptions are true.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Instead, it is this soft-fork proposal that is unprecedented. Let me&lt;br/&gt;&amp;gt; reiterate what I posted in another thread:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Bitcoin has *never* made a soft-fork, since the time of Satoishi, that&lt;br/&gt;&amp;gt; invalidated transactions that send secured inputs to secured outputs&lt;br/&gt;&amp;gt; (excluding uses of OP_NOP1-OP_NOP10).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The fact that Bitcoin has stuck to this principle gives me and everyone&lt;br/&gt;&amp;gt; else confidence in the protocol; that anyone can secure their funds by&lt;br/&gt;&amp;gt; whatever scheme they dream up, and deploy it without needing permission or&lt;br/&gt;&amp;gt; anyone else to vet their Scripts. So long as they are not impairing the&lt;br/&gt;&amp;gt; Bitcoin protocol itself, the most that Bitcoin Core will do is stop&lt;br/&gt;&amp;gt; relaying their transactions by default.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Undermining this principle means undermining what provides Bitcoin&amp;#39;s value&lt;br/&gt;&amp;gt; in the first place.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The problem in this particular case is that there exist valid secure&lt;br/&gt;&amp;gt; transactions that make use OP_CODESEPARATOR such that these transactions&lt;br/&gt;&amp;gt; themselves impair the Bitcoin protocol (through excessive validation costs)&lt;br/&gt;&amp;gt; in a way that, AFAIU, is fundamental to the nature of such transactions (in&lt;br/&gt;&amp;gt; particular, it isn&amp;#39;t just due to an implementation detail of Bitcoin&lt;br/&gt;&amp;gt; Core).  Thus to fix this vulnerability we must necessarily violate the&lt;br/&gt;&amp;gt; principle of not invalidating, secure transactions.  However, this fact&lt;br/&gt;&amp;gt; isn&amp;#39;t license to freely invalidate any transactions we want.  We ought to&lt;br/&gt;&amp;gt; strive to minimize the scope of violation of this principle.  Alice and Bob&lt;br/&gt;&amp;gt; from XYZ. corp should be able to keep their benign transaction illustrated&lt;br/&gt;&amp;gt; above, and we only eliminate those transactions that actually impair the&lt;br/&gt;&amp;gt; Bitcoin protocol.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This is the perfect opportunity to show the world that Bitcoin Core simply&lt;br/&gt;&amp;gt; doesn&amp;#39;t take chances when it comes to other people money.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Please don&amp;#39;t strawman my position.  I am not suggesting we don&amp;#39;t fix a&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; vulnerability in Bitcoin.  I am suggesting we find another way.  One&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; that limits the of risk destroying other people&amp;#39;s money.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Here is a more concrete proposal:  No matter how bad OP_CODESEPARATOR&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; is, it cannot be worse than instead including another input that spends&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; another identically sized UTXO.  So how about we soft-fork in a rule&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; that says that an input&amp;#39;s weight is increased by an amount equal to the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; number of OP_CODESEPARATORs executed times the sum of weight of the&lt;br/&gt;&amp;gt;&amp;gt; UTXO&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; being spent and 40 bytes, the weight of a stripped input. The risk of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; destroying other people&amp;#39;s money is limited and AFAIU it would&lt;br/&gt;&amp;gt;&amp;gt; completely&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; address the vulnerabilities caused by OP_CODESEPARATOR.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; You&amp;#39;re already arguing that someone has such an esoteric use of script,&lt;br/&gt;&amp;gt;&amp;gt; suggesting they aren&amp;#39;t *also* creating pre-signed, long-locktimed&lt;br/&gt;&amp;gt;&amp;gt; transactions with many inputs isn&amp;#39;t much of a further stretch&lt;br/&gt;&amp;gt;&amp;gt; (especially since this may result in the fee being non-standardly low if&lt;br/&gt;&amp;gt;&amp;gt; you artificially increase its weight).&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There is no consensus rule about minimum fees, and CPFP could add the more&lt;br/&gt;&amp;gt; fees. But yes, I am saying that Alice and Bob could be building on their&lt;br/&gt;&amp;gt; transaction illustrated above, but not creating a many input tx that&lt;br/&gt;&amp;gt; wouldn&amp;#39;t fit into a block with my proposed added weight, because if their&lt;br/&gt;&amp;gt; transaction won&amp;#39;t fit into a block with the added weight then it was a&lt;br/&gt;&amp;gt; malicious transaction to begin with.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Do you not recognize the material difference between a soft-fork that&lt;br/&gt;&amp;gt; doubles the cost of a transaction like Alice and Bob&amp;#39;s versus making their&lt;br/&gt;&amp;gt; transaction entirely illegal?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Note that &amp;#34;just limit number of OP_CODESEPARATOR calls&amp;#34; results in a ton&lt;br/&gt;&amp;gt;&amp;gt; of complexity and reduces the simple analysis that fees (almost) have&lt;br/&gt;&amp;gt;&amp;gt; today vs just removing it allows us to also remove a ton of code.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Further note that if you don&amp;#39;t remove it getting the efficiency wins&lt;br/&gt;&amp;gt;&amp;gt; right is even harder because instead of being able to cache sighashes&lt;br/&gt;&amp;gt;&amp;gt; you now have to (at a minimum) wipe the cache between each&lt;br/&gt;&amp;gt;&amp;gt; OP_CODESEPARATOR call, which results in a ton of additional&lt;br/&gt;&amp;gt;&amp;gt; implementation complexity.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; How can this be &amp;#34;additional&amp;#34; complexity when this is how the protocol&lt;br/&gt;&amp;gt; works today?  All you have to do is not change the semantics of&lt;br/&gt;&amp;gt; OP_CODESEPARATOR.  It is literally no work.&lt;br/&gt;&amp;gt; Regarding the efficiency wins, let me repeat myself: The performance costs&lt;br/&gt;&amp;gt; of wiping the cached sighashs is not worse than what the performance costs&lt;br/&gt;&amp;gt; would be if the transaction had an additional input spending an equally&lt;br/&gt;&amp;gt; sized UTXO.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;      &amp;gt; I suggest an alternative whereby the execution of&lt;br/&gt;&amp;gt;&amp;gt; OP_CODESEPARATOR&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;      &amp;gt; increases the transactions weight suitably as to temper the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;      &amp;gt; vulnerability caused by it.  Alternatively there could be some&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;     sort of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;      &amp;gt; limit (maybe 1) on the maximum number of OP_CODESEPARATORs&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;     allowed to be&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;      &amp;gt; executed per script, but that would require an argument as to why&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;      &amp;gt; exceeding that limit isn&amp;#39;t reasonable.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;     You could equally argue, however, that any such limit could render&lt;br/&gt;&amp;gt;&amp;gt; some&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;     moderately-large transaction unspendable, so I&amp;#39;m somewhat skeptical&lt;br/&gt;&amp;gt;&amp;gt; of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;     this argument. Note that OP_CODESEPARATOR is non-standard, so&lt;br/&gt;&amp;gt;&amp;gt; getting&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;     them mined is rather difficult in any case.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; I already know of people who&amp;#39;s funds are tied up due to in other&lt;br/&gt;&amp;gt;&amp;gt; changes&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; to Bitcoin Core&amp;#39;s default relay policy.  Non-standardness is not an&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; excuse to take other people&amp;#39;s tied up funds and destroy them&lt;br/&gt;&amp;gt;&amp;gt; permanently.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Huh?! The whole point of non-standardness in this context is to (a) make&lt;br/&gt;&amp;gt;&amp;gt; soft-forking something out safer by derisking miners not upgrading right&lt;br/&gt;&amp;gt;&amp;gt; away and (b) signal something that may be a candidate for soft-forking&lt;br/&gt;&amp;gt;&amp;gt; out so that we get feedback. Who is getting things disabled who isn&amp;#39;t&lt;br/&gt;&amp;gt;&amp;gt; bothering to *tell* people that their use-case is being hurt?!&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; People have told me that they are hurt by some other non-standardness&lt;br/&gt;&amp;gt; changes and I understand that they have been sitting on those funds for&lt;br/&gt;&amp;gt; years.  Maybe they don&amp;#39;t realize their is some place to complain or maybe&lt;br/&gt;&amp;gt; they think there must be a good reason why they are not allowed to do what&lt;br/&gt;&amp;gt; they were previously allowed to do.  Perhaps others don&amp;#39;t want to risk&lt;br/&gt;&amp;gt; blowing their pseudonymity.  Perhaps they think that attempting to undo&lt;br/&gt;&amp;gt; some of these non-standardness changes is futile.  I can bring up the&lt;br/&gt;&amp;gt; specific cases I&amp;#39;ve encountered in a new thread if you think it is&lt;br/&gt;&amp;gt; worthwhile.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Regarding OP_CODESEAPRATOR specifically, disabling the rely of such&lt;br/&gt;&amp;gt; transactions partially mitigates the vulnerability.  Once the vulnerability&lt;br/&gt;&amp;gt; is properly patched, for example by suitably increasing the weight of the&lt;br/&gt;&amp;gt; operation or opcode, we could drop the prohibition on relaying such&lt;br/&gt;&amp;gt; transactions.  Non-standardness is not necessarily a path to a new&lt;br/&gt;&amp;gt; consensus rule. We have several non-standardness rules in place that are&lt;br/&gt;&amp;gt; never intended to become new consensus rules.  Sometimes non-standardness&lt;br/&gt;&amp;gt; is a temporary mitigation.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190309/900b7770/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190309/900b7770/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:16:47&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg66fypgvv4dfm89676fk58q7q9gtawzv74q5ndymyng4d9xrq96szyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykrdmchm</id>
    
      <title type="html">📅 Original date posted:2017-11-11 📝 Original message:OK, so ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg66fypgvv4dfm89676fk58q7q9gtawzv74q5ndymyng4d9xrq96szyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykrdmchm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspdcm3nxzdkfrdwdsff3fy2yzhx0t7hmdcndxurlftx9kyfn48tzcd0dkmm&#39;&gt;nevent1q…dkmm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-11-11&lt;br/&gt;📝 Original message:OK, so nForkId 0 is exactly the &amp;#34;valid on all chains&amp;#34; specifier I was&lt;br/&gt;asking about, cool.  And your LN example (and nLockTime txs in general)&lt;br/&gt;illustrate why it&amp;#39;s preferable to implement a generic replay protection&lt;br/&gt;scheme like yours *in advance*, rather than before each fork: all ad hoc RP&lt;br/&gt;schemes I know of break old txs on one of the chains, even when that&amp;#39;s not&lt;br/&gt;desirable - ie, they offer no wildcard like nForkId 0.&lt;br/&gt;&lt;br/&gt;One comment on your LN example: users would have to take note that nForkId&lt;br/&gt;0 txs would be valid not only on future forks, but on *past* forks too.&lt;br/&gt;Eg, if BCH had been deployed with nForkId 2, then a user setting up BTC LN&lt;br/&gt;txs now with nForkId 0 would have to be aware that those txs would be valid&lt;br/&gt;for BCH too.  Of course the user could avoid this by funding from a&lt;br/&gt;BTC-only address, but it is a potential minor pitfall of nForkId 0.  (Which&lt;br/&gt;I don&amp;#39;t see any clean way around.)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Fri, Nov 10, 2017 at 6:28 AM, Mats Jerratsch &amp;lt;mats at blockchain.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; I guess I wasn&amp;#39;t clear on the wildcard, `nForkId=0`&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This proposal puts Bitcoin at `nForkId=1`, with the purpose of having&lt;br/&gt;&amp;gt; `nForkId=0` valid on *all* future forks. This means you can create a&lt;br/&gt;&amp;gt; `nLockTime` transaction, delete the private key and still be assured to not&lt;br/&gt;&amp;gt; lose potential future tokens.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In theory `nForkId=0` could be used for an address too, the sending wallet&lt;br/&gt;&amp;gt; should display a warning message about unknown side effects though. This&lt;br/&gt;&amp;gt; address would be future-safe, and you can put it into a safe-deposit box&lt;br/&gt;&amp;gt; (even though I see little reason to back up an _address_. You would always&lt;br/&gt;&amp;gt; back up a _private key_, which translates into funds on any fork.)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Furthermore, `nForkId=0` can be used for L2 applications. Let&amp;#39;s say Alice&lt;br/&gt;&amp;gt; and Bob open a payment channel. One week later, project X decides to fork&lt;br/&gt;&amp;gt; the network into a new token, implementing a custom way of providing strong&lt;br/&gt;&amp;gt; two-way replay protection. The protocol Alice and Bob use for the payment&lt;br/&gt;&amp;gt; channel has not implemented this new form of replay protection. Alice and&lt;br/&gt;&amp;gt; Bob now have to make a choice:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; (1) Ignore this new token. This comes with an evaluation of how much this&lt;br/&gt;&amp;gt; new token could be worth in the future. They will continue normal channel&lt;br/&gt;&amp;gt; operation, knowing that their funds on the other branch will be locked up&lt;br/&gt;&amp;gt; until eternity. When they close their payment channel, the closing&lt;br/&gt;&amp;gt; transaction will get rejected from the other network, because it&amp;#39;s not&lt;br/&gt;&amp;gt; following the format for replay protected transactions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; (2) Close the payment channel before the fork. The transaction, which&lt;br/&gt;&amp;gt; closes the payment channel has to be mined before the fork, potentially&lt;br/&gt;&amp;gt; paying a higher-than-normal fee.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; With this proposal implemented, there are two additional choices&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; (3) Create the commitment transactions with `nForkId=0`. This ensures that&lt;br/&gt;&amp;gt; when the channel gets closed, funds on other chains are released&lt;br/&gt;&amp;gt; accordingly. This also means that after the fork, payments on the channel&lt;br/&gt;&amp;gt; move both, the original token and the new token. Potentially, Alice and Bob&lt;br/&gt;&amp;gt; want to wait before further transacting on the channel, to see if the token&lt;br/&gt;&amp;gt; has substantial value. If it has, they can *then* close the channel and&lt;br/&gt;&amp;gt; open a new channel again. (Note: The funding transaction can use a specific&lt;br/&gt;&amp;gt; `nForkId`, preventing you from locking up multiple coins when funding the&lt;br/&gt;&amp;gt; channel, but you can choose to settle with `nForkId=0` to not lock up&lt;br/&gt;&amp;gt; future coins)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; (4) Make the protocol aware of different `nForkId`. After the fork, the&lt;br/&gt;&amp;gt; participants can chose to *only* close the payment channel on the new&lt;br/&gt;&amp;gt; token, making the payment channel Bitcoin-only again. This is the preferred&lt;br/&gt;&amp;gt; option, as it means no disruption to the original network.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I like the idea of specifying the fork in bech32 [0]. On the other hand,&lt;br/&gt;&amp;gt; the standard already has a human readable part. Perhaps the human readable&lt;br/&gt;&amp;gt; part can be used as the fork id?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I was considering this too. On the other hand, it&amp;#39;s only _human readable_&lt;br/&gt;&amp;gt; because thy bytes used currently encode &amp;#39;bc&amp;#39;. For future forks, this would&lt;br/&gt;&amp;gt; just be two random letters than, but potentially acceptable.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171111/9fb7d5ba/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171111/9fb7d5ba/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:07:36&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsr2nvggp59h7jxufpxqtlrrf5tepuwjksv3pss258tv30h3yreppszyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykzj25rx</id>
    
      <title type="html">📅 Original date posted:2017-11-09 📝 Original message:OK, I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsr2nvggp59h7jxufpxqtlrrf5tepuwjksv3pss258tv30h3yreppszyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykzj25rx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqfwkjc8593j8sacmmj9d0je5wu9v3nq86hhuh9u8nglsn9tw363qhw74y4&#39;&gt;nevent1q…74y4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-11-09&lt;br/&gt;📝 Original message:OK, I see.  On the whole this is the best replay protection solution I&amp;#39;ve&lt;br/&gt;seen.  In particular, I hope developers of Bech32 and other new address&lt;br/&gt;formats will take a close look at incorporating a fork ID this way.&lt;br/&gt;&lt;br/&gt;As I understand you, a private key in cold storage would (of course) remain&lt;br/&gt;valid across HFs, but an *address* would be valid only for the nForkId it&lt;br/&gt;was generated for.  There may be cold-storage-type cases where it&amp;#39;s&lt;br/&gt;important for an address to be valid across all chains, ie, to&lt;br/&gt;intentionally allow replay?  But I guess this could just be a special&lt;br/&gt;nForkId value, say -1?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Nov 8, 2017 9:45 AM, &amp;#34;Mats Jerratsch&amp;#34; &amp;lt;mats at blockchain.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hey Jacob!&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Take the specific and common case of non-upgraded wallet software.&lt;br/&gt;&amp;gt; Suppose a HF happens, and becomes the network used by 90% of users.  Will&lt;br/&gt;&amp;gt; old wallets still default to the old nForkId (10% legacy chain)?  If so,&lt;br/&gt;&amp;gt; I&amp;#39;d expect a lot of accidental mis-sends on that chain.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; With this proposal implemented, a &amp;#39;mis-send&amp;#39; is fundamentally impossible.&lt;br/&gt;&amp;gt; The address contains the identifier of the token that should be sent.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If anything, it&amp;#39;s possible to &amp;#39;mis-receive&amp;#39;.&lt;br/&gt;&amp;gt; That is, the receiving wallet was not aware of a newer chain, and the&lt;br/&gt;&amp;gt; receiver actually wanted to receive the newer token, but instead his wallet&lt;br/&gt;&amp;gt; created an address for the old token. It is the responsibility of the&lt;br/&gt;&amp;gt; receiver to write a correct invoice. This is the case everywhere else in&lt;br/&gt;&amp;gt; the world too, so this seems like a reasonable trade-off.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I would even argue that this should hold in a legal case, where the&lt;br/&gt;&amp;gt; receiver cannot claim that he was expecting a payment in another token&lt;br/&gt;&amp;gt; (contrary to how it is today, like when users send BTC to a BCH address,&lt;br/&gt;&amp;gt; losing their funds with potentially no legal right for reimbursement). If I&lt;br/&gt;&amp;gt; sent someone an invoice over 100€, I cannot later proclaim that I actually&lt;br/&gt;&amp;gt; expected $100.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; With this proposal, wallets are finally able to distinguish between&lt;br/&gt;&amp;gt; different tokens. With this ability, I expect to see different&lt;br/&gt;&amp;gt; implementations, some wallets which advertise staying conservative,&lt;br/&gt;&amp;gt; following a strict ruleset, and other wallets being more experimental,&lt;br/&gt;&amp;gt; following hashing rate or other metrics.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171109/b20d9108/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171109/b20d9108/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:07:35&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg2deees8az0q9w2cr8urxgcvk7ee967p9xaqfpg0ayyhjtgn56dczyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykelxxdw</id>
    
      <title type="html">📅 Original date posted:2017-11-06 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg2deees8az0q9w2cr8urxgcvk7ee967p9xaqfpg0ayyhjtgn56dczyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykelxxdw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfayt8srcnvmdc8tng3cand73y6sj47wd8n9fdmz54a45ywwyxphs7m7dek&#39;&gt;nevent1q…7dek&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-11-06&lt;br/&gt;📝 Original message:Thanks Mats, this proposal makes sense to me (especially the idea of&lt;br/&gt;fork-specific addresses).  It prevents replay across forks, and makes it&lt;br/&gt;easy for client software, and thus potentially users, to specify which fork&lt;br/&gt;a tx is for.  But, like other (rougher) past proposals I&amp;#39;ve seen, it does&lt;br/&gt;little to prevent users from accidentally sending on the wrong fork.&lt;br/&gt;&lt;br/&gt;Take the specific and common case of non-upgraded wallet software.  Suppose&lt;br/&gt;a HF happens, and becomes the network used by 90% of users.  Will old&lt;br/&gt;wallets still default to the old nForkId (10% legacy chain)?  If so, I&amp;#39;d&lt;br/&gt;expect a lot of accidental mis-sends on that chain.&lt;br/&gt;&lt;br/&gt;This is just a gap in your proposal, not a flaw, but it&amp;#39;s worth thinking&lt;br/&gt;about less hazard-prone ways wallets could default nForkId.  Perhaps they&lt;br/&gt;could listen to all forks, and default to the one whose last (recent) block&lt;br/&gt;had the highest difficulty?  Or just check those blocks to see if multiple&lt;br/&gt;forks are (nontrivially) active, and if so warn the user and force them to&lt;br/&gt;confirm?  Something like that.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Nov 6, 2017 7:05 AM, &amp;#34;Mats Jerratsch via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Presented is a generalised way of providing replay protection for future&lt;br/&gt;hard forks. On top of replay protection, this schema also allows for&lt;br/&gt;fork-distinct addresses and potentially a way to opt-out of replay&lt;br/&gt;protection of any fork, where deemed necessary (can be beneficial for some&lt;br/&gt;L2 applications).&lt;br/&gt;&lt;br/&gt;## Rationale&lt;br/&gt;&lt;br/&gt;Currently when a hard fork happens, there is ad-hoc replay protection built&lt;br/&gt;within days with little review at best, or no replay protection at all.&lt;br/&gt;Often this is either resource problem, where not enough time and developers&lt;br/&gt;are available to sufficiently address replay protection, or the idea that&lt;br/&gt;not breaking compatibility is favourable. Furthermore, this is potentially&lt;br/&gt;a recurring problem with no generally accepted solution yet. Services that&lt;br/&gt;want to deal in multiple forks are expected to closely follow all projects.&lt;br/&gt;Since there is no standard, the solutions differ for each project,&lt;br/&gt;requiring custom code for every fork. By integrating replay protection into&lt;br/&gt;the protocol, we advocate the notion of non-hostile forks.&lt;br/&gt;&lt;br/&gt;Users are protected against accidentally sending coins on the wrong chain&lt;br/&gt;through the introduction of a fork-specific incompatible address space. The&lt;br/&gt;coin/token type is encoded in the address itself, removing some of the&lt;br/&gt;importance around the question _What is Bitcoin?_. By giving someone an&lt;br/&gt;address, it is explicitly stated _I will only honour a payment of token X_,&lt;br/&gt;enforcing the idea of validating the payment under the rules chosen by the&lt;br/&gt;payee.&lt;br/&gt;&lt;br/&gt;## Iterative Forks&lt;br/&gt;&lt;br/&gt;In this schema, any hard fork is given an incremented id, `nForkId`.&lt;br/&gt;`nForkId` starts at `1`, with `0` being reserved as a wildcard. When&lt;br/&gt;project X decides to make an incompatible change to the protocol, it will&lt;br/&gt;get assigned a new unique `nForkId` for this fork. A similar approach like&lt;br/&gt;for BIP43 can be taken here. Potentially `nForkId` can be reused if a&lt;br/&gt;project has not gained any amount of traction.&lt;br/&gt;&lt;br/&gt;When preparing the transaction for signing or validation, `nForkId` is&lt;br/&gt;appended to the final template as a 4B integer (similar to [1]). Amending&lt;br/&gt;BIP143, this would result in&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;Double SHA256 of the serialization of:&lt;br/&gt;    1. nVersion of the transaction (4-byte little endian)&lt;br/&gt;    2. hashPrevouts (32-byte hash)&lt;br/&gt;    3. hashSequence (32-byte hash)&lt;br/&gt;    4. outpoint (32-byte hash &#43; 4-byte little endian)&lt;br/&gt;    5. scriptCode of the input (serialized as scripts inside CTxOuts)&lt;br/&gt;    6. value of the output spent by this input (8-byte little endian)&lt;br/&gt;    7. nSequence of the input (4-byte little endian)&lt;br/&gt;    8. hashOutputs (32-byte hash)&lt;br/&gt;    9. nLocktime of the transaction (4-byte little endian)&lt;br/&gt;   10. sighash type of the signature (4-byte little endian)&lt;br/&gt;   11. nForkId (4-byte little endian)&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;For `nForkId=0` this step is ommitted. This will immediately invalidate&lt;br/&gt;signatures for any other branch of the blockchain than this specific fork.&lt;br/&gt;To distinguish between `nForkId=0` and `nForkId` hardcoded into the&lt;br/&gt;software, another bit has to be set in the 1B SigHashId present at the end&lt;br/&gt;of signatures.&lt;br/&gt;&lt;br/&gt;To make this approach more generic, payment addresses will contain the fork&lt;br/&gt;id, depending on which tokens a payee expects payments in. This would&lt;br/&gt;require a change on bech32 addresses, maybe to use a similar format used in&lt;br/&gt;lightning-rfc [2]. A wallet will parse the address, it will extract&lt;br/&gt;`nForkId`, and it displays which token the user is about to spend. When&lt;br/&gt;signing the transaction, it will use `nForkId`, such that the transaction&lt;br/&gt;is only valid for this specific token. This can be generalised in software&lt;br/&gt;to the point where replay protection *and* a new address space can be&lt;br/&gt;introduced for forks without breaking existing clients.&lt;br/&gt;&lt;br/&gt;For light clients, this can be extended by enforcing the coinbase/block&lt;br/&gt;header to contain the `nForkId` of the block. Then the client can&lt;br/&gt;distinguish between different chains and tokens it received on each.&lt;br/&gt;Alternatively, a new P2P message type for sending transactions could be&lt;br/&gt;introduced, where prevOut and `nForkId` is transmitted, such that the lite&lt;br/&gt;client can check for himself, which token he received.&lt;br/&gt;&lt;br/&gt;Allowing signatures with `nForkId=1` can be achieved with a soft fork by&lt;br/&gt;incrementing the script version of SegWit, making this a fully backwards&lt;br/&gt;compatible change.&lt;br/&gt;&lt;br/&gt;[1]&lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/&lt;/a&gt;&lt;br/&gt;2017-February/013542.html&lt;br/&gt;&lt;br/&gt;[2]&lt;br/&gt;&lt;a href=&#34;https://github.com/lightningnetwork/lightning-rfc/blob/master/11-payment-&#34;&gt;https://github.com/lightningnetwork/lightning-rfc/blob/master/11-payment-&lt;/a&gt;&lt;br/&gt;encoding.md&lt;br/&gt;&lt;br/&gt;_______________________________________________&lt;br/&gt;bitcoin-dev mailing list&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171106/91e3799f/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171106/91e3799f/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:07:34&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsx2xnzje5xvpmnrzmdcnkczy7hxgh0j35f682hk32pgtejcczpjwczyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79yk80xd7d</id>
    
      <title type="html">📅 Original date posted:2017-06-21 📝 Original message:Well, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsx2xnzje5xvpmnrzmdcnkczy7hxgh0j35f682hk32pgtejcczpjwczyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79yk80xd7d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsypqrc8fa9wx73wkgz7kycvcduef590gf574jnda3vwgtt9ywykjg6z2ljm&#39;&gt;nevent1q…2ljm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-06-21&lt;br/&gt;📝 Original message:Well, this Saturday&amp;#39;s &amp;#34;Chinese roundtable&amp;#34; statement from a bunch of&lt;br/&gt;miners (&lt;a href=&#34;https://pastebin.com/b3St9VCF&#34;&gt;https://pastebin.com/b3St9VCF&lt;/a&gt;) says they intend &amp;#34;NYA&amp;#34; in the&lt;br/&gt;coinbase as support for &amp;#34;the New York consensus SegWit2x program btc1 (&lt;br/&gt;&lt;a href=&#34;https://github.com/btc1&#34;&gt;https://github.com/btc1&lt;/a&gt;)&amp;#34;, whose code includes the (accelerated 336-block)&lt;br/&gt;BIP 91 change.  So, other facts or interpretations could come to light, but&lt;br/&gt;until they do we should probably assume that&amp;#39;s what the &amp;#34;NYA&amp;#34; (which just&lt;br/&gt;broke 80% over the last 24h) means.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Jun 20, 2017 at 10:11 PM, Mark Friedenbach &amp;lt;mark at friedenbach.org&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; 80% have set &amp;#34;NYA&amp;#34; in their coinbase string. We have no idea what that&lt;br/&gt;&amp;gt; means. People are equating it to BIP 91 -- but BIP 91 did not exist at&lt;br/&gt;&amp;gt; the time of the New York agreement, and differs from the actual text&lt;br/&gt;&amp;gt; of the NYA in substantive ways. The &amp;#34;Segwit2MB&amp;#34; that existed at the&lt;br/&gt;&amp;gt; time of the NYA, and which was explicitly referenced by the text is&lt;br/&gt;&amp;gt; the proposal by Sergio Demian Lerner that was made to this mailing&lt;br/&gt;&amp;gt; list on 31 March. The text of the NYA grants no authority for&lt;br/&gt;&amp;gt; upgrading this proposal while remaining compliant with the agreement.&lt;br/&gt;&amp;gt; This is without even considering the fact that in the days after the&lt;br/&gt;&amp;gt; NYA there was disagreement among those who signed it as to what it&lt;br/&gt;&amp;gt; meant.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I feel it is a very dangerous and unwarranted assumption people are&lt;br/&gt;&amp;gt; making that what we are seeing now is either 80% support for BIP-91 or&lt;br/&gt;&amp;gt; for the code in the btc1 repo.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Tue, Jun 20, 2017 at 6:36 PM, Erik Aronesty &amp;lt;erik at q32.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; # Jacob Eliosoff:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  will start orphaning non-bit-1 blocks before Aug 1, and we avoid a&lt;br/&gt;&amp;gt; split.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Correct.  There are 2 short activation periods in BIP91 either of which&lt;br/&gt;&amp;gt; &amp;gt; would avoid a split.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; # Gregory Maxwell:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; unclear to me _exactly_ what it would need to implement to be&lt;br/&gt;&amp;gt; consistent.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This is the relevant pull req to core:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/10444&#34;&gt;https://github.com/bitcoin/bitcoin/pull/10444&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Seems OK.  It&amp;#39;s technically running now on testnet5.   I think it (or a&lt;br/&gt;&amp;gt; &amp;gt; -bip148 option) should be merged as soon as feasible.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; previously debunked &amp;#34;XT&amp;#34; and &amp;#34;Classic&amp;#34; hysteria.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; apples vs oranges, imo.   segwit is not a contentious feature.   the&lt;br/&gt;&amp;gt; &amp;gt; &amp;#34;bundling&amp;#34; in segwit2x is, but that&amp;#39;s not the issue here.   the issue is&lt;br/&gt;&amp;gt; we&lt;br/&gt;&amp;gt; &amp;gt; are indirectly requiring miners that strongly support segwit to install&lt;br/&gt;&amp;gt; &amp;gt; consensus protocol changes outside of bitcoin&amp;#39;s standard reference.&lt;br/&gt;&amp;gt;  80% of&lt;br/&gt;&amp;gt; &amp;gt; them have signaled they will do so.   these are uncharted waters.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; On Tue, Jun 20, 2017 at 6:57 PM, Jacob Eliosoff via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; I could be wrong, but the latest BIP91 implementation (also included in&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Segwit2x) cuts the activation period to 336 blocks (2.33 days).  (This&lt;br/&gt;&amp;gt; has&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; been updated at&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0091.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0091.mediawiki&lt;/a&gt;.)  So&lt;br/&gt;&amp;gt; if 80%&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; of hashpower is actually running that code and signaling on bit 4 by&lt;br/&gt;&amp;gt; July 25&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; or so, then those 80&#43;% will start orphaning non-bit-1 blocks before Aug&lt;br/&gt;&amp;gt; 1,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; and we avoid a split.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; There may still be a few non-bit-1 blocks that get orphaned after Aug 1,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; because they&amp;#39;re mined by old BIP141 nodes.  But it seems like very few&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; miners won&amp;#39;t be signaling either Segwit2x *or* BIP141 by then...&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Make sense?&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; On Tue, Jun 20, 2017 at 6:48 PM, Mark Friedenbach &amp;lt;mark at friedenbach.org&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Why do you say activation by August 1st is likely? That would require&lt;br/&gt;&amp;gt; an&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; entire difficulty adjustment period with &amp;gt;=95% bit1 signaling. That&lt;br/&gt;&amp;gt; seems a&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; tall order to organize in the scant few weeks remaining.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Jun 20, 2017, at 3:29 PM, Jacob Eliosoff via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; If segwit is activated before Aug 1, as now seems likely, there will be&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; no split that day.  But if activation is via Segwit2x (also likely),&lt;br/&gt;&amp;gt; and at&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; least some nodes do &amp;amp; some don&amp;#39;t follow through with the HF 3mo later&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (again, likely), agreed w/ Greg that *then* we&amp;#39;ll see a split -&lt;br/&gt;&amp;gt; probably in&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Sep/Oct.  How those two chains will match up and how the split will&lt;br/&gt;&amp;gt; play out&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; is anyone&amp;#39;s guess...&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Jun 20, 2017 6:16 PM, &amp;#34;Hampus Sjöberg via bitcoin-dev&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;gt; Ironically, it looks like most of the segwit2x signaling miners are&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;gt; faking it (because they&amp;#39;re not signaling segwit which it requires).&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;gt; It&amp;#39;ll be unfortunate if some aren&amp;#39;t faking it and start orphaning&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;gt; their own blocks because they are failing to signal segwit.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Well, they&amp;#39;re doing some kind of &amp;#34;pre-signaling&amp;#34; in the coinbase at the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; moment, because the segwit2x project is still in alpha-phase according&lt;br/&gt;&amp;gt; to&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; the timeline. They&amp;#39;re just showing commitment.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I&amp;#39;m sure they will begin signaling on version bit 4/BIP91 as well as&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; actually running a segwit2x node when the time comes.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;gt; As far as prevent a chain split goes, all those things&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;gt; (148/91/segwit2x(per today)) effectively guarantee a chainsplit-- so&lt;br/&gt;&amp;gt; I&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;gt; don&amp;#39;t think that holds.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Segwit2x/BIP91/BIP148 will orphan miners that do not run a Segwit2x (or&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; BIP148) node, because they wouldn&amp;#39;t have the new consensus rule of&lt;br/&gt;&amp;gt; requiring&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; all blocks to signal for segwit.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I don&amp;#39;t believe there would be any long lasting chainsplit though&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (because of the ~80% hashrate support on segwit2x), perhaps 2-3 blocks&lt;br/&gt;&amp;gt; if we&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; get unlucky.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Hampus&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; 2017-06-20 23:49 GMT&#43;02:00 Gregory Maxwell via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt;:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Tue, Jun 20, 2017 at 3:44 PM, Erik Aronesty via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Because a large percentage of miners are indifferent, right now&lt;br/&gt;&amp;gt; miners&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; have&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; to choose between BIP148 and Segwit2x if they want to activate&lt;br/&gt;&amp;gt; Segwit.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Miners can simply continuing signaling segwit, which will leave them&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; at least soft-fork compatible with BIP148 and BIP91 (and god knows&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; what &amp;#34;segwit2x&amp;#34; is since they keep changing the actual definition and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; do not have a specification; but last I saw the near-term behavior the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; same as BIP91 but with a radically reduced activation window, so the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; story would be the same there in the near term).&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Ironically, it looks like most of the segwit2x signaling miners are&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; faking it (because they&amp;#39;re not signaling segwit which it requires).&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; It&amp;#39;ll be unfortunate if some aren&amp;#39;t faking it and start orphaning&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; their own blocks because they are failing to signal segwit.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I don&amp;#39;t think the rejection of segwit2x from Bitcoin&amp;#39;s developers&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; could be any more resolute than what we&amp;#39;ve already seen:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://en.bitcoin.it/wiki/Segwit_support&#34;&gt;https://en.bitcoin.it/wiki/Segwit_support&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Tue, Jun 20, 2017 at 5:22 PM, Mark Friedenbach via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; I think it is very naïve to assume that any shift would be&lt;br/&gt;&amp;gt; temporary.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; We have a hard enough time getting miners to proactively upgrade to&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; recent versions of the reference bitcoin daemon. If miners interpret&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; the situation as being forced to run non-reference software in order&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; to prevent a chain split because a lack of support from Bitcoin&lt;br/&gt;&amp;gt; Core,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; that could be a one-way street.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I think this is somewhat naive and sounds a lot like the repeat of the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; previously debunked &amp;#34;XT&amp;#34; and &amp;#34;Classic&amp;#34; hysteria.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; There is a reason that segwit2x is pretty much unanimously rejected by&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; the technical community.  And just like with XT/Classic/Unlimited&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; you&amp;#39;ll continue to see a strong correlation with people who are&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; unwilling and unable to keep updating the software at an acceptable&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; level of quality-- esp. because the very founding on their fork is&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; predicated on discarding those properties.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; If miners want to go off and create an altcoin-- welp, thats something&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; they can always do,  and nothing about that will force anyone to go&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; along with it.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; As far as prevent a chain split goes, all those things&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (148/91/segwit2x(per today)) effectively guarantee a chainsplit-- so I&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; don&amp;#39;t think that holds.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170621/9b66620b/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170621/9b66620b/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:03:30&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy3mp6yq269kw3v9xskxgtp0plwvh42yt433f84ykwlkct8mgu2gczyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykeafgql</id>
    
      <title type="html">📅 Original date posted:2017-06-20 📝 Original message:If ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy3mp6yq269kw3v9xskxgtp0plwvh42yt433f84ykwlkct8mgu2gczyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykeafgql" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxrtcdmzannwfgcrg5le8vx8vuawjepnxxf7mc6jqw6mftn0xag3ga0ksu2&#39;&gt;nevent1q…ksu2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-06-20&lt;br/&gt;📝 Original message:If segwit is activated before Aug 1, as now seems likely, there will be no&lt;br/&gt;split that day.  But if activation is via Segwit2x (also likely), and at&lt;br/&gt;least some nodes do &amp;amp; some don&amp;#39;t follow through with the HF 3mo later&lt;br/&gt;(again, likely), agreed w/ Greg that *then* we&amp;#39;ll see a split - probably in&lt;br/&gt;Sep/Oct.  How those two chains will match up and how the split will play&lt;br/&gt;out is anyone&amp;#39;s guess...&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Jun 20, 2017 6:16 PM, &amp;#34;Hampus Sjöberg via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Ironically, it looks like most of the segwit2x signaling miners are&lt;br/&gt;&amp;gt; faking it (because they&amp;#39;re not signaling segwit which it requires).&lt;br/&gt;&amp;gt; It&amp;#39;ll be unfortunate if some aren&amp;#39;t faking it and start orphaning&lt;br/&gt;&amp;gt; their own blocks because they are failing to signal segwit.&lt;br/&gt;&lt;br/&gt;Well, they&amp;#39;re doing some kind of &amp;#34;pre-signaling&amp;#34; in the coinbase at the&lt;br/&gt;moment, because the segwit2x project is still in alpha-phase according to&lt;br/&gt;the timeline. They&amp;#39;re just showing commitment.&lt;br/&gt;I&amp;#39;m sure they will begin signaling on version bit 4/BIP91 as well as&lt;br/&gt;actually running a segwit2x node when the time comes.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; As far as prevent a chain split goes, all those things&lt;br/&gt;&amp;gt; (148/91/segwit2x(per today)) effectively guarantee a chainsplit-- so I&lt;br/&gt;&amp;gt; don&amp;#39;t think that holds.&lt;br/&gt;&lt;br/&gt;Segwit2x/BIP91/BIP148 will orphan miners that do not run a Segwit2x (or&lt;br/&gt;BIP148) node, because they wouldn&amp;#39;t have the new consensus rule of&lt;br/&gt;requiring all blocks to signal for segwit.&lt;br/&gt;I don&amp;#39;t believe there would be any long lasting chainsplit though (because&lt;br/&gt;of the ~80% hashrate support on segwit2x), perhaps 2-3 blocks if we get&lt;br/&gt;unlucky.&lt;br/&gt;&lt;br/&gt;Hampus&lt;br/&gt;&lt;br/&gt;2017-06-20 23:49 GMT&#43;02:00 Gregory Maxwell via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt;:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Tue, Jun 20, 2017 at 3:44 PM, Erik Aronesty via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; Because a large percentage of miners are indifferent, right now miners&lt;br/&gt;&amp;gt; have&lt;br/&gt;&amp;gt; &amp;gt; to choose between BIP148 and Segwit2x if they want to activate Segwit.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Miners can simply continuing signaling segwit, which will leave them&lt;br/&gt;&amp;gt; at least soft-fork compatible with BIP148 and BIP91 (and god knows&lt;br/&gt;&amp;gt; what &amp;#34;segwit2x&amp;#34; is since they keep changing the actual definition and&lt;br/&gt;&amp;gt; do not have a specification; but last I saw the near-term behavior the&lt;br/&gt;&amp;gt; same as BIP91 but with a radically reduced activation window, so the&lt;br/&gt;&amp;gt; story would be the same there in the near term).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Ironically, it looks like most of the segwit2x signaling miners are&lt;br/&gt;&amp;gt; faking it (because they&amp;#39;re not signaling segwit which it requires).&lt;br/&gt;&amp;gt; It&amp;#39;ll be unfortunate if some aren&amp;#39;t faking it and start orphaning&lt;br/&gt;&amp;gt; their own blocks because they are failing to signal segwit.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I don&amp;#39;t think the rejection of segwit2x from Bitcoin&amp;#39;s developers&lt;br/&gt;&amp;gt; could be any more resolute than what we&amp;#39;ve already seen:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://en.bitcoin.it/wiki/Segwit_support&#34;&gt;https://en.bitcoin.it/wiki/Segwit_support&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Tue, Jun 20, 2017 at 5:22 PM, Mark Friedenbach via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; I think it is very naïve to assume that any shift would be temporary.&lt;br/&gt;&amp;gt; &amp;gt; We have a hard enough time getting miners to proactively upgrade to&lt;br/&gt;&amp;gt; &amp;gt; recent versions of the reference bitcoin daemon. If miners interpret&lt;br/&gt;&amp;gt; &amp;gt; the situation as being forced to run non-reference software in order&lt;br/&gt;&amp;gt; &amp;gt; to prevent a chain split because a lack of support from Bitcoin Core,&lt;br/&gt;&amp;gt; &amp;gt; that could be a one-way street.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think this is somewhat naive and sounds a lot like the repeat of the&lt;br/&gt;&amp;gt; previously debunked &amp;#34;XT&amp;#34; and &amp;#34;Classic&amp;#34; hysteria.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There is a reason that segwit2x is pretty much unanimously rejected by&lt;br/&gt;&amp;gt; the technical community.  And just like with XT/Classic/Unlimited&lt;br/&gt;&amp;gt; you&amp;#39;ll continue to see a strong correlation with people who are&lt;br/&gt;&amp;gt; unwilling and unable to keep updating the software at an acceptable&lt;br/&gt;&amp;gt; level of quality-- esp. because the very founding on their fork is&lt;br/&gt;&amp;gt; predicated on discarding those properties.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If miners want to go off and create an altcoin-- welp, thats something&lt;br/&gt;&amp;gt; they can always do,  and nothing about that will force anyone to go&lt;br/&gt;&amp;gt; along with it.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; As far as prevent a chain split goes, all those things&lt;br/&gt;&amp;gt; (148/91/segwit2x(per today)) effectively guarantee a chainsplit-- so I&lt;br/&gt;&amp;gt; don&amp;#39;t think that holds.&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;_______________________________________________&lt;br/&gt;bitcoin-dev mailing list&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170620/dfa5b469/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170620/dfa5b469/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:03:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs228e0f3ce8pn379h4u595fa4s4634juf2m58v4ntt3dg2xattnagzyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykrulx9c</id>
    
      <title type="html">📅 Original date posted:2017-06-07 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs228e0f3ce8pn379h4u595fa4s4634juf2m58v4ntt3dg2xattnagzyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykrulx9c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw8w692zurj678h0madq0ckh24ej3klgtpxjxltqujyku94t9tuwc5zmkdg&#39;&gt;nevent1q…mkdg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-06-07&lt;br/&gt;📝 Original message:You&amp;#39;re missing my point.  &amp;#34;As soon as a simple majority supports it&amp;#34; - what&lt;br/&gt;is &amp;#34;it&amp;#34;?  BIP148?  Or &amp;#34;deferring to the miner consensus on BIP148&amp;#34;?  It&amp;#39;s&lt;br/&gt;the difference between supporting one side of a vote, vs supporting&lt;br/&gt;deferral to the outcome of the vote.&lt;br/&gt;&lt;br/&gt;Or if you mean, the safe thing for miners is to orphan non-segwit blocks&lt;br/&gt;Aug 1 *regardless* of the miner consensus (since the economic consensus&lt;br/&gt;might differ), then there&amp;#39;s zero need for this BIP: they should just run&lt;br/&gt;BIP148.&lt;br/&gt;&lt;br/&gt;As I said: this BIP should be corrected to only orphan if &amp;gt;50% signal for&lt;br/&gt;BIP148.  Or, define two bits, one meaning &amp;#34;I support BIP148,&amp;#34; the other &amp;#34;I&lt;br/&gt;will go w/ the miner majority on BIP148.&amp;#34;  Fudging them this way is&lt;br/&gt;deceptive.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Jun 7, 2017 2:05 PM, &amp;#34;Erik Aronesty&amp;#34; &amp;lt;erik at q32.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; But passing it off as the safest defense is bad faith.&lt;br/&gt;&lt;br/&gt;Without this option, a miner has to guess whether a split will be&lt;br/&gt;economically impacting.   With this option, his miner will automatically&lt;br/&gt;switch to the chain least likely to get wiped out... as soon as a simple&lt;br/&gt;majority of miners supports it.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Wed, Jun 7, 2017 at 12:44 PM, Jacob Eliosoff &amp;lt;jacob.eliosoff at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; This is not the safest defense against a split.  If 70% of miners run&lt;br/&gt;&amp;gt; &amp;#34;splitprotection&amp;#34;, and 0.1% run BIP148, there&amp;#39;s no &amp;#34;safety&amp;#34;/&amp;#34;defense&amp;#34;&lt;br/&gt;&amp;gt; reason for splitprotection to activate segwit.  It should only do so if&lt;br/&gt;&amp;gt; *BIP148* support (NB: not just segwit support!) &amp;gt;50%.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The truly defensive logic is &amp;#34;If the majority supports orphaning&lt;br/&gt;&amp;gt; non-segwit blocks starting Aug 1, I&amp;#39;ll join them.&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If the real goal of this BIP is to induce miners to run segwit, then fair&lt;br/&gt;&amp;gt; enough.  But passing it off as the safest defense is bad faith.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, Jun 7, 2017 at 10:10 AM, Erik Aronesty via bitcoin-dev &amp;lt;&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; This is, by far, the safest way for miners to quickly defend against a&lt;br/&gt;&amp;gt;&amp;gt; chain split, much better than a -bip148 option.   This allows miners to&lt;br/&gt;&amp;gt;&amp;gt; defend themselves, with very little risk, since the defense is only&lt;br/&gt;&amp;gt;&amp;gt; activated if the majority of miners do so. I would move for a very rapid&lt;br/&gt;&amp;gt;&amp;gt; deployment.   Only miners would need to upgrade.   Regular users would not&lt;br/&gt;&amp;gt;&amp;gt; have to concern themselves with this release.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Wed, Jun 7, 2017 at 6:13 AM, James Hilliard via bitcoin-dev &amp;lt;&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; I think even 55% would probably work out fine simply due to incentive&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; structures, once signalling is over 51% it&amp;#39;s then clear to miners that&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; non-signalling blocks will be orphaned and the rest will rapidly&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; update to splitprotection/BIP148. The purpose of this BIP is to reduce&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; chain split risk for BIP148 since it&amp;#39;s looking like BIP148 is going to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; be run by a non-insignificant percentage of the economy at a minimum.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; On Wed, Jun 7, 2017 at 12:20 AM, Tao Effect &amp;lt;contact at taoeffect.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; See thread on replay attacks for why activating regardless of&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; threshold is a&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; bad idea [1].&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; BIP91 OTOH seems perfectly reasonable. 80% instead of 95% makes it more&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; difficult for miners to hold together in opposition to Core. It gives&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; Core&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; more leverage in negotiations.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; If they don&amp;#39;t activate with 80%, Core can release another BIP to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; reduce it&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; to 75%.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Each threshold reduction makes it both more likely to succeed, but also&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; increases the likelihood of harm to the ecosystem.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Cheers,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Greg&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [1]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; -June/014497.html&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Please do not email me anything that you are not comfortable also&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; sharing&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; with the NSA.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Jun 6, 2017, at 6:54 PM, James Hilliard &amp;lt;james.hilliard1 at gmail.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; This is a BIP8 style soft fork so mandatory signalling will be active&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; after Aug 1st regardless.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Tue, Jun 6, 2017 at 8:51 PM, Tao Effect &amp;lt;contact at taoeffect.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; What is the probability that a 65% threshold is too low and can allow a&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;#34;surprise miner attack&amp;#34;, whereby miners are kept offline before the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; deadline, and brought online immediately after, creating potential&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; havoc?&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; (Nit: &amp;#34;simple majority&amp;#34; usually refers to &amp;gt;50%, I think, might cause&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; confusion.)&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; -Greg Slepak&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Please do not email me anything that you are not comfortable also&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; sharing&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; with the NSA.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Jun 6, 2017, at 5:56 PM, James Hilliard via bitcoin-dev&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Due to the proposed calendar(&lt;a href=&#34;https://segwit2x.github.io/&#34;&gt;https://segwit2x.github.io/&lt;/a&gt;) for the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; SegWit2x agreement being too slow to activate SegWit mandatory&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; signalling ahead of BIP148 using BIP91 I would like to propose another&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; option that miners can use to prevent a chain split ahead of the Aug&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; 1st BIP148 activation date.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; The splitprotection soft fork is essentially BIP91 but using BIP8&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; instead of BIP9 with a lower activation threshold and immediate&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; mandatory signalling lock-in. This allows for a majority of miners to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; activate mandatory SegWit signalling and prevent a potential chain&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; split ahead of BIP148 activation.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; This BIP allows for miners to respond to market forces quickly ahead&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; of BIP148 activation by signalling for splitprotection. Any miners&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; already running BIP148 should be encouraged to use splitprotection.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; BIP: splitprotection&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Layer: Consensus (soft fork)&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Title: User Activated Soft Fork Split Protection&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Author: James Hilliard &amp;lt;james.hilliard1 at gmail.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Comments-Summary: No comments yet.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Comments-URI:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Status: Draft&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Type: Standards Track&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Created: 2017-05-22&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; License: BSD-3-Clause&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;          CC0-1.0&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==Abstract==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; This document specifies a coordination mechanism for a simple majority&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; of miners to prevent a chain split ahead of BIP148 activation.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==Definitions==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;#34;existing segwit deployment&amp;#34; refer to the BIP9 &amp;#34;segwit&amp;#34; deployment&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; using bit 1, between November 15th 2016 and November 15th 2017 to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; activate BIP141, BIP143 and BIP147.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==Motivation==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; The biggest risk of BIP148 is an extended chain split, this BIP&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; provides a way for a simple majority of miners to eliminate that risk.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; This BIP provides a way for a simple majority of miners to coordinate&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; activation of the existing segwit deployment with less than 95%&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; hashpower before BIP148 activation. Due to time constraints unless&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; immediately deployed BIP91 will likely not be able to enforce&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; mandatory signalling of segwit before the Aug 1st activation of&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; BIP148. This BIP provides a method for rapid miner activation of&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; SegWit mandatory signalling ahead of the BIP148 activation date. Since&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; the primary goal of this BIP is to reduce the chance of an extended&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; chain split as much as possible we activate using a simple miner&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; majority of 65% over a 504 block interval rather than a higher&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; percentage. This BIP also allows miners to signal their intention to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; run BIP148 in order to prevent a chain split.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==Specification==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; While this BIP is active, all blocks must set the nVersion header top&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; 3 bits to 001 together with bit field (1&amp;lt;&amp;lt;1) (according to the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; existing segwit deployment). Blocks that do not signal as required&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; will be rejected.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==Deployment==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; This BIP will be deployed by &amp;#34;version bits&amp;#34; with a 65%(this can be&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; adjusted if desired) activation threshold BIP9 with the name&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;#34;splitprotecion&amp;#34; and using bit 2.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; This BIP starts immediately and is a BIP8 style soft fork since&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; mandatory signalling will start on midnight August 1st 2017 (epoch&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; time 1501545600) regardless of whether or not this BIP has reached its&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; own signalling threshold. This BIP will cease to be active when segwit&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; is locked-in.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; === Reference implementation ===&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; // Check if Segregated Witness is Locked In&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; bool IsWitnessLockedIn(const CBlockIndex* pindexPrev, const&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Consensus::Params&amp;amp; params)&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   LOCK(cs_main);&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   return (VersionBitsState(pindexPrev, params,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT, versionbitscache) ==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; THRESHOLD_LOCKED_IN);&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; // SPLITPROTECTION mandatory segwit signalling.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; if ( VersionBitsState(pindex-&amp;gt;pprev, chainparams.GetConsensus(),&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SPLITPROTECTION, versionbitscache) ==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; THRESHOLD_LOCKED_IN &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;    !IsWitnessLockedIn(pindex-&amp;gt;pprev, chainparams.GetConsensus()) &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; // Segwit is not locked in&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;    !IsWitnessEnabled(pindex-&amp;gt;pprev, chainparams.GetConsensus()) ) //&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; and is not active.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   bool fVersionBits = (pindex-&amp;gt;nVersion &amp;amp; VERSIONBITS_TOP_MASK) ==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; VERSIONBITS_TOP_BITS;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   bool fSegbit = (pindex-&amp;gt;nVersion &amp;amp;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; VersionBitsMask(chainparams.GetConsensus(),&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT)) != 0;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   if (!(fVersionBits &amp;amp;&amp;amp; fSegbit)) {&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;       return state.DoS(0, error(&amp;#34;ConnectBlock(): relayed block must&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; signal for segwit, please upgrade&amp;#34;), REJECT_INVALID, &amp;#34;bad-no-segwit&amp;#34;);&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   }&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; // BIP148 mandatory segwit signalling.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; int64_t nMedianTimePast = pindex-&amp;gt;GetMedianTimePast();&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; if ( (nMedianTimePast &amp;gt;= 1501545600) &amp;amp;&amp;amp;  // Tue 01 Aug 2017 00:00:00&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; UTC&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;    (nMedianTimePast &amp;lt;= 1510704000) &amp;amp;&amp;amp;  // Wed 15 Nov 2017 00:00:00 UTC&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;    (!IsWitnessLockedIn(pindex-&amp;gt;pprev, chainparams.GetConsensus()) &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; // Segwit is not locked in&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;     !IsWitnessEnabled(pindex-&amp;gt;pprev, chainparams.GetConsensus())) )&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; // and is not active.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   bool fVersionBits = (pindex-&amp;gt;nVersion &amp;amp; VERSIONBITS_TOP_MASK) ==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; VERSIONBITS_TOP_BITS;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   bool fSegbit = (pindex-&amp;gt;nVersion &amp;amp;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; VersionBitsMask(chainparams.GetConsensus(),&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT)) != 0;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   if (!(fVersionBits &amp;amp;&amp;amp; fSegbit)) {&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;       return state.DoS(0, error(&amp;#34;ConnectBlock(): relayed block must&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; signal for segwit, please upgrade&amp;#34;), REJECT_INVALID, &amp;#34;bad-no-segwit&amp;#34;);&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;   }&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bitcoin/compare/0.14...jameshilli&#34;&gt;https://github.com/bitcoin/bitcoin/compare/0.14...jameshilli&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; ard:splitprotection-v0.14.1&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==Backwards Compatibility==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; This deployment is compatible with the existing &amp;#34;segwit&amp;#34; bit 1&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; deployment scheduled between midnight November 15th, 2016 and midnight&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; November 15th, 2017. This deployment is also compatible with the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; existing BIP148 deployment. This BIP is compatible with BIP91 only if&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; BIP91 activates before it and before BIP148. Miners will need to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; upgrade their nodes to support splitprotection otherwise they may&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; build on top of an invalid block. While this bip is active users&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; should either upgrade to splitprotection or wait for additional&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; confirmations when accepting payments.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==Rationale==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Historically we have used IsSuperMajority() to activate soft forks&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; such as BIP66 which has a mandatory signalling requirement for miners&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; once activated, this ensures that miners are aware of new rules being&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; enforced. This technique can be leveraged to lower the signalling&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; threshold of a soft fork while it is in the process of being deployed&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in a backwards compatible way. We also use a BIP8 style timeout to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ensure that this BIP is compatible with BIP148 and that BIP148&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; compatible mandatory signalling activates regardless of miner&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; signalling levels.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; By orphaning non-signalling blocks during the BIP9 bit 1 &amp;#34;segwit&amp;#34;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; deployment, this BIP can cause the existing &amp;#34;segwit&amp;#34; deployment to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; activate without needing to release a new deployment. As we approach&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; BIP148 activation it may be desirable for a majority of miners to have&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; a method that will ensure that there is no chain split.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==References==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/20&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/20&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; 17-March/013714.html&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Mailing list discussion]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cp&#34;&gt;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cp&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; p#L1281-L1283&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; P2SH flag day activation]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0009.mediawiki|BIP9 Version bits with timeout and delay]]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0016.mediawiki|BIP16 Pay to Script Hash]]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0091.mediawiki|BIP91 Reduced threshold Segwit MASF]]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0141.mediawiki|BIP141 Segregated Witness (Consensus layer)]]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0143.mediawiki|BIP143 Transaction Signature Verification for&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Version 0 Witness Program]]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0147.mediawiki|BIP147 Dealing with dummy stack element&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; malleability]]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0148.mediawiki|BIP148 Mandatory activation of segwit&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; deployment]]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0149.mediawiki|BIP149 Segregated Witness (second deployment)]]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://bitcoincore.org/en/2016/01/26/segwit-benefits/&#34;&gt;https://bitcoincore.org/en/2016/01/26/segwit-benefits/&lt;/a&gt; Segwit&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; benefits]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ==Copyright==&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; This document is dual licensed as BSD 3-clause, and Creative Commons&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; CC0 1.0 Universal.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170607/e1a7345e/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170607/e1a7345e/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:02:38&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsresz2rmcjz7evc5h4qqylypfvfxtvf9w5u5jp3xwjse2nr4e592gzyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykvl9gsh</id>
    
      <title type="html">📅 Original date posted:2017-06-07 📝 Original message:This ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsresz2rmcjz7evc5h4qqylypfvfxtvf9w5u5jp3xwjse2nr4e592gzyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79ykvl9gsh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8rcmaszt9rmg07lz74we6zx590nkwfs28y6nnt3khyefttz7qkng7hme3y&#39;&gt;nevent1q…me3y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-06-07&lt;br/&gt;📝 Original message:This is not the safest defense against a split.  If 70% of miners run&lt;br/&gt;&amp;#34;splitprotection&amp;#34;, and 0.1% run BIP148, there&amp;#39;s no &amp;#34;safety&amp;#34;/&amp;#34;defense&amp;#34;&lt;br/&gt;reason for splitprotection to activate segwit.  It should only do so if&lt;br/&gt;*BIP148* support (NB: not just segwit support!) &amp;gt;50%.&lt;br/&gt;&lt;br/&gt;The truly defensive logic is &amp;#34;If the majority supports orphaning non-segwit&lt;br/&gt;blocks starting Aug 1, I&amp;#39;ll join them.&amp;#34;&lt;br/&gt;&lt;br/&gt;If the real goal of this BIP is to induce miners to run segwit, then fair&lt;br/&gt;enough.  But passing it off as the safest defense is bad faith.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Wed, Jun 7, 2017 at 10:10 AM, Erik Aronesty via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; This is, by far, the safest way for miners to quickly defend against a&lt;br/&gt;&amp;gt; chain split, much better than a -bip148 option.   This allows miners to&lt;br/&gt;&amp;gt; defend themselves, with very little risk, since the defense is only&lt;br/&gt;&amp;gt; activated if the majority of miners do so. I would move for a very rapid&lt;br/&gt;&amp;gt; deployment.   Only miners would need to upgrade.   Regular users would not&lt;br/&gt;&amp;gt; have to concern themselves with this release.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, Jun 7, 2017 at 6:13 AM, James Hilliard via bitcoin-dev &amp;lt;&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I think even 55% would probably work out fine simply due to incentive&lt;br/&gt;&amp;gt;&amp;gt; structures, once signalling is over 51% it&amp;#39;s then clear to miners that&lt;br/&gt;&amp;gt;&amp;gt; non-signalling blocks will be orphaned and the rest will rapidly&lt;br/&gt;&amp;gt;&amp;gt; update to splitprotection/BIP148. The purpose of this BIP is to reduce&lt;br/&gt;&amp;gt;&amp;gt; chain split risk for BIP148 since it&amp;#39;s looking like BIP148 is going to&lt;br/&gt;&amp;gt;&amp;gt; be run by a non-insignificant percentage of the economy at a minimum.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Wed, Jun 7, 2017 at 12:20 AM, Tao Effect &amp;lt;contact at taoeffect.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; See thread on replay attacks for why activating regardless of threshold&lt;br/&gt;&amp;gt;&amp;gt; is a&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; bad idea [1].&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; BIP91 OTOH seems perfectly reasonable. 80% instead of 95% makes it more&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; difficult for miners to hold together in opposition to Core. It gives&lt;br/&gt;&amp;gt;&amp;gt; Core&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; more leverage in negotiations.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; If they don&amp;#39;t activate with 80%, Core can release another BIP to reduce&lt;br/&gt;&amp;gt;&amp;gt; it&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; to 75%.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Each threshold reduction makes it both more likely to succeed, but also&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; increases the likelihood of harm to the ecosystem.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Cheers,&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Greg&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; [1]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; -June/014497.html&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Please do not email me anything that you are not comfortable also&lt;br/&gt;&amp;gt;&amp;gt; sharing&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; with the NSA.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; On Jun 6, 2017, at 6:54 PM, James Hilliard &amp;lt;james.hilliard1 at gmail.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This is a BIP8 style soft fork so mandatory signalling will be active&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; after Aug 1st regardless.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; On Tue, Jun 6, 2017 at 8:51 PM, Tao Effect &amp;lt;contact at taoeffect.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; What is the probability that a 65% threshold is too low and can allow a&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;#34;surprise miner attack&amp;#34;, whereby miners are kept offline before the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; deadline, and brought online immediately after, creating potential&lt;br/&gt;&amp;gt;&amp;gt; havoc?&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; (Nit: &amp;#34;simple majority&amp;#34; usually refers to &amp;gt;50%, I think, might cause&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; confusion.)&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; -Greg Slepak&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Please do not email me anything that you are not comfortable also&lt;br/&gt;&amp;gt;&amp;gt; sharing&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; with the NSA.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; On Jun 6, 2017, at 5:56 PM, James Hilliard via bitcoin-dev&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Due to the proposed calendar(&lt;a href=&#34;https://segwit2x.github.io/&#34;&gt;https://segwit2x.github.io/&lt;/a&gt;) for the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; SegWit2x agreement being too slow to activate SegWit mandatory&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; signalling ahead of BIP148 using BIP91 I would like to propose another&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; option that miners can use to prevent a chain split ahead of the Aug&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 1st BIP148 activation date.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; The splitprotection soft fork is essentially BIP91 but using BIP8&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; instead of BIP9 with a lower activation threshold and immediate&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; mandatory signalling lock-in. This allows for a majority of miners to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; activate mandatory SegWit signalling and prevent a potential chain&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; split ahead of BIP148 activation.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This BIP allows for miners to respond to market forces quickly ahead&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; of BIP148 activation by signalling for splitprotection. Any miners&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; already running BIP148 should be encouraged to use splitprotection.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; BIP: splitprotection&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Layer: Consensus (soft fork)&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Title: User Activated Soft Fork Split Protection&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Author: James Hilliard &amp;lt;james.hilliard1 at gmail.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Comments-Summary: No comments yet.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Comments-URI:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Status: Draft&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Type: Standards Track&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Created: 2017-05-22&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; License: BSD-3-Clause&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;          CC0-1.0&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==Abstract==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This document specifies a coordination mechanism for a simple majority&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; of miners to prevent a chain split ahead of BIP148 activation.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==Definitions==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;#34;existing segwit deployment&amp;#34; refer to the BIP9 &amp;#34;segwit&amp;#34; deployment&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; using bit 1, between November 15th 2016 and November 15th 2017 to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; activate BIP141, BIP143 and BIP147.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==Motivation==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; The biggest risk of BIP148 is an extended chain split, this BIP&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; provides a way for a simple majority of miners to eliminate that risk.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This BIP provides a way for a simple majority of miners to coordinate&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; activation of the existing segwit deployment with less than 95%&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; hashpower before BIP148 activation. Due to time constraints unless&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; immediately deployed BIP91 will likely not be able to enforce&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; mandatory signalling of segwit before the Aug 1st activation of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; BIP148. This BIP provides a method for rapid miner activation of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; SegWit mandatory signalling ahead of the BIP148 activation date. Since&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; the primary goal of this BIP is to reduce the chance of an extended&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; chain split as much as possible we activate using a simple miner&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; majority of 65% over a 504 block interval rather than a higher&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; percentage. This BIP also allows miners to signal their intention to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; run BIP148 in order to prevent a chain split.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==Specification==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; While this BIP is active, all blocks must set the nVersion header top&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 3 bits to 001 together with bit field (1&amp;lt;&amp;lt;1) (according to the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; existing segwit deployment). Blocks that do not signal as required&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; will be rejected.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==Deployment==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This BIP will be deployed by &amp;#34;version bits&amp;#34; with a 65%(this can be&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; adjusted if desired) activation threshold BIP9 with the name&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;#34;splitprotecion&amp;#34; and using bit 2.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This BIP starts immediately and is a BIP8 style soft fork since&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; mandatory signalling will start on midnight August 1st 2017 (epoch&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; time 1501545600) regardless of whether or not this BIP has reached its&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; own signalling threshold. This BIP will cease to be active when segwit&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; is locked-in.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; === Reference implementation ===&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; // Check if Segregated Witness is Locked In&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; bool IsWitnessLockedIn(const CBlockIndex* pindexPrev, const&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Consensus::Params&amp;amp; params)&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   LOCK(cs_main);&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   return (VersionBitsState(pindexPrev, params,&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT, versionbitscache) ==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; THRESHOLD_LOCKED_IN);&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; // SPLITPROTECTION mandatory segwit signalling.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; if ( VersionBitsState(pindex-&amp;gt;pprev, chainparams.GetConsensus(),&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SPLITPROTECTION, versionbitscache) ==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; THRESHOLD_LOCKED_IN &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;    !IsWitnessLockedIn(pindex-&amp;gt;pprev, chainparams.GetConsensus()) &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; // Segwit is not locked in&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;    !IsWitnessEnabled(pindex-&amp;gt;pprev, chainparams.GetConsensus()) ) //&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; and is not active.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   bool fVersionBits = (pindex-&amp;gt;nVersion &amp;amp; VERSIONBITS_TOP_MASK) ==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; VERSIONBITS_TOP_BITS;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   bool fSegbit = (pindex-&amp;gt;nVersion &amp;amp;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; VersionBitsMask(chainparams.GetConsensus(),&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT)) != 0;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   if (!(fVersionBits &amp;amp;&amp;amp; fSegbit)) {&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;       return state.DoS(0, error(&amp;#34;ConnectBlock(): relayed block must&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; signal for segwit, please upgrade&amp;#34;), REJECT_INVALID, &amp;#34;bad-no-segwit&amp;#34;);&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   }&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; // BIP148 mandatory segwit signalling.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; int64_t nMedianTimePast = pindex-&amp;gt;GetMedianTimePast();&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; if ( (nMedianTimePast &amp;gt;= 1501545600) &amp;amp;&amp;amp;  // Tue 01 Aug 2017 00:00:00 UTC&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;    (nMedianTimePast &amp;lt;= 1510704000) &amp;amp;&amp;amp;  // Wed 15 Nov 2017 00:00:00 UTC&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;    (!IsWitnessLockedIn(pindex-&amp;gt;pprev, chainparams.GetConsensus()) &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; // Segwit is not locked in&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;     !IsWitnessEnabled(pindex-&amp;gt;pprev, chainparams.GetConsensus())) )&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; // and is not active.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   bool fVersionBits = (pindex-&amp;gt;nVersion &amp;amp; VERSIONBITS_TOP_MASK) ==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; VERSIONBITS_TOP_BITS;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   bool fSegbit = (pindex-&amp;gt;nVersion &amp;amp;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; VersionBitsMask(chainparams.GetConsensus(),&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT)) != 0;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   if (!(fVersionBits &amp;amp;&amp;amp; fSegbit)) {&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;       return state.DoS(0, error(&amp;#34;ConnectBlock(): relayed block must&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; signal for segwit, please upgrade&amp;#34;), REJECT_INVALID, &amp;#34;bad-no-segwit&amp;#34;);&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;   }&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bitcoin/compare/0.14...jameshilli&#34;&gt;https://github.com/bitcoin/bitcoin/compare/0.14...jameshilli&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; ard:splitprotection-v0.14.1&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==Backwards Compatibility==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This deployment is compatible with the existing &amp;#34;segwit&amp;#34; bit 1&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; deployment scheduled between midnight November 15th, 2016 and midnight&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; November 15th, 2017. This deployment is also compatible with the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; existing BIP148 deployment. This BIP is compatible with BIP91 only if&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; BIP91 activates before it and before BIP148. Miners will need to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; upgrade their nodes to support splitprotection otherwise they may&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; build on top of an invalid block. While this bip is active users&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; should either upgrade to splitprotection or wait for additional&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; confirmations when accepting payments.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==Rationale==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Historically we have used IsSuperMajority() to activate soft forks&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; such as BIP66 which has a mandatory signalling requirement for miners&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; once activated, this ensures that miners are aware of new rules being&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; enforced. This technique can be leveraged to lower the signalling&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; threshold of a soft fork while it is in the process of being deployed&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; in a backwards compatible way. We also use a BIP8 style timeout to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ensure that this BIP is compatible with BIP148 and that BIP148&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; compatible mandatory signalling activates regardless of miner&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; signalling levels.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; By orphaning non-signalling blocks during the BIP9 bit 1 &amp;#34;segwit&amp;#34;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; deployment, this BIP can cause the existing &amp;#34;segwit&amp;#34; deployment to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; activate without needing to release a new deployment. As we approach&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; BIP148 activation it may be desirable for a majority of miners to have&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; a method that will ensure that there is no chain split.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==References==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; 2017-March/013714.html&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Mailing list discussion]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cp&#34;&gt;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cp&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; p#L1281-L1283&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; P2SH flag day activation]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0009.mediawiki|BIP9 Version bits with timeout and delay]]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0016.mediawiki|BIP16 Pay to Script Hash]]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0091.mediawiki|BIP91 Reduced threshold Segwit MASF]]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0141.mediawiki|BIP141 Segregated Witness (Consensus layer)]]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0143.mediawiki|BIP143 Transaction Signature Verification for&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Version 0 Witness Program]]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0147.mediawiki|BIP147 Dealing with dummy stack element&lt;br/&gt;&amp;gt;&amp;gt; malleability]]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0148.mediawiki|BIP148 Mandatory activation of segwit deployment]]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[[bip-0149.mediawiki|BIP149 Segregated Witness (second deployment)]]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://bitcoincore.org/en/2016/01/26/segwit-benefits/&#34;&gt;https://bitcoincore.org/en/2016/01/26/segwit-benefits/&lt;/a&gt; Segwit&lt;br/&gt;&amp;gt;&amp;gt; benefits]&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; ==Copyright==&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This document is dual licensed as BSD 3-clause, and Creative Commons&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; CC0 1.0 Universal.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170607/308e84ea/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170607/308e84ea/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:02:36&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszy2q8lz64l2lwxe6w6jg8w6ck5saa0y7qf0fhn0g76mlu8vytnuqzyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79yk2axs26</id>
    
      <title type="html">📅 Original date posted:2017-06-07 📝 Original message:While ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszy2q8lz64l2lwxe6w6jg8w6ck5saa0y7qf0fhn0g76mlu8vytnuqzyr0u8wrzjrvk9defy9fk7l3mvmqrws4ct27fz3z84yzs0np8l79yk2axs26" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2lgv42xm9ygd2t3hqdtr6r26c7axrddar9kxh303xw5w5w2a7dlqqy53u7&#39;&gt;nevent1q…53u7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-06-07&lt;br/&gt;📝 Original message:While this isn&amp;#39;t an unreasonable proposal, it will orphan blocks from any&lt;br/&gt;miner who isn&amp;#39;t running it (or BIP148) by Aug 1, right?  That seems rather&lt;br/&gt;rushed for a non-backwards-compatible SF, especially since in practice,&lt;br/&gt;miners are unlikely to deploy it until it comes bundled with some version&lt;br/&gt;of the Segwit2x HF code.&lt;br/&gt;&lt;br/&gt;I realize this is a touchy topic but - how much hard evidence is there that&lt;br/&gt;there *will* be significant disruption if miners simply ignore both this&lt;br/&gt;and BIP148?  Correct me but afaict, BIP148 has ~0% hashrate support.&lt;br/&gt;&lt;br/&gt;Unless the HF code is ready and agree on soon (say by Jul 1), my vote is to&lt;br/&gt;keep the main chain backwards-compatible, especially if evidence of miner&lt;br/&gt;support for BIP148 doesn&amp;#39;t materialize soon.  It seems less disruptive for&lt;br/&gt;recently-deployed BIP148 nodes to revert than to ask every miner in the&lt;br/&gt;system to quickly upgrade or get orphaned.&lt;br/&gt;&lt;br/&gt;Just my view, I respect that others will differ.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Jun 6, 2017 at 9:54 PM, James Hilliard via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; This is a BIP8 style soft fork so mandatory signalling will be active&lt;br/&gt;&amp;gt; after Aug 1st regardless.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Tue, Jun 6, 2017 at 8:51 PM, Tao Effect &amp;lt;contact at taoeffect.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; What is the probability that a 65% threshold is too low and can allow a&lt;br/&gt;&amp;gt; &amp;gt; &amp;#34;surprise miner attack&amp;#34;, whereby miners are kept offline before the&lt;br/&gt;&amp;gt; &amp;gt; deadline, and brought online immediately after, creating potential havoc?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; (Nit: &amp;#34;simple majority&amp;#34; usually refers to &amp;gt;50%, I think, might cause&lt;br/&gt;&amp;gt; &amp;gt; confusion.)&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; -Greg Slepak&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt; &amp;gt; Please do not email me anything that you are not comfortable also sharing&lt;br/&gt;&amp;gt; &amp;gt; with the NSA.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; On Jun 6, 2017, at 5:56 PM, James Hilliard via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Due to the proposed calendar(&lt;a href=&#34;https://segwit2x.github.io/&#34;&gt;https://segwit2x.github.io/&lt;/a&gt;) for the&lt;br/&gt;&amp;gt; &amp;gt; SegWit2x agreement being too slow to activate SegWit mandatory&lt;br/&gt;&amp;gt; &amp;gt; signalling ahead of BIP148 using BIP91 I would like to propose another&lt;br/&gt;&amp;gt; &amp;gt; option that miners can use to prevent a chain split ahead of the Aug&lt;br/&gt;&amp;gt; &amp;gt; 1st BIP148 activation date.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The splitprotection soft fork is essentially BIP91 but using BIP8&lt;br/&gt;&amp;gt; &amp;gt; instead of BIP9 with a lower activation threshold and immediate&lt;br/&gt;&amp;gt; &amp;gt; mandatory signalling lock-in. This allows for a majority of miners to&lt;br/&gt;&amp;gt; &amp;gt; activate mandatory SegWit signalling and prevent a potential chain&lt;br/&gt;&amp;gt; &amp;gt; split ahead of BIP148 activation.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This BIP allows for miners to respond to market forces quickly ahead&lt;br/&gt;&amp;gt; &amp;gt; of BIP148 activation by signalling for splitprotection. Any miners&lt;br/&gt;&amp;gt; &amp;gt; already running BIP148 should be encouraged to use splitprotection.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;  BIP: splitprotection&lt;br/&gt;&amp;gt; &amp;gt;  Layer: Consensus (soft fork)&lt;br/&gt;&amp;gt; &amp;gt;  Title: User Activated Soft Fork Split Protection&lt;br/&gt;&amp;gt; &amp;gt;  Author: James Hilliard &amp;lt;james.hilliard1 at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;  Comments-Summary: No comments yet.&lt;br/&gt;&amp;gt; &amp;gt;  Comments-URI:&lt;br/&gt;&amp;gt; &amp;gt;  Status: Draft&lt;br/&gt;&amp;gt; &amp;gt;  Type: Standards Track&lt;br/&gt;&amp;gt; &amp;gt;  Created: 2017-05-22&lt;br/&gt;&amp;gt; &amp;gt;  License: BSD-3-Clause&lt;br/&gt;&amp;gt; &amp;gt;           CC0-1.0&lt;br/&gt;&amp;gt; &amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==Abstract==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This document specifies a coordination mechanism for a simple majority&lt;br/&gt;&amp;gt; &amp;gt; of miners to prevent a chain split ahead of BIP148 activation.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==Definitions==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;#34;existing segwit deployment&amp;#34; refer to the BIP9 &amp;#34;segwit&amp;#34; deployment&lt;br/&gt;&amp;gt; &amp;gt; using bit 1, between November 15th 2016 and November 15th 2017 to&lt;br/&gt;&amp;gt; &amp;gt; activate BIP141, BIP143 and BIP147.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==Motivation==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The biggest risk of BIP148 is an extended chain split, this BIP&lt;br/&gt;&amp;gt; &amp;gt; provides a way for a simple majority of miners to eliminate that risk.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This BIP provides a way for a simple majority of miners to coordinate&lt;br/&gt;&amp;gt; &amp;gt; activation of the existing segwit deployment with less than 95%&lt;br/&gt;&amp;gt; &amp;gt; hashpower before BIP148 activation. Due to time constraints unless&lt;br/&gt;&amp;gt; &amp;gt; immediately deployed BIP91 will likely not be able to enforce&lt;br/&gt;&amp;gt; &amp;gt; mandatory signalling of segwit before the Aug 1st activation of&lt;br/&gt;&amp;gt; &amp;gt; BIP148. This BIP provides a method for rapid miner activation of&lt;br/&gt;&amp;gt; &amp;gt; SegWit mandatory signalling ahead of the BIP148 activation date. Since&lt;br/&gt;&amp;gt; &amp;gt; the primary goal of this BIP is to reduce the chance of an extended&lt;br/&gt;&amp;gt; &amp;gt; chain split as much as possible we activate using a simple miner&lt;br/&gt;&amp;gt; &amp;gt; majority of 65% over a 504 block interval rather than a higher&lt;br/&gt;&amp;gt; &amp;gt; percentage. This BIP also allows miners to signal their intention to&lt;br/&gt;&amp;gt; &amp;gt; run BIP148 in order to prevent a chain split.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==Specification==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; While this BIP is active, all blocks must set the nVersion header top&lt;br/&gt;&amp;gt; &amp;gt; 3 bits to 001 together with bit field (1&amp;lt;&amp;lt;1) (according to the&lt;br/&gt;&amp;gt; &amp;gt; existing segwit deployment). Blocks that do not signal as required&lt;br/&gt;&amp;gt; &amp;gt; will be rejected.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==Deployment==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This BIP will be deployed by &amp;#34;version bits&amp;#34; with a 65%(this can be&lt;br/&gt;&amp;gt; &amp;gt; adjusted if desired) activation threshold BIP9 with the name&lt;br/&gt;&amp;gt; &amp;gt; &amp;#34;splitprotecion&amp;#34; and using bit 2.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This BIP starts immediately and is a BIP8 style soft fork since&lt;br/&gt;&amp;gt; &amp;gt; mandatory signalling will start on midnight August 1st 2017 (epoch&lt;br/&gt;&amp;gt; &amp;gt; time 1501545600) regardless of whether or not this BIP has reached its&lt;br/&gt;&amp;gt; &amp;gt; own signalling threshold. This BIP will cease to be active when segwit&lt;br/&gt;&amp;gt; &amp;gt; is locked-in.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; === Reference implementation ===&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; // Check if Segregated Witness is Locked In&lt;br/&gt;&amp;gt; &amp;gt; bool IsWitnessLockedIn(const CBlockIndex* pindexPrev, const&lt;br/&gt;&amp;gt; &amp;gt; Consensus::Params&amp;amp; params)&lt;br/&gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt; &amp;gt;    LOCK(cs_main);&lt;br/&gt;&amp;gt; &amp;gt;    return (VersionBitsState(pindexPrev, params,&lt;br/&gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT, versionbitscache) ==&lt;br/&gt;&amp;gt; &amp;gt; THRESHOLD_LOCKED_IN);&lt;br/&gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; // SPLITPROTECTION mandatory segwit signalling.&lt;br/&gt;&amp;gt; &amp;gt; if ( VersionBitsState(pindex-&amp;gt;pprev, chainparams.GetConsensus(),&lt;br/&gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SPLITPROTECTION, versionbitscache) ==&lt;br/&gt;&amp;gt; &amp;gt; THRESHOLD_LOCKED_IN &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt; &amp;gt;     !IsWitnessLockedIn(pindex-&amp;gt;pprev, chainparams.GetConsensus()) &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt; &amp;gt; // Segwit is not locked in&lt;br/&gt;&amp;gt; &amp;gt;     !IsWitnessEnabled(pindex-&amp;gt;pprev, chainparams.GetConsensus()) ) //&lt;br/&gt;&amp;gt; &amp;gt; and is not active.&lt;br/&gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt; &amp;gt;    bool fVersionBits = (pindex-&amp;gt;nVersion &amp;amp; VERSIONBITS_TOP_MASK) ==&lt;br/&gt;&amp;gt; &amp;gt; VERSIONBITS_TOP_BITS;&lt;br/&gt;&amp;gt; &amp;gt;    bool fSegbit = (pindex-&amp;gt;nVersion &amp;amp;&lt;br/&gt;&amp;gt; &amp;gt; VersionBitsMask(chainparams.GetConsensus(),&lt;br/&gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT)) != 0;&lt;br/&gt;&amp;gt; &amp;gt;    if (!(fVersionBits &amp;amp;&amp;amp; fSegbit)) {&lt;br/&gt;&amp;gt; &amp;gt;        return state.DoS(0, error(&amp;#34;ConnectBlock(): relayed block must&lt;br/&gt;&amp;gt; &amp;gt; signal for segwit, please upgrade&amp;#34;), REJECT_INVALID, &amp;#34;bad-no-segwit&amp;#34;);&lt;br/&gt;&amp;gt; &amp;gt;    }&lt;br/&gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; // BIP148 mandatory segwit signalling.&lt;br/&gt;&amp;gt; &amp;gt; int64_t nMedianTimePast = pindex-&amp;gt;GetMedianTimePast();&lt;br/&gt;&amp;gt; &amp;gt; if ( (nMedianTimePast &amp;gt;= 1501545600) &amp;amp;&amp;amp;  // Tue 01 Aug 2017 00:00:00 UTC&lt;br/&gt;&amp;gt; &amp;gt;     (nMedianTimePast &amp;lt;= 1510704000) &amp;amp;&amp;amp;  // Wed 15 Nov 2017 00:00:00 UTC&lt;br/&gt;&amp;gt; &amp;gt;     (!IsWitnessLockedIn(pindex-&amp;gt;pprev, chainparams.GetConsensus()) &amp;amp;&amp;amp;&lt;br/&gt;&amp;gt; &amp;gt; // Segwit is not locked in&lt;br/&gt;&amp;gt; &amp;gt;      !IsWitnessEnabled(pindex-&amp;gt;pprev, chainparams.GetConsensus())) )&lt;br/&gt;&amp;gt; &amp;gt; // and is not active.&lt;br/&gt;&amp;gt; &amp;gt; {&lt;br/&gt;&amp;gt; &amp;gt;    bool fVersionBits = (pindex-&amp;gt;nVersion &amp;amp; VERSIONBITS_TOP_MASK) ==&lt;br/&gt;&amp;gt; &amp;gt; VERSIONBITS_TOP_BITS;&lt;br/&gt;&amp;gt; &amp;gt;    bool fSegbit = (pindex-&amp;gt;nVersion &amp;amp;&lt;br/&gt;&amp;gt; &amp;gt; VersionBitsMask(chainparams.GetConsensus(),&lt;br/&gt;&amp;gt; &amp;gt; Consensus::DEPLOYMENT_SEGWIT)) != 0;&lt;br/&gt;&amp;gt; &amp;gt;    if (!(fVersionBits &amp;amp;&amp;amp; fSegbit)) {&lt;br/&gt;&amp;gt; &amp;gt;        return state.DoS(0, error(&amp;#34;ConnectBlock(): relayed block must&lt;br/&gt;&amp;gt; &amp;gt; signal for segwit, please upgrade&amp;#34;), REJECT_INVALID, &amp;#34;bad-no-segwit&amp;#34;);&lt;br/&gt;&amp;gt; &amp;gt;    }&lt;br/&gt;&amp;gt; &amp;gt; }&lt;br/&gt;&amp;gt; &amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bitcoin/compare/0.14&#34;&gt;https://github.com/bitcoin/bitcoin/compare/0.14&lt;/a&gt;...&lt;br/&gt;&amp;gt; jameshilliard:splitprotection-v0.14.1&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==Backwards Compatibility==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This deployment is compatible with the existing &amp;#34;segwit&amp;#34; bit 1&lt;br/&gt;&amp;gt; &amp;gt; deployment scheduled between midnight November 15th, 2016 and midnight&lt;br/&gt;&amp;gt; &amp;gt; November 15th, 2017. This deployment is also compatible with the&lt;br/&gt;&amp;gt; &amp;gt; existing BIP148 deployment. This BIP is compatible with BIP91 only if&lt;br/&gt;&amp;gt; &amp;gt; BIP91 activates before it and before BIP148. Miners will need to&lt;br/&gt;&amp;gt; &amp;gt; upgrade their nodes to support splitprotection otherwise they may&lt;br/&gt;&amp;gt; &amp;gt; build on top of an invalid block. While this bip is active users&lt;br/&gt;&amp;gt; &amp;gt; should either upgrade to splitprotection or wait for additional&lt;br/&gt;&amp;gt; &amp;gt; confirmations when accepting payments.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==Rationale==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Historically we have used IsSuperMajority() to activate soft forks&lt;br/&gt;&amp;gt; &amp;gt; such as BIP66 which has a mandatory signalling requirement for miners&lt;br/&gt;&amp;gt; &amp;gt; once activated, this ensures that miners are aware of new rules being&lt;br/&gt;&amp;gt; &amp;gt; enforced. This technique can be leveraged to lower the signalling&lt;br/&gt;&amp;gt; &amp;gt; threshold of a soft fork while it is in the process of being deployed&lt;br/&gt;&amp;gt; &amp;gt; in a backwards compatible way. We also use a BIP8 style timeout to&lt;br/&gt;&amp;gt; &amp;gt; ensure that this BIP is compatible with BIP148 and that BIP148&lt;br/&gt;&amp;gt; &amp;gt; compatible mandatory signalling activates regardless of miner&lt;br/&gt;&amp;gt; &amp;gt; signalling levels.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; By orphaning non-signalling blocks during the BIP9 bit 1 &amp;#34;segwit&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt; deployment, this BIP can cause the existing &amp;#34;segwit&amp;#34; deployment to&lt;br/&gt;&amp;gt; &amp;gt; activate without needing to release a new deployment. As we approach&lt;br/&gt;&amp;gt; &amp;gt; BIP148 activation it may be desirable for a majority of miners to have&lt;br/&gt;&amp;gt; &amp;gt; a method that will ensure that there is no chain split.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==References==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/&#34;&gt;https://lists.linuxfoundation.org/pipermail/&lt;/a&gt;&lt;br/&gt;&amp;gt; bitcoin-dev/2017-March/013714.html&lt;br/&gt;&amp;gt; &amp;gt; Mailing list discussion]&lt;br/&gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main&#34;&gt;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main&lt;/a&gt;.&lt;br/&gt;&amp;gt; cpp#L1281-L1283&lt;br/&gt;&amp;gt; &amp;gt; P2SH flag day activation]&lt;br/&gt;&amp;gt; &amp;gt; *[[bip-0009.mediawiki|BIP9 Version bits with timeout and delay]]&lt;br/&gt;&amp;gt; &amp;gt; *[[bip-0016.mediawiki|BIP16 Pay to Script Hash]]&lt;br/&gt;&amp;gt; &amp;gt; *[[bip-0091.mediawiki|BIP91 Reduced threshold Segwit MASF]]&lt;br/&gt;&amp;gt; &amp;gt; *[[bip-0141.mediawiki|BIP141 Segregated Witness (Consensus layer)]]&lt;br/&gt;&amp;gt; &amp;gt; *[[bip-0143.mediawiki|BIP143 Transaction Signature Verification for&lt;br/&gt;&amp;gt; &amp;gt; Version 0 Witness Program]]&lt;br/&gt;&amp;gt; &amp;gt; *[[bip-0147.mediawiki|BIP147 Dealing with dummy stack element&lt;br/&gt;&amp;gt; malleability]]&lt;br/&gt;&amp;gt; &amp;gt; *[[bip-0148.mediawiki|BIP148 Mandatory activation of segwit deployment]]&lt;br/&gt;&amp;gt; &amp;gt; *[[bip-0149.mediawiki|BIP149 Segregated Witness (second deployment)]]&lt;br/&gt;&amp;gt; &amp;gt; *[&lt;a href=&#34;https://bitcoincore.org/en/2016/01/26/segwit-benefits/&#34;&gt;https://bitcoincore.org/en/2016/01/26/segwit-benefits/&lt;/a&gt; Segwit&lt;br/&gt;&amp;gt; benefits]&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ==Copyright==&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This document is dual licensed as BSD 3-clause, and Creative Commons&lt;br/&gt;&amp;gt; &amp;gt; CC0 1.0 Universal.&lt;br/&gt;&amp;gt; &amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170607/27553471/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170607/27553471/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:02:33&#43;02:00</updated>
  </entry>

</feed>