How To Fix [Reverse] Bitcoin Unconfirmed Transactions - # ...
Blockchain Transaction Fee Chart CryptoCoins Info Club
How to Fix Bitcoin Unconfirmed Transactions [Reverse]
Long live decentralized bitcoin(!) A reading list
Newbs might not know this, but bitcoin recently came out of an intense internal drama. Between July 2015 and August 2017 bitcoin was attacked by external forces who were hoping to destroy the very properties that made bitcoin valuable in the first place. This culminated in the creation of segwit and the UASF (user activated soft fork) movement. The UASF was successful, segwit was added to bitcoin and with that the anti-decentralization side left bitcoin altogether and created their own altcoin called bcash. Bitcoin's price was $2500, soon after segwit was activated the price doubled to $5000 and continued rising until a top of $20000 before correcting to where we are today. During this drama, I took time away from writing open source code to help educate and argue on reddit, twitter and other social media. I came up with a reading list for quickly copypasting things. It may be interesting today for newbs or anyone who wants a history lesson on what exactly happened during those two years when bitcoin's very existence as a decentralized low-trust currency was questioned. Now the fight has essentially been won, I try not to comment on reddit that much anymore. There's nothing left to do except wait for Lightning and similar tech to become mature (or better yet, help code it and test it) In this thread you can learn about block sizes, latency, decentralization, segwit, ASICBOOST, lightning network and all the other issues that were debated endlessly for over two years. So when someone tries to get you to invest in bcash, remind them of the time they supported Bitcoin Unlimited. For more threads like this see UASF
This was posted by someone on Trading View. https://www.tradingview.com/chart/DGBUSD/b7CtJtUS-16-Reasons-to-Buy-DGB-Today-and-Hold-as-a-Long-Term-Investment/ We live in a unique time like none other. Digital assets are disrupting the financial sector. The invention of blockchain is just as important as the invention of the internet. There are hundreds of digital assets to choose from in today's market. Some are great investments but most will fail. Let's make the case for Digibyte as a solid investment. This list is not in order of importance and isn't exhaustive. Please forgive the redundancy since I've mentioned some of these arguments in previous posts. Consider the following arguments.
We are at a relative bottom on USD and BTC -0.17% charts. Under no circumstances should we purchase an alt coin at its peak. Always buy at the bottom!
Clear signs of a reversal are evident on the USD chart. Our current USD value has more than doubled in the last 30 days.
We will be at $10 by May of 2019 if and only if we respect the right leg of the triangle. The graph featured is a weekly log chart of Digibyte in USD. The first wave took us to the all time high. The second wave completed its retracement when it touched the right leg of the triangle. The third wave should take us to the left leg of the triangle where it will touch for the 4th time. The 4th touch will take us to at least $0.16.
Great divergence exists between the USD and BTC -0.17% charts on https://coinmarketcap.com/currencies/digibyte/. This can be clearly seen when you select log scale. Expect massive gains in value when such divergence exists! Consider what happened to the price from Jan - Feb and Sep - Oct of 2015.
We have recently been listed on Yahoo -0.26% Finance (https://finance.yahoo.com/quote/DGB-USD?p=DGB-USD). Notice that Digibyte is paired with 10 different currencies. I personally think that this is huge since it will attract the attention of mainstream investors.
We didn't spring up overnight. We have been around for over 4 years. Our technology has been tried, tested, and proven.
We forked from the BTC -0.17% protocol. So the base code isn't original to us. However, we have not sat idly by over the last 4 years. Rather, our developers have proactively enhanced the original code by solving some of the most important problems that plague Bitcoin -0.17% and other digital assets.
We anticipated the astronomical cost for a Bitcoin -0.17% micro transaction. Our fee for a single transaction is slightly more than one cent!
We are the fastest digital asset on the market! If you don't believe that then put us to the test and try for yourself. We'll be able to process 280,000 transactions per second by 2035 since our block size doubles every two years. Therefore, you won't be plagued by unconfirmed transactions like with Bitcoin -0.17% . You will have your Digibytes in a few minutes and they will be spendable.
We are the longest blockchain in existence at over 5 million blocks with 15 second block times.
We are the most decentralized mineable blockchain in the market since we are on over a 100,000 nodes. Therefore, we are more distributed than Bitcoin -0.17% or other digital assets.
We pioneered Digishield which is used to protect more than 25 alt coins from a malicious attack.
We were the second digital asset to activate Segwit which will allow for atomic swaps. And, we did so without a contentious hard fork with full support of our 65,000 community members.
Our community is growing rapidly. We have over 65k followers on Twitter.
We use 5 mining algorithms to prevent centralization and protect against a 51% attack. Currently, the community is discussing a hard fork which will swap out an algorithm for another to prevent ASIC -90.00% mining centralization.
Vertans! Stealth Addresses were only the beginning... I am happy to introduce VertVerser (Vert = Green, Verser = To Pay)! The name could also be taken as "Vertcoin Reverser". Either way, it is awesome. VertVerser is a way to pay with Vertcoin anywhere Bitcoin is accepted. And, the reverse is true as well. You can send Vertcoin to any address (including your own) using Bitcoin. VertVerser is in Alpha status and should only be used for small amounts initially. Here are some important pieces of information:
From the time you send the funds to the time the receiving address receives them (unconfirmed) should take less than 12 minutes.
If you send more than the required amount for the transaction, the additional funds are considered a tip for the system.
The request expires in 5 minutes if the funds are not received by the sender
VertVerser uses two "buffer" wallets to speed up the transaction process. If either wallet does not contain the funds required to facilitate the transaction, you will be presented with an error accordingly. This will happen before you send the money so your transaction won't be in limbo.
A 2VTC fee applies to all transactions at the moment. This is to fill the buffer wallets and support server costs.
VertVerser was built on a flexible API which means it can easily be integrated into our wallets (mobile included). You would simply enter (or scan) a BTC address and then rest happens automatically. Finally, I will reiterate that this is Alpha. I have sent funds around both ways successfully, but you never know the fringe cases a production run will encounter. Luckily funds are easily traced and we can take remedial action accordingly. The buffer wallets are pretty empty at the moment - They need both VTC and BTC. If you are willing to donate some funds to grease the wheels, the addresses are VstVHvewjQb3Foj5hbFZAfQBRcDuu4DZfS and 1B1e3mbFEBsFTR3biURXNzMSBLFENRaSKu respectively. Please PM me if you are willing to help test this so I can monitor the transactions and see how things go. https://vertverser.com Cheers! a432511 Quick Edit: SSL is coming shortly. Just getting the cert sorted.SSL is in place. EDIT: I am going to bring some of my own coins out of cold storage and fill the VTC buffer. I will probably sell a few to get the BTC side warmed up too. Any help would be much appreciated - mainly for the BTC wallet as I have none right now EDIT: Ok.. decent amount (300) in VTC buffer wallet. Working on some BTC EDIT: And got some in the BTC buffer as well out of pocket :-D Let's run some tests... EDIT: So far so good... :-D EDIT: Limits increased. Check website for new values - they will update over time
In this article of Smilo Explained we are going to explain more about the infamous 51% attacks of the blockchain space. We decided to create a separate article on this matter since it is one of the most impactful attacks in the blockchain space and very topical over the last few weeks with several attacks happening. https://preview.redd.it/lsnwjlmr7o221.png?width=1920&format=png&auto=webp&s=aad5525a6181288287829d89d87feb416f028f31 Some blockchain projects are more prone to 51% attacks than others, this is especially true for blockchains using the popular Proof of Work (PoW) consensus mechanism. This PoW algorithm is an economic measure to deter various attacks on the network by requiring some work from the service requester, usually in the form of processing time by a computer. However, it is possible to attack PoW blockchains when you control more than 51% of the total hashing power. Considering this, smaller blockchains with a relatively low total hashing power combined with the PoW consensus mechanism could easily fall victim to this attack. Take Bitcoin as an example, in the first few years when Bitcoin (and blockchain) was less popular, it was relatively easy to buy more than 51% of the total hashing power and attack the network. However, due to the fact that no individual really paid attention to this flaw, Bitcoin was able to slowly grow a considerable amount of relatively decentralised hashing power over time, thus securing the network. Nowadays, this flaw is quite well-known and due to this there is a rising amount of attackers who try to better themselves by attacking other blockchains. There are even websites giving rough estimates of the costs involved in creating a 51% attack such as https://www.crypto51.app/. Let’s take a closer look at some of the projects which have suffered from a 51% attack lately.
The first specific case of a 51% attack which we are going to discuss is the one that took place this week, the 2nd of december, on the cryptocurrency called Vertcoin. During the attack, the attackers tried to double spend the currency to better themselves. Coinbase engineer Mark Nesbitt stated that the double spending amounted could have resulted to over a $100,000 loss on the Vertcoin network.
“Vertcoin (VTC) experienced 22 deep chain reorganizations, 15 of which included double spends of VTC. We estimate that these attacks could have resulted in theft of over $100,000. The largest reorganization was over 300 blocks deep.”
According to the Crypto 51 webapp, the attack would only cost about 125 dollar per hour at the time of the attack. With an average block time of 2m and 40s this means the attack took approximately 14 hours and would only cost about 1750 dollars.
A few weeks ago, AurumCoin also fell victim to a 51% attack. During the attack, one of the few cryptocurrency exchanges who had listed AurumCoin, Cryptopia, lost more than 15 million Aurum coins (which was worth over half a million USD at the time of the attack). AurumCoin claims not to be responsible for the attack and they shifted the blame to Cryptopia, insisting it was hacked. Cryptopia, on the other hand, has not yet acknowledged that they have been hacked.
With a market cap of around 10 million USD, AurumCoin was definitely one of the easier targets. The attacker sent over 500.000 USD worth of AurumCoin to cryptopia to exchange them for another cryptocurrency. Once this transaction went through, the attacker allegedly used more than 51% of the hashing power to reverse the transaction as though it never really happened. Besides, the last commit on AurumCoin’s Github originates from 2015, which indicates that the developers might have abandoned their project. Moreover, having an average hashrate of just about 80PH/s didn’t help them either. For about 800 USD per hour, one can easily rent more than enough mining power on NiceHash to attack AurumCoin’s network.
According to various reports, it seems like AurumCoin needed twenty confirmations at the time of the attack to send or receive any funds. So, could Cryptopia be responsible for this hack? Well, Cryptopia stated that they do not have any control over the time in which these confirmations are completed. Meaning that, Cryptopia does not seem to have any influence on AurumCoin transactions. According to the exchange, they are unable to reverse or alter these kind of confirmations, and thus the transactions. In their support section they make the following statement;
“Cryptopia does not perform these ‘Confirmations’ or have any control over the time in which these Confirmations are completed. The Confirmations are completed by miners on the Blockchain. Transactions with higher fees will are far more likely to be added to a block first.”
AurumCoin’s case is just one of the examples which shows the negative consequences for both the coin and the exchange hosting them.
Bitcoin Gold suffered from a similar attack, though on a larger scale. An amount of 12.239 BTG was deposited to an account on the crypto exchange Bittrex, which was according to the online publication Bitcoinist around 18 million USD at the time of the attack.
To go more in depth on how the attacker proceeded with his attack, the following information was posted by BitcoinGold as a statement on their website.
“The attackers address is known by this transaction:ee798dd31beda909c9ca7f843bc58b48dfb40b0f6db83ccd10e892e9c3154ce7(Originally marked as Confirmed, now marked as Unconfirmed) The deposit was made as part ofthis block #529022(Originally marked as mainchain, now marked as Orphaned. It was mined by honest miners.) and was confirmed over the course of nearly six hours on mainchain with 21 additional blocks mined, up to and includingthis block #529043. (Originally marked as mainchain, now marked as Orphaned. It was mined by honest miners.) Some time after the 20th block, which satisfied the 20-confirmation requirement for Bittrex, the attacker was able to trade their BTG on Bittrex and withdraw other crypto. The attacker then released 23 (or more) secretly mined blocks to the mainchain, superseding the existing 22 blocks, and replacing their previous transfer of 12.239 BTG to Bittrex with a transfer of those same 12.239 BTG to themselves. Below is the new transaction (double-spend) of the original 12239 BTG, sent to their own address instead of Bittrex:8b8ad1deb88c9b9e36c62e96ff52833d4ca1632076b1092a5848de788181aaaf It was included inthis block #529022, which was first mined by the attackers in secret and not broadcast to the network until nearly 6 hours later. When it was finally broadcast along with 22 or more other secretly-mined blocks, for a total of over 23 blocks, it established the “longest chain” and took over as mainchain, causing the previously seen blocks to become “Orphaned.”
Bittrex delisted Bitcoin Gold shortly afterwards. As a result Bitcoin Gold was forced to upgrade their proof of work to make it, according to them, a less attractive and harder to attack network, even though the possibility to become victim of such an attack still lingers. Besides, they advised all exchanges to raise their confirmation requirements to give time to react on unusually large deposits of BTG — the double-spend attacks were clear outliers in size.
Expenses for the attack
Husam Abboud, a managing partner and co-founder at Brazil-based PDB Capital, has calculated that an average investment of 200.000 USD respectively is necessary for a 51% attack on bitcoin gold.
“Bitcoin Gold, a much smaller network (1/20 the size of Bitcoin Cash network), since the fork, has switched to become ASIC resistant hashing with Equihash algorithm, — same as zCash — It is currently more secure against 51% attack from Bitcoin miners, but vulnerable to attacks from Zcash and other Equihash miners.”
As researched by Investopedia, if for example a zCash miner with +8% of Nethash would switch to mine BitcoinGold, he is already at +51% BTG nethash. This would brings the cost of 51% attack on BTG to 580 ZEC/day which equals around 200.000 USD
A common attack
Similar situations occurred this year with Monacoin and Verge among others, showing that these attacks are not uncommon. Counter measures are being taken by exchanges and networks alike such as increasing the number of confirmations required for making a transaction and ASIC resistant networks. Nevertheless, exchanges have very few defences to this attack, as no number of confirmations can make receiving deposits of the network under attack fully safe, when the attacker has over 51% of the hashing power. Some of the measures might reduce the risk of such an attack, though seem not as efficient as hoped, as even networks that have implemented them, are still being attacked.
‘As long as exchanges are willing to provide customers with assets in response to the deposit of a reversible currency, there’s no reason for attackers to stop this behavior. Expect to see more of these attacks. Exchanges that support these assets will continue to suffer losses, with the ultimate result that exchanges will be forced to delist these assets. In such an environment, it’s hard to find a compelling argument for why these assets should have value.’ Mark Nesbitt
The Smilo network solves this problem with its Smilo BFT+ consensus mechanism. This consensus mechanism circumvents 51% attacks by having one valid blockchain and one valid block created by one chosen speaker. Next to 51% attacks, Smilo’s consensus is also far less vulnerable to a number of other attacks, making it a saver option for both users and exchanges. Smilo will always require more than 66% consensus with the Smilo BFT+ algorithm, a node will never add a block to his chain when this block has been declined. Moreover, even when more than 66% of the nodes approve a block, but Node A declined the block, Node A will not add the block to his chain, nor will the follow up blocks add this block to the chain. All Smilo Clients (like the API, full wallets, etcetera) are able to verify both blocks and transactions, providing a two-factor authentication for light clients. Clients can validate if it is connected to “Good actors” or “Bad actors”, depending on the blockchain hash, and therefore decide to send a transaction to a Good or Bad actor. Since Smilo BFT+ Blacklists ‘Bad actors’, each Bad Actor will become an orphan/bad chain (fork). Besides, considering the fact you need 10.000 Smilo to act as a node, an attacking entity needs to own an immense amount of Smilo to start with, which makes it impractical as it will prove a great financial loss for the attacker. This makes Smilo 99.9% secure against sibling attacks. For example: 250 nodes are securing the network: - 84 nodes are ok! - 166 nodes are bad! 166 * 10.000 = 1.66 million Smilo (>66% of the actors) Even if the attacker pulls it off to create a bad block, the 84 good nodes will not add this block (because it is invalid). The next speaker in line (or the third, or the fourth, or the fifth) will create a correct block which will be added to the nodes. Since our full-clients validate nodes and blocks by themselves, they will not send any transactions to the wrong fork. This results in a fork which will only survive for as long as the bad actors are turned on. Be part of the Smilo hybrid blockchain movement! Join our Telegram, Twitter and follow us on other social media for the latest updates! Medium | LinkedIn | Facebook | Reddit For more information about the Smilo Platform check out our; Website | Video | Whitepaper | Onepager | Whitelist
...what just happened over the past couple days? Parity For those out of the loop, digital-wallet-creator Parity done goofed last Tuesday, when a novice developer (the now-legendary devops199) 'accidentally' locked away 300 million dollars' worth of Ether. How, you ask? Well, put simply - Ethereum smart contracts require an address to take ownership of the contract. Owners of the contract can then choose to send something called a kill() function into the contract - effectively locking all Ether within the contract and throwing away the keys. Our hero, devops199, felt bored one day and decided to spend his time doing what any of us do when bored - sending random kill() functions to random addresses. You know, just another Tuesday. Only this time, idiocy from Parity combined with lunacy from devops199, and the kill() function actually triggered. Locking away 300 million dollars worth of Ether that belonged to regular users like you and me. The only way to access those funds is through a hard-fork of Ethereum. Some day in the future, when ETH is worth a lot more, that inaccessible vault will be worth as much as the GDP of a small country! Ethereum lead dev Vitalik has stated that they will not be hard-forking Ethereum in order to reclaim the lost Ether. This is primarily because they do not wish to set a precedent where every error would be forked away at the cost of massive public confusion. Although I daresay they might reverse the transaction during Constantinople. Interesting Fact: Parity is founded (and probably at least partially coded) by one of the lead developers of Ethereum! Segwit2x In perhaps the most concerted and drawn-out pump and dump ever, Segwit2X has been cancelled. Let me just point out the issues that irk me before speaking about prices:
A group of 6 individuals took a decision that affected all of Bitcoin. Such decentralization, much wow.
One announcement single-handedly changed the market dynamic, and almost definitely netted the proponents huge profits.
Unaddressed concern - BTC has huge amounts of unconfirmed transactions with Lightning Networks no where in sight. Bitcoin devs need to address this scalability issue. And they need to do it now.
It must be noted that there are a few parties that feel the fork is still going to take place. Market Sentiment I managed to see the news 5 mins after it was posted, so I sold my BTC at $7800 and got into the alts of my choosing just in time. The price spike has been quite profitable! Few thoughts:
Bitcoin has not lost its value at all. It's still in the early 7,000s even with the meteoric price rise of alts. It sorta makes me wonder where all this money is coming from, and question its sustainability. New money is scared money. And scared money don't make money.
Prices across the board are looking overbought, and that's a bearish signal. I am fairly certain of a pullback soon, or at the very least an extended consolidation period. I will start moving my funds to USD-T sometime this week and reduce trading frequency until markets show direction. Risk-reward is skewing against my liking. Now it has happened before that the market continues the bull run without correcting. I guess we'll know one way or another within a week.
I would like a period of relative stability in bitcoin prices (around 6.5k to 7k), so that alt coins can consolidate and grow. China has been silent for far too long, I'd expect something from them before the year is due. Ideally - we correct/consolidate in the next couple weeks, and then some positive news from China starts us on yet another bull run that takes us to that coveted $10k.
Coinspiracy Now to sound ominous, but I can't shake the feeling that there's something else at play here - something the wider market hasn't realized yet:
Major players in the Bitcoin space creating all the hue and ruckus about Segwit2x, then backing off at the 11th hour. These are people with huge egos, mind you, and they stand to lose a lot of their supporters through this action
Talks of 'The Flippening' (narrow minded propaganda wherein miners collectively switch over to BCH after its fork, effectively suffocating the BTC blockchain and establishing BCH as the dominant chain) gaining traction
Overall fracture of the crypto economy into factions that show loyalty to their coin of choice by degrading other coins
Whales are making waves and we are getting caught in the crossfire.
On Sunday I sent 10k php using Rebit.ph and 10k php using Western Union from the UK to a friend in the Philippines. The Western Union transfer was pretty straightforward. I logged on to their website (I've previously given them my bank details) and sent the money. It cost £141.38. I had to tell my friend a secret number and my friend would pick up the cash from a Western Union guarded hut type thing. On Rebit.ph, I had to provide more information about the receiver, but less about myself. I decided to send to 'LBC', which has a similar pickup service to WU. Rebit told me I had to pay them 0.374106 bitcoins within 15 minutes, which I did. I then repurchased the bitcoins, checking bitbargain and localbitcoins for the best price. In the end, I ended up paying £142.94, so Rebit cost slightly more than WU on this occasion. However, there is quite a lot of variability in the price you can get when you buy bitcoins here, so I'd want to do more trials before I concluded that WU was cheaper. I'd also caution that bitcoin is expensive in the UK, and sending to Rebit from a different country is likely to work out significantly cheaper. I should mention that the Rebit price includes a 100php fee from them and a 300php 'transfer fee', which I think is related to my collection option, and wouldn't appear if I'd sent to a bank account. However, the Rebit story isn't over. My bitcoin transaction got a couple of confirmations quite quickly, but not quickly enough to beat the 15 minute timer. I'm not sure how many confirmations Rebit require to accept the payment, but the amount required increased to 0.374396, so I had to send an extra 0.00029 btc plus transaction fee, which was irritating. I'd recommend that Rebit work out a scheme for avoiding this problem. Maybe they should accept the transaction after a single confirmation, and hold the timer on seeing an unconfirmed transaction until a non-tiny block has been discovered. I've never heard of a transaction with a single confirmation being reversed. Despite this hiccough, the transactions eventually were accepted. The receiver got a text message from Rebit, and had to do something I'm not clear about (but which didn't seem too onerous) on the internet to arrange to receive the funds. Overall, the Rebit route worked smoothly enough except for having to wait for the bitcoin confirmation, and then adjust the amount I paid. Rebit seem to be an honest company, and if I were in a country (such as the US), where bitcoin is significantly cheaper than here, or if I wanted to reduce my bitcoin holdings, I'd certainly use them again.
BIP99½ - An Optimized Procedure to Increase the Block Size Limit
BIP: 99½ Title: An Optimized Procedure to Increase the Block Size Limit Author: Jorge Stolfi jstolfi Status: Crufty Draft Created: 2015-08-30 EDIT: Changed the critical block number from 385000 to 390000 (~2016-01-02). EDIT2: Slight wording changes ("hopefully" "assuming" as per tsontar). EDIT3: Changed again critical block number to 395000 (~2016-02-06). Note that the traffic has increased faster than expected, so all predictions would have to be updated. ABSTRACT This BIP proposes setting the maximum block size to 8 MB starting with block number 395000. MOTIVATION This proposal aims to postpone by a few years the imminent congestion of the Bitcoin network, which is expected to occur in 2016 if traffic continues to increase at the present rate. It also aims to reduce the risk of a crippling "spam attack", that could delay a large fraction of the legitimate traffic for hours or days at a relatively modest cost for the attacker. Congestion The current average traffic T is ~120'000 transactions issued by all clients, per day (~1.38 tx/s, ~0.45 MB/block, ~830 tx/block assuming ~530 bytes/tx). The maximum network capacity C with 1 MB blocks, revealed by the recent "stress tests", is ~200'000 tx/day (~2.32 tx/s, ~0.75 MB/block, ~1390 tx/block). Presumably, the main reason why it is less than 1 MB/block is because certain shortcuts taken by miners often force them to mine empty blocks. Note that the traffic now is 60% of the effective capacity. Since the traffic rate has weekly, daily, and random fluctuations by several tens of percent, recurrent "traffic jams" (when T is higher than C for several tens of minutes) will start to occur when the average daily traffic is still well below the capacity -- say 80% (160'000 tx/day) or even less. For transactions issued during a traffic jam, the average wait time for first confirmation, which is normally 10-15 minutes, will jump to hours or even days. Fee adjustments may change the order in which individual transactions are confirmed, but the average delay will not be reduced by a single second. Over the past 12 months, the traffic has approximately doubled, from ~60'000 tx/day. The growth seems to be linear, at the rate of 5000 tx/day per month. If the growth continues to be linear, it should reach 160'000 tx/day in ~8 months (before May 2016). If the growth is assumed to be exponential, it should reach that level in ~5 months, in February 2016. If the maximum block size were lifted to 8 MB, assuming that empty and partial blocks would continue to be mined in about the same proportion as today, the effective capacity of the network should rise in proportion, to ~6 MB/block (1'600'000 tx/day, 5.90 tx/s). Based on last year's growth, the 80% capacity level (1'280'000 tx/day) will be reached in ~19 years assuming linear growth, and ~3.4 years assuming exponential growth. Spam attacks An effective spam attack would have to generate enough spam transactions, with suitable fees, to reduce the effective capacity of the network to a fraction of the legitimate traffic. Then the fraction of the traffic that cannot be serviced will pile up in the queues, forming a growing backlog until the spam attack ends; and the backlog will then clear at the rate limited by the free capacity C - T. With the current capacity C (200'000 tx/day) and traffic T (120'000 tx/day) a spam attack that blocks half the legitimate traffic would require a spam rate S of at least C - T/2 = 140'000 tx/day (1.62 tx/s, 0.52 MB/block). The fee F per kB offered by those transactions would have to be larger than all but the top ~420 transactions in the queue. If that fee were to be 1 USD/tx, the attack may cost as little as 140'000 USD/day. The backlog of legitimate transactions would grow at the rate of T/2 = ~2500 tx/hour, and, when the attack stops, will be cleared at the maximum rate C - T = ~3300 tx/hour. With 8 MB block limit, assuming that the effective capacity C will be 1.6 M tx/day and traffic T at 60% of the capacity (like today; expected to be the case 3 years from now), a spam attack that blocks half the traffic would require C - T/2 = 1.12 M tx/day of spam (8 times what an attack would require today). If the required fee F were to be 1 USD/tx, the attack would cost 1.12 million USD per day (ditto). DEPLOYMENT The maximum block size would be programmed to be 1 MB until block number 394999, and 8 MB starting with block 395000; which, at 144 blocks/day, is expected to be mined around 2016-02-06. On the test network, the increase will start with block 390000, which is expected to be mined around 2016-01-02. In the interest of a quick and uneventful passage through that block number, major miners should publicly state their approval or rejection of it as soon as possible. If and when the plan is approved by miners comprising a majority of the hashpower, all miners and clients should be alerted and urged to upgrade or modify their software so that it accepts blocks up to 8 MB after the stated block number. If and when the plan is rejected by miners comprising a majority of the hashpower, all miners and clients shoudl be alerted and warned that this BIP will not be implemented. RATIONALE The proposal should have a good chance to be approved and implemented, since the five largest Chinese miners (who have more than 50% of the total hash rate) have already stated in writing that they would agree to an increase of the limit to 8 MB by the end of the year, even theough they did not approve futher increases (in particular, the doublings specified by BIP101). Several major services and other miners have expressed approval for such an increase in the net. OBJECTIONS TO THIS PROPOSAL There have been claims that increasing the block size beyond 1 MB would have negative consequences for the health of the network. However, no serious effects were demonstrated, by argument or experimentally. There are worrisome trends in sme parameters, such as the number of full nodes and and the centralization of mining; but those trends obviously are not related to the block size limit, and there is no reason to expect that they would be halted or reversed by imposing a 1 MB cap on the block size starting next year. It should be noted that the increase is only on the block size limit; the actual block sizes will continue to be determined by the traffic. Even with optimistic forecasts, the average block size should not exceed the 1 MB limit before the end of 2016. If any harmful effects of larger blocks are demonstrated until then, the limt can be reduced again by decision of a majority of the miners. It has been claimed that netowrk congestion would be beneficial since it would create a "fee market" whereby clients would compete for space in the blocks by paying higer transaction fees. It has been claimed that those fees would compensate for the drop in miners revenue that will follow the next reward halving in 2016. It has also been claimed that the higher fees will inhibit spam and other undesirable uses of the blockchain. However, the "fee market" would be a fundamental totally untested change in the client view of the system. It proposes a novel pricing mecanism that is not used by any existing commercial service, physical or internet-based. There is no evidence that the "fee market" would work as claimed, or that it would achieve any of its expected results. (Rather, there are arguments that it would not.) Congestion would defintely put a cap on usage of the protocol, reduce its value as a payment system, and drive away much legitimate traffic. Congestion, and the unpredictable delays that result from it, are also unlikely to make bitcoin attractive to high-value non-payment uses, such as settlements of other networks or notarization of asset trades. And, mainly, there is no reason to expect that the fee market will generate enough fees to cover the 500'000 USD/day that the miners will lose with the next halving. COMPATIBILITY If this change to the Bitcoin protocol gets implemented by a majority of the miners, all players will have to replace or modify their software so that it accepts blocks up to 8 MB after block 395000. Miners who fail to do so may soon find themselves mining a minority branch of the blockchain, that grows at a much slower rate, will probably be congested from the start, and will probably die soon. That branch will probably be ignored by all major services, therefore any rewards that they earn on that branch will probably be worthless and soon unspendable. Clients who fail to upgrade or fix their software will not "see" the majority-mined chain once someone creates a block with more than 1 MB. Then, those clients will either be unable to move their coins until they fix their software, or may see only the minority branch above. Transactions that they issue before the fix may get confirmed on the main branch, but may appear to remain unconfirmed on the minority chain. Useof tools like replace-by-fee or child-pays-for-parent while in that state may give confusing results. DISCLAIMER The author has never owned or used bitcoin, and has a rather negative view of it. In fact, he is a regular contributor to /buttcoin. While he sees bitcoin as a significant advance toward its stated goal ("a peer-to-peer payment system that does not depend on trusted third parties"), and finds bitcoin interesting as a computer science experiment, he is quite skeptical about its chances of widespread adoption. He also deplores the transformation of bitcoin into a negative-sum pyramid investment schema, which not only has spread much misery and distress allover the world, but has also spoiled the experiment by turning mining into an industrial activity controlled by half a dozen large companies. He hopes that the pyramid will collapse as soon as possible, and that the price will drop to the level predicted by the money velocity equation, so that the aberrant mining industry will disappear. (However, he does not think that this BIP will help to achieve this goal; quite the opposite, unfortunately.)
F2Pool has enabled full replace-by-fee | Peter Todd | Jun 19 2015
Peter Todd on Jun 19 2015: Yesterday F2Pool, currently the largest pool with 21% of the hashing power, enabled full replace-by-fee (RBF) support after discussions with me. This means that transactions that F2Pool has will be replaced if a conflicting transaction pays a higher fee. There are no requirements for the replacement transaction to pay addresses that were paid by the previous transaction. I'm a user. What does this mean for me? In the short term, very little. Wallet software aimed at average users has no ability to reliably detect conditions where an unconfirmed transaction may be double-spent by the sender. For example, Schildbach's Bitcoin Wallet for Android doesn't even detect double-spends of unconfirmed transactions when connected to a RBF or Bitcoin XT nodes that propagate them. The least sophisticated double-spend attack possibly - simply broadcasting two conflicting transactions at the same time - has about 50% probability of success against these wallets. Additionally, SPV wallets based on bitcoinj can't even detect invalid transactions reliably, instead trusting the full node(s) it is connected too over the unauthenticated, unencrypted, P2P protocol to do validation for them. For instance due to a unfixed bug¹ Bitcoin XT nodes will relay double-spends that spend the output of the conflicting transaction. I've personally tested this with Schildbach's Bitcoin Wallet for Android, which shows such invalid transactions as standard, unconfirmed, transactions. Users should continue to assume that unconfirmed transactions could be trivially reversed by the sender until the first confirmation. In general, only the sender can reverse a transaction, so if you do trust the sender feel free to assume an unconfirmed transaction will eventually confirm. However, if you do not trust the sender and/or have no other recourse if they double-spend you, wait until at least the first confirmation before assuming the transaction will go through. In the long term, miner support of full RBF has a number of advantages to users, allowing you to more efficiently make transactions, paying lower fees. However you'll need a wallet supporting these features; none exist yet. I'm a business. What does this mean for me? If you use your own node to verify transactions, you probably are in a similar situation as average users, so again, this means very little to you. If you use a payment processotransaction API such as BitPay, Coinbase, BlockCypher, etc. you may or may not be accepting unconfirmed transactions, and they may or may not be "guaranteed" by your payment processor even if double-spent. If like most merchants you're using the API such that confirmations are required prior to accepting orders (e.g. taking a meaningful loss such as shipping a product if the tx is reversed) nothing changes for you. If not I recommend you contact your payment processor. I'm a miner. Why should I support replace-by-fee? Whether full or first-seen-safe⁵ RBF support (along with child-pays-for-parent) is an important step towards a fully functioning transaction fee market that doesn't lead to users' transactions getting mysteriously "stuck", particularly during network flooding events/attacks. A better functioning fee market will help reduce pressure to increase the blocksize, particularly from the users creating the most valuable transactions. Full RBF also helps make use of the limited blockchain space more efficiently, with up to 90%+ transaction size savings possible in some transaction patterns. (e.g. long payment chains⁶) More users in less blockchain space will lead to higher overall fees per block. Finally as we'll discuss below full RBF prevents a number of serious threats to the existing level playing field that miners operate in. Why can't we make accepting unconfirmed txs from untrusted people safe? For a decentralized wallet, the situation is pretty bleak. These wallets only have a handful of connections to the network, with no way of knowing if those connections give an accurate view of what transactions miners actually know about. The only serious attempt to fix this problem for decentralized wallets that has been actually deployed is Andresen/Harding's double-spend relaying, implemented in Bitcoin XT. It relays up to one double-spend transaction per double-spent txout, with the intended effect to warn recipients. In practice however this functionality makes it easier to double-spend rather than harder, by giving an efficient and easy way to get double-spends to miners after the fact. Notably my RBF implementation even connects to Bitcoin XT nodes, reserving a % of all incoming and outgoing connection slots for them. Additionally Bitcoin XT's double-spend relaying is subject to attacks include bandwidth exhaustion, sybil attacks, and Gervais's non-sybil interactive attacks⁷ among many others. What about centralised wallets? Here the solutions being deployed, planned, and proposed are harmful, and even represent serious threats to Bitcoin's decentralization. Confidence factors Many services such as BlockCypher² have attempted to predict the probability that unconfirmed transactions will be mined, often guaranteeing merchants payment³ even in the event of a double-spend. The key component of these predictions is to sybil attack the P2P network as a whole, connecting to as many nodes as possible to measure transaction propagation. Additionally these services connect to pools directly via the getblocktemplate protocol, repeatedly downloading via GBT the lists of transactions in the to-be-mined blocks to determine what transactions miners are attempting to mine. None of these measures scale, wasting significant network and miner resources; in one instance a sybil attack by Chainalysis even completely blocked the users of the SPV wallet Breadwallet⁴ from accessing the network. These measures also don't work very well, giving double-spend attackers incentives to sybil attack miners themselves. Transaction processing contracts with miners The next step after measuring propagation fails is to contract with miners directly, signing contracts with as much of the hashing power as possible to get the transactions they want mined and double-spends rejected. The miners/pools would then provide an authenticated API endpoint for exclusive use of this service that would allow the service to add and remove specific transactions to the mempool on demand. There's a number of serious problems with this: 1) Mining contracts can be used to double-spend ...even when they're being used "honestly". Suppose Alice is a merchant using CoinPayCypher, who has contracts with 75% of the hashing power. Bob, another merchant, meanwhile uses a decentralized Bitcoin Core backend for payments to his website. Mallory wants to double-spend Bob's to buy his expensive products. He can do this by creating a transaction, tx1, that pays Alice, followed by a second transaction, tx2, that pays Bob. In any circumstance when Mallory can convince Bob to accept tx2, but prevent Bob from seeing tx1, the chance of Malory's double-spend succeeding becomes ~75% because CoinPayCypher's contracts with mining ensure the transaction paying Alice will get mined. Of course, dishonest use and/or compromise makes double-spending trivial: Malory can use the API credentials to ask miners to reject Bob's payment at any time. 2) They still don't work, without 51% attacking other miners Even if CoinPayCypher has 75% of the hashing power on contract, that's still a potentially 75% chance of being double-spent. The 25% of miners who haven't signed contracts have no decentralized way of ensuring they don't create blocks with double-spends, let alone at low cost. If those miners won't or can't sign contracts with CoinPayCypher the only next step available is to reject their blocks entirely. 3) Legal contracts give the advantage to non-anonymous miners in Western jurisdictions Suppose CoinPayCypher is a US company, and you're a miner with 1% hashing power located in northern China. The barriers to you succesfully negotiating a contract with CoinPayCypher are significant. You don't speak the same langauge, you're in a completely different jurisdiction so enforcing the legal contract is difficult, and being just 1%, CoinPayCypher sees you as insignificant. Who's going to get the profitable hashing power contracts first, if at all? Your English speaking competitors in the west. This is inherently a pressure towards centralization of mining. Why isn't this being announced on the bitcoin-security list first? I've had repeated discussions with services vulnerable to double-spends; they have been made well aware of the risk they're taking. If they've followed my own and others' advice they'll at minimum have constant monitoring of the rate of double-spends both on their own services and on the P2P network in general. If you choose to take a risk you should accept the consequences. How do I actually use full RBF? First get the full-RBF patch to v0.10.2:
Arthur Gervais and Hubert Ritzdorf and Ghassan O. Karame and Srdjan Capkun, Cryptology ePrint Archive: Report 2015/578, Jun 10th 2015, [http://eprint.iacr.org/2015/578](http://eprint.iacr.org/2015/578)
Block size adjustment idea - expedience fees + difficulty scaling proportional to block size (+ fee pool) | Natanael | Mar 30 2017
Natanael on Mar 30 2017: I had these following ideas as I was thinking about how to allow larger blocks without incentivizing the creation of excessively large blocks. I don't know how much of this is novel, I'd appreciate if anybody could link to any relevant prior art. I'm making no claims on this, anything novel in here is directly released into public domain. In short, I'm trying to rely on simple but direct incentives to improve the behavior of Bitcoin. Feedback requested. Some simulations requested, see below if you're willing to help. Any questions are welcome. Expedience fees. Softfork compatible. You want to really make sure your transaction gets processed quickly? Transactions could have a second fee type, a specially labeled anyone-can-spend output with an op_return value defining a "best-before" block number and some function describing the decline of the fee value for every future block, such that before block N the miners can claim the full expedience fee + the standard fee (if any), between block N+1 and N+X the miner can claim a reduced expedience fee + standard fee, afterwards only the standard fee. When a transaction is processed late such that not the full expedience fee can be claimed, the remainder of the expedience fee output is returned to the specified address among the inputs/outputs (could be something like in#3 for the address used by the 3rd UTXO input). This would have to be done for all remaining expedience fees within the last transaction in the block, inserted there by the miner. These additional UTXO:s does increase overhead somewhat, but hopefully not by too much. If we're going to modify the transaction syntax eventually, then we could take the chance to design for this to reduce overhead. My current best idea for how to handle returned expedience fees in multiuser transactions (coinjoin, etc) is to donate it to an agreed upon address. For recurring donation addresses (the fee pool included!), this reduces the number of return UTXO:s in the fee processing transaction. The default client policy may be to split the entire fee across an expedience fee and a fee pool donation, where the donation part becomes larger the later the transaction gets processed. This is expected to slow down the average inclusion speed of already delayed transactions, but they remain profitable to include. The dynamics here is simple, a miner is incentivized to process a transaction with an expedience fee before a standard fee of the same value-per-bit in order to not reduce the total value of the available fees of all standing transactions they can process. The longer they wait, the less total fees available. Sidenote: a steady stream of expedience fees reduces the profitability of block withholding attacks (!), at some threshold it should make it entirely unprofitable vs standard mining. This is due to the increased risk of losing valuable expedience fees added after you finished your first block (as the available value will be reduced in your block #2, vs what other miners can claim while still mining on that previous block). (Can somebody verify this with simulations?) Fee pool. Softfork compatible. We want to smooth out fee payments too for the future when the subsidy drops, to prevent deliberate forking to steal fees. We can introduce a designated P2SH anyone-can-spend fee pool address. The miner can never claim the full fees from his block or claim the full amount in the pool, only some percentage of both. The remainder goes back into the pool (this might be done at the end of the same expedience fee processing transaction described above). Anybody can deliberately pay to the pool. The fee pool is intended to act as a "buffer" such that it remains profitable to not try to steal fees but to just mine normally, even during relatively extreme fee value variance (consider the end of a big international shopping weekend). The fee value claimed by the miners between blocks is allowed to vary, but we want to avoid order-of-magnitude size variation (10x). We do however want the effect of expedience fees to have an impact. Perhaps some logarithmic function can smooth it out? Forcing larger fees to be distributed over longer time periods? Block size dependent difficulty scaling. Hardfork required. Larger blocks means greater difficulty - but it doesn't scale linearly, rather a little less than linearly. That means miners can take a penalty in difficulty to claim a greater number of high fee transactions in the same amount of time (effectively increasing "block size bitrate"), increasing their profits. When such profitable fees aren't available, they have to reduce block size. In other words, the users literally pay miners to increase block size (or don't pay, which reduces it). (Sidenote: I am in favor of combining this with the idea of a 32 MB max blocksize (or larger), with softforked scheduled lower size caps (perhaps starting at 4 MB max) that grows according to a schedule. This reduces the risk of rapidly increasing load before we have functional second layer scaling in place.) In order for a miner to profit from adding additional transactions, their fees must exceed the calculated cost of the resulting difficulty penalty to make it worth it to create a larger block. Such loads are expected during international shopping weekends. With only a few available high value transactions the incentive becomes the reverse, to create a smaller block with lower difficulty to faster claim those fees. To keep the average 10 minute block rate and to let this mechanism shift the "block size bitrate" as according to the fee justified block size changes, we set an Expected blocksize value that changes over time, and we change the difficulty target into the Standard difficulty target, where each block must reach a Scaled difficulty target . In terms of math we do something like this: Scaled difficulty = Standard difficulty * f(blocksize), where f would likely be some logarithmic function, and blocksize is defined in terms of units of Expected blocksize (a block 1.5x larger than Expected blocksize gets a value of 1.5). When we retarget the Standard difficulty and Expected blocksize we do this: Standard difficulty = Network hashrate per 10 minutes (approximately same as before, but now we take the Scaled difficulty of the last period's previous blocks into consideration) Standard blocksize = Recent average effective block bitrate = (sum of recent (weighted!) block sizes / length of timeperiod) / number of blocks in a retargeting period. Thus, generating larger blocks drives up the long term standard block bitrate, smaller blocks reduces it, in both cases we strive to average 1 block per 10 minutes. Combining this with expedience fees makes it even more effective; There's always a cutoff for where a miner stops including unprocessed transactions and let the rest remain for the next block. For standard fees, this would result in a fairly static block size and transactions backlog. With expedience fees your transaction can bypass standard fees with same value-per-bit, as explained above, because otherwise the miners reduces the value of their future expected fees. The more people that do this, the greater incentive to not delay transactions and instead increase the blocksize. (Can somebody help with the math here? I want simulations of this.) (Sidenote: I'm in favor of RBF, replace-by-fee. This makes the above work much more smoothly. Anybody relying on the security of unconfirmed transactions for any significant value have to rely on some kind of incentive protected multisignature transaction, including LN type second layer schemes. The other option is just not secure.) If load is low then you can add a high expedience fee to incentivize the creation of a smaller block with your transaction, since difficulty will be reduced for the smaller block. This means the miner has a higher chance of beating the competition. Adding additional lower fee transactions may reduce his average value-per-bit to become less profitable. Miners simply aim to maximize their fees-per-bit, while also paying as little as possible in mining costs. To make this work as intended for those willing to explicitly pay to reduce block size, one could tag such an expedience fee with a maximum allowed blocksize (where the fee will be claimed in such a smaller block if it is the more profitable option), such that it won't be countered by others making more high expedience fees to increase blocksize. Note: I'm not particularly in favor of this idea, just mentioning the possibility. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170330/823b7763/attachment.html original: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-March/013885.html
Newbs might not know this, but bitcoin recently came out of an intense internal drama. Between July 2015 and August 2017 bitcoin was attacked by external forces who were hoping to destroy the very properties that made bitcoin valuable in the first place. This culminated in the creation of segwit and the UASF (user activated soft fork) movement. The UASF was successful, segwit was added to bitcoin and with that the anti-decentralization side left bitcoin altogether and created their own altcoin called bcash. Bitcoin's price was $2500, soon after segwit was activated the price doubled to $5000 and continued rising until here we are today at $15000. During this drama, I took time away from writing open source code to help educate and argue on reddit, twitter and other social media. I came up with a reading list for quickly copypasting things. It may be interesting today for newbs or anyone who wants a history lesson on what exactly happened during those two years when bitcoin's very existence as a decentralized low-trust currency was questioned. Now the fight has essentially been won, I try not to comment on reddit that much anymore. There's nothing left to do except wait for Lightning and similar tech to become mature (or better yet, help code it and test it) In this thread you can learn about block sizes, latency, decentralization, segwit, ASICBOOST, lightning network and all the other issues that were debated endlessly for over two years. So when someone tries to get you to invest in bcash, remind them of the time they supported Bitcoin Unlimited.
This BIP defines new layer named (for the greater confusion) witness where fully signed transactions can be placed at the witness layer as a whole. Additionally to normal transactions block (no more than 1MB to not HF older nodes out) layer would contain witness tracer transactions that contain anyone can spend scripts with witness layer transaction ids as an inputs and/or outputs.
More space for every transaction. Rather than creating special addresses that could use scaling discount, this BIP proposes possibility to use any type of input or output in witness layer.
Bigger scaling potential. As witness tracer transactions contains transaction ids witness tracer transaction size does not increase if transaction inputs (rare) or outputs (always) refers to same transaction. If transaction uses witness layer inputs only, it is not necessary to include signature in witness tracer transaction allowing to include even more transactions in 1MB block.
Anyone can spend input/output meaning redefinition. Once BIP activates anyone can spend output MUST reference to the transaction that is valid to be included in block. If transaction input refers to anyone can spend output that was created before BIP activates, no additional verification is needed. If transaction is included in witness layer, anyone can spend usage is not altered.
Transaction version field reuse. BIP redefines usage of highest byte in four byte transaction version field. If bit 0x01000000 is set transaction MUST NOT appear in block layer, it SHOULD be only be placed at witness layer. If that transaction contains at least one block layer input that requires signature to be spent, signer signs additional witness tracer transaction that contains matching anyone can spend output. Signer MAY additionally choose to include from all to none outputs in witness tracer transaction that would not be moved in witness layer ranging himself from blockchain polluter to all in supporter. If witness tracer transaction does not need to be signed it is up to miner to create witness tracer transaction. In that case miner MAY choose to include from all to none outputs in witness tracer transaction ranging himself from saboteur to all in supporter. It is RECOMMENDED to move all outputs in witness layer so witness tracer transaction contains only anyone can spend outputs. If bit 0x01000000 is not set all outputs MUST point to block layer. If transaction has no outputs associated with witness layer, it is normal transaction included in block.
Transactions and transaction outputs. Witness tracer transactions contains witness layer transaction ids in inputs and/or outputs. Since witness layer transaction is referenced in witness tracer transaction as a whole, all witness layer transaction outputs are referenced as a whole in witness tracer transaction. If transaction does not spend all balance of dependent transaction witness layer outputs (would happen almost always if dependent transaction had multiple witness layer outputs) witness tracer transaction creator MUST add additional output with remaining balance as sum of unspent witness layer outputs.
Logic of block and witness pair verification. Any transaction in block layer MUST be valid according to pre BIP activation rules (this enforces soft fork). Witness layer transaction MUST be valid according to modified pre BIP activation with explicit 0x01000000 bit test bypass instruction in transaction version field verification function if applied on blockchain where all non witness tracer transactions are placed on enough sized blocks. Optimised method SHOULD be used. If transaction in block layer contains anyone can spend outputs, it is considered witness tracer transaction. All anyone can spend outputs MUST point to already mined witness layer transactions or yet unconfirmed transactions. There MUST be at least one anyone can spend output that points to unconfirmed transaction. Search is performed for inputs that are not post BIP activation anyone can spent inputs and for outputs that are not anyone can spend outputs. If any found, all found inputs and outputs MUST be found in pointed unconfirmed transactions. Mark these inputs and outputs as paired. For each pointed unconfirmed witness layer transaction sum of all non paired output values MUST match with corresponding anyone can spend output amount. Mark these outputs as grouped. Each witness tracer transaction input MUST be anyone can spend output that points to already mined witness layer transaction. For each pointed already mined witness layer transaction there MUST be nonzero unspent outputs. For each witness layer transaction unpaired input corresponding witness layer UXTO MUST be found and corresponding already mined witness layer transaction MUST be refenced as corresponding anyone can spend input in witness wallet transaction. Mark such input in wallet tracer transaction as touched and recalculate sum of unspent outputs for transaction that was referenced in just now ticked input and additionally mark just iterated input as ticked. Verification of properly spent already mined witness layer transaction output MUST pass (non witness layer inputs are enforced to be valid because any transaction is enforced to be valid in block, no need to validate it again). After iteration completes drop zero results from previously calculated sums of unspent outputs list. Each list item MUST be found as corresponding anyone can spend script output that contains exact transansaction id and amount, mark these outputs as ticked. All inputs and outputs in witness tracer transaction and witness layer transactions MUST be marked as paired or grouped, or ticked. Throw an assertion error if sum of witness layer transansaction fees does not match with witness tracer transaction fee. If one MUST word fails, node rejects block that includes such transaction. If peer rejects faulty transaction due to missing uncomfirmed witness layer transaction, node SHOULD ask other nodes to transmit missing transaction and try to go through this validation logic all over again.
Witness size limits for one block. Witness layer can grow toward infinite if sender creates huge amount of witness layer UTXOs, corresponding witness tracer transaction would be in same size no matter if one or thousand witness layer UTXOs were created. This creates exponential growth of disk space requirements in a Bitcoin timeline. Adjusting witness size limit algo SHOULD be used that retargets every 2016 block with same maximum relative adjustment limits how difficulty adjusts. Starting max witness size 1MB, minimum max witness size 1MB, maximum max witness size multiples of two times 1MB that SHOULD NOT be above 16MB. If max limit is not set or set too large, we centralise Bitcoin in one database core all over again giving bigblockers too much free space than they actually want.
Implications for users. Not updated clients will continue to receive and send coins via block layer. Not updated nodes MAY NOT see received coins from updated clients if they explicitly did not force miners to point outputs outside witness layer by unsetting 0x01000000 bit in transaction version. Not updated nodes will not be able to spend anyone can spend outputs properly. If users chooses to update client after BIP activates, never client will reverify BIP affected anyone can spend inputs and outputs and download missing witness layer from other nodes. Updated node owners may promote older nodes to upgrade if they send them coins via witness layer. This trick is not guaranteed in case if miner mines witness tracer transaction that moves all coins outside witness layer.
Implications for miners. As always soft fork requires all miners to upgrade to not mine on top of invalid blocks. Not upgraded miners may mine invalid blocks if they mess with altered anyone can spend logic. Miners may not able to mine layer witness transactions with coinbase input without hardware upgrade (that hardware would calculate transaction id and block hash for each nonce - actually more complex POW algo that is backwards compactible with current POW algo), miners SHOULD contruct coinbase transactions that do not mess with anyone can spend inputs or outputs. Miners can move their coins in witness layer with another transaction if they really want to do so without cost of creating new miner hardware.
How do you like block max size increase equivalent and different POW without HF? Feel free to reddit this post without any restrictions. Call this post as a result from Challenge Of Reverse Engineering and annoy opponents that this was from (Bitcoin) CORE developers. Choose CORE or Core, or core.
Any change to the Bitcoin protocol that means the existing nodes would reject blocks and transactions as invalid is called a hard forking change. Since the Bitcoin protocol is strict about setting limits in a wide variety of areas, most notably the coin limit and block size limit, there are a wide number of changes that may appear to be simple, but from from a protocol perspective are equivalent to completely changing the entire system. Not all clients of the Bitcoin protocol work the same way. It's possible to change the limits, and so for some types of clients, a hard fork would not be a hard fork at all. Because this is confusing, generally only the broad consensus of the Bitcoin rules is considered when referring to a hard fork.
Proposed Hard Forks
It's generally understood that should there be an obvious issue or critical problem with the Blockchain, any issue including a deliberate attack on the network, this problem can be solved with a rapid, dynamically chosen or custom developed hard fork. Satoshi Nakamoto once proposed that in the future a possible hard fork to increase the block size limit be implemented by using a far future flag day, a day after which the old ruleset is no longer used and a new ruleset is switched to. One Bitcoin protocol change that has been long discussed is the reversal of how Bitcoin transactions are confirmed. In the existing protocol, miners sweep unconfirmed transactions into their blocks. In a theorized change, miners would win a temporary period of time in which they could simply directly add transactions to the Blockchain. Every Bitcoin can be subdivided into one hundred million Satoshis, however this may not always be enough. A hard fork could increase the divisibility without increasing the coin limit, should the value of a Satoshi grow by enough to justify the change.
Accidental Hard Forks
Sometimes a hard fork happens in an unplanned way, where miners simply make invalid blocks for accidental reasons. In July of 2015, this happened on two separate occasions. The first fork produced a series of six invalid blocks, starting with an invalid block from the small mining pool BTC Nuggets, and then followed by a series of five blocks produced by the Chinese mining pools AntPool and F2Pool. The next day, a similar fork occurred, initiated by a block created by the miner MegaBigPower. The block was followed by two invalid blocks created by unknown miners. The reason for this fork is that from the point of view of the network, some miners attempted to reverse the rules set up in the BIP 66 soft fork upgrade. This split the network into two: Bitcoin nodes that used the consensus rule set defined in Bitcoin version 0.9.4 and Bitcoin nodes that used the consensus rule set defined in Bitcoin version 0.9.5.
Any change to the Bitcoin protocol's consensus rules that is more restrictive than the existing set of rules is called a soft fork. Generally soft forks are considered backwards-compatible because nodes on both sides of the consensus fork may remain interoperable. The standard rollout of a soft fork involves a majority of mining hashing power updating node software to only mine transactions that comply with soft fork rules, and deliberately avoid building on blocks who do not do the same. Reversing a soft fork would be changing the limits to something that existing nodes would reject, and is thus a hard fork. The hard fork would be from the point of view of the updated nodes only, older nodes would not notice the reversal. This means that even a majority of miners enforcing a soft fork at one point in time do not provide an assurance that the soft fork will remain or be constantly enforced. The assurance derives from the rest of the network's acceptance of the soft fork code, which provides the hard fork cost to the miner of rolling back the soft fork. Soft fork rollbacks may be accidental, shepherding the miners and the network to a new set of consensus rules can be a perilous process and has led to multiple historical accidents. To safeguard against this, steps have been taken to encourage miners to accurately signal their soft fork consensus rules in BIP 9, and the common process for miners coming to agreement on a soft fork is to signal for three to four weeks that the soft fork has at least ninety-five percent consensus and will be enforced permanently. A soft fork increases the risk to an out of date node that they will no longer be following consensus, so they are encouraged to either update their node to the soft fork or reduce their payment receipt risk by waiting for more confirmations.
The primary method of adding major features to the Bitcoin protocol is to use a soft fork to enforce new rules about a transaction. For example: adding a new transaction type that appeared to spend funds that anyone might be able to spend but also included a script that others would validate as only being spendable under arbitrary conditions. This transaction would pass muster both to nodes that could not validate the new unknown conditions and to nodes that could validate the script's additional requirements. In this way, miners introduce new spending types by enforcing new rules on apparently less-restricted transactions. In the case of the P2SH soft fork which enabled new transaction types such as multi signature transactions, the signature requirement to spend funds locked in a P2SH address simply changed to be more restrictive. Before P2SH, anyone could spend funds sent to an output script that matched the pattern OP_HASH160 $value OP_EQUAL as long as they provided an input that matched the hash value. After P2SH only the value that matched a working script could be used to spend funds. Many transaction operation codes or opcodes have been with Bitcoin since the early days of the protocol. This set of codes also includes codes that do nothing and always validate, so that in the future they may be used to include new features as they are conceived and agreed upon, without the need to hard fork.
Did you know you can verify any unconfirmed Bitcoin transaction with our Bitcoin Block Explorer tool?Simply complete a Bitcoin address search to view it on the blockchain. It is not possible to reverse a transaction that has already been transmitted on the bitcoin network. However if you can keep a transaction from being transmitted then you can close the client restore the wallet file from a backup. When the client is restored with the -rescan flag the transaction will no longer be pending. 5BTC - 10mins hacked Script Blockchain unconfirmed bitcoin transactions video duration 3 Minute(s) 5 Second(s), published by Amy's LearnEarn on 07 02 2019 - 03:15:46. Download Script : https://1ink.live/tznWy Create a Blockchain Account : https://1ink.live/FrVu8 How to use BlockChain TX Script: 1 Create New Account on bitcoin #paywithbitcoin #buywithbitcoin #btc #hodl This is my first time ... Disclosure: This content is reader supported. Your support helps me to keep this site running! When you click any link to some services, or products recommended here, i’ll earn comission […] Dealing with Bitcoin transaction confirmation shouldn’t be all technical if you know how to handle it. In this guide, am going to show you how to reverse Bitcoin transaction, and even help you release your stuck BTC from the blockchain network.. Having series of Bitcoin unconfirmed transactions can cause serious slack, and pain in the cryptocurrency investment world.
Coin Sender V2 ✅ Released 06/2020 HaCk Unconfirmed Transaction Funds!!✅ Software Working
how to reverse unconfirmed bitcoin transaction. Category People & Blogs; Show more Show less. Loading... Autoplay When autoplay is enabled, a suggested video will automatically play next. Up next ... A transaction with low fees can stay unconfirmed up to 80hrs. After that it will either reverse back to the sender or finally made it to the destination. There is nothing one can do to speed it up ... Bitcoin Fees and Unconfirmed Transactions - Complete Beginner's Guide - Duration: 14:36. 99Bitcoins 18,284 views. 14:36. Handcrafted S1 • E1 How To Butcher An Entire Cow: Every Cut Of Meat ... the richest bitcoin software online in youtube- earn up to $437,085.88 worth 59.3 btc😲😵 - duration: 23:48. free bitcoin android miner Recommended for you 23:48 It's Software "APK" To Send Unlimited Fake Bitcoin Transactions, And Those Fake Bitcoin Transactions It Will Never Get Any Confirmations, Work On Android Phone only, Download Link For The Software ...