<?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/npub10r9d6edmnrljk59wsf06zqp494l3qtjpa3w245hy6t5euqxlzw2qdkgk2d.rss" />
  <link href="https://nostr.ae/npub10r9d6edmnrljk59wsf06zqp494l3qtjpa3w245hy6t5euqxlzw2qdkgk2d" />
  <id>https://nostr.ae/npub10r9d6edmnrljk59wsf06zqp494l3qtjpa3w245hy6t5euqxlzw2qdkgk2d</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsfm38v547l4fq5y8znhjqa74hmg2kqcytq4ewfg4yy8yh0cuq94hqzypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegpk8rxp</id>
    
      <title type="html">📅 Original date posted:2017-06-13 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfm38v547l4fq5y8znhjqa74hmg2kqcytq4ewfg4yy8yh0cuq94hqzypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegpk8rxp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqfh96pv7ms24r2ppse44yp80wfkzmfx98jhlysmu4mf0xv2ysvncelc22l&#39;&gt;nevent1q…c22l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-06-13&lt;br/&gt;📝 Original message:On Mon, Jun 12, 2017 at 9:23 PM, Zheming Lin via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; The BIP is described using Chinese and English. If any part is missing or need more specific, please reply. Forgive for my poor English.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This method will incorporate any upgrade that affects non-mining nodes. They should beware that the rule has been changed.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; TLDR: Major miners activate and orphan the minor. That ensures all miners upgrades. Then invalid the tx from not upgrading nodes. Nodes must upgrade (with other protocol upgrade codes) in order to work. Then the final miner vote over protocol upgrade, with all nodes has the same upgraded codes.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt; BIP: ???&lt;br/&gt;&amp;gt; Title: Demonstration of Phase in Full Network Upgrade Activated by Miners&lt;br/&gt;&amp;gt; Author: LIN Zheming&lt;br/&gt;&amp;gt; Status: Draft&lt;br/&gt;&amp;gt; Type: Standards Track&lt;br/&gt;&amp;gt; Created: 2017-06-12&lt;br/&gt;&amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ==Summary==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 本方法并不是来源于个人，而是中文比特币社区中集体智慧的结果。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; This idea was not created by an individual but is a product of collaboration in the Chinese bitcoin community between different interest groups.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 这是一种在协议升级时，对全网挖矿和非挖矿节点进行保护和激励的方法，避免不参与挖矿的节点没有升级的动力而受到损失。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; This method is put forth to incentivize and to protect mining nodes and non-mining nodes during protocol upgrading. With this incentive mechanism, the non-mining nodes will not suffer monetary loss from chain splitting.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 发信号的多数矿工在达到激活条件后第一个宽限期（一个难度周期）后设置新区块版本号，孤立未升级矿工的低版本号的块。通过最初的中本聪共识，在第一个宽限期结束后，所有矿工将升级至最新版本或使用最新版本。在第二个宽限期（一个难度周期）后，矿工将仅接受新版本的交易，未升级的客户端发送的旧版本交易将无法得到新节点的转播也无法进入新版本区块。这将在保护用户资产的同时，提醒不挖矿的钱包节点升级。并在升级代码中加入对协议进行改动的部分。钱包升级后将由挖矿节点投票实施该项改动，以达成协议改动的广泛部署。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; After the activation condition is met, majority miners will set a new block versionbits after the first grace period(a difficulty change of 2016 blocks). The blocks with lower versionbits will be orphaned. In terms of the Nakamoto Consensus, the end of the first grace period will force all mining nodes upgraded to signal a new version of consensus. After the second grace period ( a difficulty change of 2016 blocks), mining nodes will only accept transactions with new versionbits. Transactions from nodes not upgrading will not be relayed nor included in blocks with new versionbits. This will protect funds of non-mining nodes from utilizing replay attack and will function as a notification for them to upgrade. Codes dealing with protocol upgrade could be included in the upgrade. After the non-mining node upgrades, mining nodes will vote to activate the protocol upgrade and this will achieve the broad/widespread deployment of the protocol upgrade.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 在该项改动广泛部署至客户端之后，依然由其激活条件控制。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; The protocol upgrade depends on its activate condition independently even after the change deployed among nodes.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ==Motivation==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 鉴于最初的比特币协议并未考虑不参与挖矿的钱包节点，导致这些钱包节点的协议升级是被动的，懒惰的。当在升级方向上出现分歧时，矿工也不愿意在错误的链上挖矿，但矿工又没有任何方法可以确保正在延长的链是被钱包节点广泛接受的链。这将影响钱包节点的安全。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; In view of the fact that the original Bitcoin consensus did not consider the non-mining wallet nodes(as mentioned above), the result is that upgrading the consensus of these wallet nodes is passive and lazy. When there is disagreement in the direction of the upgrade, the miners have no mechanism to ensure that the chain being extended is the chain widely accepted by the wallet nodes. This also adversely affects the security of the wallet nodes.&amp;lt;br/&amp;gt;&lt;br/&gt;Wallet nodes being able to fully validate and choose whether or not to&lt;br/&gt;accept a particular chain is an important part of bitcoins security&lt;br/&gt;model.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 使用该方法可以在保证钱包节点资产安全的情况下，且通过增加激励让钱包节点升级协议。一旦钱包节点升级协议，保证矿工节点不仅工作在算力最长链上，还工作在比特币生态环境中其他钱包节点所使用的最长链上。在中本聪共识下不会出现分叉，以实现渐进式的协议升级。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Apart from ensuring the asset security of wallet nodes, this method can be used to provide additional incentives to upgrade the protocol for the wallet nodes. Once the wallet nodes upgrade their protocol, the miners&amp;#39; nodes can be guaranteed to work - not only on the longest chain, but also on the longest chain used by other wallet nodes in the broader bitcoin sphere. Under the Nakamoto Consensus, there will be no persistent forks as protocol upgrades can be phased in.&amp;lt;br/&amp;gt;&lt;br/&gt;There is no way to guarantee a wallet node will accept a particular&lt;br/&gt;block since that is always up to the user.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ==Specification==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. 挖矿节点将使用 versionbits 版本位来定义支持信号。BIP 生效时，所有区块需要使用制定的 nVersion 来发送信号&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 2. 挖矿节点将使用 tx version 来定义当前的交易版本。当前的 tx version 是 1，将允许 tx version 为 2 的交易，并在第二个宽限期之后，使 tx version 为 1 的交易非法。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. Mining nodes signal by setting a version bit. While this BIP is active, all blocks must set the chosen nVersion.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 2. Mining nodes will use tx version to define current version transactions. Current tx version is 1, and tx version 2 will be allowed. After the second grace period, tx version 1 will be regarded as invalid.&amp;lt;br/&amp;gt;&lt;br/&gt;Sounds like this would cause issues with pre-signed time locked transactions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ==Deployment==&lt;br/&gt;&amp;gt; 协议升级，将分成三步逐步实施。并有一个可选的第四步来集成协议升级代码。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Protocol upgrading will phase in over three stages. We can have an optional fourth stage to integrate codes of protocol upgrade.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. 信号阶段。挖矿节点使用 versionbits 发送支持信号。挖矿节点在监测到 55% 的区块即前 1109/2016 个区块均发送了相同的支持信号，进入下一阶段。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 2. 矿工节点升级。经过了第一个宽限期 2016 的区块后，且总信号区块超过了 2218/4032，就开始使用新的区块版本打包区块，并同时开始孤立旧版本。此时所有节点和钱包，将可以使用新版本号发送交易，同时兼容旧版本号交易。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 3. 钱包节点升级。在挖矿节点监测到第二个宽限期 4032 个连续的新版本的区块后，开始拒绝旧版本号的交易，只打包／转播新版本号的交易。同时将从内存池中删除旧版本号的交易。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 4. （可选的）协议升级。在第三阶段中包含有第四阶段的升级代码。当我们确保钱包节点升级到支持新版本交易后，必然包含了第四阶段的升级代码。则此时可以通过矿工节点投票的方式完成全网络的协议升级。&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. Signal stage: Mining nodes signal using BIP9. The next stage will be activated after 55% (1109) of 2016 blocks has the signal.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2. Mining nodes upgrade stage: After a first grace period of 2016 blocks and total signalling blocks passed 2218 of 4032 blocks, miners broadcasting blocks with new versionbits in block headers will orphan blocks with old versionbits. At this stage all nodes can send transactions with new versionbits, and transactions with old versionbits will be compatible.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 3. Non-mining nodes upgrade stage: after 4032 continuous blocks with new versionbits, mining nodes will start to refuse transactions with old versionbits. Only transactions with new versionbits can be relayed and included in blocks. Transactions with old versionbits can be safely purged from memory pools.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 4. (Optional)Protocol Upgrade stage: The codes dealing with protocol upgrade can be integrated in the third stage. After the non-mining nodes upgrades to support newer version of transactions, the codes with protocol upgrade must be included and now we can use miner vote to activate and finish this upgrade.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 至此，协议升级完成。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; At this point, the protocol upgrade have phased in.&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ==Benefits==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. 仅需要多数的矿工发信号后即可激活。在中本聪的比特币论文中，99.9% 的可能性下，55% 的矿工将在 340 个区块后确保成为最长链。这将最大可能减小通过控制少数算力而拖延网络升级的可能性。我们可以预见到在算力信号超过 51% 后，挖矿节点将迅速的在第一个宽限期内进行升级。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 2. 在两个宽限期内，钱包节点交易不受影响，有足够的时间升级钱包软件。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 3. 版本信息包含在 block header 中，并不影响 SPV 挖矿过程。（看起来是？）&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 4. 在两个宽限期后，钱包节点将必须升级钱包，否则因没有算力支持将无法发送交易，也无法确认。相对于在节点间重新达成新的共识，这种状况并没有更糟糕。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 5. 钱包节点的账本将得到尊重和保护。使用链下钱包的用户将需要在钱包服务提供商的声明之后决定提至链上钱包或跟随。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 6. 将来的协议升级，可以在升级客户端版本同时绑定协议升级代码并进行独立的激活投票。这将预留足够的时间让节点升级软件以支持新的协议。即使矿工投票激活失败也不影响现状。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. The activation only requires majority miners signal. As described in the paper by Satoshi Nakamoto, 55% miners will be in the longest chain after 340 blocks, with 99.9% certainty. This will minimize the possibility of delaying network upgrades by controlling a small number of hashing power. We can foresee that after 51% signalling, all miners will upgrade within the first grace period. &amp;lt;br/&amp;gt;&lt;br/&gt;Technically soft forks can be implemented at 55% hashpower already&lt;br/&gt;without an orphaning period(like BIP16). Those that don&amp;#39;t upgrade&lt;br/&gt;would just be at risk of mining invalid blocks. One would not want to&lt;br/&gt;use this method to try and activate a controversial hard fork since&lt;br/&gt;it&amp;#39;s trivial for miners to false signal. The orphaning period&lt;br/&gt;effectively forces miners to make a decision but does not necessarily&lt;br/&gt;force them to make a particular decision since they can simply choose&lt;br/&gt;to reject the fork and false signal.&lt;br/&gt;&amp;gt; 2. During the first two grace periods, non-mining nodes will not be affected. They have enough time to upgrade their software. &amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 3. Versionbits included in block header, not influencing the SPY mining. &amp;lt;br/&amp;gt;&lt;br/&gt;The widely deployed stratum based SPV mining does not really provide a&lt;br/&gt;proper way to validate nversion of the previous block, it only lets&lt;br/&gt;you see the nversion of the current stratum job since you don&amp;#39;t get a&lt;br/&gt;full bock header. There&amp;#39;s always a risk here that miners build on top&lt;br/&gt;of invalid blocks when SPV mining.&lt;br/&gt;&amp;gt; 4. After two grace periods, all nodes must be upgraded. Otherwise they cannot send transactions or get any confirmations. Compared with forming new consensus among nodes, the situation is not worse than before. &amp;lt;br/&amp;gt;&lt;br/&gt;Previous consensus changes have largely been done in backwards&lt;br/&gt;compatible ways which lets users opt-in to new features. In general&lt;br/&gt;backwards compatibility is considered a good thing, this seems to make&lt;br/&gt;that worse.&lt;br/&gt;&amp;gt; 5. The ledger in non-mining wallet nodes is honored and reserved. Users of off-chain wallet services can decide whether or not to follow the service providers after they got the public notification from the service providers. &amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 6. Protocol upgrades in the future can be bonded with the upgrades of nodes, and the upgrades activate through miners vote independently. There would be enough time for nodes to be upgraded in order to support new protocols. Even in case of failing in miner activation, the situation will not worsen and the status quo will remain. &amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ==Risks==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. 算力的波动会影响最长链的结果。因此越高的激活比例要求将减少短时间分叉的危险。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 2. 矿工可能发假信号来避免被孤立，但在钱包节点看来无法区分是否是假信号，只能升级。而钱包节点升级之后，矿工也将跟随。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 3. 钱包节点可能发假信号来仅升级版本号而不支持绑定的协议升级代码，但钱包节点数量无法判别，严肃的真实节点应当跟随可证实的矿工投票结果。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 4. 存在少部分矿工和钱包节点共谋，在新协议升级激活后依然使用老协议挖矿的可能。这种可能随时发生无法杜绝，但通过让沉默的大多数钱包节点升级的方式可以降低这种行为带来的利益。&amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. The fluctuation of the hashing power will affect the result of the longest chain. Higher activating requirement means a lower risk of temporary fork. &amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt; 2. Miners could simply signal to avoid being orphaned, but from the perspective of non-mining wallet nodes, they can&amp;#39;t distinguish the false signal from the true signal. They must upgrade with the assumption that the signals are all true. After all the non-mining nodes have upgraded, the miners signalling false signal should follow. &amp;lt;br/&amp;gt;&lt;br/&gt;Miners can simply announce they are false signalling with coinbase&lt;br/&gt;tags and other methods. This activation method would likely not be&lt;br/&gt;viable for controversial changes.&lt;br/&gt;&amp;gt; 3. Non-mining wallet nodes could false signal without supporting the new protocol but since the total number of nodes cannot be distinguished, genuine nodes should follow the proven result provided by miners vote. &amp;lt;br/&amp;gt;&lt;br/&gt;Users would likely take into account markets and other factors when&lt;br/&gt;deciding what to do, the total number of nodes doesn&amp;#39;t really matter&lt;br/&gt;much. Miner signalling is not necessarily indicative of economic and&lt;br/&gt;user support.&lt;br/&gt;&amp;gt; 4. Miners and non-mining nodes could conspire to fork using old protocol consensus. It can&amp;#39;t be eliminated, just like in the past but through most passive non-mining nodes being upgraded, their benefit is reduced. &amp;lt;br/&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ==Implementation==&lt;br/&gt;&amp;gt; ___TBD___&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;
    </content>
    <updated>2023-06-07T20:03:08&#43;02:00</updated>
  </entry>

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

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

  <entry>
    <id>https://nostr.ae/nevent1qqsyfk7ggy7k6g67knlr2cveml0hk2gal35nah7ad7lkgeg2xaq7e9qzypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegr7sra2</id>
    
      <title type="html">📅 Original date posted:2017-06-06 📝 Original message:You ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyfk7ggy7k6g67knlr2cveml0hk2gal35nah7ad7lkgeg2xaq7e9qzypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegr7sra2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf46f2ss9e88tytu6cq476jhwk2ds7nf59f3g8dk07q798gj9h7fq5yrj7z&#39;&gt;nevent1q…rj7z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-06-06&lt;br/&gt;📝 Original message:You need a majority of miners enforcing BIP148 upon BIP148 activation&lt;br/&gt;to prevent a split, not just a majority signalling segwit. This&lt;br/&gt;provides a miner coordination mechanism for BIP148 mandatory&lt;br/&gt;signalling enforcement.&lt;br/&gt;&lt;br/&gt;On Tue, Jun 6, 2017 at 8:11 PM, Karl Johan Alm&lt;br/&gt;&amp;lt;karljohan-alm at garage.co.jp&amp;gt; wrote:&lt;br/&gt;&amp;gt; One thing about BIP148 activation that may be affected by this is the&lt;br/&gt;&amp;gt; fact that segwit signalling non-BIP148 miners &#43; BIP148 miners may hold&lt;br/&gt;&amp;gt; majority hash power and prevent a chain split. With this SF, that will&lt;br/&gt;&amp;gt; no longer be the case, right? Or am I completely confused on the&lt;br/&gt;&amp;gt; subject?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, Jun 7, 2017 at 9:56 AM, James Hilliard 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; 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...jameshilliard:splitprotection-v0.14.1&#34;&gt;https://github.com/bitcoin/bitcoin/compare/0.14...jameshilliard:splitprotection-v0.14.1&lt;/a&gt;&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/bitcoin-dev/2017-March/013714.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-March/013714.html&lt;/a&gt;&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.cpp#L1281-L1283&#34;&gt;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L1281-L1283&lt;/a&gt;&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 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 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;
    </content>
    <updated>2023-06-07T20:02:30&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy355zts6v3ml0dtql9j4mhtmqew6ext6eydcdmluucq23uulrevczypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegssxl69</id>
    
      <title type="html">📅 Original date posted:2017-06-06 📝 Original message:Due to ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy355zts6v3ml0dtql9j4mhtmqew6ext6eydcdmluucq23uulrevczypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegssxl69" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszdzdp9pn5v9anvs9e0998t8vf22gy9vtmxp0x3g9a27pklph3m4c0mfc4p&#39;&gt;nevent1q…fc4p&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-06-06&lt;br/&gt;📝 Original message: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;SegWit2x agreement being too slow to activate SegWit mandatory&lt;br/&gt;signalling ahead of BIP148 using BIP91 I would like to propose another&lt;br/&gt;option that miners can use to prevent a chain split ahead of the Aug&lt;br/&gt;1st BIP148 activation date.&lt;br/&gt;&lt;br/&gt;The splitprotection soft fork is essentially BIP91 but using BIP8&lt;br/&gt;instead of BIP9 with a lower activation threshold and immediate&lt;br/&gt;mandatory signalling lock-in. This allows for a majority of miners to&lt;br/&gt;activate mandatory SegWit signalling and prevent a potential chain&lt;br/&gt;split ahead of BIP148 activation.&lt;br/&gt;&lt;br/&gt;This BIP allows for miners to respond to market forces quickly ahead&lt;br/&gt;of BIP148 activation by signalling for splitprotection. Any miners&lt;br/&gt;already running BIP148 should be encouraged to use splitprotection.&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;  BIP: splitprotection&lt;br/&gt;  Layer: Consensus (soft fork)&lt;br/&gt;  Title: User Activated Soft Fork Split Protection&lt;br/&gt;  Author: James Hilliard &amp;lt;james.hilliard1 at gmail.com&amp;gt;&lt;br/&gt;  Comments-Summary: No comments yet.&lt;br/&gt;  Comments-URI:&lt;br/&gt;  Status: Draft&lt;br/&gt;  Type: Standards Track&lt;br/&gt;  Created: 2017-05-22&lt;br/&gt;  License: BSD-3-Clause&lt;br/&gt;           CC0-1.0&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;==Abstract==&lt;br/&gt;&lt;br/&gt;This document specifies a coordination mechanism for a simple majority&lt;br/&gt;of miners to prevent a chain split ahead of BIP148 activation.&lt;br/&gt;&lt;br/&gt;==Definitions==&lt;br/&gt;&lt;br/&gt;&amp;#34;existing segwit deployment&amp;#34; refer to the BIP9 &amp;#34;segwit&amp;#34; deployment&lt;br/&gt;using bit 1, between November 15th 2016 and November 15th 2017 to&lt;br/&gt;activate BIP141, BIP143 and BIP147.&lt;br/&gt;&lt;br/&gt;==Motivation==&lt;br/&gt;&lt;br/&gt;The biggest risk of BIP148 is an extended chain split, this BIP&lt;br/&gt;provides a way for a simple majority of miners to eliminate that risk.&lt;br/&gt;&lt;br/&gt;This BIP provides a way for a simple majority of miners to coordinate&lt;br/&gt;activation of the existing segwit deployment with less than 95%&lt;br/&gt;hashpower before BIP148 activation. Due to time constraints unless&lt;br/&gt;immediately deployed BIP91 will likely not be able to enforce&lt;br/&gt;mandatory signalling of segwit before the Aug 1st activation of&lt;br/&gt;BIP148. This BIP provides a method for rapid miner activation of&lt;br/&gt;SegWit mandatory signalling ahead of the BIP148 activation date. Since&lt;br/&gt;the primary goal of this BIP is to reduce the chance of an extended&lt;br/&gt;chain split as much as possible we activate using a simple miner&lt;br/&gt;majority of 65% over a 504 block interval rather than a higher&lt;br/&gt;percentage. This BIP also allows miners to signal their intention to&lt;br/&gt;run BIP148 in order to prevent a chain split.&lt;br/&gt;&lt;br/&gt;==Specification==&lt;br/&gt;&lt;br/&gt;While this BIP is active, all blocks must set the nVersion header top&lt;br/&gt;3 bits to 001 together with bit field (1&amp;lt;&amp;lt;1) (according to the&lt;br/&gt;existing segwit deployment). Blocks that do not signal as required&lt;br/&gt;will be rejected.&lt;br/&gt;&lt;br/&gt;==Deployment==&lt;br/&gt;&lt;br/&gt;This BIP will be deployed by &amp;#34;version bits&amp;#34; with a 65%(this can be&lt;br/&gt;adjusted if desired) activation threshold BIP9 with the name&lt;br/&gt;&amp;#34;splitprotecion&amp;#34; and using bit 2.&lt;br/&gt;&lt;br/&gt;This BIP starts immediately and is a BIP8 style soft fork since&lt;br/&gt;mandatory signalling will start on midnight August 1st 2017 (epoch&lt;br/&gt;time 1501545600) regardless of whether or not this BIP has reached its&lt;br/&gt;own signalling threshold. This BIP will cease to be active when segwit&lt;br/&gt;is locked-in.&lt;br/&gt;&lt;br/&gt;=== Reference implementation ===&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;// Check if Segregated Witness is Locked In&lt;br/&gt;bool IsWitnessLockedIn(const CBlockIndex* pindexPrev, const&lt;br/&gt;Consensus::Params&amp;amp; params)&lt;br/&gt;{&lt;br/&gt;    LOCK(cs_main);&lt;br/&gt;    return (VersionBitsState(pindexPrev, params,&lt;br/&gt;Consensus::DEPLOYMENT_SEGWIT, versionbitscache) ==&lt;br/&gt;THRESHOLD_LOCKED_IN);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;// SPLITPROTECTION mandatory segwit signalling.&lt;br/&gt;if ( VersionBitsState(pindex-&amp;gt;pprev, chainparams.GetConsensus(),&lt;br/&gt;Consensus::DEPLOYMENT_SPLITPROTECTION, versionbitscache) ==&lt;br/&gt;THRESHOLD_LOCKED_IN &amp;amp;&amp;amp;&lt;br/&gt;     !IsWitnessLockedIn(pindex-&amp;gt;pprev, chainparams.GetConsensus()) &amp;amp;&amp;amp;&lt;br/&gt;// Segwit is not locked in&lt;br/&gt;     !IsWitnessEnabled(pindex-&amp;gt;pprev, chainparams.GetConsensus()) ) //&lt;br/&gt;and is not active.&lt;br/&gt;{&lt;br/&gt;    bool fVersionBits = (pindex-&amp;gt;nVersion &amp;amp; VERSIONBITS_TOP_MASK) ==&lt;br/&gt;VERSIONBITS_TOP_BITS;&lt;br/&gt;    bool fSegbit = (pindex-&amp;gt;nVersion &amp;amp;&lt;br/&gt;VersionBitsMask(chainparams.GetConsensus(),&lt;br/&gt;Consensus::DEPLOYMENT_SEGWIT)) != 0;&lt;br/&gt;    if (!(fVersionBits &amp;amp;&amp;amp; fSegbit)) {&lt;br/&gt;        return state.DoS(0, error(&amp;#34;ConnectBlock(): relayed block must&lt;br/&gt;signal for segwit, please upgrade&amp;#34;), REJECT_INVALID, &amp;#34;bad-no-segwit&amp;#34;);&lt;br/&gt;    }&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;// BIP148 mandatory segwit signalling.&lt;br/&gt;int64_t nMedianTimePast = pindex-&amp;gt;GetMedianTimePast();&lt;br/&gt;if ( (nMedianTimePast &amp;gt;= 1501545600) &amp;amp;&amp;amp;  // Tue 01 Aug 2017 00:00:00 UTC&lt;br/&gt;     (nMedianTimePast &amp;lt;= 1510704000) &amp;amp;&amp;amp;  // Wed 15 Nov 2017 00:00:00 UTC&lt;br/&gt;     (!IsWitnessLockedIn(pindex-&amp;gt;pprev, chainparams.GetConsensus()) &amp;amp;&amp;amp;&lt;br/&gt; // Segwit is not locked in&lt;br/&gt;      !IsWitnessEnabled(pindex-&amp;gt;pprev, chainparams.GetConsensus())) )&lt;br/&gt; // and is not active.&lt;br/&gt;{&lt;br/&gt;    bool fVersionBits = (pindex-&amp;gt;nVersion &amp;amp; VERSIONBITS_TOP_MASK) ==&lt;br/&gt;VERSIONBITS_TOP_BITS;&lt;br/&gt;    bool fSegbit = (pindex-&amp;gt;nVersion &amp;amp;&lt;br/&gt;VersionBitsMask(chainparams.GetConsensus(),&lt;br/&gt;Consensus::DEPLOYMENT_SEGWIT)) != 0;&lt;br/&gt;    if (!(fVersionBits &amp;amp;&amp;amp; fSegbit)) {&lt;br/&gt;        return state.DoS(0, error(&amp;#34;ConnectBlock(): relayed block must&lt;br/&gt;signal for segwit, please upgrade&amp;#34;), REJECT_INVALID, &amp;#34;bad-no-segwit&amp;#34;);&lt;br/&gt;    }&lt;br/&gt;}&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/compare/0.14...jameshilliard:splitprotection-v0.14.1&#34;&gt;https://github.com/bitcoin/bitcoin/compare/0.14...jameshilliard:splitprotection-v0.14.1&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;==Backwards Compatibility==&lt;br/&gt;&lt;br/&gt;This deployment is compatible with the existing &amp;#34;segwit&amp;#34; bit 1&lt;br/&gt;deployment scheduled between midnight November 15th, 2016 and midnight&lt;br/&gt;November 15th, 2017. This deployment is also compatible with the&lt;br/&gt;existing BIP148 deployment. This BIP is compatible with BIP91 only if&lt;br/&gt;BIP91 activates before it and before BIP148. Miners will need to&lt;br/&gt;upgrade their nodes to support splitprotection otherwise they may&lt;br/&gt;build on top of an invalid block. While this bip is active users&lt;br/&gt;should either upgrade to splitprotection or wait for additional&lt;br/&gt;confirmations when accepting payments.&lt;br/&gt;&lt;br/&gt;==Rationale==&lt;br/&gt;&lt;br/&gt;Historically we have used IsSuperMajority() to activate soft forks&lt;br/&gt;such as BIP66 which has a mandatory signalling requirement for miners&lt;br/&gt;once activated, this ensures that miners are aware of new rules being&lt;br/&gt;enforced. This technique can be leveraged to lower the signalling&lt;br/&gt;threshold of a soft fork while it is in the process of being deployed&lt;br/&gt;in a backwards compatible way. We also use a BIP8 style timeout to&lt;br/&gt;ensure that this BIP is compatible with BIP148 and that BIP148&lt;br/&gt;compatible mandatory signalling activates regardless of miner&lt;br/&gt;signalling levels.&lt;br/&gt;&lt;br/&gt;By orphaning non-signalling blocks during the BIP9 bit 1 &amp;#34;segwit&amp;#34;&lt;br/&gt;deployment, this BIP can cause the existing &amp;#34;segwit&amp;#34; deployment to&lt;br/&gt;activate without needing to release a new deployment. As we approach&lt;br/&gt;BIP148 activation it may be desirable for a majority of miners to have&lt;br/&gt;a method that will ensure that there is no chain split.&lt;br/&gt;&lt;br/&gt;==References==&lt;br/&gt;&lt;br/&gt;*[&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-March/013714.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-March/013714.html&lt;/a&gt;&lt;br/&gt;Mailing list discussion]&lt;br/&gt;*[&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L1281-L1283&#34;&gt;https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L1281-L1283&lt;/a&gt;&lt;br/&gt;P2SH flag day activation]&lt;br/&gt;*[[bip-0009.mediawiki|BIP9 Version bits with timeout and delay]]&lt;br/&gt;*[[bip-0016.mediawiki|BIP16 Pay to Script Hash]]&lt;br/&gt;*[[bip-0091.mediawiki|BIP91 Reduced threshold Segwit MASF]]&lt;br/&gt;*[[bip-0141.mediawiki|BIP141 Segregated Witness (Consensus layer)]]&lt;br/&gt;*[[bip-0143.mediawiki|BIP143 Transaction Signature Verification for&lt;br/&gt;Version 0 Witness Program]]&lt;br/&gt;*[[bip-0147.mediawiki|BIP147 Dealing with dummy stack element malleability]]&lt;br/&gt;*[[bip-0148.mediawiki|BIP148 Mandatory activation of segwit deployment]]&lt;br/&gt;*[[bip-0149.mediawiki|BIP149 Segregated Witness (second deployment)]]&lt;br/&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 benefits]&lt;br/&gt;&lt;br/&gt;==Copyright==&lt;br/&gt;&lt;br/&gt;This document is dual licensed as BSD 3-clause, and Creative Commons&lt;br/&gt;CC0 1.0 Universal.
    </content>
    <updated>2023-06-07T20:02:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9apgthkx4cn6xfcwtjw5jdrjt63nes5jmqzj8662rsp54dkhwjpqzypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegxkdv74</id>
    
      <title type="html">📅 Original date posted:2017-05-18 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9apgthkx4cn6xfcwtjw5jdrjt63nes5jmqzj8662rsp54dkhwjpqzypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegxkdv74" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2va9z7rkcx45r5ehudzdnnd5l7cr53h66rgta8mfupakhxen9p8g3zvdvs&#39;&gt;nevent1q…vdvs&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-05-18&lt;br/&gt;📝 Original message:Locking the lower bits on the timestamp will likely break existing&lt;br/&gt;hardware that relies on being able to roll ntime.&lt;br/&gt;&lt;br/&gt;On Thu, May 18, 2017 at 8:44 AM, Cameron Garnham via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; Hello Bitcoin Development Mailing List,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I wish to explain why the current approach to ‘ASICBOOST’ dose not comply with our established best practices for security vulnerabilities and suggest what I consider to be an approach closer matching established industry best practices.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1.     Significant deviations from the Bitcoin Security Model have been acknowledged as security vulnerabilities.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The Bitcoin Security Model assumes that every input into the Proof-of-Work function should have the same difficulty of producing a desired output.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2.     General ASIC optimisation cannot be considered a Security Vulnerabilities.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Quickly being able to check inputs is not a vulnerability. However, being able to craft inputs that are significantly easier to check than alternative inputs is a vulnerability.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 3.     We should assign a CVE to the vulnerability exploited by ‘ASICBOOST’.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ‘ASICBOOST’ is an attack on this Bitcoin’s security assumptions and should be considered an exploit of the Bitcoin Proof-of-Work Function.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; For a more detailed look at ‘ASICBOOST’, please have a look at this excellent document by Jeremy Rubin:&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://www.mit.edu/~jlrubin//public/pdfs/Asicboost.pdf&#34;&gt;http://www.mit.edu/~jlrubin//public/pdfs/Asicboost.pdf&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The Bitcoin Community should be able to track the progress of restoring the quality of the Bitcoin Proof-of-Work function to its original assumptions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 4.     Work should be taken to prudently and swiftly restore Bitcoins Security Properties.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I recommend the Bitcoin Community fix this vulnerability with expediency.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Cameron.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; PS:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; With a soft-fork it probably is possible to completely fix this Proof-of-Work vulnerability.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; (Here is my working list of things to do):&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1.     Include extra data in the Coinbase Transaction, such as the Witness Root.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2.     Lock the Version. (Use a space in the Coinbase Transaction for signalling future upgrades).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 3.     Lock the lower-bits on the Timestamp: Block timestamps only need ~1minute granularity.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 4.      Make a deterministic ordering of transaction chains within a block. (However, I believe this option is more difficult).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Of course, if we have a hard-fork, we should consider the Proof-of-Work internal merkle structure directly.&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;
    </content>
    <updated>2023-06-07T20:01:17&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw8n49c67yr22cttl597dv5mlj3efr2qcfxj3fux2h0d5kwu447cgzypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegkcleus</id>
    
      <title type="html">📅 Original date posted:2017-05-09 📝 Original message:Doing ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw8n49c67yr22cttl597dv5mlj3efr2qcfxj3fux2h0d5kwu447cgzypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegkcleus" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfnyx4mz4qlms2eats0nr3a4lqsfkf309jd6txe23ymw9hd2s2xesdr9a6j&#39;&gt;nevent1q…9a6j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-05-09&lt;br/&gt;📝 Original message:Doing a second soft-fork from 50% to 75% sounds more difficult since&lt;br/&gt;that&amp;#39;s going from a more restrictive ruleset to less restrictive, you&lt;br/&gt;might be able to hack around it but it wouldn&amp;#39;t be a fully backwards&lt;br/&gt;compatible change like going from 75% to 50% would be. 50% vs 75% does&lt;br/&gt;affect max transactions/second in practice, the exact amount depends&lt;br/&gt;on the real world usage of course though.&lt;br/&gt;&lt;br/&gt;On Tue, May 9, 2017 at 11:19 AM, Sergio Demian Lerner via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; Thanks Johnson and Hampus for the clarifications.&lt;br/&gt;&amp;gt; However, I would rather do the opposite: soft-fork to 50% now, and soft-fork&lt;br/&gt;&amp;gt; again to 75% discount later if needed, because it doesn&amp;#39;t affect the max&lt;br/&gt;&amp;gt; transactions/second.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Segwit as it is today should be activated. However if it is not before&lt;br/&gt;&amp;gt; November, then for the next Segwit attempt I would choose a more&lt;br/&gt;&amp;gt; conservative 50% discount.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Tue, May 9, 2017 at 12:45 PM, Johnson Lau &amp;lt;jl2012 at xbt.hk&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; On 9 May 2017, at 21:49, Sergio Demian Lerner 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;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; So it seems the 75% discount has been chosen with the idea that in the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; future the current transaction pattern will shift towards multisigs. This is&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; not a bad idea, as it&amp;#39;s the only direction Bitcoin can scale without a HF.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; But it&amp;#39;s a bad idea if we end up doing, for example, a 2X blocksize&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; increase HF in the future. In that case it&amp;#39;s much better to use a 50%&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; witness discount, and do not make scaling risky by making the worse case&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; block size 8 Mbytes, when it could have been 2*2.7=5.4 Mbytes.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; As we could change any parameter in a hardfork, I don’t think this has any&lt;br/&gt;&amp;gt;&amp;gt; relation with the current BIP141 proposal. We could just use 75% in a&lt;br/&gt;&amp;gt;&amp;gt; softfork, and change that to a different value (or completely redefine the&lt;br/&gt;&amp;gt;&amp;gt; definition of weight) with a hardfork later.&lt;br/&gt;&amp;gt;&amp;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;
    </content>
    <updated>2023-06-07T20:00:58&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswtrtvqkrrzmxn0wmp75m47pakc2wg6dw7na6hjc5wg99y67pfesszypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegm0ydf8</id>
    
      <title type="html">📅 Original date posted:2017-05-09 📝 Original message:The ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswtrtvqkrrzmxn0wmp75m47pakc2wg6dw7na6hjc5wg99y67pfesszypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegm0ydf8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvun64a54nawy0j23lvwayzyuc8dvgm4kc33zn9w3g6qvh6cvwtgc5k3xeg&#39;&gt;nevent1q…3xeg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-05-09&lt;br/&gt;📝 Original message:The discount is designed to reduce UTXO bloat primarily, witness spam&lt;br/&gt;data would not make it into the UTXO set. The discount brings the fee&lt;br/&gt;of a transaction more in line with the actual costs to the network for&lt;br/&gt;the transaction. A miner spamming the network with 4MB witness blocks&lt;br/&gt;would have very little impact on the UTXO size compared with 1MB&lt;br/&gt;non-witness blocks. UTXO size is a bigger issue than blockchain size&lt;br/&gt;since full nodes can&amp;#39;t prune the UTXO set.&lt;br/&gt;&lt;br/&gt;The discount of 75% for the SegWit softfork doesn&amp;#39;t really have any&lt;br/&gt;effect on future hard forks as it can always be adjusted as needed&lt;br/&gt;later on as part of a HF.&lt;br/&gt;&lt;br/&gt;On Tue, May 9, 2017 at 8:49 AM, Sergio Demian Lerner via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; This [1] article says the current discount prevents witness spam. Witness&lt;br/&gt;&amp;gt; spam is free space in the witness part of the block that can be filled by&lt;br/&gt;&amp;gt; miners to create bigger blocks with almost no cost for the benefit a cluster&lt;br/&gt;&amp;gt; of miners with low latency, increasing centralization.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The 75% discount does not prevent it, but on the contrary leaves a lot of&lt;br/&gt;&amp;gt; extra witness space for spam.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If the maximum block weight is set to 2.7M, each byte of non-witness block&lt;br/&gt;&amp;gt; costs 1.7, and each byte of witness costs 1, then a normal filled block&lt;br/&gt;&amp;gt; would be 2.7M bytes (1.7&#43;1), and there will be no need to create ever a 4&lt;br/&gt;&amp;gt; Mbyte block. The worst case would be the average case, and the transaction&lt;br/&gt;&amp;gt; rate would be the maximum possible.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The current 75% discount can only achieve more transactions per second if&lt;br/&gt;&amp;gt; the type of transactions change. Therefore the current 75% discount only&lt;br/&gt;&amp;gt; makes the block size worst case worse (4 Mbytes when it should be 2.7&lt;br/&gt;&amp;gt; Mbytes).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 80% of all inputs/outputs are P2PKH. The only way to make use of the extra&lt;br/&gt;&amp;gt; witness&lt;br/&gt;&amp;gt; space If most P2PKH transactions are replaced by multisigs (typically for&lt;br/&gt;&amp;gt; LN).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So it seems the 75% discount has been chosen with the idea that in the&lt;br/&gt;&amp;gt; future the current transaction pattern will shift towards multisigs. This is&lt;br/&gt;&amp;gt; not a bad idea, as it&amp;#39;s the only direction Bitcoin can scale without a HF.&lt;br/&gt;&amp;gt; But it&amp;#39;s a bad idea if we end up doing, for example, a 2X blocksize increase&lt;br/&gt;&amp;gt; HF in the future. In that case it&amp;#39;s much better to use a 50% witness&lt;br/&gt;&amp;gt; discount, and do not make scaling risky by making the worse case block size&lt;br/&gt;&amp;gt; 8 Mbytes, when it could have been 2*2.7=5.4 Mbytes.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I&amp;#39;ve uploaded the code here:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/SergioDemianLerner/SegwitStats&#34;&gt;https://github.com/SergioDemianLerner/SegwitStats&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;  [1]&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://segwit.org/why-a-discount-factor-of-4-why-not-2-or-8-bbcebe91721e&#34;&gt;https://segwit.org/why-a-discount-factor-of-4-why-not-2-or-8-bbcebe91721e&lt;/a&gt;.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Mon, May 8, 2017 at 8:47 PM, Alphonse Pace 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;&lt;br/&gt;&amp;gt;&amp;gt; Sergio,&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I&amp;#39;m not sure what the data you present has to do with the discount.  A 75%&lt;br/&gt;&amp;gt;&amp;gt; discount prevents witness spam precisely because it is 75%, nothing more.&lt;br/&gt;&amp;gt;&amp;gt; The current usage simply gives a guideline on how much capacity is gained&lt;br/&gt;&amp;gt;&amp;gt; through a particular discount.  With the data you show, it would imply that&lt;br/&gt;&amp;gt;&amp;gt; those blocks, with SegWit used where possible, would result in blocks of&lt;br/&gt;&amp;gt;&amp;gt; ~1.8MB.&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; On Mon, May 8, 2017 at 5:42 PM, Sergio Demian Lerner 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 have processed 1000 blocks starting from Block #461653.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; I computed several metrics, including the supposed size of witness data&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; and non-witness data (onchain), assuming all P2SH inputs/outputs are&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; converted to P2PWSH and all P2PKH inputs/outputs are converted to P2WPKH.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; This takes into account that other types of transactions will not be&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; modified by Segwit (e.g. OP_RETURN outputs, or P2PK). This analysis doesn&amp;#39;t&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; take into account that LN transactions may affect the current state,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; increasing the segwit/nosegwit ratio.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; Among a lot of information, I&amp;#39;ve got the following real world results...&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; acMainChainSpace =352608924&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; acSegwitSpace =599400403&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; Ratio segwit/nosegwit=1.6999&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; This implies that the 75% that discount is not the best option to prevent&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; witness spam in a block of 4 MB, as stated in&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://segwit.org/why-a-discount-factor-of-4-why-not-2-or-8-bbcebe91721e&#34;&gt;https://segwit.org/why-a-discount-factor-of-4-why-not-2-or-8-bbcebe91721e&lt;/a&gt;.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; The non-witness data weight factor should not be 4 but 2.35. The closest&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; integer value is 2, which leads to a 50% witness discount.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; The Bitcoinj source code is available for anyone to review. I encourage&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; anyone to re-compute this with another utility to cross-check. Maybe Antoine&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; Le Calvez (p2sh.info) would like to double-check.&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;&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;&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;
    </content>
    <updated>2023-06-07T20:00:57&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsd0kfdf5dgq5545ad93znyh5w2uutk6aap74y7sfnnvhtd8dm3f3szypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegsfxyuw</id>
    
      <title type="html">📅 Original date posted:2017-04-04 📝 Original message:It is ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsd0kfdf5dgq5545ad93znyh5w2uutk6aap74y7sfnnvhtd8dm3f3szypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegsfxyuw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfc00dr25734uekyeqp98n4kh3dvy82r4p2rqwvxkd89tak6yxhtqtwsh9m&#39;&gt;nevent1q…sh9m&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-04-04&lt;br/&gt;📝 Original message:It is a consensus rule&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Apr 4, 2017 at 6:47 AM, Tom Zander via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; On Sunday, 2 April 2017 22:39:13 CEST Russell O&amp;#39;Connor via bitcoin-dev&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;  Someone told me a while back that it would be more natural if we move the&lt;br/&gt;&amp;gt;&amp;gt; nHeight from the coinbase script to the coinbase locktime.  Have you&lt;br/&gt;&amp;gt;&amp;gt; considered doing this?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That change would not be a consensus change and thus free to make any day.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt; Tom Zander&lt;br/&gt;&amp;gt; Blog: &lt;a href=&#34;https://zander.github.io&#34;&gt;https://zander.github.io&lt;/a&gt;&lt;br/&gt;&amp;gt; Vlog: &lt;a href=&#34;https://vimeo.com/channels/tomscryptochannel&#34;&gt;https://vimeo.com/channels/tomscryptochannel&lt;/a&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;
    </content>
    <updated>2023-06-07T19:58:59&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspzx978069p2s8jg24hn239350hvhkkmfaqj0qsqhfjntpn77gywczypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegdcyuyc</id>
    
      <title type="html">📅 Original date posted:2016-12-11 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspzx978069p2s8jg24hn239350hvhkkmfaqj0qsqhfjntpn77gywczypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegdcyuyc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz2t9dp6ujmy5akja5lkhmyedrrzujway0kkvxrczcf8thr2t7f4srqrxw0&#39;&gt;nevent1q…rxw0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-12-11&lt;br/&gt;📝 Original message:I think the main thing you&amp;#39;re missing is that there will always be&lt;br/&gt;transactions available to mine simply because demand for blockspace is&lt;br/&gt;effectively unbounded as fees approach 0. Nodes generally have a&lt;br/&gt;static mempool size and dynamic minrelaytxfee nowadays so as&lt;br/&gt;transactions get mined lower fee transactions get accepted into the&lt;br/&gt;mempool. An individual opting to not send a transaction would not make&lt;br/&gt;the blocks smaller simply because there will always be other&lt;br/&gt;transactions available(it would really only have an effect on the&lt;br/&gt;transaction fees needed to get mined).&lt;br/&gt;&lt;br/&gt;On Sun, Dec 11, 2016 at 3:40 PM, t. khan &amp;lt;teekhan42 at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Sun, Dec 11, 2016 at 3:31 PM, James Hilliard &amp;lt;james.hilliard1 at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; What&amp;#39;s most likely to happen is miners will max out the blocks they&lt;br/&gt;&amp;gt;&amp;gt; mine simply to try and get as many transaction fees as possible like&lt;br/&gt;&amp;gt;&amp;gt; they are doing right now(there will be a backlog of transactions at&lt;br/&gt;&amp;gt;&amp;gt; any block size). Having the block size double every year would likely&lt;br/&gt;&amp;gt;&amp;gt; cause major problems and this proposal allows over a 7x increase it&lt;br/&gt;&amp;gt;&amp;gt; seems.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Block75 is not exponential scaling. It&amp;#39;s true the max theoretical increase&lt;br/&gt;&amp;gt; in the first year would be 7x, but the next year would be a max of 2x, and&lt;br/&gt;&amp;gt; the next could only increase by 50% and so on.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; However, to reach the max in the first year: 1) ALL blocks would have to be&lt;br/&gt;&amp;gt; 100% full and 2) transactions would have to increase at the same rate. We&amp;#39;d&lt;br/&gt;&amp;gt; have to be doing 2.1 million transactions a day within a year to make that&lt;br/&gt;&amp;gt; happen, and would therefore need blocks to be that big.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Realistically, max block size will grow (and shrink) at a much slower rate&lt;br/&gt;&amp;gt; ... even more so with SegWit.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;  The main problem with this proposal I think is that users effectively&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; have no way to stop the miners from increasing block size&lt;br/&gt;&amp;gt;&amp;gt; continuously.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Yes they could, simply by not sending transactions. Users don&amp;#39;t care at all&lt;br/&gt;&amp;gt; about block size. They just want their transactions to be fast and&lt;br/&gt;&amp;gt; relatively cheap.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; -t.k.
    </content>
    <updated>2023-06-07T19:54:50&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgzyskjeru03c0yrfl53u3v0cfwyhtc28t32nyujjjxmyn66ccguszypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufeg60qdvz</id>
    
      <title type="html">📅 Original date posted:2016-12-11 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgzyskjeru03c0yrfl53u3v0cfwyhtc28t32nyujjjxmyn66ccguszypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufeg60qdvz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp0gldcy7nfzs7mpjjugccx3fgnznd438a9w7ey8vxy59g9mxwweg9xwz5t&#39;&gt;nevent1q…wz5t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-12-11&lt;br/&gt;📝 Original message:What&amp;#39;s most likely to happen is miners will max out the blocks they&lt;br/&gt;mine simply to try and get as many transaction fees as possible like&lt;br/&gt;they are doing right now(there will be a backlog of transactions at&lt;br/&gt;any block size). Having the block size double every year would likely&lt;br/&gt;cause major problems and this proposal allows over a 7x increase it&lt;br/&gt;seems.&lt;br/&gt;&lt;br/&gt;The main problem with this proposal I think is that users effectively&lt;br/&gt;have no way to stop the miners from increasing block size&lt;br/&gt;continuously.&lt;br/&gt;&lt;br/&gt;On Sun, Dec 11, 2016 at 1:55 PM, t. khan via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Sun, Dec 11, 2016 at 12:11 PM, s7r &amp;lt;s7r at sky-ip.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; This is an incentive, if few miners agree to create a large conglomerate&lt;br/&gt;&amp;gt;&amp;gt; that will ultimately control the network.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; You miss something obvious that makes this attack actually free of cost.&lt;br/&gt;&amp;gt;&amp;gt; Nothing will &amp;#34;cost them more in transaction fees&amp;#34;. A miner can create&lt;br/&gt;&amp;gt;&amp;gt; thousands of transactions paying to himself, and not broadcast them to&lt;br/&gt;&amp;gt;&amp;gt; the network, but hold them and include them in the blocks he mines. The&lt;br/&gt;&amp;gt;&amp;gt; fees are collected by him because transactions are included in a block&lt;br/&gt;&amp;gt;&amp;gt; that he mined and the left amount is in another wallet of the same&lt;br/&gt;&amp;gt;&amp;gt; person. Repeat this continuously to fill blocks.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; No, that wasn&amp;#39;t overlooked. Miners could indeed stuff their own blocks for&lt;br/&gt;&amp;gt; free, but they can&amp;#39;t stuff blocks mined by others for free.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In the hypothetical scenario where there is a single mining pool which mines&lt;br/&gt;&amp;gt; most (if not all) of the blocks, we would have much larger problems than&lt;br/&gt;&amp;gt; their ability to raise the max block size gradually. Even if they were able&lt;br/&gt;&amp;gt; to fill 100% of the blocks for an entire year, the max block size for that&lt;br/&gt;&amp;gt; 2016 block period would be 7.25MB (not accounting for SegWit). After the&lt;br/&gt;&amp;gt; whole year they would have made no extra profit vs doing nothing. And as&lt;br/&gt;&amp;gt; soon as they stopped this scheme, block size would spring back to it&amp;#39;s&lt;br/&gt;&amp;gt; natural level.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The good news is, this scenario has never happened and even when we&amp;#39;ve come&lt;br/&gt;&amp;gt; remotely close (when ASICs first shipped), the situation was temporary. The&lt;br/&gt;&amp;gt; odds of this happening in the future and persisting long enough to have any&lt;br/&gt;&amp;gt; major effect with Block75 are very close to zero.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Topology and bandwidth speed / hash rate of the network cannot be&lt;br/&gt;&amp;gt;&amp;gt; controlled - if we make assumptions about these it might have terrible&lt;br/&gt;&amp;gt;&amp;gt; consequences.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Even if we take in consideration that bandwidth will only grow and disk&lt;br/&gt;&amp;gt;&amp;gt; space will only cost less (which is not something we can safely assume,&lt;br/&gt;&amp;gt;&amp;gt; by the way) the hard limit max. block size cannot grow to unlimited&lt;br/&gt;&amp;gt;&amp;gt; value (even if the growth happens over time). There is also a validation&lt;br/&gt;&amp;gt;&amp;gt; cost in time for each block, for the health of the network any node&lt;br/&gt;&amp;gt;&amp;gt; should be able to download _and_ validate a block, before next block&lt;br/&gt;&amp;gt;&amp;gt; gets mined.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; You said in another post that a permanent solution is preferred, rather&lt;br/&gt;&amp;gt;&amp;gt; than kicking the can down the road. I fully agree, as well as many&lt;br/&gt;&amp;gt;&amp;gt; others reading this list, but the permanent solution doesn&amp;#39;t necessarily&lt;br/&gt;&amp;gt;&amp;gt; have to be increasing the max block size dynamically.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Increasing *and* decreasing max block size dynamically. Block75 is&lt;br/&gt;&amp;gt; self-correcting, whereas any solution with hardcoded limits can&amp;#39;t correct&lt;br/&gt;&amp;gt; without human intervention and would rely on our ability to predict the&lt;br/&gt;&amp;gt; future (which as you pointed out, we can&amp;#39;t do). Therefore, any solution&lt;br/&gt;&amp;gt; that&amp;#39;s not dynamic cannot be permanent.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Additionally, the frequent and gradual changes in max block size would allow&lt;br/&gt;&amp;gt; us to see any consequences well in advance (years probably).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; If you think about it the other way around, dynamically growing the max&lt;br/&gt;&amp;gt;&amp;gt; block size is also kicking the can down the road ... just without having&lt;br/&gt;&amp;gt;&amp;gt; to touch it and get dust on the boot ;)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Not having to touch it again = permanent solution. ;)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; It would be helpful if some others would run the numbers on how Block75&lt;br/&gt;&amp;gt; would adjust the block size over time:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; new max block size = 1000kb &#43; (average block size over last 2016 blocks -&lt;br/&gt;&amp;gt; 750kb)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; -t.k.&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;
    </content>
    <updated>2023-06-07T19:54:49&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy30kum4umvjfxe930g0vzr5xkwr8ekwfyccva38ut326kqd4585szypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegl2uwf8</id>
    
      <title type="html">📅 Original date posted:2016-12-10 📝 Original message:Miners ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy30kum4umvjfxe930g0vzr5xkwr8ekwfyccva38ut326kqd4585szypuv4ht9hwv0726s46p9lggqx5kh7ypwg8k9e2kjunfwn8sqmufegl2uwf8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0lsa2nzz4vpu23he8p6lyhhqslww07gku0gj6gmg0t8l065ysaucv4epge&#39;&gt;nevent1q…epge&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-12-10&lt;br/&gt;📝 Original message:Miners in general are naturally incentivized to always mine max size&lt;br/&gt;blocks to maximize transaction fees simply because there is very&lt;br/&gt;little marginal cost to including extra transactions(there will always&lt;br/&gt;be a transaction backlog of some sort available to mine since demand&lt;br/&gt;for block space is effectively unbounded as fees approach 0 and they&lt;br/&gt;can even mine their own transactions without any fees). This proposal&lt;br/&gt;would almost certainly cause runaway block size growth and encourage&lt;br/&gt;much more miner centralization.&lt;br/&gt;&lt;br/&gt;On Sat, Dec 10, 2016 at 6:26 PM, t. khan via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; Miners &amp;#39;gaming&amp;#39; the Block75 system -&lt;br/&gt;&amp;gt; There is no financial incentive for miners to attempt to game the Block75&lt;br/&gt;&amp;gt; system. Even if it were attempted and assuming the goal was to create bigger&lt;br/&gt;&amp;gt; blocks, the maximum possible increase would be 25% over the previous block&lt;br/&gt;&amp;gt; size. And, that size would only last for two weeks before readjusting down.&lt;br/&gt;&amp;gt; It would cost them more in transaction fees to stuff the network than they&lt;br/&gt;&amp;gt; could ever make up. To game the system, they&amp;#39;d have to game it forever with&lt;br/&gt;&amp;gt; no possibility of profit.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Blocks would get too big -&lt;br/&gt;&amp;gt; Eventually, blocks would get too big, but only if bandwidth stopped&lt;br/&gt;&amp;gt; increasing and the cost of disk space stopped decreasing. Otherwise, the&lt;br/&gt;&amp;gt; incremental adjustments made by Block75 (especially in combination with&lt;br/&gt;&amp;gt; SegWit) wouldn&amp;#39;t break anyone&amp;#39;s connection or result in significantly more&lt;br/&gt;&amp;gt; orphaned blocks.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The frequent and small adjustments made by Block75 have the added benefit of&lt;br/&gt;&amp;gt; being more easily adapted to, both psychologically and technologically, with&lt;br/&gt;&amp;gt; regards to miners/node operators.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; -t.k&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Sat, Dec 10, 2016 at 5:44 AM, s7r 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;&lt;br/&gt;&amp;gt;&amp;gt; t. khan via bitcoin-dev wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; BIP Proposal - Managing Bitcoin’s block size the same way we do&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; difficulty (aka Block75)&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; The every two-week adjustment of difficulty has proven to be a&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; reasonably effective and predictable way of managing how quickly blocks&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; are mined. Bitcoin needs a reasonably effective and predictable way of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; managing the maximum block size.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; It’s clear at this point that human beings should not be involved in the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; determination of max block size, just as they’re not involved in&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; deciding the difficulty.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Instead of setting an arbitrary max block size (1MB, 2MB, 8MB, etc.) or&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; passing the decision to miners/pool operators, the max block size should&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; be adjusted every two weeks (2016 blocks) using a system similar to how&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; difficulty is calculated.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Put another way: let’s stop thinking about what the max block size&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; should be and start thinking about how full we want the average block to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; be regardless of size. Over the last year, we’ve had averages of 75% or&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; higher, so aiming for 75% full seems reasonable, hence naming this&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; concept ‘Block75’.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; The target capacity over 2016 blocks would be 75%. If the last 2016&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; blocks are more than 75% full, add the difference to the max block size.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Like this:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; MAX_BLOCK_BASE_SIZE = 1000000&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; TARGET_CAPACITY = 750000&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; AVERAGE_OVER_CAP = average block size of last 2016 blocks minus&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; TARGET_CAPACITY&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; To check if a block is valid, ≤ (MAX_BLOCK_BASE_SIZE &#43; AVERAGE_OVER_CAP)&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; For example, if the last 2016 blocks are 85% full (average block is 850&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; KB), add 10% to the max block size. The new max block size would be&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 1,100 KB until the next 2016 blocks are mined, then reset and&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; recalculate. The 1,000,000 byte limit that exists currently would&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; remain, but would effectively be the minimum max block size.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Another two weeks goes by, the last 2016 blocks are again 85% full, but&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; now that means they average 935 KB out of the 1,100 KB max block size.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; This is 93.5% of the 1,000,000 byte limit, so 18.5% would be added to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; that to make the new max block size of 1,185 KB.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Another two weeks passes. This time, the average block is 1,050 KB. The&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; new max block size is calculated to 1,300 KB (as blocks were 105% full,&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; minus the 75% capacity target, so 30% added to max block size).&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Repeat every 2016 blocks, forever.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; If Block75 had been applied at the difficulty adjustment on November&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 18th, the max block size would have been 1,080KB, as the average block&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; during that period was 83% full, so 8% is added to the 1,000KB limit.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; The current size, after the December 2nd adjustment would be 1,150K.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Block75 would allow the max block size to grow (or shrink) in response&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; to transaction volume, and does so predictably, reasonably quickly, and&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; in a method that prevents wild swings in block size or transaction fees.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; It attempts to keep blocks at 75% total capacity over each two week&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; period, the same way difficulty tries to keep blocks mined every ten&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; minutes. It also keeps blocks as small as possible.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Thoughts?&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; -t.k.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I like the idea. It is good wrt growing the max. block size&lt;br/&gt;&amp;gt;&amp;gt; automatically without human action, but the main problem (or question)&lt;br/&gt;&amp;gt;&amp;gt; is not how to grow this number, it is what number can the network&lt;br/&gt;&amp;gt;&amp;gt; handle, considering both miners and users. While disk space requirements&lt;br/&gt;&amp;gt;&amp;gt; might not be a big problem, block propagation time is. The time required&lt;br/&gt;&amp;gt;&amp;gt; for a block to propagate in the network (or at least to all the miners)&lt;br/&gt;&amp;gt;&amp;gt; is directly dependent of its size.  If blocks take too much time to&lt;br/&gt;&amp;gt;&amp;gt; propagate in the network, the orphan rate will increase in unpredictable&lt;br/&gt;&amp;gt;&amp;gt; ways. For example if the internet speed in China is worse than in&lt;br/&gt;&amp;gt;&amp;gt; Europe, and miners in China have more than 50% of the hashing power,&lt;br/&gt;&amp;gt;&amp;gt; blocks mined by European miners might get orphaned.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; The system as described can also be gamed, by filling the network with&lt;br/&gt;&amp;gt;&amp;gt; transactions. Miners have the monetary interest to include as many&lt;br/&gt;&amp;gt;&amp;gt; transactions as possible in a block in order to collect the fees.&lt;br/&gt;&amp;gt;&amp;gt; Regardless how you think about it, there has to be a maximum block size&lt;br/&gt;&amp;gt;&amp;gt; that the network will allow as a consensus rule. Increasing it&lt;br/&gt;&amp;gt;&amp;gt; dynamically based on transaction volume will reach a point where the&lt;br/&gt;&amp;gt;&amp;gt; number got big enough that it broke things. Bitcoin, because its&lt;br/&gt;&amp;gt;&amp;gt; fundamental design, can scale by using offchain solutions.&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;&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;
    </content>
    <updated>2023-06-07T19:54:47&#43;02:00</updated>
  </entry>

</feed>