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




  <entry>
    <id>https://nostr.ae/nevent1qqswrdu8lrjv4flewv5h0h53ngw7r7jzef8q8695pa2533qxsqqza8czyzt4a8kjm2f75d2l6gxx8a3532cg9jsjtflrx4enrrhe9smy5ka6seqxz9w</id>
    
      <title type="html">📅 Original date posted:2015-06-19 📝 Original message:It is ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswrdu8lrjv4flewv5h0h53ngw7r7jzef8q8695pa2533qxsqqza8czyzt4a8kjm2f75d2l6gxx8a3532cg9jsjtflrx4enrrhe9smy5ka6seqxz9w" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz5g8hhsaku3p7cazfs0ltse3y97acn2lgmd4v02s8uf4nd9pm5fgt4cdq9&#39;&gt;nevent1q…cdq9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-19&lt;br/&gt;📝 Original message:It is disappointing that F2Pool would enable full RBF when the safe&lt;br/&gt;alternative, first-seen-safe RBF, is also available, especially since the&lt;br/&gt;fees they would gain by supporting full RBF over FSS RBF would likely be&lt;br/&gt;negligible. Did they consider using FSS RBF instead?&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Stephen&lt;br/&gt;&lt;br/&gt;On Fri, Jun 19, 2015 at 6:39 AM, Peter Todd &amp;lt;pete at petertodd.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Yesterday F2Pool, currently the largest pool with 21% of the hashing&lt;br/&gt;&amp;gt; power, enabled full replace-by-fee (RBF) support after discussions with&lt;br/&gt;&amp;gt; me. This means that transactions that F2Pool has will be replaced if a&lt;br/&gt;&amp;gt; conflicting transaction pays a higher fee. There are no requirements for&lt;br/&gt;&amp;gt; the replacement transaction to pay addresses that were paid by the&lt;br/&gt;&amp;gt; previous transaction.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I&amp;#39;m a user. What does this mean for me?&lt;br/&gt;&amp;gt; ---------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In the short term, very little. Wallet software aimed at average users&lt;br/&gt;&amp;gt; has no ability to reliably detect conditions where an unconfirmed&lt;br/&gt;&amp;gt; transaction may be double-spent by the sender. For example, Schildbach&amp;#39;s&lt;br/&gt;&amp;gt; Bitcoin Wallet for Android doesn&amp;#39;t even detect double-spends of&lt;br/&gt;&amp;gt; unconfirmed transactions when connected to a RBF or Bitcoin XT nodes&lt;br/&gt;&amp;gt; that propagate them. The least sophisticated double-spend attack&lt;br/&gt;&amp;gt; possibly - simply broadcasting two conflicting transactions at the same&lt;br/&gt;&amp;gt; time - has about 50% probability of success against these wallets.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Additionally, SPV wallets based on bitcoinj can&amp;#39;t even detect invalid&lt;br/&gt;&amp;gt; transactions reliably, instead trusting the full node(s) it is connected&lt;br/&gt;&amp;gt; too over the unauthenticated, unencrypted, P2P protocol to do validation&lt;br/&gt;&amp;gt; for them. For instance due to a unfixed bug¹ Bitcoin XT nodes will relay&lt;br/&gt;&amp;gt; double-spends that spend the output of the conflicting transaction. I&amp;#39;ve&lt;br/&gt;&amp;gt; personally tested this with Schildbach&amp;#39;s Bitcoin Wallet for Android,&lt;br/&gt;&amp;gt; which shows such invalid transactions as standard, unconfirmed,&lt;br/&gt;&amp;gt; transactions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Users should continue to assume that unconfirmed transactions could be&lt;br/&gt;&amp;gt; trivially reversed by the sender until the first confirmation. In&lt;br/&gt;&amp;gt; general, only the sender can reverse a transaction, so if you do trust&lt;br/&gt;&amp;gt; the sender feel free to assume an unconfirmed transaction will&lt;br/&gt;&amp;gt; eventually confirm. However, if you do not trust the sender and/or have&lt;br/&gt;&amp;gt; no other recourse if they double-spend you, wait until at least the&lt;br/&gt;&amp;gt; first confirmation before assuming the transaction will go through.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In the long term, miner support of full RBF has a number of advantages&lt;br/&gt;&amp;gt; to users, allowing you to more efficiently make transactions, paying&lt;br/&gt;&amp;gt; lower fees. However you&amp;#39;ll need a wallet supporting these features; none&lt;br/&gt;&amp;gt; exist yet.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I&amp;#39;m a business. What does this mean for me?&lt;br/&gt;&amp;gt; -------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If you use your own node to verify transactions, you probably are in a&lt;br/&gt;&amp;gt; similar situation as average users, so again, this means very little to&lt;br/&gt;&amp;gt; you.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If you use a payment processor/transaction API such as BitPay, Coinbase,&lt;br/&gt;&amp;gt; BlockCypher, etc. you may or may not be accepting unconfirmed&lt;br/&gt;&amp;gt; transactions, and they may or may not be &amp;#34;guaranteed&amp;#34; by your payment&lt;br/&gt;&amp;gt; processor even if double-spent. If like most merchants you&amp;#39;re using the&lt;br/&gt;&amp;gt; API such that confirmations are required prior to accepting orders (e.g.&lt;br/&gt;&amp;gt; taking a meaningful loss such as shipping a product if the tx is&lt;br/&gt;&amp;gt; reversed) nothing changes for you. If not I recommend you contact your&lt;br/&gt;&amp;gt; payment processor.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I&amp;#39;m a miner. Why should I support replace-by-fee?&lt;br/&gt;&amp;gt; -------------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Whether full or first-seen-safe⁵ RBF support (along with&lt;br/&gt;&amp;gt; child-pays-for-parent) is an important step towards a fully functioning&lt;br/&gt;&amp;gt; transaction fee market that doesn&amp;#39;t lead to users&amp;#39; transactions getting&lt;br/&gt;&amp;gt; mysteriously &amp;#34;stuck&amp;#34;, particularly during network flooding&lt;br/&gt;&amp;gt; events/attacks. A better functioning fee market will help reduce&lt;br/&gt;&amp;gt; pressure to increase the blocksize, particularly from the users creating&lt;br/&gt;&amp;gt; the most valuable transactions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Full RBF also helps make use of the limited blockchain space more&lt;br/&gt;&amp;gt; efficiently, with up to 90%&#43; transaction size savings possible in some&lt;br/&gt;&amp;gt; transaction patterns. (e.g. long payment chains⁶) More users in less&lt;br/&gt;&amp;gt; blockchain space will lead to higher overall fees per block.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Finally as we&amp;#39;ll discuss below full RBF prevents a number of serious&lt;br/&gt;&amp;gt; threats to the existing level playing field that miners operate in.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Why can&amp;#39;t we make accepting unconfirmed txs from untrusted people safe?&lt;br/&gt;&amp;gt; -----------------------------------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; For a decentralized wallet, the situation is pretty bleak. These wallets&lt;br/&gt;&amp;gt; only have a handful of connections to the network, with no way of&lt;br/&gt;&amp;gt; knowing if those connections give an accurate view of what transactions&lt;br/&gt;&amp;gt; miners actually know about.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The only serious attempt to fix this problem for decentralized wallets&lt;br/&gt;&amp;gt; that has been actually deployed is Andresen/Harding&amp;#39;s double-spend&lt;br/&gt;&amp;gt; relaying, implemented in Bitcoin XT. It relays up to one double-spend&lt;br/&gt;&amp;gt; transaction per double-spent txout, with the intended effect to warn&lt;br/&gt;&amp;gt; recipients. In practice however this functionality makes it easier to&lt;br/&gt;&amp;gt; double-spend rather than harder, by giving an efficient and easy way to&lt;br/&gt;&amp;gt; get double-spends to miners after the fact. Notably my RBF&lt;br/&gt;&amp;gt; implementation even connects to Bitcoin XT nodes, reserving a % of all&lt;br/&gt;&amp;gt; incoming and outgoing connection slots for them.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Additionally Bitcoin XT&amp;#39;s double-spend relaying is subject to attacks&lt;br/&gt;&amp;gt; include bandwidth exhaustion, sybil attacks, and Gervais&amp;#39;s non-sybil&lt;br/&gt;&amp;gt; interactive attacks⁷ among many others.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; What about centralised wallets?&lt;br/&gt;&amp;gt; -------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Here the solutions being deployed, planned, and proposed are harmful,&lt;br/&gt;&amp;gt; and even represent serious threats to Bitcoin&amp;#39;s decentralization.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Confidence factors&lt;br/&gt;&amp;gt; ------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Many services such as BlockCypher² have attempted to predict the&lt;br/&gt;&amp;gt; probability that unconfirmed transactions will be mined, often&lt;br/&gt;&amp;gt; guaranteeing merchants payment³ even in the event of a double-spend. The&lt;br/&gt;&amp;gt; key component of these predictions is to sybil attack the P2P network as&lt;br/&gt;&amp;gt; a whole, connecting to as many nodes as possible to measure transaction&lt;br/&gt;&amp;gt; propagation. Additionally these services connect to pools directly via&lt;br/&gt;&amp;gt; the getblocktemplate protocol, repeatedly downloading via GBT the lists&lt;br/&gt;&amp;gt; of transactions in the to-be-mined blocks to determine what transactions&lt;br/&gt;&amp;gt; miners are attempting to mine.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; None of these measures scale, wasting significant network and miner&lt;br/&gt;&amp;gt; resources; in one instance a sybil attack by Chainalysis even completely&lt;br/&gt;&amp;gt; blocked the users of the SPV wallet Breadwallet⁴ from accessing the&lt;br/&gt;&amp;gt; network. These measures also don&amp;#39;t work very well, giving double-spend&lt;br/&gt;&amp;gt; attackers incentives to sybil attack miners themselves.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Transaction processing contracts with miners&lt;br/&gt;&amp;gt; --------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The next step after measuring propagation fails is to contract with&lt;br/&gt;&amp;gt; miners directly, signing contracts with as much of the hashing power as&lt;br/&gt;&amp;gt; possible to get the transactions they want mined and double-spends&lt;br/&gt;&amp;gt; rejected. The miners/pools would then provide an authenticated API&lt;br/&gt;&amp;gt; endpoint for exclusive use of this service that would allow the service&lt;br/&gt;&amp;gt; to add and remove specific transactions to the mempool on demand.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There&amp;#39;s a number of serious problems with this:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1) Mining contracts can be used to double-spend&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ...even when they&amp;#39;re being used &amp;#34;honestly&amp;#34;.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Suppose Alice is a merchant using CoinPayCypher, who has contracts with&lt;br/&gt;&amp;gt; 75% of the hashing power. Bob, another merchant, meanwhile uses a&lt;br/&gt;&amp;gt; decentralized Bitcoin Core backend for payments to his website.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Mallory wants to double-spend Bob&amp;#39;s to buy his expensive products. He&lt;br/&gt;&amp;gt; can do this by creating a transaction, tx1, that pays Alice, followed by&lt;br/&gt;&amp;gt; a second transaction, tx2, that pays Bob. In any circumstance when&lt;br/&gt;&amp;gt; Mallory can convince Bob to accept tx2, but prevent Bob from seeing tx1,&lt;br/&gt;&amp;gt; the chance of Malory&amp;#39;s double-spend succeeding becomes ~75% because&lt;br/&gt;&amp;gt; CoinPayCypher&amp;#39;s contracts with mining ensure the transaction paying&lt;br/&gt;&amp;gt; Alice will get mined.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Of course, dishonest use and/or compromise makes double-spending&lt;br/&gt;&amp;gt; trivial: Malory can use the API credentials to ask miners to reject&lt;br/&gt;&amp;gt; Bob&amp;#39;s payment at any time.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2) They still don&amp;#39;t work, without 51% attacking other miners&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Even if CoinPayCypher has 75% of the hashing power on contract, that&amp;#39;s&lt;br/&gt;&amp;gt; still a potentially 75% chance of being double-spent. The 25% of miners&lt;br/&gt;&amp;gt; who haven&amp;#39;t signed contracts have no _decentralized_ way of ensuring&lt;br/&gt;&amp;gt; they don&amp;#39;t create blocks with double-spends, let alone at low cost. If&lt;br/&gt;&amp;gt; those miners won&amp;#39;t or can&amp;#39;t sign contracts with CoinPayCypher the only&lt;br/&gt;&amp;gt; next step available is to reject their blocks entirely.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 3) Legal contracts give the advantage to non-anonymous miners in&lt;br/&gt;&amp;gt;    Western jurisdictions&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Suppose CoinPayCypher is a US company, and you&amp;#39;re a miner with 1%&lt;br/&gt;&amp;gt; hashing power located in northern China. The barriers to you succesfully&lt;br/&gt;&amp;gt; negotiating a contract with CoinPayCypher are significant. You don&amp;#39;t&lt;br/&gt;&amp;gt; speak the same langauge, you&amp;#39;re in a completely different jurisdiction&lt;br/&gt;&amp;gt; so enforcing the legal contract is difficult, and being just 1%,&lt;br/&gt;&amp;gt; CoinPayCypher sees you as insignificant.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Who&amp;#39;s going to get the profitable hashing power contracts first, if at&lt;br/&gt;&amp;gt; all? Your English speaking competitors in the west. This is inherently a&lt;br/&gt;&amp;gt; pressure towards centralization of mining.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Why isn&amp;#39;t this being announced on the bitcoin-security list first?&lt;br/&gt;&amp;gt; ------------------------------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I&amp;#39;ve had repeated discussions with services vulnerable to double-spends;&lt;br/&gt;&amp;gt; they have been made well aware of the risk they&amp;#39;re taking. If they&amp;#39;ve&lt;br/&gt;&amp;gt; followed my own and others&amp;#39; advice they&amp;#39;ll at minimum have constant&lt;br/&gt;&amp;gt; monitoring of the rate of double-spends both on their own services and&lt;br/&gt;&amp;gt; on the P2P network in general.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If you choose to take a risk you should accept the consequences.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; How do I actually use full RBF?&lt;br/&gt;&amp;gt; -------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; First get the full-RBF patch to v0.10.2:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;     &lt;a href=&#34;https://github.com/petertodd/bitcoin/tree/replace-by-fee-v0.10.2&#34;&gt;https://github.com/petertodd/bitcoin/tree/replace-by-fee-v0.10.2&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The above implementation of RBF includes additional code to find and&lt;br/&gt;&amp;gt; preferentially connect to other RBF nodes, as well as Bitcoin XT nodes.&lt;br/&gt;&amp;gt; Secondly, try out my replace-by-fee-tools at:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;     &lt;a href=&#34;https://github.com/petertodd/replace-by-fee-tools&#34;&gt;https://github.com/petertodd/replace-by-fee-tools&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; You can watch double-spends on the network here:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;     &lt;a href=&#34;http://respends.thinlink.com/&#34;&gt;http://respends.thinlink.com/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; References&lt;br/&gt;&amp;gt; ----------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1) &amp;#34;Replace-by-fee v0.10.2 - Serious DoS attack fixed! - Also novel&lt;br/&gt;&amp;gt;     variants of existing attacks w/ Bitcoin XT and Android Bitcoin Wallet&amp;#34;,&lt;br/&gt;&amp;gt;    Peter Todd, May 23rd 2015, Bitcoin-development mailing list,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg07795.html&#34;&gt;http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg07795.html&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2) &amp;#34;From Zero to Hero: Bitcoin Transactions in 8 Seconds&amp;#34;,&lt;br/&gt;&amp;gt;    June 2nd, 2014, Erik Voorhees,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://medium.com/blockcypher-blog/from-zero-to-hero-bitcoin-transactions-in-8-seconds-7c9edcb3b734&#34;&gt;https://medium.com/blockcypher-blog/from-zero-to-hero-bitcoin-transactions-in-8-seconds-7c9edcb3b734&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 3) Coinbase Merchant API, Accessed Jun 19th 2015,&lt;br/&gt;&amp;gt;    &lt;a href=&#34;https://developers.coinbase.com/docs/merchants/callbacks#confirmations&#34;&gt;https://developers.coinbase.com/docs/merchants/callbacks#confirmations&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 4) &amp;#34;Chainalysis CEO Denies &amp;#39;Sybil Attack&amp;#39; on Bitcoin&amp;#39;s Network&amp;#34;,&lt;br/&gt;&amp;gt;    March 14th 2015, Grace Caffyn, Coindesk,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://www.coindesk.com/chainalysis-ceo-denies-launching-sybil-attack-on-bitcoin-network/&#34;&gt;http://www.coindesk.com/chainalysis-ceo-denies-launching-sybil-attack-on-bitcoin-network/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 5) &amp;#34;First-Seen-Safe Replace-by-Fee&amp;#34;,&lt;br/&gt;&amp;gt;    May 25th 2015, Peter Todd, Bitcoin-development mailing list,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg07829.html&#34;&gt;http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg07829.html&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 6) &amp;#34;Cost savings by using replace-by-fee, 30-90%&amp;#34;,&lt;br/&gt;&amp;gt;    May 25th 2015, Peter Todd, Bitcoin-development mailing list,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg07813.html&#34;&gt;http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg07813.html&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 7) &amp;#34;Tampering with the Delivery of Blocks and Transactions in Bitcoin&amp;#34;,&lt;br/&gt;&amp;gt;     Arthur Gervais and Hubert Ritzdorf and Ghassan O. Karame and Srdjan&lt;br/&gt;&amp;gt; Capkun,&lt;br/&gt;&amp;gt;     Cryptology ePrint Archive: Report 2015/578, Jun 10th 2015,&lt;br/&gt;&amp;gt;     &lt;a href=&#34;http://eprint.iacr.org/2015/578&#34;&gt;http://eprint.iacr.org/2015/578&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt; &amp;#39;peter&amp;#39;[:-1]@petertodd.org&lt;br/&gt;&amp;gt; 0000000000000000070a2bb3b92c20d5c2c971e6e1a7abe55cdbbe6a2dd9a5ad&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150619/331698c4/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150619/331698c4/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:39:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9w25fe2deaacx9cmxscfm4vj82gzr3qj96358anfgeyzyanndacqzyzt4a8kjm2f75d2l6gxx8a3532cg9jsjtflrx4enrrhe9smy5ka6s0vpse0</id>
    
      <title type="html">📅 Original date posted:2015-06-02 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9w25fe2deaacx9cmxscfm4vj82gzr3qj96358anfgeyzyanndacqzyzt4a8kjm2f75d2l6gxx8a3532cg9jsjtflrx4enrrhe9smy5ka6s0vpse0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs042g0calalpz4096k83zwaf0nax3wtyppkg88csf2f8xue7v8s2c7u7vsv&#39;&gt;nevent1q…7vsv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-02&lt;br/&gt;📝 Original message:Hi Mark,&lt;br/&gt;&lt;br/&gt;Overall, I like this idea in every way except for one: unless I am missing&lt;br/&gt;something, we may still need an OP_RCLTV even with this being implemented.&lt;br/&gt;&lt;br/&gt;In use cases such as micropayment channels where the funds are locked up by&lt;br/&gt;multiple parties, the enforcement of the relative locktime can be done by&lt;br/&gt;the first-signing party. So, while your solution would probably work in&lt;br/&gt;cases like this, where multiple signing parties are involved, there may be&lt;br/&gt;other, seen or unforeseen, use cases that require putting the relative&lt;br/&gt;locktime right into the spending contract (the scriptPubKey itself). When&lt;br/&gt;there is only one signer, there&amp;#39;s nothing that enforces using an nSequence&lt;br/&gt;and nVersion=2 that would prevent spending the output until a certain time.&lt;br/&gt;&lt;br/&gt;I hope this is received as constructive criticism, I do think this is an&lt;br/&gt;innovative idea. In my view, though, it seems to be less fully-featured&lt;br/&gt;than just repurposing an OP_NOP to create OP_RCLTV. The benefits are&lt;br/&gt;obviously that it saves transaction space by repurposing unused space, and&lt;br/&gt;would likely work for most cases where an OP_RCLTV would be needed.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Stephen&lt;br/&gt;&lt;br/&gt;On Mon, Jun 1, 2015 at 9:49 PM, Mark Friedenbach &amp;lt;mark at friedenbach.org&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; I have written a reference implementation and BIP draft for a soft-fork&lt;br/&gt;&amp;gt; change to the consensus-enforced behaviour of sequence numbers for the&lt;br/&gt;&amp;gt; purpose of supporting transaction replacement via per-input relative&lt;br/&gt;&amp;gt; lock-times. This proposal was previously discussed on the mailing list in&lt;br/&gt;&amp;gt; the following thread:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://sourceforge.net/p/bitcoin/mailman/message/34146752/&#34;&gt;http://sourceforge.net/p/bitcoin/mailman/message/34146752/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In short summary, this proposal seeks to enable safe transaction&lt;br/&gt;&amp;gt; replacement by re-purposing the nSequence field of a transaction input to&lt;br/&gt;&amp;gt; be a consensus-enforced relative lock-time.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The advantages of this approach is that it makes use of the full range of&lt;br/&gt;&amp;gt; the 32-bit sequence number which until now has rarely been used for&lt;br/&gt;&amp;gt; anything other than a boolean control over absolute nLockTime, and it does&lt;br/&gt;&amp;gt; so in a way that is semantically compatible with the originally envisioned&lt;br/&gt;&amp;gt; use of sequence numbers for fast mempool transaction replacement.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The disadvantages are that external constraints often prevent the full&lt;br/&gt;&amp;gt; range of sequence numbers from being used when interpreted as a relative&lt;br/&gt;&amp;gt; lock-time, and re-purposing nSequence as a relative lock-time precludes its&lt;br/&gt;&amp;gt; use in other contexts. The latter point has been partially addressed by&lt;br/&gt;&amp;gt; having the relative lock-time semantics be enforced only if the&lt;br/&gt;&amp;gt; most-significant bit of nSequence is set. This preserves 31 bits for&lt;br/&gt;&amp;gt; alternative use when relative lock-times are not required.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The BIP draft can be found at the following gist:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://gist.github.com/maaku/be15629fe64618b14f5a&#34;&gt;https://gist.github.com/maaku/be15629fe64618b14f5a&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The reference implementation is available at the following git repository:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/maaku/bitcoin/tree/sequencenumbers&#34;&gt;https://github.com/maaku/bitcoin/tree/sequencenumbers&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I request that the BIP editor please assign a BIP number for this work.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Sincerely,&lt;br/&gt;&amp;gt; Mark Friedenbach&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150601/70c32838/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150601/70c32838/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:36:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswznu4ypenfvxc0tu2smk8sdwhrql6jgwjfzvem98vzlf2vpem27szyzt4a8kjm2f75d2l6gxx8a3532cg9jsjtflrx4enrrhe9smy5ka6sfw77c6</id>
    
      <title type="html">📅 Original date posted:2015-06-01 📝 Original message:This ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswznu4ypenfvxc0tu2smk8sdwhrql6jgwjfzvem98vzlf2vpem27szyzt4a8kjm2f75d2l6gxx8a3532cg9jsjtflrx4enrrhe9smy5ka6sfw77c6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspv2vxh4rcph8njx2phc3ur0cmqf08qagwz7cmps0chmts3l307dcr0jyhd&#39;&gt;nevent1q…jyhd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-01&lt;br/&gt;📝 Original message:This exact question came up on the Bitcoin Stack Exchange once. I gave an&lt;br/&gt;answer here:&lt;br/&gt;&lt;a href=&#34;http://bitcoin.stackexchange.com/questions/37292/whats-the-purpose-of-a-maximum-block-size/37303#37303&#34;&gt;http://bitcoin.stackexchange.com/questions/37292/whats-the-purpose-of-a-maximum-block-size/37303#37303&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;On Mon, Jun 1, 2015 at 2:32 PM, Jim Phillips &amp;lt;jim at ergophobia.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Ok, I understand at least some of the reason that blocks have to be kept&lt;br/&gt;&amp;gt; to a certain size. I get that blocks which are too big will be hard to&lt;br/&gt;&amp;gt; propagate by relays. Miners will have more trouble uploading the large&lt;br/&gt;&amp;gt; blocks to the network once they&amp;#39;ve found a hash. We need block size&lt;br/&gt;&amp;gt; constraints to create a fee economy for the miners.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; But these all sound to me like issues that affect some, but not others. So&lt;br/&gt;&amp;gt; it seems to me like it ought to be a configurable setting. We&amp;#39;ve already&lt;br/&gt;&amp;gt; witnessed with last week&amp;#39;s stress test that most miners aren&amp;#39;t even&lt;br/&gt;&amp;gt; creating 1MB blocks but are still using the software defaults of 730k. If&lt;br/&gt;&amp;gt; there are configurable limits, why does there have to be a hard limit?&lt;br/&gt;&amp;gt; Can&amp;#39;t miners just use the configurable limit to decide what size blocks&lt;br/&gt;&amp;gt; they can afford to and are thus willing to create? They could just as&lt;br/&gt;&amp;gt; easily use that to create a fee economy. If the miners with the most&lt;br/&gt;&amp;gt; hashpower are not willing to mine blocks larger than 1 or 2 megs, then they&lt;br/&gt;&amp;gt; are able to slow down confirmations of transactions. It may take several&lt;br/&gt;&amp;gt; blocks before a miner willing to include a particular transaction finds a&lt;br/&gt;&amp;gt; block. This would actually force miners to compete with each other and find&lt;br/&gt;&amp;gt; a block size naturally instead of having it forced on them by the protocol.&lt;br/&gt;&amp;gt; Relays would be able to participate in that process by restricting the&lt;br/&gt;&amp;gt; miners ability to propagate large blocks. You know, like what happens in a&lt;br/&gt;&amp;gt; FREE MARKET economy, without burdensome regulation which can be manipulated&lt;br/&gt;&amp;gt; through politics? Isn&amp;#39;t that what&amp;#39;s really happening right now? Different&lt;br/&gt;&amp;gt; political factions with different agendas are fighting over how best to&lt;br/&gt;&amp;gt; regulate the Bitcoin protocol.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I know the limit was originally put in place to prevent spamming. But that&lt;br/&gt;&amp;gt; was when we were mining with CPUs and just beginning to see the occasional&lt;br/&gt;&amp;gt; GPU which could take control over the network and maliciously spam large&lt;br/&gt;&amp;gt; blocks. But with ASIC mining now catching up to Moore&amp;#39;s Law, that&amp;#39;s not&lt;br/&gt;&amp;gt; really an issue anymore. No one malicious entity can really just take over&lt;br/&gt;&amp;gt; the network now without spending more money than it&amp;#39;s worth -- and that&amp;#39;s&lt;br/&gt;&amp;gt; just going to get truer with time as hashpower continues to grow. And it&amp;#39;s&lt;br/&gt;&amp;gt; not like the hard limit really does anything anymore to prevent spamming.&lt;br/&gt;&amp;gt; If a spammer wants to create thousands or millions of transactions, a hard&lt;br/&gt;&amp;gt; limit on the block size isn&amp;#39;t going to stop him.. He&amp;#39;ll just fill up the&lt;br/&gt;&amp;gt; mempool or UTXO database instead of someone&amp;#39;s block database.. And block&lt;br/&gt;&amp;gt; storage media is generally the cheapest storage.. I mean they could be&lt;br/&gt;&amp;gt; written to tape and be just as valid as if they&amp;#39;re stored in DRAM. Combine&lt;br/&gt;&amp;gt; that with pruning, and block storage costs are almost a non-issue for&lt;br/&gt;&amp;gt; anyone who isn&amp;#39;t running an archival node.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; And can&amp;#39;t relay nodes just configure a limit on the size of blocks they&lt;br/&gt;&amp;gt; will relay? Sure they&amp;#39;d still need to download a big block occasionally,&lt;br/&gt;&amp;gt; but that&amp;#39;s not really that big a deal, and they&amp;#39;re under no obligation to&lt;br/&gt;&amp;gt; propagate it.. Even if it&amp;#39;s a 2GB block, it&amp;#39;ll get downloaded eventually.&lt;br/&gt;&amp;gt; It&amp;#39;s only if it gets to the point where the average home connection is too&lt;br/&gt;&amp;gt; slow to keep up with the transaction &amp;amp; block flow that there&amp;#39;s any real&lt;br/&gt;&amp;gt; issue there, and that would happen regardless of how big the blocks are. I&lt;br/&gt;&amp;gt; personally would much prefer to see hardware limits act as the bottleneck&lt;br/&gt;&amp;gt; than to introduce an artificial bottleneck into the protocol that has to be&lt;br/&gt;&amp;gt; adjusted regularly. The software and protocol are TECHNICALLY capable of&lt;br/&gt;&amp;gt; scaling to handle the world&amp;#39;s entire transaction set. The real issue with&lt;br/&gt;&amp;gt; scaling to this size is limitations on hardware, which are regulated by&lt;br/&gt;&amp;gt; Moore&amp;#39;s Law. Why do we need arbitrary soft limits? Why can&amp;#39;t we allow&lt;br/&gt;&amp;gt; Bitcoin to grow naturally within the ever increasing limits of our&lt;br/&gt;&amp;gt; hardware? Is it because nobody will ever need more than 640k of RAM?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Am I missing something here? Is there some big reason that I&amp;#39;m overlooking&lt;br/&gt;&amp;gt; why there has to be some hard-coded limit on the block size that affects&lt;br/&gt;&amp;gt; the entire network and creates ongoing issues in the future?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; *James G. Phillips IV*&lt;br/&gt;&amp;gt; &amp;lt;&lt;a href=&#34;https://plus.google.com/u/0/113107039501292625391/posts&amp;gt&#34;&gt;https://plus.google.com/u/0/113107039501292625391/posts&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; *&amp;#34;Don&amp;#39;t bunt. Aim out of the ball park. Aim for the company of immortals.&amp;#34;&lt;br/&gt;&amp;gt; -- David Ogilvy*&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;  *This message was created with 100% recycled electrons. Please think&lt;br/&gt;&amp;gt; twice before printing.*&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150601/1eead1a9/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150601/1eead1a9/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:36:19Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszqdnwrn7m3tqk0f7xxy46wkwgwmxp9k2awq7t7ndllmp6yvnfs3qzyzt4a8kjm2f75d2l6gxx8a3532cg9jsjtflrx4enrrhe9smy5ka6sr0w0zt</id>
    
      <title type="html">📅 Original date posted:2015-04-25 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszqdnwrn7m3tqk0f7xxy46wkwgwmxp9k2awq7t7ndllmp6yvnfs3qzyzt4a8kjm2f75d2l6gxx8a3532cg9jsjtflrx4enrrhe9smy5ka6sr0w0zt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8s0m5kzee07pg5ggaw607t3sf8jdnn8wldru8ah4mqv5m27advrgxctlcg&#39;&gt;nevent1q…tlcg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-04-25&lt;br/&gt;📝 Original message:Hi Gregory,&lt;br/&gt;&lt;br/&gt;In particular not covering the ID allows for transaction replay which&lt;br/&gt;&amp;gt; can result in monetary losses far more severe than any possible&lt;br/&gt;&amp;gt; mishandling of malleability could result in. Byzantine attackers can&lt;br/&gt;&amp;gt; costlessly replay your old transactions any time anyone reuses an&lt;br/&gt;&amp;gt; address, even accidentally (which cannot be easily prevented since&lt;br/&gt;&amp;gt; they can race).&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;With the SIGHASH_WITHOUT_PREV_VALUE flag, signatures have to explicitly&lt;br/&gt;specify that they are to be signed without the previous UTXO&amp;#39;s&lt;br/&gt;value/amount. This means that, at worst, replay attacks can send the money&lt;br/&gt;to the same place it was sent before (which in many cases is likely not be&lt;br/&gt;a loss of funds), and only if the amount sent to the reused address is the&lt;br/&gt;exact same as it was before. I don&amp;#39;t think this is worse than an attacker&lt;br/&gt;being able to mutate their transaction and extort a merchant who accepts&lt;br/&gt;zero-conf transactions. Anyway, not signing the input ID wouldn&amp;#39;t exactly&lt;br/&gt;be the norm, there would be a defined set of flags for standard use cases.&lt;br/&gt;Not signing the input TXID would only be used in specialized cases, such as&lt;br/&gt;setting up micropayment channels.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; There are no free lunches;  the proposal linked to there is itself a&lt;br/&gt;&amp;gt; game of wack-a-mole with assorted masking flags;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I agree that it is also a bit of wac-a-mole, but the defined space of&lt;br/&gt;issues is possibly more limited here. There are only X number of things&lt;br/&gt;that can be signed/not signed in a transaction, and the &amp;#39;Build your own&lt;br/&gt;nHashType&amp;#39; proposal enables you to fully specify which of those are being&lt;br/&gt;signed. If you don&amp;#39;t want to get burned by not fully signing your&lt;br/&gt;transactions, then don&amp;#39;t use the non-standard sighash flags.&lt;br/&gt;&lt;br/&gt;many of which we have&lt;br/&gt;&amp;gt; no notion of if they&amp;#39;re useful for any particular application(s);&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;A few of the flags, indeed, may not ever be useful. But we can&amp;#39;t predict&lt;br/&gt;the future, and I think it&amp;#39;s better to build in a more flexible solution&lt;br/&gt;now than to wish we had more flexible nHashTypes later.&lt;br/&gt;&lt;br/&gt;To the original point of this thread, hopefully the suggested proposal&lt;br/&gt;won&amp;#39;t be necessary as wallets will upgrade to use version 3 transactions&lt;br/&gt;and the rules associated with them over time.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Stephen&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150425/7e76a1b7/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150425/7e76a1b7/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:32:32Z</updated>
  </entry>

</feed>