<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AllEd01</id>
	<title>Bitcoin Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AllEd01"/>
	<link rel="alternate" type="text/html" href="https://en.bitcoin.it/wiki/Special:Contributions/AllEd01"/>
	<updated>2026-05-14T18:50:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Bitcoin_as_an_investment&amp;diff=69470</id>
		<title>Bitcoin as an investment</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Bitcoin_as_an_investment&amp;diff=69470"/>
		<updated>2022-09-26T09:13:29Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses the case for owning bitcoin as an investment and store of value.&lt;br /&gt;
&lt;br /&gt;
==The case for investing==&lt;br /&gt;
&lt;br /&gt;
# There is a [[Controlled supply|fixed supply]] of bitcoins. There will never be more than 21 million bitcoins.&lt;br /&gt;
# Because of bitcoin&#039;s [[Bitcoin as a medium of exchange|useful properties as a medium of exchange]], demand is growing or at least staying the same.&lt;br /&gt;
# Fixed supply and growing demand imply a growing price.&lt;br /&gt;
&lt;br /&gt;
==Store of value==&lt;br /&gt;
&lt;br /&gt;
Bitcoin has useful properties to make it a good store of value. It has been described as a &amp;quot;swiss bank account in your pocket&amp;quot;&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/4a2l55/obama_meme_bitcoin_is_like_having_a_swissbank/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cannot be debased.&#039;&#039;&#039; Limited to [[Controlled supply|21 million coins]] only.&lt;br /&gt;
* &#039;&#039;&#039;No storage cost.&#039;&#039;&#039; Bitcoins take up no physical space, [[Storing bitcoins|any amount can be stored]].&lt;br /&gt;
* &#039;&#039;&#039;Easy to hide.&#039;&#039;&#039; Can be stored encrypted on paper, on disk, or even [[Brainwallet|memorized in your brain]].&lt;br /&gt;
* &#039;&#039;&#039;Can be made [[Anonymity|anonymous]]&#039;&#039;&#039;, meaning nobody would even know you own bitcoins or how many.&lt;br /&gt;
* &#039;&#039;&#039;Easy to protect.&#039;&#039;&#039; Can be made impossible to steal or seize by any thief, government or bank.&lt;br /&gt;
* &#039;&#039;&#039;Censorship resistant.&#039;&#039;&#039; The coins can be [[Bitcoin as a medium of exchange|sent anywhere in the world through the internet without being blocked]].&lt;br /&gt;
* &#039;&#039;&#039;No counterparty risk.&#039;&#039;&#039; Coins are in your possession, if you keep the [[private key]] of a bitcoin secret and the transaction has enough [[Confirmation|confirmations]], then nobody can take them from you no matter for what reason, no matter how good the excuse, no matter what. &lt;br /&gt;
&lt;br /&gt;
Even if these properties are not useful to you, they may be useful to others which would benefit you by increasing the value of your held bitcoins.&lt;br /&gt;
&lt;br /&gt;
==Useful notes==&lt;br /&gt;
&lt;br /&gt;
===Difficulty with storing and theft===&lt;br /&gt;
&lt;br /&gt;
Because bitcoin is a digital asset, it can be un-intuitive to store safely. Users should definitely [[Ways to store Bitcoins|read the guides]] for correctly storing bitcoins. Historically many people have lost their coins but with proper understanding, the risks can be eliminated. If your bitcoins do end up lost or stolen then there&#039;s almost certainly nothing that can be done to get them back.&lt;br /&gt;
&lt;br /&gt;
===Preserving these properties===&lt;br /&gt;
&lt;br /&gt;
Bitcoin is a software project. There&#039;s an obvious question of how its useful properties can be maintained. Couldn&#039;t some programmer simply edit the source code to create more than 21 million bitcoins? The answer turns out to be no. Bitcoin is secured by strong cryptography and game theory, and its properties are very hard or impossible to change.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* [[Myths#Miners, developers, or some other entity could change Bitcoin&#039;s properties to benefit themselves]]&lt;br /&gt;
* [[Principles of Bitcoin]]&lt;br /&gt;
* [[Economic majority]]&lt;br /&gt;
&lt;br /&gt;
Some people say that although the supply of bitcoin is limited, an infinite amount of other cryptocurrencies (altcoins) can be created. This is fundamentally confused reasoning because bitcoin and altcoins are different currencies, as bitcoin wallets would reject altcoin payments and vis versa. Claiming altcoins dilute the supply of bitcoins is like saying hyperinflation of the Venezuelan currency dilutes the supply of US Dollars.&lt;br /&gt;
&lt;br /&gt;
===Volatility===&lt;br /&gt;
&lt;br /&gt;
Bitcoin is much more volatile than most other assets, including the most volatile commodities. This can be good when the price is rising but may hurt the dollar value of your holdings when the price is falling. One way to deal with this is to only hold a certain percentage of your savings in bitcoin and the rest in more stable assets but does not eliminate the risk altogether.&lt;br /&gt;
&lt;br /&gt;
You could hedge yourself with Bitcoin futures or Bitcoin options, at the cost of accepting some counterparty risk. Most of the Bitcoin futures and options exchanges are centralized and you have to trust them with your coins. This however allows you to use your coins for payment and not worry about their dollar value. When using options, you also can enjoy the upside (at the cost of the option).&lt;br /&gt;
&lt;br /&gt;
You could also deal with it by studying bitcoin&#039;s fundamentals deeply so that temporary price drops do not scare you into selling low. Investing with a dollar-cost-averaging strategy can also reduce the effects of volatility&amp;lt;ref&amp;gt;https://breadwallet.com/blog/how-invest-bitcoin-without-getting-hurt-volatility/&amp;lt;/ref&amp;gt;. Also, over time, as your holdings grow, the impact of the new purchases is smaller and the volatility affects your increasing holdings.&lt;br /&gt;
&lt;br /&gt;
===Uncorrelated asset===&lt;br /&gt;
&lt;br /&gt;
Although bitcoin is volatile, it is mostly uncorrelated with any other asset classes&amp;lt;ref&amp;gt;http://www.signalplot.com/what-is-bitcoins-correlation-with-other-financial-assets/&amp;lt;/ref&amp;gt;. This means bitcoin can reduce the overall volatility as part of a well-diversified portfolio.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Bitcoin as a medium of exchange]]&lt;br /&gt;
* [[Principles of Bitcoin]]&lt;br /&gt;
* [[Irreversible Transactions]]&lt;br /&gt;
* [[Controlled supply]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Economics]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=BIPS&amp;diff=69469</id>
		<title>BIPS</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BIPS&amp;diff=69469"/>
		<updated>2022-09-26T09:11:55Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIPS was a Payment Service Provider (PSP) specializing in the technical aspects of accepting cryptocurrencies - such as bitcoin.&lt;br /&gt;
&lt;br /&gt;
==Bitcoin Payment Solutions==&lt;br /&gt;
&lt;br /&gt;
Provided services for merchants in 204 countries.&lt;br /&gt;
&lt;br /&gt;
==Merchant Tools==&lt;br /&gt;
For merchants using an eCommerce platform, choose between a wide range of bitcoin plugins. For merchants without an eCommerce solution, BIPS offered Hosted Invoices. Hosted Invoices could be used for both catalogue of items and a shopping cart with buttons and widgets per item. Also Hosted Invoices supported recurring billing in bitcoin, by emailing invoice links or using BIP70 Payment Requests.&lt;br /&gt;
&lt;br /&gt;
===Point of Sale===&lt;br /&gt;
BIPS delivered near field communication (NFC) to &amp;quot;make secure payments fast and convenient by simply tapping the phone on any BIPS-enabled point of sale at checkout. And the possibility of sending payment information via sound based on Chirp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
BIPS POS NFC could be used with the following devices:&lt;br /&gt;
&lt;br /&gt;
Phones&lt;br /&gt;
&lt;br /&gt;
    HTC One on Sprint&lt;br /&gt;
    HTC One SV on Boost Mobile&lt;br /&gt;
    HTC EVO 4G LTE on Sprint&lt;br /&gt;
    LG Viper 4G LTE on Sprint&lt;br /&gt;
    LG Viper 4G LTE on Zact Mobile&lt;br /&gt;
    LG Optimus Elite on Sprint&lt;br /&gt;
    LG Optimus Elite on Virgin Mobile&lt;br /&gt;
    LG Optimus Elite on Zact Mobile&lt;br /&gt;
    LG Nexus 4*&lt;br /&gt;
    LG Nexus 5*&lt;br /&gt;
    Motorola Moto X*&lt;br /&gt;
    Samsung Galaxy Note II on Sprint&lt;br /&gt;
    Samsung Galaxy Note II on US Cellular&lt;br /&gt;
    Samsung Galaxy SIII on Sprint&lt;br /&gt;
    Samsung Galaxy SIII on MetroPCS&lt;br /&gt;
    Samsung Galaxy SIII on US Cellular&lt;br /&gt;
    Samsung Galaxy SIII on Virgin Mobile&lt;br /&gt;
    Samsung Galaxy SIII on Boost Mobile&lt;br /&gt;
    Samsung Galaxy S4 on Sprint (model number must be SPH-L720)&lt;br /&gt;
    Samsung Galaxy S4 on US Cellular&lt;br /&gt;
    Samsung Galaxy S4 Google Play Edition*&lt;br /&gt;
    Samsung Nexus S 4G on Sprint&lt;br /&gt;
    Samsung Galaxy Nexus on Sprint&lt;br /&gt;
    Samsung Galaxy Nexus*&lt;br /&gt;
    Samsung Galaxy Victory 4G LTE on Sprint&lt;br /&gt;
    Samsung Galaxy Victory 4G LTE on Virgin Mobile&lt;br /&gt;
    Samsung Galaxy Axiom on US Cellular&lt;br /&gt;
&lt;br /&gt;
Tablets&lt;br /&gt;
&lt;br /&gt;
    Asus Nexus 7&lt;br /&gt;
    Samsung Nexus 10&lt;br /&gt;
&lt;br /&gt;
===Former business model===&lt;br /&gt;
&lt;br /&gt;
BIPS didn&#039;t charge merchants for accepting Bitcoin online or with the point of sale as payment for merchandise, but ran a 0% Payment Processing Fees, and planned to make money by the conversion spread.&lt;br /&gt;
&lt;br /&gt;
===Settlement===&lt;br /&gt;
&lt;br /&gt;
Exchanged bitcoins were sent to the customer&#039;s bank account in 1-5 business days. With the possibility of setting a % to be transferred, or simply keeping bitcoin.&lt;br /&gt;
&lt;br /&gt;
Motto: sell for $100, see $100 deposited into your bank*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Consumer Side==&lt;br /&gt;
&lt;br /&gt;
===Buy Bitcoins===&lt;br /&gt;
&lt;br /&gt;
BIPS provided a now defunct market to buy Bitcoins from any country in the world.&lt;br /&gt;
&lt;br /&gt;
===Sell Bitcoins===&lt;br /&gt;
&lt;br /&gt;
You could receive payouts to banks in any currency in any country.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
With experience in Bitcoin since 2010, BIPS was founded in July 2011.&lt;br /&gt;
&lt;br /&gt;
In 2013, the company lost 1,295 bitcoins (then worth around US$1 Million) in an online theft &amp;lt;ref name=&amp;quot;Dead&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the heist company did not provide any refunds and never recovered.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Bitcoin Ladder]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Dead&amp;quot;&amp;gt;[http://mashable.com/2013/11/25/cyberattack-leads-to-heist-of-1-million-in-bitcoin/ Lorenzo Franceschi-Bicchierai (November 25, 2013). &amp;quot;Cyberattack Leads to $1 Million Bitcoin Heist&amp;quot;. Mashable.]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Defunct exchanges‏‎]]&lt;br /&gt;
[[Category:Clients‏‎]]&lt;br /&gt;
[[Category:ECommerce‏‎]]&lt;br /&gt;
[[Category:EWallets‏‎]]&lt;br /&gt;
[[Category:Economics‏‎]]&lt;br /&gt;
[[Category:Financial‏‎]]&lt;br /&gt;
[[Category:Shopping Cart Interfaces]]&lt;br /&gt;
[[Category:Payment Processors]]&lt;br /&gt;
[[Category:Bitcoin payment systems]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=BitcoinSentiment&amp;diff=69468</id>
		<title>BitcoinSentiment</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BitcoinSentiment&amp;diff=69468"/>
		<updated>2022-09-26T09:10:52Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;BitcoinSentiment&#039;&#039;&#039; is a non-profit, ad-free site tracking the voter&#039;s sentiment towards Bitcoin through the means of continuous polling. The idea is to provide the technical means required for tapping into the power of crowd-sourcing. &lt;br /&gt;
&lt;br /&gt;
The quality of the data increases as the number of voters increases and you can contribute, by putting voting widgets on your site. To encourage the use of widgets, they are designed to be non-intrusive and to not &amp;quot;steal your visitors&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The data generated on the site is free for use and can be downloaded by anyone.&lt;br /&gt;
&lt;br /&gt;
The site offers a variety of charts, with the purchasing power of Bitcoin plotted in terms of other asset classes such as gold and inflation-protected US Treasuries.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[http://bitcoinsentiment.com/ BitcoinSentiment website]&lt;br /&gt;
&lt;br /&gt;
[[Category:Trading]]&lt;br /&gt;
[[Category:Investing]]&lt;br /&gt;
[[Category:Economics]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Bitcoin_Hedge_Fund&amp;diff=69467</id>
		<title>Bitcoin Hedge Fund</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Bitcoin_Hedge_Fund&amp;diff=69467"/>
		<updated>2022-09-26T09:07:17Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: punctuation, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The first hedge fund to be exclusively financed with bitcoin (BTC). This fund is designed to give a return for people who want to use BTC as an investment tool while significantly mitigating the volatility of the value of BTC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:red;&amp;quot;&amp;gt;NOTE - The site does not list any address or list its location.  The website domain is privacy protected and was registered just ten days before launch. The launch announcement was made by a forum member using an account that shows having joined the bitcoin forum community a few weeks prior.  It isn&#039;t shown who will manage the fund.  Proceed at your own risk.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Invests in a diversified group of exchange-traded funds (ETFs), domestic and international bonds, and derivatives (mainly stock options).&lt;br /&gt;
&lt;br /&gt;
The purpose of the fund is the long-term capital appreciation that outpaces the S&amp;amp;P 500.&lt;br /&gt;
&lt;br /&gt;
Bitcoins received by the fund are converted to USD.  &lt;br /&gt;
&lt;br /&gt;
To maintain stability and liquidity, initial deposits may not be withdrawn for a period ranging from 21 to 90 days, depending on how early the deposit was made.  Withdrawals are in the form of BTCs and are sent to the bitcoin address associated with the account.&lt;br /&gt;
&lt;br /&gt;
This site was launched on June 24, 2011&amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=21799.0 Announcing the Bitcoin Hedge Fund]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Fees==&lt;br /&gt;
&lt;br /&gt;
There will be no management fees through 2011. A small management fee may be initiated in 2012 (with prior notification) of up to 1%. There is no front-load fee, but there will be a back-load fee of 2%&amp;lt;ref&amp;gt;[http://bitcoinhedgefund.com/how-it-works How It Works]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://bitcoinhedgefund.com Bitcoin Hedge Fund] website&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Investing]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Credit&amp;diff=69466</id>
		<title>Credit</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Credit&amp;diff=69466"/>
		<updated>2022-09-26T09:05:30Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: punctuation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use credit with Bitcoin for a variety of purposes, including making and accepting loans, establishing reputations, transferring value, and more.&lt;br /&gt;
&lt;br /&gt;
There are two big reasons that borrowing or lending can be considered not very smart:&lt;br /&gt;
&lt;br /&gt;
* Bitcoin is extremely volatile.&lt;br /&gt;
* Bitcoin is a bearer asset. &amp;quot;Not your keys not your coin.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Bitcoin credit==&lt;br /&gt;
&lt;br /&gt;
Any time a financial transaction takes place which leaves one party more obliged than the other, the obliged party is extending credit to the obliging party. This allows groups of people and organizations to cooperate even when their resources and needs are spread out over time and can be a highly valuable activity.&lt;br /&gt;
&lt;br /&gt;
You can of course always lend or borrow Bitcoins casually with your friends, but when interacting with more distant social connections or for larger amounts, you may want to make use of a credit service. Such services can help you keep track of credit balances, interest rates, and amounts, and other figures, while providing many useful features such as credit score reports or even credit exchanges using Ripple routing.&lt;br /&gt;
&lt;br /&gt;
[[Category:Credit]]&lt;br /&gt;
[[Category:Investing]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Binary_options&amp;diff=69465</id>
		<title>Binary options</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Binary_options&amp;diff=69465"/>
		<updated>2022-09-26T08:59:17Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: punctuation, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An option is a financial contract that gives the buyer the right to buy or sell an asset for a specified price (strike price) on or before a certain date (expiration date). A &#039;&#039;&#039;call&#039;&#039;&#039; option allows the holder to buy the underlying asset on or before the date. A &#039;&#039;&#039;put&#039;&#039;&#039; option allows the holder to sell the asset for that price on or before the due date. Options are valued according to the difference between the strike price and the current market price of the underlying asset.&lt;br /&gt;
&lt;br /&gt;
Options are used widely in financial markets to hedge or speculate on the price of an underlying asset with a quantified risk. Complex financial instruments can be built using combinations of buying and selling call and put options with different strike prices and expiration dates.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;binary option&#039;&#039;&#039; is a simple type of option that is valued according to a true/false statement. For example, if the price of the underlying asset is above a certain level the call (long) option will pay 100, if it is below it will pay 0. For a put option, the reverse is true.&lt;br /&gt;
&lt;br /&gt;
Binary options make for simple valuation and are therefore a good way for traders to avoid complicated valuation, which often works in favour of option issuers to the detriment of buyers.&lt;br /&gt;
&lt;br /&gt;
Binary options have become a popular way to trade major financial markets online.&lt;br /&gt;
&lt;br /&gt;
==Binary Options and Bitcoin==&lt;br /&gt;
With the popularity of Bitcoin and its acceptance as a currency binary options platforms began adding BTC as one of the currencies to trade. This has further helped the growth of binary platforms as well as mainstream recognition of Bitcoin as a currency. Most brokers only offer it as a currency pair versus the American Dollar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bitcoin Binary Option Smart Contracts==&lt;br /&gt;
&lt;br /&gt;
Bitcoin allows the creation of smart contracts for binary options. The [[contract]] itself holds the funds in escrow and on the expiry date pays all the funds to the Bitcoin address that was on the correct side of the true/false statement.&lt;br /&gt;
&lt;br /&gt;
This allows the complete elimination of counterparty risk. The solvency of the option issuer is irrelevant if the funds are already locked in the contract itself. It is irrelevant if the company or party that issued the option disappears, defaults, or wants to change the terms of the contract. The elimination of counterparty risk allows long-term financial contracts in a trust-minimized way. &lt;br /&gt;
&lt;br /&gt;
Smart contracts rely on an [[oracle]] to verify external conditions. &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
*Alice and Bob each send 1 BTC to the contract 2-of-3 [[multisignature]] address which is controlled by private keys K1, K2, K3.&lt;br /&gt;
*Alice holds K1&lt;br /&gt;
*Bob holds K2&lt;br /&gt;
*[[Oracle]] holds K3.&lt;br /&gt;
*On expiry if the condition is TRUE the [[oracle]] sends K3 to Alice. Alice withdraws 2 BTC.&lt;br /&gt;
*On expiry if the condition is FALSE [[oracle]] sends K3 to Bob. Bob withdraws 2 BTC.&lt;br /&gt;
&lt;br /&gt;
The mechanism is very similar to an [[Contract|escrow]] contract but instead of a mediator holding the third key the [[oracle]] holds it and can resolve automatically based on simple true/false conditions. Ideally, to prevent it from being compromised or targeted, the [[oracle]] would be a simple automated system unaware of the information that it was sending. It would only know to send an encrypted e-mail to Alice if true, to Bob if false.&lt;br /&gt;
&lt;br /&gt;
The example above is can be tried using a multi-signature wallet like [[GreenAddress]] and a simple oracle like [http://earlytemple.com/ Early Temple] or [https://www.realitykeys.com/ Reality Keys].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.realitykeys.com/developers/resources#bitcoin Reality Keys] details a slightly more complex way of doing this which allows funds to be sent to Alice or Bob depending on a conditional: Conditional payments using branching bitcoin transactions. &lt;br /&gt;
&lt;br /&gt;
  OP_IF &lt;br /&gt;
  2 A-pub Yes-pub 2 OP_CHECKMULTISIG &lt;br /&gt;
  OP_ELSE &lt;br /&gt;
  2 B-pub No-pub 2 OP_CHECKMULTISIG &lt;br /&gt;
  OP_ENDIF&lt;br /&gt;
&lt;br /&gt;
==How To Trade==&lt;br /&gt;
Trades are placed by predicting the direction an asset will move during the specified time frame. The time that option ends is called an expiry time. Expiry times range anywhere from 30 seconds until months away. At the end of the time, if the direction you chose was correct, you win the trade. Winning trades pay out slightly less than 100% and typical payouts range between 80-85% depending on the broker.&lt;br /&gt;
&lt;br /&gt;
Assets include&lt;br /&gt;
*Stocks&lt;br /&gt;
*Currencies&lt;br /&gt;
*Commodities&lt;br /&gt;
*Indices&lt;br /&gt;
&lt;br /&gt;
[[Category:Gambling‏]] [[Category:Economics‏‏]] [[Category:Trading‏‏]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Bitcoin_Days_Destroyed&amp;diff=69464</id>
		<title>Bitcoin Days Destroyed</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Bitcoin_Days_Destroyed&amp;diff=69464"/>
		<updated>2022-09-26T08:57:49Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling, punctuation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bitcoin Days Destroyed is a measure of the transaction volume of Bitcoin. &amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=6172.msg90789#msg90789 ByteCoin&#039;s Proposal to use Bitcoin Days Destroyed as a measure of transaction volume]&amp;lt;/ref&amp;gt; A bounty for a  script to compute the Bitcoin Days Destroyed by the transactions in a block has been awarded. &amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=9300.0 Bounty Award to develop a script to compute the BitcoinDays Destroyed by the transactions in a block.]&amp;lt;/ref&amp;gt; [[Abe]] is a [[block chain browser]] that computes this statistic in real-time.&lt;br /&gt;
&lt;br /&gt;
==Calculation==&lt;br /&gt;
&lt;br /&gt;
Bitcoin days destroyed for any given transaction are calculated by taking the number of Bitcoins in a transaction and multiplying it by the number of days it has been since those coins were last spent.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
If someone has 100BTC that they received a week ago and they spend it then 700 bitcoin days have been destroyed. If they take those 100BTC and send them to several addresses and then spend them then although the total transaction volume could be arbitrarily large the number of bitcoindays destroyed is still 700.&lt;br /&gt;
&lt;br /&gt;
==Graph of Percentage of Bitcoin Days Destroyed==&lt;br /&gt;
&lt;br /&gt;
Percentage of Bitcoin Days destroyed vs block number, as of June 17th, 2011.&lt;br /&gt;
[[File:June-17th-days-destroyed.png]]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Abe]] Alternate Block Explorer&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Economics]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Deflationary_spiral&amp;diff=69463</id>
		<title>Deflationary spiral</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Deflationary_spiral&amp;diff=69463"/>
		<updated>2022-09-26T08:57:02Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Deflationary spiral&#039;&#039;&#039; is an economic argument that proposes that runaway deflation can eventually lead to the collapse of the currency given certain conditions and constraints. It is a common criticism made against the viability of [[Bitcoin]].&lt;br /&gt;
The ‘deflationary spiral’ is a real condition that affects the popular fractional reserve backing system.  Bitcoin is not affected by this because it is fundamentally different from popular currency. &lt;br /&gt;
&lt;br /&gt;
Deflation is a decline in the general price level.  Deflation occurs when the price of goods and services, relative to a specific measure, declines.  It is not necessarily that the value of the goods and services themselves declined, but can be because the value of the currency itself increased.  &lt;br /&gt;
&lt;br /&gt;
For example, let us consider an economy comprised entirely of beef and oranges where the medium of exchange is gold.  Both beef and oranges can decay and are not consistent, and therefore cannot be used as a currency.  In order to trade, people exchange gold for either beef or oranges.  They see gold as a store of value that they can use to purchase beef or oranges in the future.  What happens when the economy grows and we can produce more beef and more oranges?  The price of both beef and oranges will decline.  To the extent our productive capacity for both beef and oranges increased at the same pace, the exchange value between the two (the amount of beef for a given number of oranges) will likely stay the same; however, those who held gold as a store of value would now be able to purchase more beef and more oranges for a given amount of gold.  &lt;br /&gt;
&lt;br /&gt;
A deflationary spiral occurs when the value of a currency, relative to the goods in an economy, increases continually as a result of hoarding.  As the value of the currency relative to the goods in the economy increase, people have the incentive to hoard the currency, because by merely holding it, they hope to be able to purchase more goods for less money in the future.  A lack of currency available in the market causes the price of goods to further decrease, resulting in more hoarding.  &lt;br /&gt;
&lt;br /&gt;
In our economy of beef and oranges, it is easy to see how this could occur.  First, people see a significant gain in productivity on the horizon; we will be able to produce more beef and oranges with the same effort in the future.  The supply of gold, however, is fixed.  As a result, people desire to hold gold, because they will be able to purchase more beef and oranges with their gold in the future than they can now.  This will lead to a decline in the price of beef and oranges as measured by gold (an increase in the value of gold).  Limiting the amount of currency in the market available for exchange can also make transactions more difficult.  In a complex system where we do not only have beef, oranges, and gold, this can result in a deflationary spiral where no one wishes to spend their currency and the economy itself slows as a result of the limited number of transactions.  Limited demand with fixed output results in a decline in prices, which further exacerbates the problem.  &lt;br /&gt;
&lt;br /&gt;
Alternative explanation:&lt;br /&gt;
A deflationary spiral occurs when the price of a traded article increases at some given rate, which causes people to hoard it. As people hoard the commodity, less and less of it is available thus causing the price to go up even more. In turn, even more, people hoard the commodity. Thus a feedback loop or spiral of deflation occurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In practice, there is only a limited amount of &#039;value&#039; that can be placed upon a good before it becomes too attractive to trade for other goods (thus ending the spiral).  The only time that the &#039;Deflationary Spiral&#039; can happen (to its conclusion) is when people can foresee a time when they are forced to use that particular traded article.  See below for a dissenting argument on this topic.  &lt;br /&gt;
&lt;br /&gt;
==In The Popular Fractional Reserve Banking System==&lt;br /&gt;
The popular money that we trade consists of the principal of the loans of other people.  All this money must be someday &#039;repaid.&#039;  When people save (pay back their loans), the total monetary supply contracts.  When people spend (take out loans), the total monetary supply is increasing.&lt;br /&gt;
&lt;br /&gt;
If you have people who are hoarding money, the principal still needs to be repaid. Hoarding will make it harder for other people in the economy to pay back their loans.&lt;br /&gt;
&lt;br /&gt;
Because people foresee a time when they need to pay back their loans (a future fixed expense), when the value of the money starts to increase (deflation), those with loans will endeavor to pay back the loans quicker.  This causes the money supply to reduce, reducing the total amount of money available for repayment of loans, again making it harder for people to pay back what they owe.&lt;br /&gt;
&lt;br /&gt;
This Deflationary spiral diverts funds away from the legitimate economy, to the repayment of debt.  Causing the economy to stagnate and stop.&lt;br /&gt;
&lt;br /&gt;
==Bitcoin==&lt;br /&gt;
The key difference is that people don&#039;t foresee a fixed cost (unit amount) that they must pay with Bitcoin.  If the value of the Bitcoins that they own increases, then any future cost will take a proportionally smaller amount of Bitcoins.  There isn&#039;t any fixed incentive to holding Bitcoin other than speculation.&lt;br /&gt;
&lt;br /&gt;
If the economy that uses Bitcoin grows, the per-unit value of Bitcoin proportionally increases also.&lt;br /&gt;
&lt;br /&gt;
Everything is the opposite of the popular fractional reserve banking system (because Bitcoin isn&#039;t debt but an asset).  Bitcoins &#039;&#039;&#039;only&#039;&#039;&#039; deflate in value when the Bitcoin Economy is &#039;&#039;&#039;growing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Because the Deflationary spiral is a real problem in the traditional monetary system, doesn&#039;t necessarily mean that it will also be a problem in the Bitcoin economy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;Elaborate controls to make sure that currency is not produced in greater numbers is not something any other currency, like the dollar or the euro, has,&amp;quot; says Russ Roberts, professor of economics at George Mason University. The consequence will likely be slow and steady deflation, as the growth in circulating bitcoins declines and their value rises.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;That is considered very destructive in today&#039;s economies, mostly because when it occurs, it is unexpected,&amp;quot; says Roberts. But he thinks that won&#039;t apply in an economy where deflation is expected. &amp;quot;In a Bitcoin world, everyone would anticipate that, and they know what they got paid would buy more then than it would now.&amp;quot;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
--MIT Technology Review: [http://www.technologyreview.com/computing/37619/page2/ What Bitcoin Is, and Why It Matters], May 25, 2011&lt;br /&gt;
&lt;br /&gt;
==Alternative Argument==&lt;br /&gt;
A deflationary spiral occurs when there is an incentive to hoard because of declining prices, which results in even less available currency on the market, further perpetuating declining prices.  &lt;br /&gt;
&lt;br /&gt;
How could this occur in the Bitcoin market?  &lt;br /&gt;
&lt;br /&gt;
1. Limited price stability has a negative impact on the acceptance of a currency.  Vendors do not wish to speculate on the price of currency when selling goods or services.&lt;br /&gt;
&lt;br /&gt;
2.  Once prices do stabilize in the future, there will always be the knowledge that the number of Bitcoins in the market is limited.  As a result, to the extent the GDP of the Bitcoin economy increases (the total value of all Bitcoin transactions completed increases in &amp;quot;real&amp;quot; terms), there will continue to be price deflation. The expectation of future deflation means that there will be a discrepancy in perceived values between parties valuing bitcoin on longer or shorter time horizons. &lt;br /&gt;
The apparent over-pricing of bitcoin from the perspective of people engaging in short-term transactions will encourage the creation and adoption of competing systems.&lt;br /&gt;
&lt;br /&gt;
While this is not a traditional deflationary spiral, the constraint on the actual money supply can produce the same result, which is a limit on the value of goods and services transacted using Bitcoins.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Controlled inflation]]&lt;br /&gt;
* [[Bitcoin Days Destroyed]]&lt;br /&gt;
* [http://bitcoin.stackexchange.com/questions/408/does-hoarding-really-hurt-bitcoin Does hoarding really hurt bitcoin?] on stackexchange.com&lt;br /&gt;
* [http://www.jjgames.com/page/bitcoin-spending-during-deflation BitCoin Consumption Increases During Deflation ]&lt;br /&gt;
&lt;br /&gt;
[[Category:Economics]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Fractional_Reserve_Banking_and_Bitcoin&amp;diff=69462</id>
		<title>Fractional Reserve Banking and Bitcoin</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Fractional_Reserve_Banking_and_Bitcoin&amp;diff=69462"/>
		<updated>2022-09-26T08:55:14Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling, grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While Fractional Reserve Banking with Bitcoin is possible, there is [https://bitcointalk.org/index.php?topic=51899.0 disagreement] over what it would entail. Much discussion occurred on the [[Talk:Myths#Fractional_reserve_banking_with_Bitcoin_is_fundamentally_different|Myths Talk Page]].&lt;br /&gt;
&lt;br /&gt;
==Keynesian Viewpoint==&lt;br /&gt;
Fractional Reserve Banking with Bitcoin is possible and practical. It is already implemented with [https://coinlenders.com CoinLenders]. There is no fundamental difference between classical currencies and Bitcoin as it applies to banking. Banks will still be free to take in bitcoins and present them to customers as &amp;quot;available for withdrawal&amp;quot; while still lending most of those bitcoins to a different customer for a profit. Some of those bitcoins will be held in reserves in case of a bank run. It will be up to the bank to hold a sufficient supply of reserves in order to prevent insolvency in the event of a bank run. Central banks were established to enforce reserve requirements and so, with Bitcoin lacking a central bank, some banks will almost surely collapse, taking their customers&#039; deposits with them. A large bitcoin exchange could tomorrow lend out 10,000 bitcoins to an individual to start a business. The [http://www.federalreserve.gov/faqs/money_12845.htm money supply] would thus increase by 10,000 and we would instantly have Fractional Reserve Banking. The same amount of bitcoins would still exist in the [[Block Chain]], but the body of people participating in the Bitcoin economy would have the perception that more bitcoins exist. If the value of a bitcoin is stable for a long period of time, then Fractional Reserve Banking is &#039;&#039;inevitable&#039;&#039;. &amp;lt;!--  Rational: see talk page. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [http://en.wikipedia.org/wiki/Fractional-reserve_banking Fractional reserve banking].&lt;br /&gt;
&lt;br /&gt;
The Monetary Base of Bitcoin is limited to 21 million. But because Fractional Reserve Banking is possible, the money supply of bitcoins (which includes demand deposits) can exceed 21 million by a factor of x where x is the [http://en.wikipedia.org/wiki/Money_multiplier Money Multiplier].&lt;br /&gt;
&lt;br /&gt;
==Austrian Viewpoint==&lt;br /&gt;
&lt;br /&gt;
According to the [http://wiki.mises.org/wiki/Fractional_reserve_banking Austrian viewpoint]:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Fractional-reserve banking (or FRB) is the widespread banking practice in which only a fraction of a bank&#039;s demand deposits are kept in reserve and available for immediate withdrawal (as cash and other highly liquid assets), whilst the remaining cash is lent out to borrowers (and so is never actually available for immediate withdrawal to legitimate deposit-holders).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for fractional reserve banking to affect the money supply, the debt instruments issued by the bank (for example, bank notes or demand deposits) must be accepted as if they were money proper, in other words, they must be money-substitutes. This is explained for example by [http://mises.org/rothbard/austrianmoneysupply.pdf Rothbard in Austrian Definitions of the Supply of Money]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;And so long as demand deposits are accepted as equivalent to standard money, they will function as part of the money supply.&lt;br /&gt;
&lt;br /&gt;
It is important to recognize that demand deposits are not automatically part of the money supply by virtue of their very existence; they continue as equivalent to money only so long as the subjective estimates of the sellers of goods on the market think that they are so equivalent and accept them as such in exchange.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the historical cases of money based on gold or government-issued fiat, the reason why money-substitutes are accepted as if they were money proper is that the money proper has in some circumstances high transaction costs (for example, gold might be too heavy to carry around, or the buyer and seller are not at the same location and want to perform the exchange electronically), or are not legally permitted (normal people are not allowed to obtain central bank reserves). This creates a demand for forms of money that have lower transaction costs. With gold/fiat, this requires the creation of debt instruments, which then, after being generally accepted in exchange, become money substitutes and a part of the money supply.&lt;br /&gt;
&lt;br /&gt;
The situation with Bitcoin is different because other forms can be created without debt instruments, for example [[Casascius physical bitcoins]] or [[Bitbills]]. Bitcoin in its &amp;quot;classical&amp;quot; form is similar to the function of a bank account (allowing electronic transfers of balances) even though there is no debt instrument. Any object that can store 64 bytes of data (size of Bitcoin keypair) can, hypothetically, be used as a form of Bitcoin. In some cases, shorter forms than 64 bytes are possible too (for example, [[Mini_private_key_format|mini private key format]] used by Casascius physical bitcoins). Issuers of Bitcoin-based debt instruments, if they expect these instruments to be accepted in exchange, need to create demand for them as a method of payment outside of the Bitcoin network. This is difficult, because a transaction that occurs outside of the Bitcoin network is incompatible with it, so people equipped with software for handling only pure Bitcoin transactions cannot accept it. Furthermore, they also would need to compete against not only Bitcoin but other currencies, payment methods, and services.&lt;br /&gt;
&lt;br /&gt;
Currently, Bitcoin-based debt instruments are restricted to a narrow field of uses. Exchanges allow these instruments to be traded against other currencies. E-wallets allow inter-wallet transfers. GLBSE allows the floating of shares or other contractual arrangements. However, these debt instruments are, in general, outside of these narrow fields, not accepted for exchange as if they were native Bitcoins. They rarely even circulate outside of the internal transactions of the providers of these services. There are very few exceptions, such as the redeemable Mt. Gox code. If the service provider attempted to conduct FRB by overissuing these instruments, they would be exposed to the risk of having them redeemed too quickly. One possible way of mitigating this risk is to institute a suspension of specie payments (for example, Mt. Gox. having a default withdrawal limit).&lt;br /&gt;
&lt;br /&gt;
If in the future, P2P exchanges and distributed wallets are available (both have been suggested already at bitcointalk.org forums), this would decrease the demand for Bitcoin-based debt instruments even further.&lt;br /&gt;
&lt;br /&gt;
Historically, in all known situations where an overissue of Bitcoin-based debt instruments was produced, this resulted either in a voluntary elimination of the excess instruments (Mt. Gox hack from June 2011), bankruptcy (the demise of mybitcoin), or a new investor bailout (the demise of bitomat.pl and subsequent takeover by Mt. Gox). Here we have empirical evidence that FRB with Bitcoin is possible.&lt;br /&gt;
&lt;br /&gt;
Putting all this together, there are several steps that need to be addressed regarding Bitcoin-FRB and money supply:&lt;br /&gt;
&lt;br /&gt;
# overissue of debt instruments (this would cause FRB)&lt;br /&gt;
# general acceptance of these instruments as a method of payment (this would mean the instruments need to be included in the money supply)&lt;br /&gt;
# market price of these instruments at a different rate than the reserve ratio of the issuer (this would cause inflation or deflation)&lt;br /&gt;
&lt;br /&gt;
Even if we assume that an overissue is possible in long term, there are significant obstacles in phases 2 and 3, as elaborated above. It is therefore unlikely that even if Bitcoin-FRB became widespread, this would significantly affect the money supply of Bitcoins or inflation/deflation.&lt;br /&gt;
[[Category:Economics]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Bitcoin_Improvement_Proposals&amp;diff=69461</id>
		<title>Bitcoin Improvement Proposals</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Bitcoin_Improvement_Proposals&amp;diff=69461"/>
		<updated>2022-09-26T08:53:14Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &#039;&#039;&#039;Bitcoin Improvement Proposal&#039;&#039;&#039; (&#039;&#039;&#039;BIP&#039;&#039;&#039;) is a design document for introducing features or information to Bitcoin. This is the standard way of communicating ideas since Bitcoin has no formal structure.&lt;br /&gt;
&lt;br /&gt;
The first BIP ([[BIP 0001]]) was submitted by Amir Taaki on 2011-08-19 and described what a BIP is.&lt;br /&gt;
&lt;br /&gt;
== Types ==&lt;br /&gt;
There are three types of BIPs:&lt;br /&gt;
* &#039;&#039;&#039;Standards Track BIPs&#039;&#039;&#039; - Changes to the network protocol, block or transaction validation, or anything affecting interoperability.&lt;br /&gt;
* &#039;&#039;&#039;Informational BIPs&#039;&#039;&#039; - Design issues, general guidelines. This type of BIP is NOT for proposing new features and does not represent community consensus&lt;br /&gt;
* &#039;&#039;&#039;Process BIPs&#039;&#039;&#039; - Describes or proposes a change in process. Similar to Standards BIPs but apply outside the Bitcoin protocol.&lt;br /&gt;
&lt;br /&gt;
== Layers ==&lt;br /&gt;
[[BIP 0123]] established four layers for Standards BIPs:&lt;br /&gt;
# &#039;&#039;&#039;Consensus&#039;&#039;&#039;&amp;lt;ref&amp;gt;Further divided into [[hardfork|hard]] and [[softfork]]s.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Peer Services&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;API/RPC&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Applications&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Workflow ==&lt;br /&gt;
As described in [[BIP 0001]] the workflow of a BIP is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:BIP Workflow.png]]&lt;br /&gt;
&lt;br /&gt;
== List of BIPs ==&lt;br /&gt;
{{BipMoved|README.mediawiki|README}}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Hardfork Wishlist]]&lt;br /&gt;
* [[Protocol documentation]]&lt;br /&gt;
* [[:Category:BIP]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BIP| ]]&lt;br /&gt;
&lt;br /&gt;
[[es:Propuestas de mejora de Bitcoin]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Debit_cards&amp;diff=69460</id>
		<title>Debit cards</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Debit_cards&amp;diff=69460"/>
		<updated>2022-09-26T08:49:23Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar nd spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists cryptocurrency-fueled debit cards.&lt;br /&gt;
&lt;br /&gt;
Created: April 2020.&lt;br /&gt;
Last update: August 2020.&lt;br /&gt;
&lt;br /&gt;
Sources include [https://docs.google.com/spreadsheets/d/1DRbTeMCzb4UeXI0YlAzBxMc2u2i0cN_17Ql6eMngK6E/edit#gid=0 this spreadsheet], this [https://www.cryptowisser.com/debit-cards/ simplistic table], this [https://bitcointalk.org/index.php?topic=5223719.0 Bitcointalk discussion] and others. &#039;&#039;&#039;Please contribute any edits here&#039;&#039;&#039;, as those other sources are not actively maintained, are less trustworthy, and/or more superficial.&lt;br /&gt;
&lt;br /&gt;
Whenever possible, link to the source. KYC requirements you&#039;ve personally experienced may lack links, though links to screenshots ([https://imgur.com/a/vGFwSCj like this]) or forum/Reddit/etc posts would be helpful.&lt;br /&gt;
&lt;br /&gt;
Legend / notes:&lt;br /&gt;
* &#039;&#039;DL&#039;&#039; = Driver License&lt;br /&gt;
* &#039;&#039;Est.&#039;&#039; = Established, (Mon) YYYY&lt;br /&gt;
* &#039;&#039;POA&#039;&#039; = Proof of Address. Some are strict, e.g. utility bills, others less strict, e.g. bank statements or government correspondence&lt;br /&gt;
* &#039;&#039;SoF&#039;&#039; = Source of Funds, requested by some companies before or during using the card&lt;br /&gt;
* &#039;&#039;tx&#039;&#039; = transaction&lt;br /&gt;
* HQ links may point to the contact page, to save space&lt;br /&gt;
* Card cost may include issuance and shipping/delivery cost; add links for details&lt;br /&gt;
* Maintenance fees are independent of withdrawals or purchases; they are required to keep the card active&lt;br /&gt;
* &amp;quot;Fee structure&amp;quot; should &#039;&#039;&#039;link&#039;&#039;&#039; to a page detailing the maintenance (though usually 0), [https://wirexapp.com/fees-and-limits deposit, transfer, exchange, transaction, and/or issuance fees], though due to the volatility of crypto, they&#039;re rather meaningless. The issuance fee/cost can also be explicitly stated in the &amp;quot;Card cost&amp;quot; column.&lt;br /&gt;
* Limits indicate withdrawal, maximum balance, or other limits. Always link to the source.&lt;br /&gt;
* non-custodial = you hold your funds, not the card company&lt;br /&gt;
* Given the fluctuations of crypto, rewards are generally insignificant, so there&#039;s no column for them. Link to the rewards page in the &amp;quot;Notes&amp;quot; if you want.&lt;br /&gt;
* All KYC requires at least an identification document (Passport, Driver&#039;s License, Identity Card), so only &#039;&#039;other&#039;&#039; KYC measures will be mentioned in the KYC column. They can be more or less invasive (e.g. live video verification w/ ID, vs. just a selfie).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;text-align: center; background-color: #f0f0ff;&amp;quot;&lt;br /&gt;
! Company&lt;br /&gt;
! Status&lt;br /&gt;
! HQ&lt;br /&gt;
! Est.&lt;br /&gt;
! Available to residents of&lt;br /&gt;
! KYC process&lt;br /&gt;
! Card cost&lt;br /&gt;
! Coins accepted&lt;br /&gt;
! Fee structure&lt;br /&gt;
! Limits&lt;br /&gt;
! Physical card?&lt;br /&gt;
! Virtual card?&lt;br /&gt;
! Web app?&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [http://advcash.com AdvCash]&lt;br /&gt;
| {{Yes|active}}&lt;br /&gt;
| [https://advcash.gi/en/contacts/ GI]&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; [https://bitcointalk.org/index.php?topic=1011381.0 2015]&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; EU, Turkey, Israel. Upcoming [https://bitcointalk.org/index.php?topic=1011381.msg54232912#msg54232912 Russia] + World, [US](https://advcash.gi/en/faq/) currently banned.&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; ID, address, phone number&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; [https://advcash.gi/en/solutions/card $/€7.99 virtual, $/€14.99 physical]&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; [https://advcash.gi/en/fees/ BTC, ETH, LTC, BCH, XRP, ZEC, TRX?]&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; Free maintenance, [https://advcash.gi/en/fees/ fees for deposit &amp;amp; withdrawal]&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; [https://advcash.gi/en/faq/ Verified]: $50k/day, $300k/mo&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; {{Yes}}&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; {{Yes}}&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; {{Yes}}&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt; Cards available only to verified users. [https://bitcointalk.org/index.php?topic=1011381.0 Extensive Bitcointalk thread]. Possible KYC [https://advcash.gi/en/faq/ even for non-verified operations].&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://bitpay.com/card/ BitPay]&lt;br /&gt;
| &amp;lt;!-- Active? --&amp;gt; {{Yes}}&lt;br /&gt;
| &amp;lt;!-- HQ --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; 2011&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; [https://support.bitpay.com/hc/en-us/articles/115005033763-Where-is-the-BitPay-Card-available- USA only]&amp;lt;br/&amp;gt;[https://support.bitpay.com/hc/en-us/articles/115003003743-Where-can-I-use-my-BitPay-Card- can&#039;t be used in some countries]&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; {{No|[https://support.bitpay.com/hc/en-us/articles/115003003463-What-kind-of-information-will-you-need-from-me-for-a-BitPay-Card-order- SSN]}}, SMS verification&amp;lt;br/&amp;gt;[https://support.bitpay.com/hc/en-us/articles/115003014446-Is-a-Credit-Check-Required-for-Me-to-Obtain-a-Card- no credit check], DL photo files from app&amp;lt;br/&amp;gt;[https://support.bitpay.com/hc/en-us/articles/360037486651-How-do-I-complete-the-BitPay-ID-process- separate BitPay ID] for [https://bitcointalk.org/index.php?topic=5173083.0 larger tx]&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; $10&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; BTC, BCH, ETH, XRP; [https://support.bitpay.com/hc/en-us/articles/115003028206-How-do-I-add-funds-to-my-BitPay-Card- ACH, direct deposit]&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; [https://support.bitpay.com/hc/en-us/articles/115002990663-What-fees-will-I-pay-to-use-the-BitPay-Card- 3% currency conversion]&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; [https://support.bitpay.com/hc/en-us/articles/115003013586-What-are-the-ATM-withdrawal-limits-on-my-Card- $1500/day ATM], [https://support.bitpay.com/hc/en-us/articles/115003014306-How-Much-Money-Can-I-Load-onto-My-Card-What-Is-My-Daily-Spending-Limit- $10k/day, max $25k balance]&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; {{Yes|Mastercard}} issued by Metropolitan Commercial Bank&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; {{Yes|After KYC, before activating physical card}}&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; {{Yes|[https://support.bitpay.com/hc/en-us/articles/115003013546-How-can-I-check-my-BitPay-Card-balance-and-review-transactions- Yes]}}, [https://support.bitpay.com/hc/en-us/articles/360031288111-How-to-Navigate-in-the-BitPay-Dashboard Dashboard]&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt; [https://bitcointalk.org/index.php?topic=4355205.0 Antibitpay]. The wallet app can hold stablecoins: PAX, USDC, USDG, BUSD.&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://card.binance.com/en/ Binance]&lt;br /&gt;
| &amp;lt;!-- Active? --&amp;gt; {{No}}&lt;br /&gt;
| &amp;lt;!-- HQ --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://www.bitsacard.com Bitsa]&lt;br /&gt;
| {{Yes|active}}&lt;br /&gt;
| [https://bitsa.zendesk.com/hc/en-150/articles/360005955378-Where-will-my-money-be-is-it-safe- ES?]&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; [https://bitcointalk.org/index.php?topic=5211795.0 Dec 2019]&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; [https://bitsa.zendesk.com/hc/en-150/articles/360005955038-In-which-countries-is-Bitsa-card-available- EU countries] / [https://bitsa.zendesk.com/hc/en-150/articles/360005965177-Which-are-the-requirements-to-open-a-Bitsa-account- SEPA zone]&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; [https://bitsa.zendesk.com/hc/en-150/articles/360005965477-How-do-I-perform-the-identity-verification- ID] + selfie w/ ID&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; [https://bitsa.zendesk.com/hc/en-150/articles/360005955278-How-much-does-it-cost-to-have-a-Bitsa-account- 0]&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; &amp;quot;Top it up by card, transfer, cash or blockchain tokens.&amp;quot;&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; [https://bitsa.zendesk.com/hc/en-150/articles/360005963558-What-is-the-maintenance-fee- 0 maint. fee]&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; [https://bitsa.zendesk.com/hc/en-150/articles/360005968837-How-much-can-I-withdraw-in-cash- 450€/day, 2500-5000€/mo]&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; {{Yes|[https://bitsa.zendesk.com/hc/en-150/articles/360005965677-How-do-I-add-physical-card-to-my-account- Yes]}}&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; {{Yes|[https://bitsa.zendesk.com/hc/en-150/articles/360005965677-How-do-I-add-physical-card-to-my-account- Yes]}}&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; {{No|[https://bitsa.zendesk.com/hc/en-150/articles/360005954998-Can-I-login-to-my-Bitsa-account-from-a-computer- Not yet]}}&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt; [https://bitsa.zendesk.com/hc/en-150/articles/360005967758-Does-my-card-have-associated-a-wallet-to-reload-it-with-cryptocurrencies- Non-custodial funds]. [https://bitcointalk.org/index.php?topic=5211795.0 Minimal Bitcointalk presence]. [https://bitsa.zendesk.com/hc/en-150/articles/360005975877-Can-I-make-a-transfer-to-top-up-my-Bitsa-from-the-account-of-a-family-member-or-friend- Odd English].&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://www.bitwala.com/card/ Bitwala]&lt;br /&gt;
| &amp;lt;!-- Active? --&amp;gt; {{Yes}}&lt;br /&gt;
| &amp;lt;!-- HQ --&amp;gt; Germany&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; [https://support.bitwala.com/hc/en-gb/articles/360000382040-When-was-Bitwala-founded- 2015]&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; [https://support.bitwala.com/hc/en-gb/articles/360000650360-Who-can-open-a-Bitwala-account- EEA, .ch]&amp;lt;br/&amp;gt; [https://support.bitwala.com/hc/en-gb/articles/360000377840 no US persons]&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; {{No|[https://support.bitwala.com/hc/en-gb/articles/360002220519-What-is-a-Proof-of-Address-POA-document- POA] during [https://support.bitwala.com/hc/en-gb/articles/360010537939-Why-is-video-identification-necessary- video call] with [https://support.bitwala.com/hc/en-gb/articles/360000377980-What-is-IDnow- IDnow], [https://support.bitwala.com/hc/en-gb/articles/360010427400-Why-do-we-check-transactions-and-ask-for-the-source-of-funds- SoF and routine checks], [https://support.bitwala.com/hc/en-gb/articles/360010427560-Why-has-my-account-been-closed- unexplained terminations]}}&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; [https://support.bitwala.com/hc/en-gb/articles/360000609180-What-are-the-Bitwala-account-fees- 0]&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; [https://support.bitwala.com/hc/en-gb/articles/360001489000-How-to-top-up-my-account- Bitcoin, SEPA]&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; [https://www.bitwala.com/pricing/ 1% crypto]&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; [https://support.bitwala.com/hc/en-gb/articles/360000670079-What-is-the-maximum-purchase-amount- €15k/tx], [https://support.bitwala.com/hc/en-gb/articles/360000658660-What-are-the-trading-limits- €30k/wk]&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; {{Yes|[https://support.bitwala.com/hc/en-gb/articles/360000872680-What-is-the-Bitwala-debit-card- Mastercard]}}&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; {{No|[https://support.bitwala.com/hc/en-gb/articles/360000381720-Do-you-offer-virtual-cards- No]}}&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://crypto.com Crypto.com]&lt;br /&gt;
| &amp;lt;!-- Active? --&amp;gt; {{Yes}}&lt;br /&gt;
| &amp;lt;!-- HQ --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; [https://help.crypto.com/en/articles/1341663-when-will-i-get-my-mco-visa-card USA, Singapore, APAC, EU]&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; {{Yes|5 MCO VISA cards}}&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; {{No}}&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://www.jubiter.com/card Jubiter]&lt;br /&gt;
| &amp;lt;!-- Active? --&amp;gt; {{No|[https://bitcointalk.org/index.php?topic{{urlencode:=}}5223719.msg54333083#msg54333083 Likely KYC scam]}}&lt;br /&gt;
| &amp;lt;!-- HQ --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt; [https://bitcointalk.org/index.php?topic=5223719.msg54333083#msg54333083 Possible scam] asking for KYC documentation, then claiming they&#039;ve just stopped offering cards. [https://bitcointalk.org/index.php?topic=6047196 Doesn&#039;t support bech32 withdrawals].&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://monolith.xyz Monolith]&lt;br /&gt;
| {{Yes|active}}&lt;br /&gt;
| &amp;lt;!-- HQ --&amp;gt; UK&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; [https://support.monolith.xyz/hc/en-us/articles/360007239698-Which-countries-are-supported-by-Monolith- EEA], AFTA, special member territories&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; ID photo, [https://imgur.com/a/vGFwSCj POA photo], selfie&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; [https://support.monolith.xyz/hc/en-us/articles/360001403598-What-are-the-fees-associated-with-Monolith-Visa-Debit-Card- 0]&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; ETH&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; [https://support.monolith.xyz/hc/en-us/articles/360001403598-What-are-the-fees-associated-with-Monolith-Visa-Debit-Card- Fees]&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; {{Yes|[https://support.monolith.xyz/hc/en-us/articles/360001345338-What-is-the-Monolith-Visa-Debit-Card- VISA]}}&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; {{No}}&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt; Non-custodial wallet. Formerly &amp;quot;TokenCard&amp;quot;. [https://github.com/tokencard/contracts Open source]. Sleek website. The app needs minimal permissions.&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://wirexapp.com Wirex]&lt;br /&gt;
| {{Yes|active}}&lt;br /&gt;
| &amp;lt;!-- HQ --&amp;gt; UK&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; [https://bitcointalk.org/index.php?topic=1392468.0 May 2016]&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; [https://wirexapp.com/help/article/the-list-of-supported-countries-0027 EEA, APAC etc, no USA]&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; {{No|[https://wirexapp.com/help/article/why-you-need-to-verify-your-source-of-funds-and-how-to-do-it-0013 Verify source of funds, random re-verification]}}&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; [https://wirexapp.com/fees-and-limits 0], except APAC&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; [https://wirexapp.com/fees-and-limits Fees]&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; [https://wirexapp.com/fees-and-limits Limits]&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; {{Yes|VISA by Contis}}&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; {{Yes|[https://wirexapp.com/help/article/how-do-i-order-a-wirex-card-0028 Yes]}}&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt; [https://wirexapp.com/fees-and-limits Rewards]. [https://bitcointalk.org/index.php?topic=1392468.0 Extensive Bitcointalk thread].&lt;br /&gt;
|-&lt;br /&gt;
! Company !! Status !! HQ !! Established || Available to residents of !! KYC process !! Card cost !! Coins accepted !! Fee structure !! Limits !! Physical card? || Virtual card? || Web app? || Notes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To add a card, copy the section below at the bottom of the table above the last (footer) row. Whenever possible, link to references.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | [https://... Company name]&lt;br /&gt;
| &amp;lt;!-- Active? --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- HQ --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Est. --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Availability --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- KYC process --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Card cost --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Coins --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Fee structure --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Limits --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Physical --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Virtual --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Web app --&amp;gt; ?&lt;br /&gt;
| &amp;lt;!-- Notes --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Miner_fees&amp;diff=69459</id>
		<title>Miner fees</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Miner_fees&amp;diff=69459"/>
		<updated>2022-09-26T08:46:46Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling and grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Miner fees&#039;&#039;&#039; are a fee that spenders may include in any Bitcoin on-chain [[transaction]].  The fee may be collected by the miner who includes the [[transaction]] in a [[block]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Every Bitcoin transaction spends zero or more bitcoins to zero or more recipients.  The difference between the amount being spent and the amount being received is the transaction fee (which must be zero or more).&lt;br /&gt;
&lt;br /&gt;
Bitcoin&#039;s design makes it easy and efficient for the spender to specify how much fee to pay, whereas it would be harder and less efficient for the recipient to specify the fee, so by custom the spender is almost always solely responsible for paying all necessary Bitcoin transaction fees.&lt;br /&gt;
&lt;br /&gt;
When a miner creates a [[block proposal]], the miner is entitled to specify where all the fees paid by the transactions in that block proposal should be sent.  If the proposal results in a valid block that becomes a part of the [[best block chain]], the fee income will be sent to the specified recipient.  If a valid block does not collect all available fees, the amount not collected is permanently destroyed; this has happened on more than 1,000 occasions from 2011 to 2017,&amp;lt;ref&amp;gt;[https://medium.com/@alcio/how-to-destroy-bitcoins-255bb6f2142e How to Destroy Bitcoins] by Antoine Le Calvez, Medium.com, retrieved 2018-01-03&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://twitter.com/random_walker/status/948590112576868354 &amp;quot;Looks like back in 2012, when tx fees started becoming common, some miners were claiming the standard 50 BTC and leaving all tx fees unclaimed.&amp;quot;], Arvind Narayanan, Twitter.com, posted 2018-01-03, retrieved 2018-01-03&amp;lt;/ref&amp;gt; with decreasing frequency over time.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The market for block space==&lt;br /&gt;
&lt;br /&gt;
[[File:fee.png|thumb|Receiving the fees from hundreds of transactions (0.44 BTC)]]&lt;br /&gt;
&lt;br /&gt;
The minimum fee necessary for a transaction to confirm varies over time and arises from the intersection of supply and demand in Bitcoin&#039;s free market for block space.&amp;lt;ref&amp;gt;[https://medium.com/@bramcohen/how-wallets-can-handle-transaction-fees-ff5d020d14fb Bram Cohen blog post with helpful background to the market for block space]&amp;lt;/ref&amp;gt;  On the supply size, Bitcoin has a [[maximum block size]] (currently one million vbytes) that limits the maximum amount of transaction data that can be added to a block.&lt;br /&gt;
&lt;br /&gt;
However, Bitcoin blocks are not produced on a fixed schedule—the system targets an average of one block every 10 minutes over long periods of time but, over short periods of time, a new block can arrive in less than a second or more than an hour after the previous block.  As the number of blocks received in a period of time varies, so does the effective maximum block size.  For example, in the illustration below we see the average time between blocks based on the time they were received by a node during a one-day period (left axis) and the corresponding effective maximum block size implied by that block production rate (right axis, in million [[vbytes]]):&lt;br /&gt;
&lt;br /&gt;
[[File:Time-between-blocks.png|center]]&lt;br /&gt;
&lt;br /&gt;
During periods of higher effective maximum block sizes, this natural and unpredictable variability means that transactions with lower fees have a higher than normal chance of getting confirmed—and during periods of lower effective maximum block sizes, low-fee transactions have a lower than normal chance of getting confirmed.&lt;br /&gt;
&lt;br /&gt;
On the demand side of Bitcoin&#039;s free market for block space, each spender is under unique constraints when it comes to spending their bitcoins.  Some are willing to pay high fees; some are not.  Some desire fast confirmation; some are content with waiting a while.  Some use wallets with excellent dynamic fee estimation; some do not.  In addition, demand varies according to certain patterns, with perhaps the most recognizable being the weekly cycle where fees increase during weekdays and decrease on the weekend:&lt;br /&gt;
&lt;br /&gt;
[[File:Block-fees-dow.png|center]]&lt;br /&gt;
&lt;br /&gt;
Another less recognizable cycle is the intra-day cycle where fees wax and wane during the day:&lt;br /&gt;
&lt;br /&gt;
[[File:Block-fees-hod.png|center]]&lt;br /&gt;
&lt;br /&gt;
These variations in supply and demand create a market for block space that allows users to make a trade-off between confirmation time and cost. Users with high time requirements may pay a higher than average transaction fee to be confirmed quickly, while users under less time pressure can save money by being prepared to wait longer for either a natural (but unpredictable) increase in supply or a (somewhat predictable) decrease in demand.&lt;br /&gt;
&lt;br /&gt;
It is envisioned that over time the cumulative effect of collecting transaction fees will allow those creating new blocks to &amp;quot;earn&amp;quot; more bitcoins than will be mined from new bitcoins created by the new block itself.  This is also an incentive to keep trying to create new blocks as the creation of new bitcoins from the mining activity goes towards [[Controlled supply|zero in the future]].&amp;lt;ref&amp;gt;[https://bitcoincore.org/bitcoin.pdf Bitcoin: A Peer-to-Peer Electronic Cash], section 6: Incentive, Satoshi Nakamoto, 2008-11-01, retrieved 2018-01-22&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Feerates ==&lt;br /&gt;
&lt;br /&gt;
Perhaps the most important factor affecting how fast a transaction gets confirmed is its fee rate (often spelled feerate).  This section describes why feerates are important and how to calculate a transaction&#039;s feerate.&lt;br /&gt;
&lt;br /&gt;
Bitcoin transactions vary in size for a variety of reasons.  We can easily visualize that by drawing four transactions side-by-side based on their size (length) with each of&lt;br /&gt;
our examples larger than the previous one:&lt;br /&gt;
&lt;br /&gt;
[[File:Feerate1.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
This method of illustrating length makes it easy to also visualize an example maximum block size limit that constrains how much transaction data a miner can add to an individual block:&lt;br /&gt;
&lt;br /&gt;
[[File:Feerate2.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Since Bitcoin only allows whole transactions to be added to a particular block, at least one of the transactions in the example above can&#039;t be added to the next block.  So how does a miner select which transactions to include?  There&#039;s no required selection method (called &#039;&#039;policy&#039;&#039;) and no known way to make any particular policy required, but one strategy popular among miners is for each individual miner to attempt to maximize the amount of fee income they can collect from the transactions they include in their blocks.&lt;br /&gt;
&lt;br /&gt;
We can add a visualization of available fees to our previous illustration by keeping the length of each transaction the same but making the area of the transaction equal to its fee.  This makes the height of each transaction equal to the fee divided by the size, which is called the &#039;&#039;feerate:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Feerate3.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Although long (wide) transactions may contain more total fees, the high-feerate (tall) transactions are the most profitable to mine because their area is greatest compared to the amount of space (length) they take up in a block.  For example, compare transaction B to transaction D in the illustration above.  This means that miners attempting to maximize fee income can get good results by simply sorting by fee rate and including as many transactions as possible in a block:&lt;br /&gt;
&lt;br /&gt;
[[File:Feerate4.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Because only complete transactions can be added to a block, sometimes (as in the example above) the inability to include the incomplete transaction near the end of the block frees up space for one or smaller and lower-feerate transactions, so when a block gets near full, a profit-maximizing miner will often ignore all remaining transactions that are too large to fit and include the smaller transactions that do fit (still in highest-feerate order):&lt;br /&gt;
&lt;br /&gt;
[[File:Feerate5.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Excluding some rare and rarely-significant edge cases, the feerate sorting described above maximizes miner revenue for any given block size as long as none of the transactions depend on any of the other transactions being included in the same block (see the next section, &#039;&#039;feerates for dependent transactions,&#039;&#039; for more information about that).&lt;br /&gt;
&lt;br /&gt;
To calculate the feerate for your transaction, take the fee the transaction pays and divide that by the size of the transaction (currently based on [[weight units]] or [[vbytes]] but no longer based on [[bytes]]).  For example, if a transaction pays a fee of 2,250 nanobitcoins and is 225 vbytes in size, its feerate is 2,250 divided by 225, which is 10 nanobitcoins per vbyte (this happens to be the minimum fee [[Bitcoin Core]] Wallet will pay by default).&lt;br /&gt;
&lt;br /&gt;
When comparing to the feerate between several transactions, ensure that the units used for all of the measurements are the same.  For example, some tools calculate size in weight units and others use vbytes; some tools also display fees in a variety of [[Units|denominations]].&lt;br /&gt;
&lt;br /&gt;
== Feerates for dependent transactions (child-pays-for-parent) ==&lt;br /&gt;
&lt;br /&gt;
Bitcoin transactions can depend on the inclusion of other transactions in the same block, which complicates the feerate-based transaction selection described above.  This section describes the rules of that dependency system, how miners can maximize revenue while managing those dependencies, and how bitcoin spenders can use the dependency system to effectively increase the feerate of unconfirmed transactions.&lt;br /&gt;
&lt;br /&gt;
Each transaction in a block has a sequential order, one transaction after another.  Each block in the block chain also has a sequential order, one block after another.  This means that there&#039;s a single sequential order to every transaction in the [[best block chain]].&lt;br /&gt;
&lt;br /&gt;
[[File:Ancestor-feerate1.png|center]]&lt;br /&gt;
&lt;br /&gt;
One of Bitcoin&#039;s [[consensus rules]] is that the transaction where you receive bitcoins must appear earlier in this sequence than the transaction where you spend those bitcoins.  For example, if Alice pays Bob in transaction A and Bob uses those same bitcoins to pay Charlie in transaction B, transaction A must appear earlier in the sequence of transactions than transaction B.  Often this is easy to accomplish because transaction A appears in an earlier block than transaction B:&lt;br /&gt;
&lt;br /&gt;
[[File:Ancestor-feerate2.png|center]]&lt;br /&gt;
&lt;br /&gt;
But if transaction A and B both appear in the same block, the rule still applies: transaction A must appear earlier in the block than transaction B.&lt;br /&gt;
&lt;br /&gt;
This complicates the task of maximizing fee revenue for miners.  Normally, miners would prefer to simply sort transactions by feerate as described in the &#039;&#039;feerate&#039;&#039; section above.   But if both transaction A and B are unconfirmed, the miner cannot include B earlier in the block than A even if B pays a higher feerate.  This can make sorting by feerate alone less profitable than expected, so a more complex algorithm is needed.  Happily, it&#039;s only slightly more complex.&lt;br /&gt;
&lt;br /&gt;
For example, consider the following four transactions that are similar to those analyzed in the preceding &#039;&#039;feerate&#039;&#039; section:&lt;br /&gt;
&lt;br /&gt;
[[File:Ancestor-feerate3.png|center]]&lt;br /&gt;
&lt;br /&gt;
To maximize revenue, miners need a way to compare groups of related transactions to each other as well as to individual transactions that have no unconfirmed dependencies.  To do that, every transaction available for inclusion in the next block has its feerate calculated for it and all of its unconfirmed ancestors.  In the example, this means that transaction B is now considered as a combination of transaction B plus transaction A:&lt;br /&gt;
&lt;br /&gt;
[[File:Ancestor-feerate4.png|center]]&lt;br /&gt;
&lt;br /&gt;
Note that this means that unconfirmed ancestor transactions will be considered twice or more, as in the case of transaction A in our example which is considered once as part of the transaction B+A group and once on its own.  We&#039;ll deal with this complication in a moment.&lt;br /&gt;
&lt;br /&gt;
These transaction groups are then sorted in feerate order as described in the previous &#039;&#039;feerate&#039;&#039; section:&lt;br /&gt;
&lt;br /&gt;
[[File:Ancestor-feerate5.png|center]]&lt;br /&gt;
&lt;br /&gt;
Any individual transaction that appears twice or more in the sorted list has its redundant copies removed.  In the example case, we remove the standalone version of transaction A since it&#039;s already part of the&lt;br /&gt;
transaction B+A group:&lt;br /&gt;
&lt;br /&gt;
[[File:Ancestor-feerate6.png|center]]&lt;br /&gt;
&lt;br /&gt;
Finally, we see if we can squeeze in some smaller transactions into the end of the block to avoid wasting space as described in the previous &#039;&#039;feerate&#039;&#039; section.  In this case, we can&#039;t, so no changes are made.&lt;br /&gt;
&lt;br /&gt;
Except for some edge cases that are rare and rarely have a significant impact on revenue, this simple and efficient transaction sorting algorithm maximizes miner feerate revenue after factoring in transaction dependencies.&lt;br /&gt;
&lt;br /&gt;
Note: to ensure the algorithm runs quickly, implementations such as Bitcoin Core limit the maximum number of related transactions that will be collected together for consideration as one group.  As of Bitcoin Core 0.15.0 (released late 2017), this is a maximum of 25 transactions, although there have been proposals to increase this amount somewhat.&lt;br /&gt;
&lt;br /&gt;
For spenders, miner use of transaction grouping means that if you&#039;re waiting for an unconfirmed transaction that pays too low a feerate (e.g.  transaction A), you can create a child transaction spending an output of that transaction and which pays a much higher feerate (e.g. transaction B) to encourage miners to confirm both transactions in the same block.  Wallets that explicitly support this feature often call it &#039;&#039;child pays for parent (CPFP)&#039;&#039; because child transaction B helps pay for parent transaction A.&lt;br /&gt;
&lt;br /&gt;
To calculate the feerate for a transaction group, sum the fees paid by all the the group&#039;s unconfirmed transactions and divide that by the sum of the sizes for all those same transactions (in [[weight units]] or [[vbytes]]).  For example, if transaction A has a fee of 1,000 nanobitcoins and a size of 250 vbytes and transaction B has a fee of 3,000 nanobitcoins and a size of 150 vbytes, the combined feerate is (1,000 + 3,000)/(250 + 150), which is 10 nanobitcoins per vbyte.&lt;br /&gt;
&lt;br /&gt;
The idea behind ancestor feerate grouping goes back to at least 2013 and saw several different proposals to add it to Bitcoin Core, with it finally becoming available for production with the August 2016 release of Bitcoin Core 0.13.0.&amp;lt;ref&amp;gt;[https://bitcoincore.org/en/2016/08/23/release-0.13.0/#more-intelligent-transaction-selection-for-mining More intelligent transaction selection for mining], Bitcoin Core 0.13.0 release notes, BitcoinCore.org, 2016-08-23, retrieved 2017-01-14&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference Implementation==&lt;br /&gt;
&lt;br /&gt;
The following sections describe the behavior of the [[Original Bitcoin client|reference implementation]] as of version 0.12.0. Earlier versions treated fees differently, as do other popular implementations (including possible later versions).&lt;br /&gt;
&lt;br /&gt;
===Sending===&lt;br /&gt;
&lt;br /&gt;
Users can decide to pay a predefined fee rate by setting `-paytxfee=&amp;lt;n&amp;gt;`&lt;br /&gt;
(or `settxfee &amp;lt;n&amp;gt;` rpc during runtime). A value of `n=0` signals Bitcoin&lt;br /&gt;
Core to use floating fees. By default, Bitcoin Core will use floating&lt;br /&gt;
fees.&lt;br /&gt;
&lt;br /&gt;
Based on past transaction data, floating fees approximate the fees&lt;br /&gt;
required to get into the `m`th block from now. This is configurable&lt;br /&gt;
with `-txconfirmtarget=&amp;lt;m&amp;gt;` (default: `2`).&lt;br /&gt;
&lt;br /&gt;
Sometimes, it is not possible to give good estimates, or an estimate&lt;br /&gt;
at all. Therefore, a fallback value can be set with `-fallbackfee=&amp;lt;f&amp;gt;`&lt;br /&gt;
(default: `0.0002` BTC/kB).&lt;br /&gt;
&lt;br /&gt;
At all times, Bitcoin Core will cap fees at `-maxtxfee=&amp;lt;x&amp;gt;` (default:&lt;br /&gt;
0.10) BTC.&lt;br /&gt;
Furthermore, Bitcoin Core will never create transactions smaller than&lt;br /&gt;
the current minimum relay fee.&lt;br /&gt;
Finally, a user can set the minimum fee rate for all transactions with&lt;br /&gt;
`-mintxfee=&amp;lt;&amp;lt;nowiki&amp;gt;i&amp;lt;/nowiki&amp;gt;&amp;gt;`, which defaults to 1000 satoshis per kB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that a typical transaction is 500 bytes.&lt;br /&gt;
&lt;br /&gt;
===Including in Blocks===&lt;br /&gt;
&lt;br /&gt;
This section describes how the reference implementation selects which transactions to put into new blocks, with default settings. All of the settings may be changed if a miner wants to create larger or smaller blocks containing more or fewer free transactions.&lt;br /&gt;
&lt;br /&gt;
Then transactions that pay a fee of at least 0.00001 BTC/kb are added to the block, highest-fee-per-kilobyte transactions first, until the block is not more than 750,000 bytes big.&lt;br /&gt;
&lt;br /&gt;
The remaining transactions remain in the miner&#039;s &amp;quot;memory pool&amp;quot;, and may be included in later blocks if their priority or fee is large enough.&lt;br /&gt;
&lt;br /&gt;
For Bitcoin Core 0.12.0 zero bytes&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/blob/v0.12.0/doc/release-notes.md#relay-and-mining-priority-transactions&amp;lt;/ref&amp;gt; in the block are set aside for the highest-[[Transaction_fees#Priority_transactions|priority transactions]]. Transactions are added highest-priority-first to this section of the block.&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
&lt;br /&gt;
The reference implementation&#039;s rules for relaying transactions across the peer-to-peer network are very similar to the rules for sending transactions, as a value of 0.00001 BTC is used to determine whether or not a transaction is considered &amp;quot;Free&amp;quot;. However, the rule that all outputs must be 0.01 BTC or larger does not apply. To prevent &amp;quot;penny-flooding&amp;quot; denial-of-service attacks on the network, the reference implementation caps the number of free transactions it will relay to other nodes to (by default) 15 thousand bytes per minute.&lt;br /&gt;
&lt;br /&gt;
===Settings===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Setting !! Default Value (units)&lt;br /&gt;
|-&lt;br /&gt;
| txconfirmtarget || 2 (blocks)&lt;br /&gt;
|-&lt;br /&gt;
| paytxfee || 0 (BTC/kB)&lt;br /&gt;
|-&lt;br /&gt;
| mintxfee || 0.00001 (BTC/kB)&lt;br /&gt;
|-&lt;br /&gt;
| limitfreerelay || 15 (thousand bytes per minute)&lt;br /&gt;
|-&lt;br /&gt;
| minrelaytxfee || 0.00001 (BTC/kB)&lt;br /&gt;
|-&lt;br /&gt;
| blockmaxsize || 750000 (bytes)&lt;br /&gt;
|-&lt;br /&gt;
| blockminsize || 0 (bytes)&lt;br /&gt;
|-&lt;br /&gt;
| blockprioritysize || 0 (bytes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fee Plotting Sites==&lt;br /&gt;
&lt;br /&gt;
As of May 2016, the following sites seem to plot the required fee, in satoshi per (kilo)byte, required to get a transaction mined in a certain number of blocks. Note that all these algorithms work in terms of probabilities.&lt;br /&gt;
&lt;br /&gt;
* https://bitcoinfees.21.co/&lt;br /&gt;
* https://bitcoinfees.github.io/&lt;br /&gt;
* https://statoshi.info/dashboard/db/fee-estimates&lt;br /&gt;
* http://p2sh.info/dashboard/db/fee-estimation&lt;br /&gt;
* https://www.bitcoinqueue.com/2d.html&lt;br /&gt;
* https://bitcoinfees.net/&lt;br /&gt;
&lt;br /&gt;
=== Other Useful Sites ===&lt;br /&gt;
&lt;br /&gt;
* https://anduck.net/bitcoin/fees/ - Shows what kind of fees filled up recent blocks&lt;br /&gt;
* https://btc.com/stats/unconfirmed-tx - the state of the website&#039;s mempool broken down by fee rate&lt;br /&gt;
* https://jochen-hoenicke.de/queue/#1w - another mempool broken down by fee rate site&lt;br /&gt;
* https://esotericnonsense.com/ - yet another mempool site, also very good&lt;br /&gt;
* https://estimatefee.com/ - You can click any of the transactions in that graph to get more info (like its &amp;quot;effective fee rate&amp;quot; which uses recursive ancestors/descendants for CPFP) and an estimated amount of blocks it&#039;ll take to confirm. It works with any transaction in the top 100MB of the bitcoin mempool. And you can enter in any transaction txid for info when you&#039;re wondering why it doesn&#039;t confirm.&lt;br /&gt;
* https://mempool.space/ - Shows how the next few blocks are shaping up and the range of fees per block.  Helps estimate the low-end fee to use to get into the next block.&lt;br /&gt;
* https://whatthefee.io/ - Shows the probability of a particular fee rate being confirmed within a particular timeframe.&lt;br /&gt;
&lt;br /&gt;
==Priority transactions==&lt;br /&gt;
&lt;br /&gt;
Historically it was not required to include a fee for every transaction. A large portion of miners would mine transactions with no fee given that they had enough &amp;quot;priority&amp;quot;. Today, low priority is mostly used as an indicator for spam transactions and almost all miners expect every transaction to include a fee. Today miners choose which transactions to mine only based on fee-rate.&lt;br /&gt;
&lt;br /&gt;
Transaction priority was calculated as a value-weighted sum of input age, divided by transaction size in bytes:&lt;br /&gt;
 priority = sum(input_value_in_base_units * input_age)/size_in_bytes&lt;br /&gt;
Transactions needed to have a priority above 57,600,000 to avoid the enforced limit (as of client version 0.3.21).  This threshold was written in the code as COIN * 144 / 250, suggesting that the threshold represents a one-day old, 1 btc coin (144 is the expected number of blocks per day) and a transaction size of 250 bytes.&lt;br /&gt;
&lt;br /&gt;
So, for example, a transaction that has 2 inputs, one of 5 btc with 10 confirmations, and one of 2 btc with 3 confirmations, and has a size of 500bytes, will have a priority of&lt;br /&gt;
 (500000000 * 10 + 200000000 * 3) / 500 = 11,200,000&lt;br /&gt;
&lt;br /&gt;
===Historic rules for free transactions===&lt;br /&gt;
A transaction was safe to send without fees if these conditions were met:&lt;br /&gt;
&lt;br /&gt;
* It is smaller than 1,000 bytes.&lt;br /&gt;
* All outputs are 0.01 BTC or larger.&lt;br /&gt;
* Its priority is large enough (see above)&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Techniques to reduce transaction fees]]&lt;br /&gt;
* [[Free transaction relay policy]]&lt;br /&gt;
* [[Fee bumping]]&lt;br /&gt;
* [[Replace by fee]]&lt;br /&gt;
* [http://bitcoinexchangerate.org/fees Unconfirmed transactions fee chart]&lt;br /&gt;
* [https://jochen-hoenicke.de/queue/ historic fees and mempools]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Vocabulary]]&lt;br /&gt;
[[Category:Mining]]&lt;br /&gt;
[[de:Transaktionsgebühren]]&lt;br /&gt;
&lt;br /&gt;
{{Bitcoin Core documentation}}&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Privacy&amp;diff=69458</id>
		<title>Privacy</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Privacy&amp;diff=69458"/>
		<updated>2022-09-26T08:42:34Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling, grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While Bitcoin can support strong &#039;&#039;&#039;privacy&#039;&#039;&#039;, many ways of using it are usually not very private. With a proper understanding of the technology, bitcoin can indeed be used in a very private and anonymous way.&lt;br /&gt;
&lt;br /&gt;
As of 2019 most casual enthusiasts of bitcoin believe it is perfectly traceable; this is completely false. Around 2011 most casual enthusiasts believed it is totally private; which is also false. There is some nuance - in certain situations, bitcoin can be very private. But it is not simple to understand, and it takes some time and reading.&lt;br /&gt;
&lt;br /&gt;
This article was written in February 2019. A good way to read the article is to [[#Examples and case studies|skip to the examples]] and then come back to read the core concepts.&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
To save you reading the rest of the article, here is a quick summary of how normal bitcoin users can improve their privacy:&lt;br /&gt;
&lt;br /&gt;
* Think about what you&#039;re hiding from, what is your threat model and what is your adversary. Note that [[transaction surveillance company|transaction surveillance companies]] exist which do large-scale surveillance of the bitcoin ecosystem.&lt;br /&gt;
* Do not [[Address reuse|reuse addresses]]. Addresses should be shown to one entity to receive money, and never used again after the money from them is spent.&lt;br /&gt;
* Try to reveal as little information as possible about yourself when transacting, for example, avoid AML/KYC checks and be careful when giving your real-life mail address.&lt;br /&gt;
* Use a wallet backed by your own [[full node]] or [[client-side block filtering]], definitely not a web wallet.&lt;br /&gt;
* Broadcast on-chain transactions over [[Tor]], if your wallet doesn&#039;t support it then copy-paste the transaction hex data into a web broadcasting form over Tor browser.&lt;br /&gt;
* Use [[Lightning Network]] as much as possible.&lt;br /&gt;
* If lightning is unavailable, use a wallet that correctly implements [[CoinJoin]].&lt;br /&gt;
* Try to avoid creating change addresses, for example when funding a lightning channel spend an entire [[UTXO]] into it without any change (assuming the amount is not too large to be safe).&lt;br /&gt;
* If [[#Digital forensics|digital forensics]] are a concern then use a solution like [https://tails.boum.org/ Tails Operating System].&lt;br /&gt;
&lt;br /&gt;
See also [[#Examples_and_case_studies|the privacy examples]] for real-life case-studies.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Users interact with bitcoin through [[software]] which may leak information about them in various ways that damage their anonymity.&lt;br /&gt;
&lt;br /&gt;
Bitcoin records [[transactions]] on the [[block chain]] which is visible to all and so creates the most serious damage to privacy. Bitcoins move between [[address]]es; sender [[address]]es are known, receiver [[address]]es are known, and amounts are known. Only the identity of each [[address]] is not known (see first image).&lt;br /&gt;
&lt;br /&gt;
The linkages between addresses made by transactions are often called the transaction graph. Alone, this information can&#039;t identify anyone because the addresses and transaction IDs are just random numbers. However, if &#039;&#039;any&#039;&#039; of the addresses in a transaction&#039;s past or future can be tied to an actual identity, it might be possible to work from that point and deduce who may own all of the other addresses. This identification of an address might come from network analysis, surveillance, searching the web, or a variety of other methods. The encouraged practice of [[Address reuse|using a new address for every transaction]] is intended to make this attack more difficult.&lt;br /&gt;
&lt;br /&gt;
[[File:Unknownaddress.png|thumb|The flow of Bitcoins is highly public.]]&lt;br /&gt;
&lt;br /&gt;
=== Example - Adversary controls source and destination of coins ===&lt;br /&gt;
&lt;br /&gt;
The second image shows a simple example. An adversary runs both a money exchanger and a honeypot website meant to trap people. If someone uses their exchanger to buy bitcoins and then transacts the coins to the trap website, the block chain would show:&lt;br /&gt;
&lt;br /&gt;
[[File:knownaddress.png|thumb|Finding an identity of one address allows you to attack the anonymity of the transactions.]]&lt;br /&gt;
&lt;br /&gt;
* Transaction of coins on address A to address B. Authorized by &amp;lt;signature of address A&amp;gt;.&lt;br /&gt;
* Transaction of coins on address B to address C. Authorized by &amp;lt;signature of address B&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Say that the adversary knows that Mr. Doe&#039;s bank account sent the government currency which were used to buy the coins, which were then transferred to address B. The adversary also knows the trap website received coins on address C that were spent from address B. Together this is a &#039;&#039;&#039;very strong indication&#039;&#039;&#039; that address B is owned by Mr. Doe and that he sent money to the trap website. This assumption is not always correct because address B may have been an address held on behalf of Mr. Doe by a third party and the transaction to C may have been unrelated, or the two transactions may actually involve a smart contract (See [[Off-Chain Transactions]]) which effectively teleports the coins off-chain to a completely different address somewhere on the blockchain.&lt;br /&gt;
&lt;br /&gt;
=== Example - Non-anonymous Chinese newspaper buying ===&lt;br /&gt;
&lt;br /&gt;
In this example, the adversary controls the destination and finds the source from metadata.&lt;br /&gt;
&lt;br /&gt;
# You live in China and want to buy a &amp;quot;real&amp;quot; online newspaper for Bitcoins.&lt;br /&gt;
# You join the Bitcoin forum and use your address as a signature. Since you are very helpful, you manage to get a modest sum as donations after a few months.&lt;br /&gt;
# Unfortunately, you choose poorly in who you buy the newspaper from: you&#039;ve chosen a government agent!&lt;br /&gt;
# The government agent looks at the [[transaction]] used to purchase the newspaper on the [[block chain]], and searches the web every relevant address in it. He finds your address in your signature on the Bitcoin forum. You&#039;ve left enough personal information in your posts to be identified, so you are now scheduled to be &amp;quot;reeducated&amp;quot;.&lt;br /&gt;
# A major reason this happened is because of [[address reuse]]. Your forum signature had a single bitcoin address that never changed, so it was easy to find by searching the web.&lt;br /&gt;
&lt;br /&gt;
You need to protect yourself from both forward attacks (getting something that identifies you using coins that you got with methods that must remain secret, like the scammer example) and reverse attacks (getting something that must remain secret using coins that identify you, like the newspaper example).&lt;br /&gt;
&lt;br /&gt;
=== Example - A perfectly private donation ===&lt;br /&gt;
&lt;br /&gt;
On the other hand, here is an example of somebody using bitcoin to make a donation that is completely anonymous.&lt;br /&gt;
&lt;br /&gt;
# The aim is to donate to some organization that accepts bitcoin.&lt;br /&gt;
# You run a [[Bitcoin Core]] wallet entirely through [[Tor]].&lt;br /&gt;
# Download some extra few hundred gigabytes of data over [[Tor]] so that the total download bandwidth isn&#039;t exactly blockchain-sized.&lt;br /&gt;
# [[Pool vs. solo mining|Solo-mine]] a block, and have the newly-mined coins sent to your wallet.&lt;br /&gt;
# Send the entire balance to a donation address of that organization.&lt;br /&gt;
# Finally you destroy the computer hardware used.&lt;br /&gt;
&lt;br /&gt;
As your [[full node]] wallet runs entirely over [[Tor]], your IP address is very well hidden. [[Tor]] also hides the fact that you&#039;re using bitcoin at all. As the coins were obtained by [[mining]] they are entirely unlinked from any other information about you. Since the transaction is a donation, there are no goods or services being sent to you, so you don&#039;t have to reveal any delivery mail address. As the entire balance is sent, there is no [[change|change address]] going back that could later leak information. Since the hardware is destroyed there is no record remaining on any discarded hard drives that can later be found. The only way I can think of to attack this scheme is to be a [https://www.torproject.org/docs/faq.html.en#AttacksOnOnionRouting global adversary] that can exploit the known weaknessness of Tor.&lt;br /&gt;
&lt;br /&gt;
=== Multiple interpretations of a blockchain transaction ===&lt;br /&gt;
&lt;br /&gt;
Bitcoin [[transaction]]s are made up of inputs and outputs, of which there can be one or more. Previously-created outputs can be used as inputs for later transactions. Such outputs are destroyed when spent and new unspent outputs are usually created to replace them.&lt;br /&gt;
&lt;br /&gt;
Consider this example transaction:&lt;br /&gt;
&lt;br /&gt;
 1 btc  ----&amp;gt;  1 btc &lt;br /&gt;
 3 btc         3 btc&lt;br /&gt;
&lt;br /&gt;
This transaction has two inputs, worth 1 btc and 3 btc, and creates two outputs also worth 1 btc and 3 btc.&lt;br /&gt;
&lt;br /&gt;
If you were to look at this on the blockchain, what would you assume is the meaning of this transaction? (for example, we usually assume a bitcoin transaction is a payment but it doesn&#039;t have to be).&lt;br /&gt;
&lt;br /&gt;
There are &#039;&#039;at least nine&#039;&#039;&#039; possible&amp;lt;ref&amp;gt;Bitcoin Milan Meetup 46 - Talk by Adam Gibson https://www.youtube.com/watch?v=IKSSWUBqMCM&amp;amp;t=2448&amp;lt;/ref&amp;gt; interpretations:&lt;br /&gt;
&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Alice_and_Bob Alice] provides both inputs and pays 3 btc to [https://en.wikipedia.org/wiki/Alice_and_Bob Bob]. Alice owns the 1 btc output (i.e. it is a [[change]] output).&lt;br /&gt;
# Alice provides both inputs and pays 1 btc to Bob, with 3 btc paid back to Alice as the change.&lt;br /&gt;
# Alice provides 1 btc input and Bob provides 3 btc input, Alice gets 1 btc output and Bob gets 3 btc output. This is a kind of [[CoinJoin]] transaction.&lt;br /&gt;
# Alice pays 2 btc to Bob. Alice provides 3 btc input, gets the 1 btc output; Bob provides 1 btc input and gets 3 btc. This would be a [[PayJoin]] transaction type.&lt;br /&gt;
# Alice pays 4 btc to Bob (but using two outputs for some reason).&lt;br /&gt;
# Fake transaction - Alice owns all inputs and outputs, and is simply moving coins between her own [[address]]es.&lt;br /&gt;
# Alice pays Bob 3 btc and Carol 1 btc. This is a [[Techniques_to_reduce_transaction_fees#Change_avoidance|batched payment with no change address]].&lt;br /&gt;
# Alice pays 3, Bob pays 1; Carol gets 3 btc and David gets 1 btc. This is some kind of [[CoinJoin]]ed [[Techniques_to_reduce_transaction_fees#Change_avoidance|batched payment with no change address]].&lt;br /&gt;
# Alice and Bob pay 4 btc to Carol (but using two outputs).&lt;br /&gt;
&lt;br /&gt;
Many interpretations are possible just from such a simple transaction. Therefore it&#039;s completely false to say that bitcoin [[transaction]]s are always perfectly traceable, the reality is much more complicated.&lt;br /&gt;
&lt;br /&gt;
Privacy-relevant adversaries who analyze the blockchain usually rely on &#039;&#039;heuristics&#039;&#039; (or &#039;&#039;idioms of use&#039;&#039;) where certain assumptions are made about what is plausible. The analyst would then ignore or exclude some of these possibilities. But those are only assumptions which can be wrong. Someone who wants better privacy they can intentionally break those assumptions which will completely fool an analyst.&lt;br /&gt;
&lt;br /&gt;
Units of the bitcoin currency are not watermarked within a transaction (in other words they don&#039;t have little serial numbers). For example the 1 btc input in that transaction may end up in the 1 btc output or part of the 3 btc output, or a mixture of both. Transactions are many-to-many mappings, so in a very important sense it&#039;s impossible to answer the question of where the 1 btc ended up. This fungibility of bitcoin within one transaction is an important reason for the different possibility interpretations of the above transaction.&lt;br /&gt;
&lt;br /&gt;
=== Threat model ===&lt;br /&gt;
&lt;br /&gt;
When considering privacy you need to think about exactly who you&#039;re hiding from. You must examine how a hypothetical adversary could spy on you, what kind of information is most important to you and which technology you need to use to protect your privacy. The kind of behaviour needed to protect your privacy therefore depends on your threat model.&lt;br /&gt;
&lt;br /&gt;
Newcomers to privacy often think that they can simply download some software and all their privacy concerns will be solved. This is not so. Privacy requires a change in behaviour, however slight. For example, imagine if you had a perfectly private internet where who you&#039;re communicating with and what you say are completely private. You could still use this to communicate with a social media website to write your real name, upload a selfie and talk about what you&#039;re doing right now. Anybody on the internet could view that information so your privacy would be ruined even though you were using perfectly private technology.&lt;br /&gt;
&lt;br /&gt;
For details read the talk [https://www.slideshare.net/grugq/opsec-for-hackers Opsec for Hackers by grugq]. The talk is aimed mostly at political activists who need privacy from governments, but much the advice generally applies to all of us.&lt;br /&gt;
&lt;br /&gt;
Much of the time plausible deniability is not good enough because lots of spying methods only need to work on a statistical level (e.g. targeted advertising).&lt;br /&gt;
&lt;br /&gt;
=== Method of data fusion ===&lt;br /&gt;
&lt;br /&gt;
[[File:Privacy-data-fusion-intersection-diagram.png|200px|thumb|right|Data fusion diagram showing how two different privacy leaks can damage privacy far more in combination.]]&lt;br /&gt;
&lt;br /&gt;
Multiple privacy leaks when combined together can be far more damaging to privacy than any single leak. Imagine if a receiver of a [[transaction]] is trying to deanonymize the sender. Each privacy leak would eliminate many candidates for who the sender is, two different privacy leaks would eliminate &#039;&#039;different&#039;&#039; candidates leaving far fewer candidates remaining. See the diagram for a diagram of this.&lt;br /&gt;
&lt;br /&gt;
[[File:Privacy-data-fusion-newspaper-buying-diagram.png|200px|thumb|right|Data fusion diagram example with newspaper buyer.]]&lt;br /&gt;
&lt;br /&gt;
This is why even leaks of a small amount of information should be avoided, as they can often completely ruin privacy when combined with other leaks. Going back to the example of the non-anonymous Chinese newspaper buyer, who was deanonymized because of a combination of visible transaction information and his forum signature donation address. There are many many transactions on the blockchain which on their own don&#039;t reveal anything about the transactor&#039;s identity or spending habits. There are many donation addresses placed in forum signatures which also don&#039;t reveal much about the owners identity or spending habits, because they are just random cryptographic information. But together the two privacy leaks resulted in a trip to the reeducation camp. The method of data fusion is very important when understanding privacy in bitcoin (and other situations).&lt;br /&gt;
&lt;br /&gt;
=== Why privacy ===&lt;br /&gt;
&lt;br /&gt;
Financial privacy is an essential element to [[Fungibility|fungibility]] in Bitcoin: if you can meaningfully distinguish one coin from another, then their [[Fungibility|fungibility]] is weak. If our [[Fungibility|fungibility]] is too weak in practice, then we cannot be decentralized: if someone important announces a list of stolen coins they won&#039;t accept coins derived from, you must carefully check coins you accept against that list and return the ones that fail.  Everyone gets stuck checking blacklists issued by various authorities because in that world we&#039;d all not like to get stuck with bad coins. This adds friction, transactional costs and allows the blacklist provider to engage in censorship, and so makes Bitcoin less valuable as a money.&lt;br /&gt;
&lt;br /&gt;
Financial privacy is an essential criteria for the efficient operation of a free market: if you run a business, you cannot effectively set prices if your suppliers and customers can see all your transactions against your will. You cannot compete effectively if your competition is tracking your sales.  Individually your informational leverage is lost in your private dealings if you don&#039;t have privacy over your accounts: if you pay your landlord in Bitcoin without enough privacy in place, your landlord will see when you&#039;ve received a pay raise and can hit you up for more rent.&lt;br /&gt;
&lt;br /&gt;
Financial privacy is essential for personal safety: if thieves can see your spending, income, and holdings, they can use that information to target and exploit you. Without privacy malicious parties have more ability to steal your identity, snatch your large purchases off your doorstep, or impersonate businesses you transact with towards you... they can tell exactly how much to try to scam you for.&lt;br /&gt;
&lt;br /&gt;
Financial privacy is essential for human dignity: no one wants the snotty barista at the coffee shop or their nosy neighbors commenting on their income or spending habits. No one wants their baby-crazy in-laws asking why they&#039;re buying contraception (or sex toys). Your employer has no business knowing what church you donate to. Only in a perfectly enlightened discrimination free world where no one has undue authority over anyone else could we retain our dignity and make our lawful transactions freely without self-censorship if we don&#039;t have privacy.&lt;br /&gt;
&lt;br /&gt;
Most importantly, financial privacy isn&#039;t incompatible with things like law enforcement or transparency. You can always keep records, be ordered (or volunteer) to provide them to whomever, have judges hold against your interest when you can&#039;t produce records (as is the case today).  None of this requires _globally_ visible public records.&lt;br /&gt;
&lt;br /&gt;
Globally visible public records in finance are completely unheard-of. They are undesirable and arguably intolerable. The Bitcoin whitepaper made a promise of how we could get around the visibility of the ledger with pseudonymous addresses, but the ecosystem has broken that promise in a bunch of places and we ought to fix it. Bitcoin could have coded your name or IP address into every transaction. It didn&#039;t. The whitepaper even has a section on privacy. It&#039;s incorrect to say that Bitcoin isn&#039;t focused on privacy. Sufficient privacy is an essential prerequisite for a viable digital currency&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=334316.msg3588908#msg3588908&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Blockchain attacks on privacy ==&lt;br /&gt;
&lt;br /&gt;
Bitcoin uses a [[block chain]]. Users can [[Full node|download and verify the blockchain]] to check that all the rules of bitcoin were followed throughout its history. For example, users can check that nobody printed infinite bitcoins and that every coin was only spent with a [[OP_CHECKSIG|valid signature]] created by its [[private key]]. This is what leads to [[Bitcoin as a medium of exchange|bitcoin&#039;s unique value proposition]] as a form of electronic cash which requires [[Principles of Bitcoin#Low_trust|only small amounts of trust]]. But the same blockchain structure leads to privacy problems because every [[transaction]] must be available for all to see, forever. This section discusses known methods an adversary may use for analyzing the public blockchain.&lt;br /&gt;
&lt;br /&gt;
Bitcoin uses a [[Coin analogy|UTXO model]]. [[Transaction]]s have inputs and outputs, they can have one or more of each. Previous outputs can be used as inputs for later transactions. An output which hasn&#039;t been spent yet is called an unspent transaction output (UTXO). UXTOs are often called [[Coin analogy|&amp;quot;coins&amp;quot;]]. UTXOs are associated with a bitcoin [[address]] and can be spent by creating a valid signature corresponding to the scriptPubKey of the address.&lt;br /&gt;
&lt;br /&gt;
[[Address|Addresses]] are cryptographic information, essentially random numbers. On their own they do not reveal much about the real owner of any bitcoins on them. Usually an adversary will try to link together multiple addresses which they believe belong to the same wallet. Such address collections are called &amp;quot;clusters&amp;quot;, &amp;quot;closures&amp;quot; or &amp;quot;wallet clusters&amp;quot;, and the activity of creating them is called &amp;quot;wallet clustering&amp;quot;. Once the clusters are obtained the adversary can try to link them real-world identities of entities it wants to spy on. For example, it may find wallet cluster A belonging to Alice and another wallet cluster B belonging to Bob. If a bitcoin [[transaction]] is seen paying from cluster A to cluster B then the adversary knows that Alice has sent coins to Bob.&lt;br /&gt;
&lt;br /&gt;
It can be very difficult to fine-tune heuristics for wallet clustering that lead to obtaining actually correct information&amp;lt;ref&amp;gt;Neudecker, Till &amp;amp; Hartenstein, Hannes. (2018). Network Layer Aspects of Permissionless Blockchains. IEEE Communications Surveys &amp;amp; Tutorials. PP. 1-1. 10.1109/COMST.2018.2852480.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[Common-input-ownership heuristic]] ===&lt;br /&gt;
&lt;br /&gt;
This is a heuristic or assumption which says that if a transaction has more than one input then all those inputs are owned by the same entity.&lt;br /&gt;
&lt;br /&gt;
For example, consider this transaction with inputs A, B and C; and outputs X and Y.&lt;br /&gt;
&lt;br /&gt;
 A (1 btc) --&amp;gt; X (4 btc)&lt;br /&gt;
 B (2 btc)     Y (2 btc)&lt;br /&gt;
 C (3 btc)&lt;br /&gt;
&lt;br /&gt;
This [[transaction]] would be an indication that [[address]]es B and C are owned by the same person who owns [[address]] A.&lt;br /&gt;
&lt;br /&gt;
One of the purposes of [[CoinJoin]] is to break this heuristic. Nonetheless this heuristic is very commonly true and it is widely used by [[transaction surveillance company|transaction surveillance companies]] and other adversaries as of 2019. The heuristic is usually combined with [[address reuse]] reasoning, which along with the somewhat-centralized bitcoin economy as of 2018 is why this heuristic can be unreasonably effective&amp;lt;ref&amp;gt;Harrigan, Martin &amp;amp; Fretter, Christoph. (2016). The Unreasonable Effectiveness of Address Clustering.&amp;lt;/ref&amp;gt;. The heuristic&#039;s success also depends on the wallet behaviour: for example, if a wallet usually receives small amounts and sends large amounts then it will create many multi-input transactions.&lt;br /&gt;
&lt;br /&gt;
=== [[Change]] address detection ===&lt;br /&gt;
&lt;br /&gt;
Many bitcoin [[transaction]]s have [[Change|change outputs]]. It would be a serious privacy leak if the change address can be somehow found, as it would link the ownership of the (now spent) inputs with a new output. Change outputs can be very effective when combined with other privacy leaks like the [[common-input-ownership heuristic]] or [[address reuse]]. Change address detection allows the adversary to cluster together newly created address, which the [[common-input-ownership heuristic]] and [[address reuse]] allows past addresses to be clustered.&lt;br /&gt;
&lt;br /&gt;
Change addresses lead to a common usage pattern called the &#039;&#039;&#039;peeling chain&#039;&#039;&#039;. It is seen after a large transactions from exchanges, marketplaces, mining pools and salary payments. In a peeling chain, a single address begins with a relatively large amount of bitcoins. A smaller amount is then peeled off this larger amount, creating a transaction in which a small amount is transferred to one address, and the remainder is transferred to a one-time [[change]] address. This process is repeated - potentially for hundreds or thousands of hops - until the larger amount is pared down, at which point (in one usage) the amount remaining in the address might be aggregated with other such addresses to again yield a large amount in a single address, and the peeling process begins again&amp;lt;ref&amp;gt;Sarah Meiklejohn, Marjori Pomarole, Grant Jordan, Kirill Levchenko, Damon McCoy, Geoffrey M. Voelker, and Stefan Savage. 2013. A fistful of bitcoins: characterizing payments among men with no names. In Proceedings of the 2013 conference on Internet measurement conference (IMC &#039;13). ACM, New York, NY, USA, 127-140. DOI: https://doi.org/10.1145/2504730.2504747 https://cseweb.ucsd.edu/~smeiklejohn/files/imc13.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now are listed possible ways to infer which of the outputs of a transaction is the [[change]] output:&lt;br /&gt;
&lt;br /&gt;
==== Address reuse ====&lt;br /&gt;
&lt;br /&gt;
If an output address has been [[Address reuse|reused]] it is very likely to be a payment output, not a change output. This is because change addresses are created automatically by wallet software but payment addresses are manually sent between humans. The [[address reuse]] would happen because the human user reused an address out of ignorance or apathy. This heuristic is probably the most accurate, as it is very hard to imagine how false positives would arise (except by intentional design of wallets). This heuristic is also called the &amp;quot;shadow heuristic&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some very old software (from the 2010-2011 era which did not have [[Deterministic wallet]]s) did not use a new address change but sent the change back to the input address. This reveals the change address exactly.&lt;br /&gt;
&lt;br /&gt;
Avoiding [[address reuse]] is an obvious remedy. Another idea is that those wallets could automatically detect when a payment address has been used before (perhaps by asking the user) and then use a reused address as their change address; so both outputs would be reused addresses.&lt;br /&gt;
&lt;br /&gt;
Also, most reused addresses are mentioned on the internet, forums, social networks like Facebook, Reddit, Stackoverflow...etc. These addresses you can find and check on https://checkbitcoinaddress.com/ site. It&#039;s like a little bit de-anonymization of pseudo-anonymized blockchain.&lt;br /&gt;
&lt;br /&gt;
==== Wallet fingerprinting ====&lt;br /&gt;
&lt;br /&gt;
A careful analyst sometimes deduce which software created a certain [[transaction]], because the many different wallet softwares don&#039;t always create transactions in exactly the same way. Wallet fingerprinting can be used to detect change outputs because a change output is the one spent with the same wallet fingerprint.&lt;br /&gt;
&lt;br /&gt;
As an example, consider five typical transactions that consume one input each and produce two outputs. A, B, C, D, E refer to transactions. A1, A2, etc refer to output addresses of those transactions&lt;br /&gt;
&lt;br /&gt;
            --&amp;gt; C1&lt;br /&gt;
 A1 --&amp;gt; B1  --&amp;gt; C2&lt;br /&gt;
    --&amp;gt; B2  --&amp;gt; D1&lt;br /&gt;
            --&amp;gt; D2 --&amp;gt; E1&lt;br /&gt;
                   --&amp;gt; E2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If wallet fingerprinting finds that transactions A, B, D and E are created by the same wallet software, and the other transactions are created by other software, then the change addresses become obvious. The same transactions with non-matching addresses replaced by X is shown. The peel chain is visible, it&#039;s clear that B2, D2, E1 are change addresses which belong to the same wallet as A1.&lt;br /&gt;
&lt;br /&gt;
            --&amp;gt; X&lt;br /&gt;
 A1 --&amp;gt; X   --&amp;gt; X&lt;br /&gt;
    --&amp;gt; B2  --&amp;gt; X&lt;br /&gt;
            --&amp;gt; D2 --&amp;gt; E1&lt;br /&gt;
                   --&amp;gt; X&lt;br /&gt;
&lt;br /&gt;
There are a number of ways to get evidence used for identifying wallet software:&lt;br /&gt;
&lt;br /&gt;
* Address formats. Wallets generally only use one address type. If a transaction has all inputs and one output of the same address type (e.g. p2pkh), with the remaining output of a different type (p2sh), then a reasonable assumption is that the same-address-format output (p2pkh) is change and the different-address-format output (p2sh) is the payment which belongs to someone else. &lt;br /&gt;
&lt;br /&gt;
* [[Script]] types. Each wallet generally uses only one [[script]]. For example, the sending wallet may be a [[P2SH]] 2-of-3 [[multisignature]] wallet, which makes a transaction to two outputs: one 2-of-3 multisignature address and the other 2-of-2 multisignature address. The different [[script]] is a strong indication that the output is payment and the other output is change. &lt;br /&gt;
&lt;br /&gt;
* [[BIP_0069|BIP69]] Lexicographical Indexing of Transaction Inputs and Outputs. This BIP describes a standard way for wallets to order their inputs and outputs for privacy. Right now the wallet ecosystem has a mixture of wallets which do and don&#039;t implement the standard, which helps with fingerprinting. Note that the common one-input-two-output [[transaction]] with random ordering will follow BIP69 just by chance 50% of the time.&lt;br /&gt;
&lt;br /&gt;
* Number of inputs and outputs. Different users often construct [[transaction]]s differently. For example, individuals often make [[transaction]] with just two outputs; a payment and change, while high-volume institutions like casinos or exchanges use [[Techniques_to_reduce_transaction_fees#Consolidation|consolidation]] and [[Techniques_to_reduce_transaction_fees#Payment_batching|batching]]&amp;lt;ref&amp;gt;Bitcoin Privacy: Theory and Practice - Jonas Nick (Blockstream) - Zürich, March 2016 https://www.youtube.com/watch?v=HScK4pkDNds&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Nick, Jonas David. “Data-Driven De-Anonymization in Bitcoin.” (2015).&amp;lt;/ref&amp;gt;. An output that is later use to create a batching transaction was probably not the change. This heuristic is also called the &amp;quot;consumer heuristic&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Transaction fields. Values in the [[transaction]] format which may vary depending on the wallet software: [[nLockTime]] is a field in transactions set by some wallets to make [[fee sniping]] less profitable. A mixture of wallets in the ecosystem do and don&#039;t implement this feature. nLockTime can also be used as in certain privacy protocols like [[CoinSwap]]. [[Transaction#General_format_.28inside_a_block.29_of_each_input_of_a_transaction_-_Txin|nSequence]] is another example. Also the version number.&lt;br /&gt;
&lt;br /&gt;
* Low-R value signatures. The DER format used to encode Bitcoin signatures requires adding an entire extra byte to a signature just to indicate when the signature’s R value is on the top-half of the elliptical curve used for Bitcoin. The R value is randomly derived, so half of all signatures have this extra byte. As of July 2018&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/13666&amp;lt;/ref&amp;gt;[[Bitcoin Core]] only generates signatures with a low-R value that don&#039;t require this extra byte. By doing so, Bitcoin Core transactions will save one byte per every two signatures (on average). As of 2019 no other wallet does this, so a high-R signature is evidence that [[Bitcoin Core]] is not being used&amp;lt;ref&amp;gt;https://bitcoinops.org/en/newsletters/2018/08/14/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Uncompressed and compressed public keys. Older wallet software uses uncompressed public keys&amp;lt;ref&amp;gt;https://bitcoin.stackexchange.com/questions/3059/what-is-a-compressed-bitcoin-key&amp;lt;/ref&amp;gt;. A mixture of compressed and uncompressed keys can be used for fingerprinting.&lt;br /&gt;
&lt;br /&gt;
* Miner fees. Various wallet softwares may respond to block space pressure in different ways which could lead to different kinds of miner fees being paid. This might also be a way of fingerprinting wallets.&lt;br /&gt;
&lt;br /&gt;
* Coin Selection. Various wallet softwares may choose which UTXOs to spend using different algorithms that could be used for fingerprinting.&lt;br /&gt;
&lt;br /&gt;
If multiple users are using the same wallet software, then wallet fingerprinting cannot detect the change address. It is also possible that a single user owns two different wallets which use different software (for example a hot wallet and cold wallet) and then transactions between different softwares would not indicate a change of ownership. Wallet fingerprinting on its own is never decisive evidence, but as with all other privacy leaks it works best with data fusion when multiple privacy leaks are combined.&lt;br /&gt;
&lt;br /&gt;
==== Round numbers ====&lt;br /&gt;
&lt;br /&gt;
Many payment amounts are round numbers, for example 1 BTC or 0.1 BTC. The leftover change amount would then be a non-round number (e.g. 1.78213974 BTC). This potentially useful for finding the change address. The amount may be a round number in another currency. The amount 2.24159873 BTC isn&#039;t round in bitcoin but when converted to USD it may be close to $100.&lt;br /&gt;
&lt;br /&gt;
==== [[Fee bumping]] ====&lt;br /&gt;
&lt;br /&gt;
[[BIP 0125]] defines a mechanism for replacing an unconfirmed [[transaction]] with another transaction that pays a higher fee. In the context of the [[Miner_fees#The_market_for_block_space|market for block space]], a user may find their transaction isn&#039;t confirming fast enough so they opt to [[Fee bumping|&amp;quot;fee bump&amp;quot;]] or pay a higher miner fee. However generally the new higher miner fee will happen by reducing the change amount. So if an adversary is observing all unconfirmed transactions they could see both the earlier low-fee transaction and later high-fee transaction, and the output with the reduced amount would be the change output.&lt;br /&gt;
&lt;br /&gt;
This could be mitigated by some of the time reducing the amount of both outputs, reducing the payment amount instead of change (in a receiver-pays-for-fee model), or replacing both addresses in each RBF transaction (this would require obtaining multiple payment addresses from the receiver).&lt;br /&gt;
&lt;br /&gt;
==== Unnecessary input heuristic  ====&lt;br /&gt;
&lt;br /&gt;
Also called the &amp;quot;optimal change heuristic&amp;quot;. Consider this bitcoin transaction. It has two inputs worth 2 BTC and 3 BTC and two outputs worth 4 BTC and 1 BTC.&lt;br /&gt;
&lt;br /&gt;
 2 btc --&amp;gt; 4 btc&lt;br /&gt;
 3 btc     1 btc&lt;br /&gt;
&lt;br /&gt;
Assuming one of the outputs is [[change]] and the other output is the payment. There are two interpretations: the payment output is either the 4 BTC output or the 1 BTC output. But if the 1 BTC output is the payment amount then the 3 BTC input is unnecessary, as the wallet could have spent only the 2 BTC input and paid lower [[miner fees]] for doing so. This is an indication that the real payment output is 4 BTC and that 1 BTC is the change output.&lt;br /&gt;
&lt;br /&gt;
This is an issue for transactions which have more than one input. One way to fix this leak is to add more inputs until the change output is higher than any input, for example:&lt;br /&gt;
&lt;br /&gt;
 2 btc --&amp;gt; 4 btc&lt;br /&gt;
 3 btc     6 btc&lt;br /&gt;
 5 btc&lt;br /&gt;
&lt;br /&gt;
Now both interpretations imply that some inputs are unnecessary. Unfortunately this costs more in miner fees and can only be done if the wallet actually owns other UTXOs. &lt;br /&gt;
&lt;br /&gt;
Some wallets have a coin selection algorithm which violates this heuristic. An example might be because the wallets want to [[Techniques_to_reduce_transaction_fees#Consolidation|consolidate inputs]] in times of cheap miner fees. So this heuristic is not decisive evidence.&lt;br /&gt;
&lt;br /&gt;
==== Sending to a different script type ====&lt;br /&gt;
&lt;br /&gt;
Sending funds to a different script type than the one you&#039;re spending from makes it easier to tell which output is the change.&lt;br /&gt;
&lt;br /&gt;
For example, for a transaction with 1 input spending a p2pkh coin and creating 2 outputs, one of p2pkh and one of p2sh, it is very likely that the p2pkh output is the change while the p2sh one is the payment.&lt;br /&gt;
&lt;br /&gt;
This is also possible if the inputs are of mixed types (created by wallets supporting multiple script types for backwards compatibility).&lt;br /&gt;
If one of the output script types is known to be used by the wallet (because the same script type is spent by at least one of the inputs) while the other is not, the other one is likely to be the payment.&lt;br /&gt;
&lt;br /&gt;
This has the most effect on early adopters of new wallet technology, like p2sh or segwit.&lt;br /&gt;
The more rare it is to pay to people using the same script type as you do, the more you leak the identity of your change output.&lt;br /&gt;
This will improve over time as the new technology gains wider adoption.&lt;br /&gt;
&lt;br /&gt;
==== Wallet bugs ====&lt;br /&gt;
&lt;br /&gt;
Some wallet software handles change in a very un-private way. For example certain old wallets would always put the change output in last place in the transaction. An old version of [[Bitcoin Core]] would add input UTXOs to the transaction until the change amount was around 0.1 BTC, so an amount of slightly over 0.1 BTC would always be change.&lt;br /&gt;
&lt;br /&gt;
==== Equal-output [[CoinJoin]]====&lt;br /&gt;
&lt;br /&gt;
Equal-output-[[CoinJoin]] transactions trivially reveal the change address because it is the outputs which are not equal-valued. For example consider this equal-output-coinjoin:&lt;br /&gt;
&lt;br /&gt;
               A (1btc)&lt;br /&gt;
 X (5btc) ---&amp;gt; B (1btc)&lt;br /&gt;
 Y (3btc)      C (4btc)&lt;br /&gt;
               D (2btc)&lt;br /&gt;
&lt;br /&gt;
There is a very strong indication that output D is change belongs to the owner of input Y, while output C is change belonging to input X. However, [[CoinJoin]] breaks the [[common-input-ownership heuristic]] and effectively hides the ownership of payment outputs (A and B), so the tradeoffs are still heavily in favour of using coinjoin.&lt;br /&gt;
&lt;br /&gt;
==== Cluster growth ====&lt;br /&gt;
&lt;br /&gt;
Wallet clusters created by using the [[common-input-ownership heuristic]] usually grow (in number of addresses) slowly and incrementally&amp;lt;ref&amp;gt;Harrigan, Martin &amp;amp; Fretter, Christoph. (2016). The Unreasonable Effectiveness of Address Clustering.&amp;lt;/ref&amp;gt;. Two large clusters merging is rare and may indicate that the heuristics are flawed. So another way to deduce the change address is to find which output causes the clusters to grow only slowly. The exact value for &amp;quot;how slowly&amp;quot; a cluster is allowed to grow is an open question.&lt;br /&gt;
&lt;br /&gt;
=== Transaction graph heuristic ===&lt;br /&gt;
&lt;br /&gt;
As described in the introduction, [[address]]es are connected together by [[transaction]]s on the [[block chain]]. The mathematical concept of a [https://en.wikipedia.org/wiki/Graph_(discrete_mathematics) graph] can be used to describe the structure where addresses are connected with transactions. [[Address]]es are vertices while [[transaction]]s are edges in this transaction graph.&lt;br /&gt;
&lt;br /&gt;
This is called a heuristic because [[transaction]]s on the [[block chain]] do not necessarily correspond to real economic transactions. For example the [[transaction]] may represent someone sending bitcoins to themselves. Also, real economic transactions may not appear on the [[block chain]] but be [[Off-Chain Transactions|off-chain]]; either via a custodial entity like an exchange, or non-custodial off-chain like [[Lightning Network]].&lt;br /&gt;
&lt;br /&gt;
==== Taint analysis ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Taint analysis&#039;&#039; is a technique sometimes used to study the flow of bitcoins and extract privacy-relevant information. If an address A is connected to privacy-relevant information (such as a real name) and it makes a transaction sending coins to address B, then address B is said to be &#039;&#039;tainted&#039;&#039; with coins from address A. In this way taint is spread by &amp;quot;touching&amp;quot; via transactions&amp;lt;ref&amp;gt;Meiklejohn, Sarah &amp;amp; Orlandi, Claudio. (2015). Privacy-Enhancing Overlays in Bitcoin. 127-141. 10.1007/978-3-662-48051-9_10. https://fc15.ifca.ai/preproceedings/bitcoin/paper_5.pdf&amp;lt;/ref&amp;gt;. It is unclear how useful taint analysis is for spying, as it does not take into account transfer of ownership. For example an owner of tainted coins may donate some of them to some charity, the donated coins could be said to be tainted yet the charity does not care and could not give any information about the source of those coins. Taint analysis may only be useful for breaking schemes where someone tries to hide the origin of coins by sending dozens of fake transactions to themselves many times.&lt;br /&gt;
&lt;br /&gt;
=== Amount ===&lt;br /&gt;
&lt;br /&gt;
Blockchain [[transactions]] contain amount information of the transaction inputs and outputs, as well as an implicit amount of the [[Miner fees|miner fee]]. This is visible to all.&lt;br /&gt;
&lt;br /&gt;
Often the payment amount of a transaction is a round number, possibly when converted to another currency. An analysis of round numbers in bitcoin transactions has been used to measure the countries or regions where payment have happened&amp;lt;ref&amp;gt;Gervais A., Ritzdorf H., Lucic M., Lenders V., Capkun S. (2016) Quantifying Location Privacy Leakage from Transaction Prices. In: Askoxylakis I., Ioannidis S., Katsikas S., Meadows C. (eds) Computer Security – ESORICS 2016. ESORICS 2016. Lecture Notes in Computer Science, vol 9879. Springer, Cham https://eprint.iacr.org/2015/496&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Input amounts revealing sender wealth ====&lt;br /&gt;
&lt;br /&gt;
A mismatch in the sizes of available [[Transaction#input|input]] vs what is required can result in a privacy leak of the total wealth of the sender. For example, when intending to send 1 bitcoins to somebody a user may only have an [[Transaction#input|input]] worth 10 bitcoins. They create a [[transaction]] with 1 bitcoin going to the recipient and 9 bitcoins going to a [[Change|change address]]. The recipient can look at the [[transaction]] on the blockchain and deduce that the sender owned at least 10 bitcoins.&lt;br /&gt;
&lt;br /&gt;
By analogy with paper money, if you hand over a 100 USD note to pay for a drink costing only 5 USD the bartender learns that your balance is at least 95 USD. It may well be higher of course, but it&#039;s at least not lower&amp;lt;ref&amp;gt;https://medium.com/@octskyward/merge-avoidance-7f95a386692f&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Exact payment amounts (no change) ====&lt;br /&gt;
&lt;br /&gt;
Payments that send exact amounts and take no change are a likely indication that the bitcoins didn&#039;t move hands.&lt;br /&gt;
&lt;br /&gt;
This usually means that the user used the &amp;quot;send maximum amount&amp;quot; wallet feature to transfer funds to her new wallet, to an exchange account,&lt;br /&gt;
to fund a lightning channel, or other similar cases where the bitcoins remain under the same ownership.&lt;br /&gt;
&lt;br /&gt;
Other possible reasons for sending exact amounts with no change is that the coin-selection algorithm was smart and lucky enough to find a suitable set of inputs for the intended payment amount that didn&#039;t require change (or required a change amount that is negligible enough to waive), or advanced users using manual coin selection to explicitly avoid change.&lt;br /&gt;
&lt;br /&gt;
=== Batching ===&lt;br /&gt;
&lt;br /&gt;
[[Techniques to reduce transaction fees#Payment_batching|Payment batching]] is a technique to reduce the [[Miner fees|miner fee]] of a payment. It works by batching up several payments into one [[block chain]] [[transaction]]. It is typically used by exchanges, casinos and other high-volume spenders.&lt;br /&gt;
&lt;br /&gt;
The privacy implication comes in that recipients can see the amount and address of recipients&amp;lt;ref&amp;gt;https://bitcointechtalk.com/saving-up-to-80-on-bitcoin-transaction-fees-by-batching-payments-4147ab7009fb&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
When you receive your withdrawal from Kraken, you can look up your transaction on a block chain explorer and see the addresses of everyone else who received a payment in the same transaction. You don’t know who those recipients are, but you do know they received bitcoins from Kraken the same as you.&lt;br /&gt;
&lt;br /&gt;
That’s not good for privacy, but it’s also perhaps not the worst thing. If Kraken made each of those payments separately, they might still be connected together through the change outputs and perhaps also by certain other identifying characteristics that block chain analysis companies and private individuals use to fingerprint particular spenders.&lt;br /&gt;
&lt;br /&gt;
However, it is something to keep in mind if you’re considering batching payments where privacy might be especially important or already somewhat weak, such as making payroll in a small company where you don’t want each employee to learn the other employees’ salaries.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unusual scripts ===&lt;br /&gt;
&lt;br /&gt;
Most but not all bitcoin [[Script|scripts]] are single-signature. Other scripts are possible with the most common being [[multisignature]]. A script which is particularly unusual can leak information simply by being so unique.&lt;br /&gt;
&lt;br /&gt;
2-of-3 multisig is by far the most common non-single-signature script as of 2019.&lt;br /&gt;
&lt;br /&gt;
=== Mystery shopper payment ===&lt;br /&gt;
&lt;br /&gt;
A [[Mystery shopper payments|mystery shopper payment]] is when an adversary pays bitcoin to a target in order to obtain privacy-relevant information. It will work even if [[address reuse]] is avoided. For example, if the target is an online merchant then the adversary could buy a small item. On the payment interface they would be shown one of the merchant&#039;s bitcoin [[address]]es. The adversary now knows that this [[address]] belongs to the merchant and by watching the blockchain for later [[transaction]]s other information would be revealed, which when combined with other techniques could reveal a lot of data about the merchant. The [[common-input-ownership heuristic]] and change address detection could reveal other addresses belonging to the merchant (assuming countermeasures like [[CoinJoin]] are not used) and could give a lower-bound for the sales volume. This works because anybody on the entire internet can request one of the merchant&#039;s [[address]]es.&lt;br /&gt;
&lt;br /&gt;
=== Forced address reuse ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forced [[address reuse]]&#039;&#039;&#039; is when an adversary pays an (often small) amount of bitcoin to [[address]]es that have already been used on the [[block chain]]. The adversary hopes that users or their wallet software will use these &#039;&#039;forced payments&#039;&#039; as inputs to a larger transaction which will reveal other addresses via the the [[common-input-ownership heuristic]] and thereby leak more privacy-relevant information. These payments can be understood as a way to coerce the address owner into unintentional [[address reuse]]&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/3a1hte/psa_dust_being_sent_to_your_addresses_might_help/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/9r9qud/if_you_have_recently_received_a_very_small_amount/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This attack is sometimes incorrectly called a &#039;&#039;&#039;dust attack&#039;&#039;&#039;&amp;lt;ref&amp;gt;https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/471#issuecomment-565857814&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If the forced-payment coins have landed on already-used &#039;&#039;empty&#039;&#039; addresses, then the correct behaviour by wallets is to not spend those coins ever. If the coins have landed on addresses which are not empty, then the correct behaviour by wallets is to fully-spend all the coins on that address in the same transaction.&lt;br /&gt;
&lt;br /&gt;
=== Amount correlation ===&lt;br /&gt;
&lt;br /&gt;
Amounts correlation refers to searching the entire [[block chain]] for output amounts.&lt;br /&gt;
&lt;br /&gt;
For example, say we&#039;re using any black box privacy technology that breaks the [[transaction]] graph.&lt;br /&gt;
&lt;br /&gt;
 V --&amp;gt; [black box privacy tech] --&amp;gt; V - fee&lt;br /&gt;
&lt;br /&gt;
The privacy tech is used to mix V amount of bitcoins, and it returns V bitcoins minus fees back to the user. Amount correlation could be used to unmix this tech by searching the blockchain for transactions with an output amount close to V.&lt;br /&gt;
&lt;br /&gt;
A way to resist amount correlation is to split up the sending of bitcoins back to user into many transactions with output amounts (w0, w1, w2) which together add up to V minus fees.&lt;br /&gt;
&lt;br /&gt;
 V --&amp;gt; [privacy tech] 	--&amp;gt; w0&lt;br /&gt;
 			--&amp;gt; w1&lt;br /&gt;
 			--&amp;gt; w2&lt;br /&gt;
&lt;br /&gt;
Another way of using amount correlation is to use it to find a starting point. For example, if Bob wants to spy on Alice. Say that Alice happens to mention in passing that she&#039;s going on holiday costing $5000 with her boyfriend, Bob can search all transactions on the blockchain in the right time period and find transactions with output amounts close to $5000. Even if multiple matches are found it still gives Bob a good idea of which bitcoin addresses belong to Alice.&lt;br /&gt;
&lt;br /&gt;
=== Timing correlation ===&lt;br /&gt;
&lt;br /&gt;
Timing correlation refers to using the time information of transactions on the blockchain. Similar to amount correlation, if an adversary somehow finds out the time that an interesting transaction happened they can search the blockchain in that time period to narrow down their candidates.&lt;br /&gt;
&lt;br /&gt;
This can be beaten by uniform-randomly choosing a time between now and an appropriate time_period in which to broadcast the bitcoin transaction. This forces an adversary to search much more of the existing transactions; they have to equally consider the entire anonymity set between now and time_period.&lt;br /&gt;
&lt;br /&gt;
== Non-blockchain attacks on privacy ==&lt;br /&gt;
&lt;br /&gt;
=== Traffic analysis ===&lt;br /&gt;
&lt;br /&gt;
Bitcoin [[Full node|nodes]] communicate with each other via a [[Network|peer-to-peer network]] to transmit [[transaction]]s and [[block]]s. [[Network#Standard_relaying|Nodes relay]] these packets to all their connections, which has good privacy properties because a connected node doesn&#039;t know whether the transmitted data originated from its peer or whether the peer was merely relaying it.&lt;br /&gt;
&lt;br /&gt;
An adversary able to snoop on your internet connection (such as your government, ISP, Wifi provider or VPN provider) can see data sent and received by your node. This would reveal that you are a bitcoin user. Even if a connection is encrypted the adversary could still see the timings and sizes of data packets. A block being mined results in a largely synchronized burst of identically-sized traffic for every bitcoin node, because of this bitcoin nodes are very vulnerable to traffic analysis revealing the fact that bitcoin is being used.&lt;br /&gt;
&lt;br /&gt;
If the adversary sees a [[transaction]] or [[block]] coming out of your node which did not previously enter, then it can know with near-certainty that the [[transaction]] was made by you or the [[block]] was mined by you. As internet connections are involved, the adversary will be able to link the IP address with the discovered bitcoin information.&lt;br /&gt;
&lt;br /&gt;
A certain kind of [[Weaknesses#Sybil_attack|sybil attack]] can be used to discover the source of a [[transaction]] or [[block]] without the adversary entirely controlling the victims internet connection. It works by the adversary creating many of their own fake nodes on different IP addresses which aggressively announce themselves in an effort to attract more nodes to connect to them, they also try to connect to as many other listening nodes as they can. This high connectivity help the adversary to locate the source newly-broadcasted transactions and blocks by tracking them as they propagate through the [[network]].&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/2yvy6b/a_regulatory_compliance_service_is_sybil/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Alex Biryukov, Dmitry Khovratovich, and Ivan Pustogarov. 2014. Deanonymisation of Clients in Bitcoin P2P Network. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security (CCS &#039;14). ACM, New York, NY, USA, 15-29. DOI: 10.1145/2660267.2660379 https://arxiv.org/abs/1405.7418&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Koshy, Philip &amp;amp; Koshy, Diana &amp;amp; McDaniel, Patrick. (2014). An Analysis of Anonymity in Bitcoin Using P2P Network Traffic. 8437. 469-485. 10.1007/978-3-662-45472-5_30. http://ifca.ai/fc14/papers/fc14_submission_71.pdf&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/issues/3828&amp;lt;/ref&amp;gt;. Some wallets periodically rebroadcast their unconfirmed transactions so that they are more likely to propagate widely through the network and be [[Confirmation|mined]].&lt;br /&gt;
&lt;br /&gt;
Some wallets are not [[full node]]s but are lightweight nodes which function in a different way. They generally have far worse privacy properties, but how badly depends on the details of each wallet. Some [[Lightweight node|lightweight wallets]] can be connected only to your own [[full node]], and if that is done then their privacy with respect to traffic analysis will be improved to the level of a full node.&lt;br /&gt;
&lt;br /&gt;
=== Custodial Wallets ===&lt;br /&gt;
&lt;br /&gt;
Some bitcoin wallets are just front-ends that connects to a back-end server run by some company. This kind of wallet has no privacy at all, the operating company can see all the user&#039;s addresses and all their transactions, most of the time they&#039;ll see the user&#039;s IP address too. Users should not use web wallets.&lt;br /&gt;
&lt;br /&gt;
Main article: [[Browser-based wallet]]&lt;br /&gt;
&lt;br /&gt;
=== Wallet history retrieval from third-party ===&lt;br /&gt;
&lt;br /&gt;
All bitcoin wallets must somehow obtain information about their balance and history, which may leak information about which [[address]]es and [[transaction]]s belong to them.&lt;br /&gt;
&lt;br /&gt;
==== Blockchain explorer websites ====&lt;br /&gt;
&lt;br /&gt;
[[Block chain browser|Blockchain explorer websites]] are commonly used. Some users even search for their [[transaction]] on those websites and refresh it until it reaches 3 [[confirmation]]s. This is very bad for privacy as the website can easily link the user&#039;s IP address to their bitcoin transaction (unless [[tor]] is used), and the queries to their website reveal that the [[transaction]] or [[address]] is of interest to somebody who has certain behavioural patterns.&lt;br /&gt;
&lt;br /&gt;
To get information about your [[transaction]]s it is much better to use your wallet software, not some website.&lt;br /&gt;
&lt;br /&gt;
==== BIP 37 ====&lt;br /&gt;
&lt;br /&gt;
Many [[Lightweight node|lightweight wallets]] use the [[BIP_0037|BIP37]] standard, which has serious design flaws leading to privacy leaks. Any wallet that uses [[BIP_0037|BIP37]] provides no privacy at all and is equivalent to sending all the wallets addresses to a random server. That server can easily spy on the wallet. Lessons from the failure of BIP37 can be useful when designing and understanding other privacy solutions, especially with the point about data fusion of combining BIP37 bloom filter leaks with blockchain transaction information leaks.&lt;br /&gt;
&lt;br /&gt;
Main article: [[BIP37 privacy problems]]&lt;br /&gt;
&lt;br /&gt;
==== Public Electrum servers ====&lt;br /&gt;
&lt;br /&gt;
[[Electrum]] is a popular software wallet which works by connecting to special purpose servers. These servers receive hashes of the bitcoin addresses in the wallet and reply with [[transaction]] information. The Electrum wallet is fast and low-resource but by default it connects to these servers which can easily spy on the user. Some other software aside from [[Electrum]] uses the public Electrum servers. As of 2019 it is a faster and better alternative for [[Lightweight node|lightweight wallets]] than BIP37.&lt;br /&gt;
&lt;br /&gt;
Servers only learn the hashes of addresses rather than addresses themselves, in practice they only know the actual address and associated transactions if it&#039;s been used on the blockchain at least once.&lt;br /&gt;
&lt;br /&gt;
It is not very difficult to [[Electrum#Server_software|run your own Electrum server]] and point your wallet to use only it. This restores [[Electrum]] to have the same privacy and security properties as a [[full node]] where nobody else can see which addresses or transactions the wallet is interested in. Then [[Electrum]] becomes a [[full node]] wallet.&lt;br /&gt;
&lt;br /&gt;
=== Communication eavesdropping ===&lt;br /&gt;
&lt;br /&gt;
A simple but effective privacy leak. Alice gives Bob one of her [[address]]es to receive a payment, but the communication has been eavesdropped by Eve who saw the [[address]] and now knows it belongs to Alice. The solution is to encrypt addresses where appropriate or use another way of somehow hiding them from an adversary as per the threat model.&lt;br /&gt;
&lt;br /&gt;
Sometimes the eavesdropping can be very trivial, for example some forum users publish a bitcoin donation address on their website, forum signature, profile, twitter page, etc where it can be picked up by search engines. In the example of the non-anonymous Chinese newspaper buyer from the introduction, his address being publicly visible on his forum signature was a crucial part of his deanonymization. The solution here is to show each potential donator a new address, for example [[Receiving_donations_with_bitcoin#Improving_privacy_by_avoiding_address_re-use|by setting up a web server to hand out unique addresses to each visitor]].&lt;br /&gt;
&lt;br /&gt;
=== Revealing data when transacting bitcoin ===&lt;br /&gt;
&lt;br /&gt;
Sometimes users may voluntarily reveal data about themselves, or be required to by the entity they interact with. For example many exchanges require users to undergo Anti-Money Laundering and Know-Your-Customer (AML/KYC) checks, which requires users to reveal all kinds of invasive personal information such as their real name, residence, occupation and income. All this information is then linked with the bitcoin [[address]]es and [[transaction]]s that are later used.&lt;br /&gt;
&lt;br /&gt;
When buying goods online with bitcoin a delivery mail address is needed. This links the bitcoin transaction with the delivery address. The same applies to the user&#039;s IP address (unless privacy technology like [[Tor]] is used).&lt;br /&gt;
&lt;br /&gt;
=== Digital forensics ===&lt;br /&gt;
&lt;br /&gt;
Wallet software usually stores information it needs to operate on the disk of the computer it runs on. If an adversary has access to that disk it can extract bitcoin [[address]]es and [[transactions]] which are known to be linked with the owner of that disk. The same disk might contain other personal information (such as a scan of an ID card). Digital forensics is one reason why all good wallet software encrypts wallet files, although that can be beaten if a weak encryption password is used.&lt;br /&gt;
&lt;br /&gt;
For example if you have a bitcoin wallet installed on your PC and give the computer to a repair shop to fix, then the repair shop operator could find the wallet file and records of all your transactions. Other examples might be if an old hard disk is thrown away. Other software installed on the same computer (such as malware) can also read from disk or RAM to spy on the bitcoin transactions made by the user.&lt;br /&gt;
&lt;br /&gt;
For privacy don&#039;t leave data on your computer available to others. Exactly how depends on your threat model. Encryption and physical protection are options, as is using special operating systems like [https://tails.boum.org/ Tails OS] which does not read or write from the hard drive but only uses RAM, and then deletes all data on shutdown.&lt;br /&gt;
&lt;br /&gt;
== Methods for improving privacy (non-blockchain) ==&lt;br /&gt;
&lt;br /&gt;
=== Obtaining bitcoins anonymously ===&lt;br /&gt;
&lt;br /&gt;
If the adversary has not linked your bitcoin address with your identity then privacy is much easier. Blockchain spying methods like the [[common-input-ownership heuristic]], detecting [[change]] addresses and amount correlation are not very effective on their own if there is no starting point to link back to.&lt;br /&gt;
&lt;br /&gt;
Many exchanges require users to undergo Anti-Money Laundering and Know-Your-Customer (AML/KYC) checks, which requires users to reveal all kinds of invasive personal information such as their real name, residence, occupation and income. All this information is then linked with the bitcoin [[address]]es and [[transaction]]s that are later used.&lt;br /&gt;
&lt;br /&gt;
Avoiding the privacy invasion of AML/KYC is probably the single most important thing an individual can do to improve their privacy. It works far better than any actual technology like [[CoinJoin]]. Indeed all the cryptography and privacy tricks are irrelevant if all users only ever transact between AML/KYC institutions&amp;lt;ref&amp;gt;https://twitter.com/waxwing__/status/983258474040774657&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Cash trades ====&lt;br /&gt;
&lt;br /&gt;
Physical cash is an anonymous medium of exchange, so using it is a way to obtain bitcoin anonymously where no one except trading partners exchange identifying data.&lt;br /&gt;
&lt;br /&gt;
This section won&#039;t list websites to find such meetups because the information can go out of date, but try searching the web with &amp;quot;buy bitcoin for cash &amp;lt;your location&amp;gt;&amp;quot;. Note that some services still require ID so that is worth checking. Some services require ID only for the trader placing the advert. As of late-2018 there is at least one [[Bisq|decentralized exchange open source project]] in development which aims to facilitate this kind of trading without a needing a centralized third party at all but instead using a peer-to-peer network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cash-in-person&#039;&#039;&#039; trades are an old and popular method. Two traders arrange to meet up somewhere and the buyer hands over cash while the seller makes a bitcoin transaction to the buyer. This is similar to other internet phenomena like Craigslist which organize meetups for exchange. [[Secure Trading#Use_an_Escrow_Service|Escrow can be used]] to improve safety or to avoid the need to wait for [[confirmation]]s at the meetup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cash-by-mail&#039;&#039;&#039; works by having the buyer send physical cash through the mail. [[Secure Trading#Use_an_Escrow_Service|Escrow is always used]] to prevent scamming. The buyer of bitcoins can be very anonymous but the seller must reveal a mail address to the buyer. Cash-by-mail can work over long distances but does depend on the postal service infrastructure. Users should check with their local postal service if there are any guidelines around sending cash-by-mail. Often the cash can also be insured.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cash deposit&#039;&#039;&#039; is a method where the buyer deposits cash directly into the seller&#039;s bank account. Again [[Secure Trading#Use_an_Escrow_Service|escrow is used]], and again the buyer of bitcoins can be near-anonymous but the seller must sign up with a bank or financial institution and share with them rather invasive details about one&#039;s identity and financial history. This method relies on the personal banking infrastructure so works over long distances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cash dead drop&#039;&#039;&#039; is a rarely used method. It is similar to a cash-in-person trade but the traders never meet up. The buyer chooses a location to hide the cash in a public location, next the buyer sends a message to the seller telling them the location, finally the seller picks up the cash from the hidden location. [[Secure Trading#Use_an_Escrow_Service|Escrow is a requirement]] to avoid scamming. This method is very anonymous for the buyer as the seller won&#039;t even learn their physical appearance, for the seller it is slightly less anonymous as the buyer can stalk the location to watch the seller collect the cash.&lt;br /&gt;
&lt;br /&gt;
==== Cash substitute ====&lt;br /&gt;
&lt;br /&gt;
Cash substitutes like gift cards, mobile phone credits or prepaid debit cards can often be bought from regular stores with cash and then traded online for bitcoin.&lt;br /&gt;
&lt;br /&gt;
==== Employment ====&lt;br /&gt;
&lt;br /&gt;
Bitcoins accepted as payment for work done can be anonymous if the employer does not request much personal information. This may work well in a freelancing or contracting setting. Although if your adversary is your own employer then obviously this is not good privacy.&lt;br /&gt;
&lt;br /&gt;
==== Mining ====&lt;br /&gt;
&lt;br /&gt;
Mining is the most anonymous way to obtain bitcoin. This applies to solo-mining as [[Pooled mining|mining pools]] generally know the hasher&#039;s IP address. Depending on the size of operation mining may use a lot of electrical power which may attract suspicion. Also the [[ASIC|specialized mining hardware]] may be difficult to get hold of anonymously (although they wouldn&#039;t be linked to the resulting mined bitcoins).&lt;br /&gt;
&lt;br /&gt;
==== Stealing ====&lt;br /&gt;
&lt;br /&gt;
In theory another way of obtaining anonymous bitcoin is to steal them.&amp;lt;ref&amp;gt;https://twitter.com/thegrugq/status/1062194678089404421&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is at least one situation where this happened. In May 2015 a hacker known as Phineas Fisher&amp;lt;ref&amp;gt;https://motherboard.vice.com/en_us/article/3k9zzk/hacking-team-hacker-phineas-fisher-has-gotten-away-with-it&amp;lt;/ref&amp;gt; hacked a spyware company that was selling surveillance products to dictators&amp;lt;ref&amp;gt;https://motherboard.vice.com/en_us/article/nzeg5x/here-are-all-the-sketchy-government-agencies-buying-hacking-teams-spy-tech&amp;lt;/ref&amp;gt;. The hacker used bitcoin stolen from other people to anonymously rent infrastructure for later attacks.&lt;br /&gt;
&lt;br /&gt;
=== Spending bitcoins anonymously ===&lt;br /&gt;
&lt;br /&gt;
If you give up your delivery address (which you&#039;ll have to if you&#039;re buying physical goods online) then that will be a data leak. Obviously this is unavoidable in many cases.&lt;br /&gt;
&lt;br /&gt;
=== Wallet history synchronization ===&lt;br /&gt;
&lt;br /&gt;
Bitcoin wallets must somehow obtain information about their balance and history. As of late-2018 the most practical and private existing solutions are to use a [[full node]] wallet (which is maximally private) and [[client-side block filtering]] (which is very good).&lt;br /&gt;
&lt;br /&gt;
One issue with these technologies is that they always costs more resources (time, bandwidth, storage, etc) than non-private solutions like web wallets and centralized [[Electrum]] servers. There are measurements indicating that very few people actually use [[BIP_0037|BIP37]] because of how slow it is&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-June/016062.html&amp;lt;/ref&amp;gt;, so even [[client-side block filtering]] may not be used very much.&lt;br /&gt;
&lt;br /&gt;
==== Full node ====&lt;br /&gt;
&lt;br /&gt;
[[Full node]]s download the entire blockchain which contains every on-chain [[transaction]] that has ever happened in bitcoin. So an adversary watching the user&#039;s internet connection [[Full node#Privacy|will not be able to learn]] which transactions or addresses the user is interested in. This is the best solution to wallet history synchronization with privacy, but unfortunately it costs a significant amount in time and bandwidth.&lt;br /&gt;
&lt;br /&gt;
==== Private information retrieval ====&lt;br /&gt;
&lt;br /&gt;
In cryptography, a private information retrieval (PIR) protocol is a protocol that allows a user to retrieve an item from a server in possession of a database without revealing which item is retrieved. This has been proposed as a way to private synchronize wallet history but as PIR is so resource-intensive, users who don&#039;t mind spending bandwidth and time could just run a [[full node]] instead.&lt;br /&gt;
&lt;br /&gt;
==== Client-side block filtering ====&lt;br /&gt;
&lt;br /&gt;
[[Client-side block filtering]] works by having filters created that contains all the [[address]]es for every [[transaction]] in a [[block]]. The filters can test whether an element is in the set; false positives are possible but not false negatives. A lightweight wallet would download all the filters for every block in the blockchain and check for matches with its own addresses. [[Block]]s which contain matches would be downloaded in full from the [[Network|peer-to-peer network]], and those blocks would be used to obtain the wallet&#039;s history and current balance.&lt;br /&gt;
&lt;br /&gt;
==== Address query via onion routing ====&lt;br /&gt;
&lt;br /&gt;
Wallet histories can be obtained from centralized servers (such as [[Electrum]] servers) but using a new Tor circuit for each address. A closely-related idea is to connect together [[Electrum]] servers in an onion-routing network&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009510.html&amp;lt;/ref&amp;gt;. When creating such a scheme, care should be taken to avoid timing correlation linking the addresses together, otherwise the server could use the fact that the addresses were requested close to each other in time.&lt;br /&gt;
&lt;br /&gt;
=== Countermeasures to traffic analysis ===&lt;br /&gt;
&lt;br /&gt;
[[Bitcoin Core]] and its forks have countermeasures against [[Weaknesses#Sybil_attack|sybil attack]] and eclipse attacks. Eclipse attacks are sybil attacks where the adversary attempts to control all the peers of its target and block or control access to the rest of the network&amp;lt;ref&amp;gt;https://bitcoin.stackexchange.com/questions/61151/eclipse-attack-vs-sybil-attack&amp;lt;/ref&amp;gt;. Such attacks have been extensively studied in a 2015 paper [https://eprint.iacr.org/2015/263.pdf Eclipse Attacks on Bitcoin’s Peer-to-Peer Network] which has led to new code written for [[Bitcoin Core]] for mitigation.&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/8282&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/5941&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/9037&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/8594&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/12626&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bitcoin Core]] and its forks use an algorithm known as trickling when relaying unconfirmed transactions, with the aim of making it as difficult as possible for sybil attackers to find the source IP address of a [[transaction]]. For each peer, the node keeps a list of transactions that it is going to [[Network#Messages|inv]] to it. It sends [[Network#Messages|inv&#039;s]] for transactions periodically with a random delay between each [[Network#Messages|inv]]. Transactions are selected to go into the [[Network#Messages|inv]] message somewhat randomly and according to some metrics involving fee rate. It selects a limited number of transactions to [[Network#Messages|inv]]. The algorithm creates the possibility that a peered node may hear about an unconfirmed transaction from the creator&#039;s neighbours rather than the creator node itself&amp;lt;ref&amp;gt;https://bitcoin.stackexchange.com/questions/83018/transaction-relay-and-trickling-in-bitcoin&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/issues/13298&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/7125&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/7840&amp;lt;/ref&amp;gt;. However adversaries can still sometimes obtain privacy-relevant information.&lt;br /&gt;
&lt;br /&gt;
Encrypting messages between peers as in [https://github.com/bitcoin/bips/blob/master/bip-0151.mediawiki BIP 151] would make it harder for a passive attacker such as an ISP or Wifi provider to see the exact messages sent and received by a bitcoin node.&lt;br /&gt;
&lt;br /&gt;
==== Tor and tor broadcasting ====&lt;br /&gt;
&lt;br /&gt;
If a connection-controlling adversary is a concern, then bitcoin can be run entirely over [[tor]]. [[Tor]] is encrypted and hides endpoints, so an ISP or Wifi providers won&#039;t even know you&#039;re using bitcoin. The other connected bitcoin nodes won&#039;t be able to see your IP address as [[tor]] hides it. [[Bitcoin Core]] and its forks have features to make setting up and using [[tor]] easier. Some [[Lightweight node|lightweight wallets]] also run entirely over [[tor]].&lt;br /&gt;
&lt;br /&gt;
Running entirely over [[tor]] has the downside that synchronizing the node requires downloading the entire blockchain over tor, which would be very slow. Downloading [[block]]s over Tor only helps in the situation where you want to hide the fact that bitcoin is even being used from the internet service provider&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=7.msg264#msg264&amp;lt;/ref&amp;gt;. It is possible to download [[blocks]] and unconfirmed [[transaction]]s over clearnet but broadcast your own [[transaction]]s over [[tor]], allowing a fast clearnet connection to be used while still providing privacy when broadcasting.&lt;br /&gt;
&lt;br /&gt;
[[Bitcoin Core]] being configured with the option &amp;lt;code&amp;gt;walletbroadcast=0&amp;lt;/code&amp;gt; will stop [[transaction]]s belonging to the user from being broadcast and rebroadcast, allowing them to be broadcast instead via [[tor]] or another privacy-preserving method&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/5951&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Dandelion ====&lt;br /&gt;
&lt;br /&gt;
Dandelion is another technology for private transaction broadcasting. The main idea is that transaction propagation proceeds in two phases: first the &amp;quot;stem&amp;quot; phase, and then &amp;quot;fluff&amp;quot; phase. During the stem phase, each node relays the transaction to a &#039;&#039;single&#039;&#039; peer. After a random number of hops along the stem, the transaction enters the fluff phase, which behaves just like ordinary transaction flooding/diffusion. Even when an attacker can identify the location of the fluff phase, it is much more difficult to identify the source of the stem.&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-June/014571.html&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/015030.html&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://bitcoinmagazine.com/articles/anatomy-anonymity-how-dandelion-could-make-bitcoin-more-private/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://www.youtube.com/watch?v=XORDEX-RrAI&amp;amp;t=7h34m35s&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interactive peer broadcasting ====&lt;br /&gt;
&lt;br /&gt;
Some privacy technologies like [[CoinJoin]] and [[CoinSwap]] require interactivity between many bitcoin entities. They can also be used to broadcast transactions with more privacy, because peers in the privacy protocols can send each other unconfirmed transactions using the already-existing protocol they use to interact with each other. &lt;br /&gt;
&lt;br /&gt;
For example, in [[JoinMarket]] market takers can send [[transaction]]s to market makers who will broadcast them and so improve the taker&#039;s privacy. This can be a more convenient for the taker than setting up [[Tor]] for use with [[#Tor_and_tor_broadcasting|tor broadcasting]].&lt;br /&gt;
&lt;br /&gt;
==== Receiving bitcoin data over satellite ====&lt;br /&gt;
&lt;br /&gt;
At least one bitcoin company offers a satellite bitcoin service&amp;lt;ref&amp;gt;https://blockstream.com/satellite/&amp;lt;/ref&amp;gt;. This is a free service where satellites broadcast the bitcoin blockchain to nearly anywhere in the world. If users set up a dish antenna pointing at a satellite in space, then they can receive bitcoin blocks needed to run a [[full node]]. As the satellite setups are receive-only nobody can detect that the user is even running bitcoin, and certainly not which [[address]]es or [[transaction]]s belong to them.&lt;br /&gt;
&lt;br /&gt;
As of 2019 the company offers a paid-for API which allows broadcasting any data to anywhere in the world via satellite, which seems to be how they make their money. But it appears the base service of broadcasting the blockchain will always be free.&lt;br /&gt;
&lt;br /&gt;
Main article: https://blockstream.com/satellite/&lt;br /&gt;
&lt;br /&gt;
== Methods for improving privacy (blockchain) ==&lt;br /&gt;
&lt;br /&gt;
This section describes different techniques for improving the privacy of [[transaction]]s related to the permanent record of transactions on the blockchain. Some techniques are trivial and are included in all good bitcoin wallets. Others have been implemented in some open source projects or services, which may use more than one technique at a time. Other techniques have yet to be been implemented. Many of these techniques focus on breaking different heuristics and assumptions about the blockchain, so they work best when combined together.&lt;br /&gt;
&lt;br /&gt;
=== Avoiding [[address reuse]] ===&lt;br /&gt;
&lt;br /&gt;
[[Address]]es being used more than once is very damaging to privacy because that links together more blockchain [[transaction]]s with proof that they were created by the same entity. The most private and secure way to use bitcoin is to send a brand new address to each person who pays you. After the received coins have been spent the address should never be used again. Also, a brand new bitcoin address should be demanded when sending bitcoin. All good bitcoin wallets have a user interface which discourages [[address reuse]].&lt;br /&gt;
&lt;br /&gt;
It has been argued that the phrase &amp;quot;bitcoin address&amp;quot; was a bad name for this object because it implies it can be reused like an email address. A better name would be something like &amp;quot;bitcoin invoice&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bitcoin isn&#039;t anonymous but pseudonymous, and the pseudonyms are bitcoin addresses. Avoiding [[address reuse]] is like throwing away a pseudonym after its been used.&lt;br /&gt;
&lt;br /&gt;
[[Bitcoin Core]] 0.17 includes an update to improve the privacy situation with [[address reuse]]&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md#partial-spend-avoidance&amp;lt;/ref&amp;gt;. When an address is paid multiple times the coins from those separate payments can be spent separately which hurts privacy due to linking otherwise separate addresses. A -avoidpartialspends flag has been added (default=false), if enabled the wallet will always spend existing UTXO to the same address together even if it results in higher fees. If someone were to send coins to an address after it was used, those coins will still be included in future coin selections.&lt;br /&gt;
&lt;br /&gt;
==== Avoiding [[#Forced_address_reuse|forced address reuse]] ====&lt;br /&gt;
&lt;br /&gt;
The easiest way to avoid the privacy loss from [[#Forced_address_reuse|forced address reuse]] to not spend coins that have landed on an already-used and empty addresses. Usually the payments are of a very low value so no relevant money is lost by simply not spending the coins.&lt;br /&gt;
&lt;br /&gt;
Another option is to spend the coins individual directly to miner fees. Here are instructions for how to do this with Electrum or Bitcoin Core: https://gist.github.com/ncstdc/90fe6209a0b3ae815a6eaa2aef53524c&lt;br /&gt;
&lt;br /&gt;
Dust-b-gone is an old project&amp;lt;ref&amp;gt;https://github.com/petertodd/dust-b-gone&amp;lt;/ref&amp;gt; which aimed to safely spend forced-address-reuse payments. It signs all the UTXOs together with other people&#039;s and spends them to miner fees. The [[transaction]]s use rare [[OP_CHECKSIG]] sighash flags so they can be easily eliminated from the adversary&#039;s analysis, but at least the forced address reuse payments don&#039;t lead to further privacy loss.&lt;br /&gt;
&lt;br /&gt;
=== Coin control ===&lt;br /&gt;
&lt;br /&gt;
Coin control is a feature of some bitcoin wallets that allow the user to choose which [[Coin analogy|coins]] are to be spent as inputs in an outgoing [[transaction]]. Coin control is aimed to avoid as much as possible [[transaction]]s where privacy leaks are caused by amounts, change addresses, the transaction graph and the [[common-input-ownership heuristic]]&amp;lt;ref&amp;gt;https://medium.com/@octskyward/merge-avoidance-7f95a386692f&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://medium.com/@nopara73/coin-control-is-must-learn-if-you-care-about-your-privacy-in-bitcoin-33b9a5f224a2&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An example for avoiding a transaction graph privacy leak with coin control: A user is paid bitcoin for their employment, but also sometimes buys bitcoin with cash. The user wants to donate some money to a charitable cause they feel passionately about, but doesn&#039;t want their employer to know. The charity also has a publicly-visible donation address which can been found by web search engines. If the user paid to the charity without coin control, his wallet may use [[Coin analogy|coins]] that came from the employer, which would allow the employer to figure out which charity the user donated to. By using coin control, the user can make sure that only [[Coin analogy|coins]] that were obtained anonymously with cash were sent to the charity. This avoids the employer ever knowing that the user financially supports this charity.&lt;br /&gt;
&lt;br /&gt;
=== Multiple transactions ===&lt;br /&gt;
&lt;br /&gt;
Paying someone with more than one on-chain [[transaction]] can greatly reduce the power of amount-based privacy attacks such as amount correlation and round numbers. For example, if the user wants to pay 5 BTC to somebody and they don&#039;t want the 5 BTC value to be easily searched for, then they can send two transactions for the value of 2 BTC and 3 BTC which together add up to 5 BTC.&lt;br /&gt;
&lt;br /&gt;
Privacy-conscious merchants and services should provide customers with more than one bitcoin [[address]] that can be paid.&lt;br /&gt;
&lt;br /&gt;
=== Change avoidance ===&lt;br /&gt;
&lt;br /&gt;
Change avoidance is where transaction inputs and outputs are carefully chosen to not require a change output at all. Not having a change output is excellent for privacy, as it breaks change detection heuristics.&lt;br /&gt;
&lt;br /&gt;
Change avoidance is practical for high-volume bitcoin services, which typically have a large number of inputs available to spend and a large number of required outputs for each of their customers that they&#039;re sending money to. This kind of change avoidance also lowers [[miner fees]] because the transactions uses less block space overall.&lt;br /&gt;
&lt;br /&gt;
Main article: [[Techniques_to_reduce_transaction_fees#Change_avoidance]]&lt;br /&gt;
&lt;br /&gt;
Another way to avoid creating a change output is in cases where the exact amount isn&#039;t important and an entire UTXO or group of UTXOs can be fully-spent. An example is when opening a [[Lightning Network]] [[payment channel]]. Another example would be when sweeping funds into a [[cold storage]] wallet where the exact amount may not matter.&lt;br /&gt;
&lt;br /&gt;
=== Multiple change outputs ===&lt;br /&gt;
&lt;br /&gt;
If [[#Change_avoidance|change avoidance]] is not an option then creating more than one change output can improve privacy. This also breaks change detection heuristics which usually assume there is only a single change output. As this method uses more block space than usual, change avoidance is preferable.&lt;br /&gt;
&lt;br /&gt;
=== Script privacy improvements ===&lt;br /&gt;
&lt;br /&gt;
The [[Script|script]] of each bitcoin output leaks privacy-relevant information. For example as of late-2018 around 70% of bitcoin addresses are single-signature and 30% are [[multisignature]]&amp;lt;ref&amp;gt;https://p2sh.info/&amp;lt;/ref&amp;gt;. Much research has gone into improving the privacy of scripts by finding ways to make several different script kinds look the same. As well as improving privacy, these ideas also improve the scalability of the system by reducing storage and bandwidth requirements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ECDSA-2P&#039;&#039;&#039; is a cryptographic scheme which allows the creation of a 2-of-2 [[multisignature]] scheme but which results in a regular single-sig [[Elliptic Curve Digital Signature Algorithm|ECDSA]] signature when included on the blockchain&amp;lt;ref&amp;gt;Scaling Bitcoin conference 2018 Tokyo. Conner Fromknecht (Lightning Labs)&lt;br /&gt;
Instantiating [Scriptless] 2P-ECDSA: Fungible 2-of-2 MultiSigs for Today&#039;s Bitcoin. https://www.youtube.com/watch?v=3mJURLD2XS8&amp;amp;t=3623 https://diyhpl.us/wiki/transcripts/scalingbitcoin/tokyo-2018/scriptless-ecdsa/&amp;lt;/ref&amp;gt;. It doesn&#039;t need any consensus changes because bitcoin already uses [[Elliptic Curve Digital Signature Algorithm|ECDSA]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Schnorr]]&#039;&#039;&#039; is a digital signature scheme which has many benefits over the status-quo [[Elliptic Curve Digital Signature Algorithm|ECDSA]]&amp;lt;ref&amp;gt;https://medium.com/cryptoadvance/how-schnorr-signatures-may-improve-bitcoin-91655bcb4744&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://bitcoincore.org/en/2017/03/23/schnorr-signature-aggregation/&amp;lt;/ref&amp;gt;. One side effect is that any N-of-N&amp;lt;ref&amp;gt;https://blockstream.com/2018/01/23/musig-key-aggregation-schnorr-signatures/&amp;lt;/ref&amp;gt; and M-of-N [[multisignature]] can be easily made to look like a single-sig when included on the blockchain. Adding [[Schnorr]] to bitcoin requires a [[Softfork]] consensus change. As of 2019 a design for the signature scheme has been proposed&amp;lt;ref&amp;gt;https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki&amp;lt;/ref&amp;gt;. The required [[softfork]] consensus change is still in the design stage as of early-2019.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Scriptless scripts]]&#039;&#039;&#039; are a set of cryptographic protocols which provide a way of replicating the logic of [[script]] without actually having the script conditions visible, which increases privacy and scalability by removing information from the blockchain&amp;lt;ref&amp;gt;https://bitcoinmagazine.com/articles/scriptless-scripts-how-bitcoin-can-support-smart-contracts-without-smart-contracts/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://download.wpsoftware.net/bitcoin/wizardry/mw-slides/2017-03-mit-bitcoin-expo/slides.pdf&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://joinmarket.me/blog/blog/flipping-the-scriptless-script-on-schnorr/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-April/001221.html&amp;lt;/ref&amp;gt;. This is generally aimed at protocols involving [[Hash Time Locked Contracts]] such as [[Lightning Network]] and [[CoinSwap]].&lt;br /&gt;
&lt;br /&gt;
With scriptless scripts, nearly the only thing visible is the public keys and signatures. More than that, in multi-party settings, there will be a single public key and a single signature for all the actors. Everything looks the same-- [[Lightning Network|lightning]] [[payment channels]] would look the same as single-sig payments, escrows, [[atomic swap]]s, or sidechain federation pegs. Pretty much anything you think about that people are doing on bitcoin in 2019, can be made to look essentially the same&amp;lt;ref&amp;gt;http://diyhpl.us/wiki/transcripts/layer2-summit/2018/scriptless-scripts/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MAST&#039;&#039;&#039; is short for Merkelized Abstract Syntax Tree, which is a scheme for hiding unexecuted branches of a [[script]] contract. It improves privacy and scalability by removing information from the blockchain&amp;lt;ref&amp;gt;https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://bitcoinmagazine.com/articles/the-next-step-to-improve-bitcoin-s-flexibility-scalability-and-privacy-is-called-mast-1476388597/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Taproot&#039;&#039;&#039; is a way to combine Schnorr signatures with MAST&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015614.html&amp;lt;/ref&amp;gt;. The Schnorr signature can be used to spend the coin, but also a MAST tree can be revealed only when the user wants to use it. The schnorr signature can be any N-of-N or use any scriptless script contract. The consequence of taproot is a much larger anonymity set for interesting smart contracts, as any contract such as [[Lightning Network]], [[CoinSwap]], [[multisignature]], etc would appear indistinguishable from regular single-signature on-chain transaction.&lt;br /&gt;
&lt;br /&gt;
The taproot scheme is so useful because it is almost always the case that interesting scripts have a logical top level branch which allows satisfaction of the contract with nothing other than a signature by all parties. Other branches would only be used where some participant is failing to cooperate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graftroot&#039;&#039;&#039; is a smart contract scheme similar to taproot. It allows users to include other possible [[script]]s for spending the coin but with less resources used even than taproot. The tradeoff is that interactivity is required between the participants&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015700.html&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/7vcyip/graftroot_private_and_efficient_surrogate_scripts/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://bitcoinmagazine.com/articles/graftroot-how-delegating-signatures-allows-near-infinite-spending-variations/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[nLockTime]]&#039;&#039;&#039; is a field in the serialized [[transaction]] format. It can be used in certain situations to create a more private [[timelock]] which avoids using [[script]] opcodes.&lt;br /&gt;
&lt;br /&gt;
=== ECDH addresses ===&lt;br /&gt;
&lt;br /&gt;
[[ECDH address]]es can be used to improve privacy by helping avoid [[address reuse]]. For example, a user can publish a [[ECDH address]] as a [[Receiving donations with bitcoin|donation address]] which is usable by people who want to donate. An adversary can see the ECDH donation address but won&#039;t be able to easily find any [[transaction]]s spending to and from it.&lt;br /&gt;
&lt;br /&gt;
However [[ECDH address]]es do not solve all privacy problems as they are still vulnerable to [[Mystery_shopper_payments|mystery shopper payments]]; an adversary can donate some bitcoins and watch on the blockchain to see where they go afterwards, using heuristics like the [[common-input-ownership heuristic]] to obtain more information such as donation volume and final destination of funds.&lt;br /&gt;
&lt;br /&gt;
ECDH addresses have [[ECDH address|some practicality issues]] and are very closely equivalent to [[Receiving_donations_with_bitcoin#Improving_privacy_by_avoiding_address_re-use|running a http website which hands out bitcoin addresses to anybody who wants to donate]] except without an added step of interactivity. It is therefore unclear whether ECDH are useful outside the use-case of non-interactive donations or a self-contained application which sends money to one destination without any interactivity.&lt;br /&gt;
&lt;br /&gt;
=== Centralized mixers ===&lt;br /&gt;
&lt;br /&gt;
This is an old method for breaking the [[#Transaction graph|transaction graph]]. Also called &amp;quot;tumblers&amp;quot; or &amp;quot;washers&amp;quot;. A user would send bitcoins to a [[mixing service]] and the service would send different bitcoins back to the user, minus a fee. In theory an adversary observing the blockchain would be unable to link the incoming and outgoing [[transaction]]s.&lt;br /&gt;
&lt;br /&gt;
There are several downsides to this. The mixer it must be trusted to keep secret the linkage between the incoming and outgoing transactions. Also the mixer must be trusted not to steal coins. This risk of stealing creates reputation effects; older and more established mixers will have a better reputation and will be able to charge fees far above the marginal cost of mixing coins. Also as there is no way to sell reputation, the ecosystem of mixers will be filled with occasional exit scams.&lt;br /&gt;
&lt;br /&gt;
There is a better alternative to mixers which has essentially the same privacy and custody risks. A user could deposit and then withdraw coins from any regular bitcoin website that has a hot wallet. As long as the bitcoin service doesn&#039;t require any other information from the user, it has the same privacy and custody aspects as a centralized mixer and is also much cheaper. Examples of suitable bitcoin services are bitcoin casinos, bitcoin poker websites, tipping websites, altcoin exchanges or online marketplaces&amp;lt;ref&amp;gt;https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b#worked-example-for-tumbler-replacement&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The problem of the service having full knowledge of the transactions could be remedied by cascading several services together. A user who wants to avoid tracking by passive observers of the blockchain could first send coins to a bitcoin casino, from them withdraw and send directly to an altcoin exchange, and so on until the user is happy with the privacy gained.&lt;br /&gt;
&lt;br /&gt;
Main article: [[Mixing service]]&lt;br /&gt;
&lt;br /&gt;
=== CoinJoin ===&lt;br /&gt;
&lt;br /&gt;
[[CoinJoin]] is a special kind of bitcoin transaction where multiple people or entities cooperate to create a single transaction involving all their inputs. It has the effect of breaking the [[common-input-ownership heuristic]] and it makes use of the [[Coin_analogy#Fungibility|inherent fungibility of bitcoin within transactions]]. The [[CoinJoin]] technique has been possible since the very start of bitcoin and cannot be blocked except in the ways that any other bitcoin [[transaction]]s can be blocked. Just by looking at a transaction it is not possible to tell for sure whether it is a coinjoin. CoinJoins are non-custodial as they can be done without any party involved in a coinjoin being able to steal anybody else&#039;s bitcoins&amp;lt;ref&amp;gt;https://www.reddit.com/r/joinmarket/comments/3c7hnm/joinmarket_is_smart_contracts/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Equal-output CoinJoin ====&lt;br /&gt;
&lt;br /&gt;
Say this transaction is a [[CoinJoin]], meaning that the 2 BTC and 3 BTC inputs were actually owned by different entities.&lt;br /&gt;
&lt;br /&gt;
 2 btc --&amp;gt; 3 btc&lt;br /&gt;
 3 btc     2 btc&lt;br /&gt;
&lt;br /&gt;
This transaction breaks the [[common-input-ownership heuristic]], because its inputs are not all owned by the same person but it is still easy to tell where the bitcoins of each input ended up. By looking at the amounts (and assuming that the two entities do not pay each other) it is obvious that the 2 BTC input ends up in the 2 BTC output, and the same for the 3 BTC. To really improve privacy you need [[CoinJoin]] transaction that have a more than one equal-sized output:&lt;br /&gt;
&lt;br /&gt;
 2 btc --&amp;gt; 2 btc&lt;br /&gt;
 3 btc     2 btc&lt;br /&gt;
           1 btc&lt;br /&gt;
&lt;br /&gt;
In this [[transaction]] the two outputs of value 2 BTC cannot be linked to the inputs. They could have come from either input. This is the crux of how [[CoinJoin]] can be used to improve privacy, not so much breaking the transaction graph rather fusing it together. Note that the 1 BTC output has not gained much privacy, as it is easy to link it with the 3 BTC input. The privacy gain of these CoinJoins is compounded when the they are repeated several times.&lt;br /&gt;
&lt;br /&gt;
As of late-2018 [[CoinJoin]] is the only decentralized bitcoin privacy method that has been deployed. Examples of (likely) [[CoinJoin]] transactions IDs on bitcoin&#039;s blockchain are &amp;lt;code&amp;gt;402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238&amp;lt;/code&amp;gt;. Note that these coinjoins involve more than two people, so each individual user involved cannot know the true connection between inputs and outputs (unless they collude).&lt;br /&gt;
&lt;br /&gt;
==== PayJoin ====&lt;br /&gt;
{{Main|PayJoin}}&lt;br /&gt;
The type of [[CoinJoin]] discussed in the previous section can be easily identified as such by checking for the multiple outputs with the same value. It&#039;s important to note that such identification is always deniable, because somebody could make fake [[CoinJoin]]s that have the same structure as a coinjoin transaction but are made by a single person.&lt;br /&gt;
&lt;br /&gt;
PayJoin (also called pay-to-end-point or P2EP)&amp;lt;ref&amp;gt;https://blockstream.com/2018/08/08/improving-privacy-using-pay-to-endpoint/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://medium.com/@nopara73/pay-to-endpoint-56eb05d3cac6&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://gist.github.com/AdamISZ/4551b947789d3216bacfcb7af25e029e&amp;lt;/ref&amp;gt; is a special type of [[CoinJoin]] between two parties where one party pays the other. The [[transaction]] then doesn&#039;t have the distinctive multiple outputs with the same value, and so is not obviously visible as an equal-output [[CoinJoin]]. Consider this transaction:&lt;br /&gt;
&lt;br /&gt;
 2 btc --&amp;gt; 3 btc&lt;br /&gt;
 5 btc     4 btc&lt;br /&gt;
&lt;br /&gt;
It could be interpreted as a simple transaction paying to somewhere with leftover change (ignore for now the question of which output is payment and which is [[change]]). Another way to interpret this transaction is that the 2 BTC input is owned by a merchant and 5 BTC is owned by their customer, and that this transaction involves the customer paying 1 BTC to the merchant. There is no way to tell which of these two interpretations is correct. The result is a coinjoin transaction that breaks the [[common-input-ownership heuristic]] and improves privacy, but is also undetectable and indistinguishable from any regular bitcoin transaction.&lt;br /&gt;
&lt;br /&gt;
If PayJoin [[transaction]]s became even moderately used then it would make the [[common-input-ownership heuristic]] be completely flawed in practice. As they are undetectable we wouldn&#039;t even know whether they are being used today. As [[transaction surveillance company|transaction surveillance companies]] mostly depend on that heuristic, as of 2019 there is great excitement about the PayJoin idea&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-August/016340.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== CoinSwap ===&lt;br /&gt;
{{Main|CoinSwap}}&lt;br /&gt;
&#039;&#039;&#039;CoinSwap&#039;&#039;&#039; is a non-custodial privacy technique for bitcoin based on the idea of [[atomic swap]]s&amp;lt;ref&amp;gt;https://joinmarket.me/blog/blog/coinswaps/&amp;lt;/ref&amp;gt;. If Alice and Bob want to do a coinswap; then it can be understood as Alice exchanging her bitcoin for the same amount (minus fees) of Bob&#039;s bitcoins, but done with [[Contracts|bitcoin smart contracts]] to eliminate the possibility of cheating by either side.&lt;br /&gt;
&lt;br /&gt;
[[CoinSwap]]s break the transaction graph between the sent and received bitcoins. On the [[block chain]] it looks like two sets of completely disconnected transactions:&lt;br /&gt;
&lt;br /&gt;
 Alice&#039;s Address ---&amp;gt; escrow address 1 ---&amp;gt; Bob&#039;s Address&lt;br /&gt;
 Bob&#039;s Address   ---&amp;gt; escrow address 2 ---&amp;gt; Alice&#039;s Address&lt;br /&gt;
&lt;br /&gt;
Obviously Alice and Bob generate new [[address]]es each to avoid the privacy loss due to [[address reuse]].&lt;br /&gt;
&lt;br /&gt;
It is possible to have CoinSwaps that are completely indistinguishable from any other transaction on the blockchain. They could be said to allow bitcoins to teleport undetectably to anywhere else on the blockchain. Non-CoinSwap transactions would benefit because a large-scale analyst of the blockchain like a [[transaction surveillance company]] could never be sure that ordinary transactions are not actually [[CoinSwap]]s. They also do not require much block space compared to the amount of privacy they provide.&lt;br /&gt;
&lt;br /&gt;
CoinSwaps require a lot of interaction between the involved parties, which can make this kind of system tricky to design while avoiding denial-of-service attacks. They also have a liveness requirement and non-censorship requirement, meaning that the entities taking part must always be able to freely access the bitcoin network; If the internet was down for days or weeks then half-completed CoinSwaps could end with one side having their money stolen.&lt;br /&gt;
&lt;br /&gt;
In of February 2022, &#039;&#039;&#039;MercuryWallet&#039;&#039;&#039; was the first implementation has been deployed&amp;lt;ref&amp;gt;[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-May/017898.html Design for a CoinSwap implementation for massively improving Bitcoin privacy and fungibility]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://gist.github.com/chris-belcher/9144bd57a91c194e332fb5ca371d0964 Coinswap design document]&amp;lt;/ref&amp;gt;. In June 2020, the [https://en.wikipedia.org/wiki/Human_Rights_Foundation Human Rights Foundation] (a New York-based nonprofit that promotes and protects human rights globally) granted $50,000 to [https://en.bitcoin.it/wiki/User:Belcher Chris Belcher] (one of the main contributors to this very page) to work on the project.&amp;lt;ref&amp;gt;[https://bitcoinmagazine.com/articles/the-human-rights-foundation-is-now-funding-bitcoin-privacy-development-starting-with-coinswap The Human Rights Foundation Is Now Funding Bitcoin Privacy Development, Starting With CoinSwap]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CoinJoinXT ===&lt;br /&gt;
&lt;br /&gt;
CoinJoinXT is non-custodial privacy technique which is closely related to [[CoinJoin]]&amp;lt;ref&amp;gt;https://joinmarket.me/blog/blog/coinjoinxt/&amp;lt;/ref&amp;gt;. It allows for any number of entities to between them create a so-called &#039;&#039;proposed transaction graph&#039;&#039; (PTG) which is a list of connected transactions. In the PTG the bitcoins belonging to the entities are sent to and fro in all the transactions, but at the end of the PTG they are all returned to their rightful owners. The system is set up so that the process of the PTG being mined is atomic, so either the entire PTG is [[Confirmation|confirmed]] on the blockchain or none of it is, this means none of the participating entities can steal from each other.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;proposed transaction graph&#039;&#039; has the freedom to be any list of transactions that obfuscate the transaction graph. For best results the PTG would perfectly mimic the natural transaction graph due to normal economic activity in bitcoin, and so an adversary would not know where the PTG started or ended, resulting in a massive privacy gain.&lt;br /&gt;
&lt;br /&gt;
Like [[CoinJoin]], CoinJoinXT is easy to make DOS-resistant and doesn&#039;t require a prohibitive number of interaction steps. Unlike [[CoinSwap]] there is no liveness or non-censorship requirement so funds are secure even if bitcoin is under temporary censorship. However CoinJoinXT uses a lot of block space compared the privacy gain. And CoinJoinXT requires a malleability fix so all the transactions in the PTG have to be [[Segregated Witness|segwit]]-only. As of 2019 only around 40% of transactions are segwit, so an observer of the blockchain could easily eliminate non-PTG transactions by checking whether they are legacy or segwit.&lt;br /&gt;
&lt;br /&gt;
=== TumbleBit ===&lt;br /&gt;
&lt;br /&gt;
[[TumbleBit]] is privacy technology which is non-custodial and where the coordinating server cannot tell the true linkage between input and output. This is achieved by a cryptographic construct where the server facilitates a private exchange of digital signatures. The protocol is very interesting to any privacy and bitcoin enthusiast.&lt;br /&gt;
&lt;br /&gt;
From the point of view of an observer of the blockchain, TumbleBit transactions appear as two transactions with many (800 in the author&#039;s example) outputs and all transaction outputs must be of the same amount.&lt;br /&gt;
&lt;br /&gt;
=== Off-chain transactions ===&lt;br /&gt;
&lt;br /&gt;
Off-chain transactions refer to any technology which allows bitcoin transactions on a layer above the blockchain. Bitcoin payments done off-chain are not broadcast to every node in the network and are not mined and stored forever on a public blockchain, this automatically improves privacy because much less information is visible to most adversaries. With [[Off-Chain Transactions]] there are no public addresses, no address clusters, no public transactions, no transaction amounts or any other privacy-relevant attacks that happen with on-chain transactions.&lt;br /&gt;
&lt;br /&gt;
Main article: [[Off-Chain Transactions]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Lightning Network]]&#039;&#039;&#039; is a huge topic in bitcoin privacy so it is [[#Lightning_Network|discussed in its own section]].&lt;br /&gt;
&lt;br /&gt;
==== Blinded bearer certificates ====&lt;br /&gt;
&lt;br /&gt;
This is another way of doing [[Off-Chain Transactions]] which is based on blind signatures. The payments through such a system would be very very private. It has been known about since 1983. But the system is custodial so as the issuing server is a central point of failure which can steal all the money. However the concept may still be useful in certain situations where Lightning is not, for example blinded bearer certificates support payments where the receiver is offline.&lt;br /&gt;
&lt;br /&gt;
Main article: [[Blinded bearer certificates]]&lt;br /&gt;
&lt;br /&gt;
==== Sidechains ====&lt;br /&gt;
&lt;br /&gt;
[[Sidechain]]s are when another blockchain is created which uses bitcoins as its currency unit. Bitcoins can be moved from the main bitcoin blockchain onto the sidechain which allows them to transact following different consensus rules. Sidechains can have different and better privacy properties than the regular bitcoin blockchain.&lt;br /&gt;
&lt;br /&gt;
Main article: [[Sidechain]]&lt;br /&gt;
&lt;br /&gt;
==== StateChains ====&lt;br /&gt;
&lt;br /&gt;
[[StateChain]]s are a cryptographic structure that consists of a chain of digital signatures transfering ownership of a specific statecoin (a bitcoin UTO) between owners. Similar to a blockchain or sidechain, the statechain acts as immutable cryptographic proof of ownership and a proof that a statecoin(bitcoin UTXO) has not been double spent.&lt;br /&gt;
&lt;br /&gt;
=== Confidential transactions ===&lt;br /&gt;
{{Main|Confidential transactions}}&lt;br /&gt;
[[Confidential transactions]] (CT) is a cryptographic protocol which results in the amount value of a transaction being encrypted. The encryption is special because it is still possible to verify that no bitcoins can been created or destroyed within a [[transaction]] but without revealing the exact transaction amounts. Confidential transactions requires a [[softfork]] consensus change to be added to bitcoin, although they could be added to a [[sidechain]] too.&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
&lt;br /&gt;
==== Privacy vs scalability ====&lt;br /&gt;
&lt;br /&gt;
Many of the previously-mentioned privacy technologies work by adding extra data to the bitcoin blockchain which is used to hide privacy-relevant information. This has the side-effect of degrading the scalability of bitcoin by adding more data which must be handled by system. This harms privacy because [[full node]]s become more resource-costly to run and they are the most private way for a user to learn their history and balance. Adding data to blocks also [[Full_node#Economic_strength|degrades the security of the system]], and there isn&#039;t much point in having a private bitcoin if the poor security leads to it being successfully attacked and destroyed. The resource cost of using more block space is shown to the user as a higher [[Miner fees|miner fee]]; so privacy technology which uses too much block space may not even be used much if users find the fees too expensive. During the [[Miner_fees#The_market_for_block_space|period of high block space demand]] in late-2017, low-value [[JoinMarket]] CoinJoin transactions mostly disappeared (as did most low-valued bitcoin transactions).&lt;br /&gt;
&lt;br /&gt;
[[Off-Chain Transactions]] are one way to avoid this trade-off between privacy and scalability. These kind of solutions improve privacy by entirely removing data from the blockchain, not by adding more decoy data. [[#Change avoidance|Change avoidance]] and [[#Script privacy improvements|Script privacy improvements]] also reduce costs to the system while improving privacy. [[CoinJoinXT]], equal-output [[CoinJoin]], [[TumbleBit]] use a lot of block space relative to the privacy gain. [[PayJoin]] does not use much extra block space over making an ordinary transaction; relative to the gain of breaking the [[common-input-ownership heuristic]] it is very space-efficent. [[CoinSwap]] uses very little block space relative to privacy, as it can be understood as an [[Off-Chain Transactions|off-chain transaction]] system which makes a single transaction and then comes back on-chain. [[Confidential transactions]] requires a lot of block space along with associated bandwidth and CPU costs, but its privacy gain is substantial, so the debate on that topic could go either way.&lt;br /&gt;
&lt;br /&gt;
In the long term as bitcoin [[miner fees]] go up, resource-costly privacy technologies will be priced out and replaced by resource-efficient ones.&lt;br /&gt;
&lt;br /&gt;
==== Steganography ====&lt;br /&gt;
&lt;br /&gt;
Steganography is used in cryptography to mean the act of hiding the fact that something is being hidden. For example the content of an encrypted message cant be read by an eavesdropper but it still shows that something is being hidden. Steganographic encryption of a message can be done by embedding an encrypted message into an audio file or image which hides the message in the noise.&lt;br /&gt;
&lt;br /&gt;
An equal-output [[CoinJoin]] hides the source and destination of a certain coin, but the structure of the transactions reveals that something is being hidden. So even though coinjoin breaks the [[common-input-ownership heuristic]], the fact that equal-output coinjoins can be detected (even if the detection is imperfect) allows them to be excluded from by the adversary&#039;s analysis. Also the distinguishability of the coinjoins may attract suspicion and prompt more investigation.&lt;br /&gt;
&lt;br /&gt;
The idea of steganography is a good thing to aim for&amp;lt;ref&amp;gt;https://joinmarket.me/blog/blog/the-steganographic-principle/&amp;lt;/ref&amp;gt;. It greatly increases the privacy because the transactions made by such technology cannot be distinguished from regular transactions. Also it improves the privacy of users who don&#039;t even use the technology, as their transactions can always be confused with actual private transactions. [[Scriptless scripts]] are a great example of a steganographic privacy technology where the privacy-relevant information is hidden in the random numbers of the digital signatures. [[PayJoin]], [[CoinSwap]] and [[CoinJoinXT]] are good steganographic privacy technologies because they can be made indistinguishable from regular bitcoin transactions. Equal-output coinjoins and [[TumbleBit]] are not steganographic. Also it is usually easy to see when a centralized [[Mixing service]] is being used with [[common-input-ownership heuristic]] analysis, but depositing and then withdrawing from a high-volume bitcoin website like a casino or altcoin exchange is better because its possible that the user simply wanted to gamble.&lt;br /&gt;
&lt;br /&gt;
== Lightning Network ==&lt;br /&gt;
&lt;br /&gt;
[[Lightning Network]] is an [[Off-Chain Transactions|off-chain transaction]] technology based on [[payment channels]]. It has nearly the same security model as bitcoin on-chain transactions. It is not an overstatement to say that Lightning Network is a revolution for bitcoin. See the previous section on [[#Off-chain transactions]].&lt;br /&gt;
&lt;br /&gt;
As well as greatly improving privacy, [[Lightning Network]] transactions are also much faster (usually instant) and cheaper than on-chain transactions. Lightning nodes create two-way [[payment channels]] between them, and lightning transactions are routed from one node to another. The source and destination node don&#039;t need to have a payment channel directly between them as transactions can be routed over many intermediate nodes.&lt;br /&gt;
&lt;br /&gt;
As [[Lightning Network]] transactions happen off-chain, they are not broadcast to every node in the network and are not stored forever in a publicly-visible blockchain. Adversaries cannot look at a public permanent record of all transactions because there isn&#039;t one. Instead adversaries would possibly have to run intermediate nodes and possibly extract information that way. On-chain privacy attacks like the [[common-input-ownership heuristic]], [[address reuse]], change address detection, input amounts revealing sender wealth or mystery shopper payments fundamentally don&#039;t work because there are no [[address]]es or transaction inputs/outputs that work in the same way.&lt;br /&gt;
&lt;br /&gt;
However [[Lightning Network]] may introduce other privacy problems, mostly due to how the network is made up of nodes having [[Payment channel|connections]] between them&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/7t1q5x/deanonymization_risks_on_lightning_network/&amp;lt;/ref&amp;gt;. The parts of this network which can be intermediate routing nodes are usually public, and this network information could be overlaid with information about routed packets such as their amount. Lightning nodes also reveal their IP addresses unless run over Tor, and the payment channels are made up of on-chain transactions which could be analyzed using regular blockchain analysis techniques. Payment channels look like 2-of-2 [[multisignature]] on the blockchain. Bilaterial closing transactions look like the 2-of-2 outputs have been spent, but unilateral close transactions have a complicated [[Hash Time Locked Contracts|HTLC]] [[script]]s that is visible on the blockchain.&lt;br /&gt;
&lt;br /&gt;
As of 2019 Lightning is in beta and development continues; the development community is still studying all its privacy properties. Certainly its privacy is better than the privacy of on-chain [[transaction]]s.&lt;br /&gt;
&lt;br /&gt;
=== Onion routing ===&lt;br /&gt;
&lt;br /&gt;
The Lightning protocol uses onion routing&amp;lt;ref&amp;gt;https://github.com/lightningnetwork/lightning-rfc/blob/master/04-onion-routing.md&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://diyhpl.us/wiki/transcripts/scalingbitcoin/milan/onion-routing-in-lightning/&amp;lt;/ref&amp;gt; to improve privacy from the intermediate routing notes. The protocol is aimed to prevent intermediate nodes along a payment route learning which other nodes, besides their predecessor or successor, are part of the packet&#039;s route; it also aims to hide the length of the route and the node&#039;s position within it.&lt;br /&gt;
&lt;br /&gt;
==== Onion routing overlaid with network topology ====&lt;br /&gt;
&lt;br /&gt;
Lightning Network&#039;s onion routing is usually compared with [[Tor]] onion routing. However, Tor&#039;s network is fully-connected; every node on Tor is directly connected (or has the potential to directly connect) with every other node, meaning that an onion-routed packet can be relayed from and to potentially any other node. This is not so in the Lightning Network, where [[payment channels]] do not fully-connect the entire network, and where the network topology is publicly known for routing nodes. Data fusion of the network topology and the small amount of information from onion-routed packets may still be enough to uncover information in certain cirumstances&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/7rrjp3/is_onion_routing_appropriate_for_lightning_network/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/8hwzbh/chainalysis_on_the_ln/&amp;lt;/ref&amp;gt;. For example, if a Lightning node wallet has only a single [[payment channel]] connection going to one intermediate node, then any payments sent to and from the node wallet will have to pass through the intermediate node, which would be able to obtain a lot of information about the wallet node&#039;s payments regardless of the onion-routing used.&lt;br /&gt;
&lt;br /&gt;
A mitigation to this topology problem may be that the entire topology of the Lightning Network is not known. Only nodes which intend to route transactions need to be publicly announced. It is possible for &amp;quot;private channels&amp;quot; to exist which are [[payment channels]] that exist, but whose existence is not published.&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t mean the onion routing used by [[Lightning Network]] is useless, far from it, but the privacy is not as strong as with [[Tor]].&lt;br /&gt;
&lt;br /&gt;
==== Rendez-vous routing ====&lt;br /&gt;
&lt;br /&gt;
Onion routing from the sender still requires that the destination Lightning node is known to the sender (along with all associated information like channel UTXO). This would mean that a user cannot receive Lightning payments without revealing one or more UTXOs associated with their [[payment channel]]s. A solution is rendez-vous routing&amp;lt;ref&amp;gt;https://github.com/lightningnetwork/lightning-rfc/wiki/Rendez-vous-mechanism-on-top-of-Sphinx&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-November/001498.html&amp;lt;/ref&amp;gt;, also called Hidden Destinations&amp;lt;ref&amp;gt;https://bitcoinops.org/en/newsletters/2018/11/20/&amp;lt;/ref&amp;gt;, which allow Lightning payments to be sent from a source node to destination node without either the source or destination needing to reveal their nodes and associated information.&lt;br /&gt;
&lt;br /&gt;
A good analogy is that source onion routing is like a [[Tor]] connection going via a Tor exit node to its destination, and rendez-vous onion routing is like a Tor connection going to a Tor hidden service.&lt;br /&gt;
&lt;br /&gt;
=== Atomic Multipath Payments ===&lt;br /&gt;
&lt;br /&gt;
Atomic Multipath Payments (AMP) is a protocol in Lightning which allows a single payment to be routed over multiple lightning network transactions&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-February/000993.html&amp;lt;/ref&amp;gt;. For example if a user has five channels each with balance 2 btc, they can send a single payment of 7 btc using the AMP protocol over multiple lightning network paths. In terms of privacy, AMP would result in intermediate nodes not observing the full payment amount of 7 btc but only the partial payment amounts of 2 btc or 1 btc (or any other combination). This is positive for privacy as routed payments would no longer leak the exact payment amount, but only a lower bound.&lt;br /&gt;
&lt;br /&gt;
=== Common hashlock value ===&lt;br /&gt;
&lt;br /&gt;
For non-AMP payments, the payment hash is the same for all nodes along the route of a payment. This could allow multiple nodes if they co-operate to know that they routed the same payment based on this common hash value. Although this could also be done using the timestamp of each routed payment.&lt;br /&gt;
&lt;br /&gt;
[[Scriptless scripts]] used as a replacement to explicit [[Hash Time Locked Contracts|hash time locked contracts]] can be used to solve the common hashlock problem. It is possible to add a different random tweak value to the committed random value at each step, as a result there can be a multi-hop path through payment channels in which individual participants in the path wouldn&#039;t be able to tell that they&#039;re in the same path unless they&#039;re directly connected because of this re-blinding&amp;lt;ref&amp;gt;Lightning in Scriptless Scripts Andrew Poelstra 20 Mar 2017 https://lists.launchpad.net/mimblewimble/msg00086.html&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;L2 Summit Hosted by MIT DCI and Fidelity Labs, Boston 2018, Andrew Poelstra talk on Scriptless Scripts http://diyhpl.us/wiki/transcripts/layer2-summit/2018/scriptless-scripts/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A 2017 paper called Concurrency and Privacy with Payment-Channel Networks&amp;lt;ref&amp;gt;Giulio Malavolta, Pedro Moreno-Sanchez, Aniket Kate, Matteo Maffei, and Srivatsan Ravi. 2017. Concurrency and Privacy with Payment-Channel Networks. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (CCS &#039;17). ACM, New York, NY, USA, 455-471. DOI: https://doi.org/10.1145/3133956.3134096 https://eprint.iacr.org/2017/820.pdf&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://diyhpl.us/wiki/transcripts/scalingbitcoin/stanford-2017/concurrency-and-privacy-with-payment-channel-networks/&amp;lt;/ref&amp;gt; writes about a scheme using zero-knowledge proofs which would allow each hash value in the payment route to be different. The scheme is much more expensive in terms of computation, but it may still be practical.&lt;br /&gt;
&lt;br /&gt;
=== Custodial wallets ===&lt;br /&gt;
&lt;br /&gt;
Lightning-enabled wallets can be of the custodial type, where the wallet is just a front-end that connects to a back-end server run by some company. This is the same situation for web wallets in the on-chain bitcoin ecosystem.&lt;br /&gt;
&lt;br /&gt;
This kind of setup would result in all the user&#039;s [[Lightning Network]] transactions being visible to that company and so they would have no privacy, in the same way that using a web wallet has no privacy for the on-chain bitcoin space. As of 2019 Zap Wallet and Lightning Peach work on this model. Peach wallet actually has checkboxes in its GUI saying &amp;quot;I agree to the privacy policy&amp;quot; and looking through the privacy policy reveals the wallet tracks all kinds of privacy-relevant stuff. Needless to say a privacy-conscious user shouldn&#039;t use these kind of lightning wallets but use non-custodial lightning wallets instead&amp;lt;ref&amp;gt;See first 20 minutes of this: https://www.youtube.com/watch?v=H1yPkPXLDVc&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lightning-enabled wallets still need to interface with the underlying bitcoin network, which can leak privacy-relevant information if done incorrectly. For example, if the wallet obtains blockchain transaction information from a centralized server then that server can spy on all the channel opening and closing transaction. Privacy-aware lightweight wallets usually make use of [[Client-side block filtering]] which is a very good fit for [[Lightning Network]]-enabled wallets.&lt;br /&gt;
&lt;br /&gt;
=== Private script types ===&lt;br /&gt;
&lt;br /&gt;
Advances in script type privacy like [[Schnorr]], scriptless scripts, taproot and ECDSA-2P benefit [[Lightning Network]] privacy by making its [[payment channel]] blockchain transactions appear indistinguishable from regular single-signature blockchain transactions.&lt;br /&gt;
&lt;br /&gt;
=== Probing payments to reveal channel states ===&lt;br /&gt;
&lt;br /&gt;
The balance state of each channel is hidden from the public and is only known to the two entities making up the [[payment channel]]. This provides a lot of privacy, as amounts and changes of the amounts are not visible to all. A possible way to defeat this privacy is for an active adversary to send probing payments until the balance is obtained. Such attack has been proved possible, as described in a paper from the beginning of 2019&amp;lt;ref&amp;gt;Jordi Herrera-Joancomartí, Guillermo Navarro-Arribas, Alejandro Ranchal-Pedrosa, Cristina Pérez-Solà, Joaquin Garcia-Alfaro (2019), &amp;quot;On the Difficulty of Hiding the Balance of Lightning Network Channels&amp;quot; IACR Cryptology ePrint Archive: https://eprint.iacr.org/2019/328&amp;lt;/ref&amp;gt;, due to the level of detail that lightning implementations provide about routing errors. Although it would seem that such attack would need to pay the routing fees for the probing payments, the attacker may provide a fake invoice, so even when the payment passes through all the route, the last node will send back an error message and will not be able to execute the payment. So the cost for such attack is reduced to the fees needed to open and close the channels used for the attack.&lt;br /&gt;
&lt;br /&gt;
Such an attack can be used for disclosing the balances of a single or a selected group of nodes of the network and even on a large scale to obtain the balance of each channel in the network. In case the adversary repeats this procedure for every [[payment channel]] in the entire [[Lightning Network]] and continues probing very frequently, then by watching the change in channel states, they could observe payment being routed around the network. A possible way to remedy this attack would be for routing nodes to randomly (for example 1-out-of-20 times) return a routing error even if the channel balance state is actually adequate. This likely would not degrade the user experience of [[Lightning Network]] much, but would impose a serious cost on the attacker.&lt;br /&gt;
&lt;br /&gt;
== Existing privacy solutions ==&lt;br /&gt;
&lt;br /&gt;
This section is about bitcoin software which implements privacy features as its main goal, especially avoiding the privacy leaks due to the blockchain.&lt;br /&gt;
&lt;br /&gt;
Privacy cannot be easily separated from any other aspect of bitcoin. It is unusual to have entirely separate solutions only for privacy, the dream is that one day all bitcoin wallets will include privacy tech already built in. But as of late-2018 many privacy implementations are separate applications.&lt;br /&gt;
&lt;br /&gt;
=== Lightning Network ===&lt;br /&gt;
&lt;br /&gt;
There are several implementations of [[Lightning Network]] as of early-2019; such as [[LND]], [[c-lightning]], [[eclair]], etc.&lt;br /&gt;
&lt;br /&gt;
The network itself can be used on bitcoin mainnet and several merchants and other projects accept it. It is still not usable by the general public. It is expected that one day every bitcoin wallet will be able to send and receive lightning network transactions and so the massive privacy benefits will be included in how regular users use bitcoin all the time.&lt;br /&gt;
&lt;br /&gt;
[[Lightning Network]] wallets usually the standard privacy tech like [[Deterministic wallet]]s and warnings against [[address reuse]].&lt;br /&gt;
&lt;br /&gt;
Some LN wallets such as Zap Wallet and Lightning Peach are actually custodial, they are backed by a centralized server which can spy on everything the user does, so they should be avoided.&lt;br /&gt;
&lt;br /&gt;
=== Handmade CoinJoin ===&lt;br /&gt;
&lt;br /&gt;
[[CoinJoin]] transactions can be hand-made without a special wallet just using [[Raw Transactions]]. This can be very flexible as the coinjoins can take any number of forms. It might be practical in between bitcoin merchants, several of whom might decide to coinjoin together some of their transactions so that the [[common-input-ownership heuristic]] would imply they are all the same wallet cluster.&lt;br /&gt;
&lt;br /&gt;
=== JoinMarket ===&lt;br /&gt;
&lt;br /&gt;
[[JoinMarket]] is an implementation of [[CoinJoin]] where the required liquidity is paid for in a market. In JoinMarket terminology there are &#039;&#039;liquidity taker&#039;&#039; users who can create a coinjoin for whatever amount they want at any time, they also pay a small coinjoin fee. &#039;&#039;Liquidity makers&#039;&#039; are online 24 hours a day and are ready to create a coinjoin at any time for any amount they can, in return they earn coinjoin fees from liquidity takers. Because of this market for coinjoins, JoinMarket users can create coinjoins at any time and for any amount (up to a limit based on available liquidity).&lt;br /&gt;
&lt;br /&gt;
Other people are always available for coinjoining because they earn fees, and coinjoins can be of any amount and happen at any time. [[JoinMarket]] can also be a small source of income for operators of liquidity maker bots, who earn coinjoin fees by allowing other people to create coinjoins with their bitcoins.&lt;br /&gt;
&lt;br /&gt;
Privacy is greatly improved by repeating coinjoins many times, for this reason the [[JoinMarket]] project includes the tumbler script where coinjoins are automatically created at random times and for random amounts. Bitcoins can be deposited into the JoinMarket [[Deterministic wallet|HD wallet]] and the tumbler script will send them via many coinjoins to three or more destination [[address]]es. This feature of using more than one destination address is required to beat amount correlation. For example a user who wants to deposit coins into an exchange would make use of the &#039;&#039;Generate New Deposit Address&#039;&#039; button to obtain more than one destination [[address]], the exchange may then combine those coins with deposits from other customers which should resist any tracking based on amounts.&lt;br /&gt;
&lt;br /&gt;
JoinMarket can interface with a [[Bitcoin Core]] full node in order to privately obtain the history of its own wallet. There is also an option to use [[Electrum]] server, but users are discouraged from using it. There are plans to replace the Electrum interface with one that uses [[Client-side block filtering]].&lt;br /&gt;
&lt;br /&gt;
The software is an open source project with a community based around it. Unfortunately JoinMarket can be difficult to install for people not used to Linux or the command line interface. It is hoped one day there may be work done to make this easier, but as all development is done by volunteers there can be no roadmap for this.&lt;br /&gt;
&lt;br /&gt;
Main article: [[JoinMarket]]&lt;br /&gt;
&lt;br /&gt;
=== Wasabi Wallet ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wasabi Wallet&#039;&#039;&#039; is an open-source, non-custodial, &#039;&#039;&#039;privacy-focused&#039;&#039;&#039; Bitcoin wallet for Desktop, that implements trustless &#039;&#039;&#039;[[CoinJoin]]&#039;&#039;&#039;. The CoinJoin coordinator (run by zkSNACKs Ltd., the company that is sponsoring the development of Wasabi) cannot steal from, nor breach the privacy of the participants.&lt;br /&gt;
&lt;br /&gt;
The package includes built-in [[Tor]] and, by default, all traffic between the clients and the server goes through it, so IP addresses are hidden and privacy of the users is respected. Under normal conditions, Wasabi Wallet never leaves Tor onion network and it never uses Tor exit relays, significantly decreasing the network attack surface.&lt;br /&gt;
&lt;br /&gt;
Wasabi also includes all standard privacy tech like a Hierarchical [[Deterministic wallet]] and [[address reuse]] avoidance, as well as mandatory coin control and labeling. The wallet uses BIP-158 [[Client-side block filtering]] to obtain its own transaction history in a private way and it has a one-click partial full node integration as it ships with Bitcoin Knots.&lt;br /&gt;
If the user already has a Bitcoin full node on a local or remote device, then it is possible to specify the IP address and port, or the Tor onion service, and Wasabi will use it to verify and enforce rules of Bitcoin.&lt;br /&gt;
&lt;br /&gt;
In addition to this, it has advanced cutting-edges features like:&lt;br /&gt;
* Opt-in [[PayJoin]]&lt;br /&gt;
* Dust attack protections&lt;br /&gt;
* Custom change address&lt;br /&gt;
* Anti wallet fingerprinting&lt;br /&gt;
&lt;br /&gt;
Wasabi also has a [https://docs.wasabiwallet.io/ complete and detailed documentation] containing explanations on the architecture of the program, on its functioning and tutorials on how to use it. &lt;br /&gt;
&lt;br /&gt;
Main article: [[Wasabi Wallet]]&lt;br /&gt;
&lt;br /&gt;
=== Samourai Wallet ===&lt;br /&gt;
&lt;br /&gt;
Samourai Wallet is a smartphone wallet which implements some privacy features. Stowaway is an implementation of [[PayJoin]]. Stonewall is a scheme which creates transactions that look like [[CoinJoin]]s but actually involve only one person; these fake coinjoins are intended to create false positives in algorithms used by a hypothetical [[transaction surveillance company]]. StonewallX2 is a scheme that creates transactions that are identical to Stonewall but involve two participants, making it an actual [[CoinJoin]] transaction. PayNyms are an implementation of [[ECDH address]]es. The wallet also has a feature called like-type change outputs where it generates a [[change]] address which is of the same type as the payment address; this avoids [[#Wallet_fingerprinting|wallet fingerprinting]] using address types which leads to change address detection.&lt;br /&gt;
&lt;br /&gt;
By default, Samourai Wallet obtains information about the user&#039;s history and balance by querying their own server. This server knows all the user&#039;s addresses and transactions, and can spy on them. Therefore using the default configuration of Samourai Wallet is only useful in a threat model where the adversary can analyze the blockchain but cannot access this server. In June 2019 with the release and open sourcing of the Samourai Wallet server, Dojo,  users may now host their own server privately and direct their Samourai Wallet to connect to it.&lt;br /&gt;
&lt;br /&gt;
=== Liquid sidechain ===&lt;br /&gt;
&lt;br /&gt;
As of 2018 the Liquid [[sidechain]] implements Confidential Transaction (CT) which allows bitcoins to be transferred on that sidechain while keeping the transaction amounts hidden. The product is developed by the Blockstream company and is aimed at exchanges and traders. It allows fast transfer of bitcoin in a very private way.&lt;br /&gt;
&lt;br /&gt;
As Liquid is a federated sidechain, users generally need to pass AML checks and give up their personal data in order to use it. Its security model is quite close to having bitcoins on an exchange, because if enough of the functionaries get hacked then all the bitcoins on the sidechain could be stolen. However within that security model you get excellent privacy, and the [[sidechain]] itself is marketed towards traders and hedgers who certainly want to keep their trading activities private to stop other traders front-running them.&lt;br /&gt;
&lt;br /&gt;
=== Mercury Wallet ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mercury&#039;&#039;&#039; is a new Bitcoin layer-2 scaling technology, based on the concept of statechains, that enables private keys for BTC deposits (UTXOs) to be transfered securely between owners without requiring an on-chain transaction.&lt;br /&gt;
&lt;br /&gt;
This enables users to transfer full custody of an amount of BTC to anyone almost instantly, with increased privacy, and without having to pay miner fees.  Mercury also supports the first production &#039;&#039;&#039;[[CoinSwap]]&#039;&#039;&#039; implementation.&lt;br /&gt;
&lt;br /&gt;
Main article: [[MercuryWallet]]&lt;br /&gt;
&lt;br /&gt;
== Examples and case studies ==&lt;br /&gt;
&lt;br /&gt;
Privacy is a very multifaceted and practical topic, it is helpful to follow examples to better understand how all the concepts are related.&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Exchange front running ===&lt;br /&gt;
# You are a trader and have an account on a bitcoin [[exchange]].&lt;br /&gt;
# You want to deposit some bitcoins to sell.&lt;br /&gt;
# You send bitcoins to the same exchange deposit address you have used in the past.&lt;br /&gt;
# Because of the [[address reuse]], its easy to see on the blockchain that some bitcoins are being sent to the exchange.&lt;br /&gt;
# The exchange requires 3 [[confirmation]]s before crediting your account, but in that time the price has already moved against you as other traders become aware of your deposit transaction.&lt;br /&gt;
# You sell the bitcoins for a less attractive price than you otherwise would have.&lt;br /&gt;
# This is easily avoided by clicking the &#039;&#039;&#039;Generate New Deposit Address&#039;&#039;&#039; button on the exchange&#039;s website and depositing there.&lt;br /&gt;
&lt;br /&gt;
Lesson: [[Address reuse]] is terrible for privacy.&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Savings revealed with [[address reuse]] ===&lt;br /&gt;
# You save in bitcoin, using a [[Paper Wallet|single-address paper wallet]] which results in [[address reuse]].&lt;br /&gt;
# All your bitcoin savings to this same address, let&#039;s say it contains $1 million worth.&lt;br /&gt;
# You buy a small amount of bitcoins to add to your savings, depositing in the paper wallet.&lt;br /&gt;
# The person who sold you the bitcoins follows their trail on the blockchain and finds your paper wallet containing $1 million.&lt;br /&gt;
# He mentions it to someone in a cafe or bar.&lt;br /&gt;
# Word gets around. A burglar raids your home and holds you hostage until $1 million in bitcoin is handed over&amp;lt;ref&amp;gt;https://github.com/jlopp/physical-bitcoin-attacks&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lesson: [[Address reuse]] is terrible for privacy.&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Savings revealed with data collection ===&lt;br /&gt;
&lt;br /&gt;
# You save in bitcoin. Trading on an exchange which you [[#Revealing_data_when_transacting_bitcoin|reveal all your data to]].&lt;br /&gt;
# Mostly you buy coins but sometimes you sell. You only ever use this one exchange.&lt;br /&gt;
# Regardless of any blockchain privacy technology you use, the exchange still knows all your trades and can find exactly how much bitcoin you hold at any time.&lt;br /&gt;
&lt;br /&gt;
=== Example - Evading sanctions ===&lt;br /&gt;
# You live in a country that is under international trade sanctions from other countries.&lt;br /&gt;
# Because of this you cannot buy the online newspaper you want.&lt;br /&gt;
# You navigate to the newspaper website with Tor so that they can&#039;t tell your origin country from your IP address.&lt;br /&gt;
# You buy bitcoins with cash and send them to wallet software on your computer, then use the bitcoins to buy the newspaper.&lt;br /&gt;
# Bitcoin transactions don&#039;t have geographical information about them, so your payment is not discovered as coming from a sanctioned country.&lt;br /&gt;
&lt;br /&gt;
=== Example - Transacting with your online poker buddies without revealing your real name ===&lt;br /&gt;
# You play online poker with some people (for real money).&lt;br /&gt;
# You win big. Lots of money goes to you and your buddies are annoyed.&lt;br /&gt;
# The stakes are in bitcoin which you receive. You sell the coins for cash or via an [[exchange]], or use them to directly buy goods and services.&lt;br /&gt;
# Your irritated poker buddies can&#039;t find your real name.&lt;br /&gt;
&lt;br /&gt;
This example has a very mild threat model where the adversary can&#039;t access the exchange&#039;s AML/KYC records (if you didn&#039;t trade with cash), and they are not your ISP so cannot easily link your bitcoin addresses with your IP address (in the case that you used a [[lightweight node]] instead of a [[full node]]).&lt;br /&gt;
&lt;br /&gt;
=== Example - Donation without your employer knowing ===&lt;br /&gt;
# You earn money in bitcoin, your employer has sent you bitcoins as salary.&lt;br /&gt;
# You want to support X charity or political group with a donation of 0.1 BTC, but don&#039;t want your employer knowing.&lt;br /&gt;
# Deposit 0.3 BTC into a bitcoin casino, altcoin exchange or another bitcoin service website that allows anonymous bitcoin deposit and withdrawals from the general public.&lt;br /&gt;
# Withdraw 0.1 BTC and put the desired donation address as the withdrawal address.&lt;br /&gt;
# Withdraw the remaining 0.2 BTC back into your own wallet (to a brand new address, avoiding [[address reuse]]).&lt;br /&gt;
&lt;br /&gt;
If your employer casually analyses the blockchain they will think you are a gambler instead of a supporter of group X. The bitcoin casino doesn&#039;t care who you donate to. The employer also can&#039;t correlate the amounts, because they see you deposit 0.3 BTC but only 0.1 BTC is sent to the group. Privacy comes from mixing your coins with the coins of everybody else who uses that casino in the time period that your coins were deposited.&lt;br /&gt;
&lt;br /&gt;
=== Example - Donation without anyone knowing ===&lt;br /&gt;
# You want to support X charity or political group without anyone knowing.&lt;br /&gt;
# Download and install a wallet which is backed by a [[full node]] such as [[Bitcoin Core]].&lt;br /&gt;
# Buy the exact amount of bitcoin for cash (get slightly more because of transaction fees and volatility), have the coins sent to your wallet.&lt;br /&gt;
# Send the coins to the group to donation. The [[transaction]] should be broadcasted over [[Tor]].&lt;br /&gt;
&lt;br /&gt;
Instead of direct cash trading, the user could have also bought a cash substitute like a gift card and traded it online for bitcoin that wasn&#039;t link to their identity.&lt;br /&gt;
&lt;br /&gt;
The [[full node]] is required in this threat model, because otherwise your ISP or another adversary could likely spy on [[lightweight node]] communications and discover the user&#039;s bitcoin addresses. Broadcasting the transaction over Tor is required to stop your ISP or a [[transaction surveillance company]] from learning that your IP address broadcast the transaction.&lt;br /&gt;
&lt;br /&gt;
=== Example - Receiving donations privately ===&lt;br /&gt;
# You have a [[Address_reuse|single]] donation address for your group or project, anybody can see all donations and their amounts by putting your donation address into a blockchain explorer.&lt;br /&gt;
# You want to spend the donations without anyone on the internet knowing.&lt;br /&gt;
# The donation address is part of a wallet backed by a [[full node]] such as [[Armory]].&lt;br /&gt;
# Broadcast a transaction over [[Tor]] to deposit the donation money into a bitcoin website which allows anonymous deposits and withdrawals.&lt;br /&gt;
# Withdraw the money straight into another similar bitcoin service website.&lt;br /&gt;
# Take care to use different transactions in order to stop the amounts being correlated.&lt;br /&gt;
# Make sure to wait a little while to stop the timings being used to link together transactions&lt;br /&gt;
# Repeat this for many different bitcoin websites&amp;lt;ref&amp;gt;https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b#worked-example-for-tumbler-replacement&amp;lt;/ref&amp;gt; before finally sending the coins back to your own wallet.&lt;br /&gt;
&lt;br /&gt;
Take an example with 1 BTC. Each arrow -&amp;gt; is a new withdrawal transaction.&lt;br /&gt;
&lt;br /&gt;
 Wallet    Casino1           Altcoin Exchange          Casino2            Futures Exchange   Wallet&lt;br /&gt;
 1btc  -&amp;gt;  1addrA  1btc      -&amp;gt;  1addrB 0.1btc     -&amp;gt;  1addrE 0.1btc  -&amp;gt;  1addrG 0.4btc  -&amp;gt;  1addrH 0.25btc&lt;br /&gt;
                             -&amp;gt;  1addrC 0.2btc     -&amp;gt;  1addrF 0.9btc  -&amp;gt;  1addrF 0.6btc  -&amp;gt;  1addrI 0.25btc&lt;br /&gt;
                             -&amp;gt;  1addrD 0.7btc                                           -&amp;gt;  1addrJ 0.25btc&lt;br /&gt;
                                                                                         -&amp;gt;  1addrK 0.25btc&lt;br /&gt;
&lt;br /&gt;
As before the [[full node]] wallet allows your wallet to learn its own history privately, while Tor broadcasting hides your IP address used when sending a [[transaction]]. Using many different amounts stops [[#Amount correlation|amount correlation]] from providing clues that can ruin your privacy. Using multiple bitcoin websites means a single website which co-operates with the adversary won&#039;t be enough to completely ruin your privacy. There is custodial risk as each website has the power to steal your money, but in this example the bitcoin amount is relatively low so the risk is acceptable.&lt;br /&gt;
&lt;br /&gt;
=== Example - Storing savings privately ===&lt;br /&gt;
# You want to [[Bitcoin as an investment|store value in bitcoin]] without anybody else knowing what you do with that value, or even that you own bitcoin.&lt;br /&gt;
# Buy the coins in some way and have them sent to your [[JoinMarket]] wallet which you&#039;ve configured to use your own [[full node]], all of which run entirely over [[Tor]].&lt;br /&gt;
# Run JoinMarket&#039;s tumbler script which has it create many [[CoinJoin]] transactions with the aim to break the link between addresses.&lt;br /&gt;
# Have the coins sent to another wallet which will be used for [[Storing bitcoins|storing the bitcoins]] long term. The wallet should be backed by a [[full node]] such as [[Electrum]] pointed to your own [[Electrum#Server_software|Electrum server]].&lt;br /&gt;
&lt;br /&gt;
Note that bitcoin privacy technology like [[JoinMarket]] can hide private-relevant information from your [[transactions]] but it cant add privacy in other places; for example if you buy the bitcoins in a non-anonymous way such as using an AML/KYC exchange then that exchange will know that your real-life identity bought bitcoins at that time.&lt;br /&gt;
&lt;br /&gt;
Using [[JoinMarket]] is non-custodial unlike the previous method which sends bitcoin through many bitcoin service websites, so it is useful where the custody risk is unacceptably high (such as where you&#039;re anonymizing all your hard-earned savings). All the wallets are backed by [[full node]]s in this example to stop a third-party service being able to link together your addresses or link them with your IP address. The full node is run entirely over [[Tor]] to stop your internet service provider or any network-level adversary from seeing that you run a bitcoin node.&lt;br /&gt;
&lt;br /&gt;
=== Example - Stopping incoming payments from different sources from being linked together ===&lt;br /&gt;
# If you had both payments in the same wallet they may be linked together with the [[common-input-ownership heuristic]].&lt;br /&gt;
# You have a job as a nurse, you also moonlight as a stripper for extra income. Both jobs pay in bitcoin and you don&#039;t want them to be linked together.&lt;br /&gt;
# You send the nurse income into one [[JoinMarket]] mixdepth and the stripper income into another mixdepth.&lt;br /&gt;
# You run the JoinMarket tumbler script which will combine both balances without linking them together.&lt;br /&gt;
&lt;br /&gt;
Another way to do this (but with custodial risk) is to deposit the nurse income into a bitcoin service website (like a casino) and then deposit the stripper income but to a different deposit address. After you withdraw both with be combined with all the other deposits of other users of the casino. Probably the best way to do this is to receive one or both of the income streams over [[Lightning Network]].&lt;br /&gt;
&lt;br /&gt;
=== Example - Withdrawing casino winnings to a bitcoin exchange without either entity knowing the source or destination of funds ===&lt;br /&gt;
# You have won 10 BTC at a bitcoin casino, you want withdraw them to a bitcoin exchange to sell without either party knowing (maybe because online gambling is blocked in your jurisdiction).&lt;br /&gt;
# Install [[JoinMarket]] and point it at your own [[full node]].&lt;br /&gt;
# Have the casino winnings sent to your JoinMarket wallet in three different payments of 5btc + 2btc + 3btc, they should go to seperate mixdepths.&lt;br /&gt;
# Run the JoinMarket tumbler script to mix the coins and have them sent to three different deposit address of the exchange with amounts (for example) 1btc + 2btc + 7btc.&lt;br /&gt;
# Then neither the online casino nor the exchange can use amount correlation to figure out the source or destination. The coinjoin transactions stop them using the [[common-input-ownership heuristic]], and the other JoinMarket features stop [[address reuse]] and analysis of the transaction graph&amp;lt;ref&amp;gt;https://www.reddit.com/r/joinmarket/comments/7614ea/how_to_properly_spend_tumbled_coins/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Using a blockchain explorer ===&lt;br /&gt;
# You receive a payment of bitcoin at one of your [[address]]es.&lt;br /&gt;
# You copy and paste the address into a [[Block chain browser|blockchain explorer website]] and press &#039;&#039;Refresh&#039;&#039; until the incoming transaction reaches 3 [[confirmation]]s.&lt;br /&gt;
# The blockchain explorer website now knows that your IP address is very interested in that particular bitcoin address.&lt;br /&gt;
# This is best avoided by using your own bitcoin wallet (backed by a [[full node]]) to tell you when payments have arrived and how many [[confirmation]]s they have, without any other entity knowing.&lt;br /&gt;
&lt;br /&gt;
This privacy break can be almost entirely fixed by navigating to the blockchain explorer website over [[Tor]]. It still reveals that &#039;&#039;somebody&#039;&#039; is interested in that [[address|bitcoin address]] but doesn&#039;t reveal their IP address, and does not reveal any other bitcoin addresses controlled by the same user.&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Privacy altcoin mixing failing due to amount correlation ===&lt;br /&gt;
# You own 1.456225 BTC for which some privacy-relevant information has been leaked (maybe you bought it from a AML/KYC exchange) and want to send it to another address while breaking the link between the two.&lt;br /&gt;
# You trade the bitcoins for an altcoin which implements some blockchain privacy technology, a so-called &amp;quot;privacy coin&amp;quot;, then you trade the altcoin back to bitcoin after making a few altcoin transactions.&lt;br /&gt;
# You send the bitcoins back to your wallet in one transaction.&lt;br /&gt;
# Because the transaction amount is very close to the initial 1.456225 BTC, its not very hard for an adversary to search the entire blockchain and link the two similar-amount transaction going into and out of the altcoin exchange you used.&lt;br /&gt;
&lt;br /&gt;
Lesson: Transactions have amounts visible to all which must be treated with care for privacy.&lt;br /&gt;
&lt;br /&gt;
=== Example - Privacy altcoin mixing ===&lt;br /&gt;
# Similar to the previous example, you have bitcoins you want to mix. You trade into and out of a privacy altcoin to do it.&lt;br /&gt;
# When trading back into bitcoin you deposit the privacy altcoin into an exchange to sell, you use several transactions so that the exchange and any observer of the blockchain cannot easily use amounts to link together the before and after addresses.&lt;br /&gt;
&lt;br /&gt;
This method may still fail because privacy altcoins have fewer transactions than bitcoin by a factor of a few hundred, so the anonymity set may be lower. Also there are custodial risks with using exchanges so this method may not be appropriate for large amounts of coin. As privacy altcoins are usually much less scalable than bitcoin, their [[full node]] wallets may be more resources-costly to run than bitcoin&#039;s. Privacy altcoins are likely to have a more volatile price than bitcoin which increases the risk of losing part of the money due to price movements.&lt;br /&gt;
&lt;br /&gt;
=== Example - Daily commerce with Lightning Network ===&lt;br /&gt;
# You have some bitcoin and want to spend it on regular goods and services. (Coffee, phone credit, VPN, hosting, hotel and apartment rentals, flights, food, drinks, clothes, etc etc) and you want to be as private as possible.&lt;br /&gt;
# You download and install a [[Lightning Network]] wallet and use that for all purchases.&lt;br /&gt;
# Privacy attacks like [[common-input-ownership heuristic]], [[address reuse]] and change address detection fundamentally don&#039;t work on any [[Off-Chain Transactions]] technology.&lt;br /&gt;
&lt;br /&gt;
===  Bad privacy example - Sending to a static donation address without precautions ===&lt;br /&gt;
# You own bitcoin and keep it in a custodial wallet.&lt;br /&gt;
# You want to donate to charity or political group X.&lt;br /&gt;
# You create a [[transaction]] on the custodial wallet&#039;s website sending some money to the group&#039;s donation address.&lt;br /&gt;
# The custodial wallet server can see where you&#039;re sending it (especially easily if the group uses a static donation address).&lt;br /&gt;
# They disagree with your views and then they close your account.&lt;br /&gt;
&lt;br /&gt;
Lesson: Using a custodial wallet is bad for privacy because the custodian can see everything you do. [[Address reuse]] is harmful to privacy (but common with donation addresses).&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Receiving donations spied on with [[Mystery_shopper_payments|mystery shopper payments]] ===&lt;br /&gt;
# You want to accept bitcoin donations but don&#039;t want to reveal the total donated amount.&lt;br /&gt;
# You set up a web server to give out unique addresses for each visitor.&lt;br /&gt;
# An adversary who wants to get an idea of your total donation income donates a small amount of bitcoin to you.&lt;br /&gt;
# You combine all donations to use as inputs one transaction, thereby linking them together with the [[common-input-ownership heuristic]].&lt;br /&gt;
# The adversary now has a good idea of your total donation income.&lt;br /&gt;
&lt;br /&gt;
Lesson: [[Mystery_shopper_payments|mystery shopper payments]] can be used to spy on people, even then they avoid [[address reuse]]. Be mindful of what is being revealed with the [[common-input-ownership heuristic]].&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Bitcoin-stealing malware using static addresses ===&lt;br /&gt;
# You are a creator of stealware (malware that steals money from its victim).&lt;br /&gt;
# You hardcode some bitcoin address into your malware where the ill-gottens are sent to.&lt;br /&gt;
# Any malware researcher can now see how many bitcoins you have stolen simply by putting the addresses into a blockchain explorer.&lt;br /&gt;
&lt;br /&gt;
This has been done in many cases including: the Wannacry malware&amp;lt;ref&amp;gt;https://twitter.com/msuiche/status/863082346014224385&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=1916199.0&amp;lt;/ref&amp;gt; and Electrum stealware&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/anycg2/electrum_targeted_phishing_malware_warning/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://twitter.com/GossiTheDog/status/1078308649158664194&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Bitcoin-stealing malware spied on with [[mystery shopper payments]] ===&lt;br /&gt;
# You are an infosec researcher studying bitcoin-stealing malware.&lt;br /&gt;
# The malware author has coded a [[ECDH address|ECDH address scheme]] into their malware.&lt;br /&gt;
# Your analysis of the malware only reveals the ECDH public key rather than bitcoin [[address]]es, so the malware author thinks he is private.&lt;br /&gt;
# You send a small amount of bitcoin to an [[address]] derived from the ECDH public key as a [[Mystery shopper payments|mystery shopper payment]].&lt;br /&gt;
# The malware author sends all their received stolen coins to an exchange in one [[transaction]], including your payment.&lt;br /&gt;
# You can now look on the blockchain and use the [[common-input-ownership heuristic]] to get an idea of total amount of bitcoins stolen by the malware.&lt;br /&gt;
# Also you can now contact the exchange who will tell you the real life identity of the malware author, who can now be put in jail.&lt;br /&gt;
&lt;br /&gt;
Lesson: [[Mystery_shopper_payments|mystery shopper payments]] along with the [[common-input-ownership heuristic]] can be used to deanonymize even people who avoid [[address reuse]].&lt;br /&gt;
&lt;br /&gt;
=== Example - Single-use lightweight wallet over Tor ===&lt;br /&gt;
# You want to anonymously buy something or donate to something online.&lt;br /&gt;
# You install [[Electrum]] wallet and configure it to use [[Tor]], or use [https://tails.boum.org Tails OS].&lt;br /&gt;
# You buy bitcoins anonymously with cash and have them sent to your Electrum wallet.&lt;br /&gt;
# You spend the entire balance of bitcoins buying or donating to the thing you want.&lt;br /&gt;
# After you&#039;re done you delete the wallet and never use it again.&lt;br /&gt;
&lt;br /&gt;
Your [[Electrum]] wallet used a third-party server which can see all your bitcoin addresses and transaction. As you&#039;ve connected to it over [[Tor]], the server does not learn your real IP address. As you only use a single bitcoin [[address]] once and never again, the server isn&#039;t able to cluster together any other addresses. As you spent the entire balance there is no [[Change|change address]] which can leak information. This setup actually results in strong privacy even though a third-party server is used.&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Lightweight wallet over Tor used multiple times ===&lt;br /&gt;
Very similar to the previous example, but more than one [[address]] and [[transaction]] is used.&lt;br /&gt;
&lt;br /&gt;
# You want to use bitcoin for more than one use-case, for example buying a novelty hat and paying for a VPN.&lt;br /&gt;
# You install [[Electrum]] wallet and configure it to use [[Tor]].&lt;br /&gt;
# You pay for the novelty hat and have it sent to your mail address.&lt;br /&gt;
# You pay for the VPN to improve your web browsing privacy.&lt;br /&gt;
# As the Electrum wallet queries a third-party Electrum server, that server can link together the two transactions and knows which address is the [[Change|change address]].&lt;br /&gt;
# Therefore the server can easily see that the same person who bought the hat also paid for the VPN. As the hat purchase required revealing your mail address, your mail address can now be linked with the VPN account. So much for anonymous web browsing!&lt;br /&gt;
&lt;br /&gt;
Lesson: The third-party Electrum server was able to link together your two [[transaction]]s. Avoid this by [[Electrum#Server_software|running your own Electrum server]] which is backed by your own [[full node]].&lt;br /&gt;
&lt;br /&gt;
Lesson 2: Note that [https://tails.boum.org TailsOS] as of 2018 uses this privacy model for Electrum(!)&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Public donation address combined with the [[common-input-ownership heuristic]] ===&lt;br /&gt;
# Go to a website which accepts bitcoin donations like the [https://tails.boum.org/donate/ Tails OS donation page].&lt;br /&gt;
# Take their donation address (in this case &amp;lt;code&amp;gt;1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2&amp;lt;/code&amp;gt;) and search it in the www.walletexplorer.com site.&lt;br /&gt;
# The site uses the [[common-input-ownership heuristic]], [[address reuse]] and possibly other techniques to cluster together addresses.&lt;br /&gt;
# We can see the amount and volume of donations to the Tails OS project: https://www.walletexplorer.com/wallet/04d3d17f766c4e53?from_address=1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 The amounts look realistic so we&#039;re probably on the right lines.&lt;br /&gt;
&lt;br /&gt;
=== Real life example - [[#Digital forensics|Digital forensics]] aids with investigation of the MtGox exchange ===&lt;br /&gt;
# [[Mt. Gox]] is a now-defunct bitcoin exchange which shut down in 2013 due to insolvency.&lt;br /&gt;
# Its internal database was leaked in March 2014, from which it was possible to build up a near-complete picture of the deposits and withdrawals of its wallets.&lt;br /&gt;
# [[Address reuse]] was also a big factor. The [[common-input-ownership heuristic]] was less of a factor because that heuristic was broken by mtgox&#039;s import private key feature.&lt;br /&gt;
# Analysis information was also cross-checked by searching the web for all forum posts where a customer writes something like: &#039;&#039;Help! I made a deposit to MtGox of amount 0.12345 BTC. As I write my transaction has 20 [[confirmation]]s but the deposit hasn&#039;t appeared in the exchange.&#039;&#039; The forum posts include a date and time. These posts include enough information to search for the corresponding blockchain [[transaction]].&lt;br /&gt;
# The analysis revealed that there were multiple thefts from mtgox and the exchange was insolvent for most of its existence.&lt;br /&gt;
&lt;br /&gt;
Full talk: [https://www.youtube.com/watch?v=l70iRcSxqzo Breaking Bitcoin 2017 conference. Kim Nilsson - Cracking MtGox] [https://breaking-bitcoin.com/slides/CrackingMtGox.pdf Slides].&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Flawed use of the [[common-input-ownership heuristic]] exaggerates donation income ===&lt;br /&gt;
# Go to a website which accepts bitcoin donations like ThePirateBay.&lt;br /&gt;
# Take their donation address (in this case &amp;lt;code&amp;gt;1z8Tep4BNS79W3kYH8CHA8tWj6nuHYcCM&amp;lt;/code&amp;gt;) and search it in the www.walletexplorer.com site.&lt;br /&gt;
# The site uses the [[common-input-ownership heuristic]], [[address reuse]] and possibly other techniques to cluster together addresses.&lt;br /&gt;
# We can see most of the amount and volume of donations to ThePirateBay: https://www.walletexplorer.com/wallet/00005c945dba011c?from_address=1z8Tep4BNS79W3kYH8CHA8tWj6nuHYcCM&lt;br /&gt;
# The results indicate that ThePirateBay is making hundreds of millions of dollars in donations per day, which is not believable.&lt;br /&gt;
# A possible explanation of what&#039;s actually happening is ThePirateBay accepts donations straight into its account at a bitcoin [[exchange]], which would result that analysis based on the [[common-input-ownership heuristic]] gives highly exaggerated figures because it actually finds all deposits to that entire exchange. This has a danger for ThePirateBay that the custodial exchange could block or censor incoming donations.&lt;br /&gt;
# Another possibility is that ThePirateBay is using [[CoinJoin]].&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Incorrect clusters found by the [[common-input-ownership heuristic]] ===&lt;br /&gt;
# The www.walletexplorer.com website uses the [[common-input-ownership heuristic]], [[address reuse]] and possibly other techniques to cluster together addresses.&lt;br /&gt;
# It has a big named cluster called [https://www.walletexplorer.com/wallet/MtGoxAndOthers MtGoxAndOthers] which has 8.6 million transactions and 3.6 million addresses associated with it as of January 2019.&lt;br /&gt;
# The old [[Mt. Gox]] exchange had a feature where users could import bitcoin private keys from their personal wallet straight into the website&amp;lt;ref&amp;gt;https://twitter.com/LaurentMT/status/1078638385256902656&amp;lt;/ref&amp;gt;. There it would be merged with UTXOs from MtGox&#039;s own wallet.&lt;br /&gt;
# It seems some [[CoinJoin]] transactions have also ended up in the cluster&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/2ww4eb/how_does_wallet_explorer_know_which_wallets/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# For example the transaction &amp;lt;code&amp;gt;5ac0210febf7ce07a737bae8c32f84c1c54d131c21a16ca6b02b6f1edcad15c3&amp;lt;/code&amp;gt; which is probably a [[JoinMarket]] transaction belongs to the MtGoxAndOthers cluster&amp;lt;ref&amp;gt;https://www.walletexplorer.com/txid/5ac0210febf7ce07a737bae8c32f84c1c54d131c21a16ca6b02b6f1edcad15c3&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# Another example is the transaction &amp;lt;code&amp;gt;52757ed33a235ce8e48aeaabab7f6dd9cd3445c3642630123103b154ee59f3f5&amp;lt;/code&amp;gt; which is a coinjoin created by the old SharedCoin centralized service&amp;lt;ref&amp;gt;https://www.coinjoinsudoku.com/&amp;lt;/ref&amp;gt;, it is also in the MtGoxAndOthers cluster according to walletexplorer.&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Handmade coinjoin mislead a bitcoin analyist ===&lt;br /&gt;
# The inventor of [[CoinJoin]] Greg Maxwell posted a thread on [https://bitcointalk.org/index.php?topic=139581.0 bitcointalk forums called &amp;quot;I taint rich!&amp;quot;] which aimed to demonstrate coinjoin and how the [[common-input-ownership heuristic]] is not always correct.&lt;br /&gt;
# The thread invited forum readers to create [[CoinJoin]]s by hand with Greg Maxwell&#039;s vanity [[address]], which he hopes would be a strong demonstration of the flaws of the [[common-input-ownership heuristic]].&lt;br /&gt;
# Many years later, a bitcoin [[transaction]] worth 40000 BTC was broadcasted and mined which caused some [https://www.reddit.com/r/Bitcoin/comments/6tvwr5/someone_moved_40000_btc_is_it_from_silkroad/ speculation on bitcoin forums]. The handmade coinjoins caused some to come to the wrong conclusion that Greg Maxwell was the owner of the 40000 BTC.&lt;br /&gt;
# A quote from the analyst:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;Originally looks like they were owned by someone with the vanity address of GMaxweLL: 14947302eab0608fb2650a05f13f6f30b27a0a314c41250000f77ed904475dbb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you follow the 40k from that transaction (click the outputs), you get to the transaction you linked to. It&#039;s a short series of transactions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Basically, someone who owns that address was able to unlock coins from that address, as well as another address that held the 40,000, in the same transaction. So they must have owned both (at least 4 years ago anyway).&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lesson: The [[common-input-ownership heuristic]] isn&#039;t always right.&lt;br /&gt;
&lt;br /&gt;
=== Real life example - The QuadrigaCX exchange wallet analysis ===&lt;br /&gt;
&lt;br /&gt;
# In early 2019 the exchange QuadrigaCX shut down and many of its customers were left unable to access their bitcoin deposits, likely forever.&lt;br /&gt;
# A customer wanted to analyze the blockchain to find information about QuadrigaCX&#039;s wallet.&lt;br /&gt;
# They asked on internet forums for other customers to reveal their deposit [[address]]es and [[transaction]]s, many customers did so.&lt;br /&gt;
# Using www.walletexplorer.com the analyst was able to find a big wallet cluster containing all those addresses, it is likely this is the QuadrigaCX hot wallet. The hot wallet made many transactions, often involve [[Address reuse|reused addresses]] and didn&#039;t use [[CoinJoin]]; so it&#039;s likely that this analysis is correct.&lt;br /&gt;
# The walletexplorer cluster called MtGoxAndOthers mislead the analyst into believing the QuadrigaCX had something to do with MtGox, when in reality that cluster arises because of [[CoinJoin]].&lt;br /&gt;
# The analyst was unable to find a single cluster with a significant amount of bitcoins which could be the [[cold storage]] wallet. However cold storage wallets are likely to create few transactions and never reuse addresses; so its possible such a cluster would never appear on walletexplorer.com which uses the [[common-input-ownership heuristic]]. However its also possible that the exchange is insolvent and so there is no [[cold storage]] wallet.&lt;br /&gt;
&lt;br /&gt;
Main article: https://blog.zerononcense.com/2019/02/04/quadrigacx-chain-analysis-report-pt-1-bitcoin-wallets/&lt;br /&gt;
&lt;br /&gt;
Reddit comments: https://www.reddit.com/r/Bitcoin/comments/amut05/investigation_proves_an_exchange_quadriga_ran_a/&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Stopping Bustabit casino customers getting banned from Coinbase.com ===&lt;br /&gt;
&lt;br /&gt;
# Coinbase.com is a bitcoin [[exchange]]. Bustabit is an online casino that uses bitcoin.&lt;br /&gt;
# In the United States online gambling is illegal (although state government often operates their own lotteries, and meatspace gambling like in Vegas is legal). Coinbase.com enforces this policy by warning and ultimately banning their customers who use online bitcoin casinos.&lt;br /&gt;
# Some of Bustabit&#039;s customers were being warned and banned by Coinbase.com.&lt;br /&gt;
# Bustabit implemented [[Techniques_to_reduce_transaction_fees#Change_avoidance|change avoidance]]&amp;lt;ref&amp;gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015606.html&amp;lt;/ref&amp;gt; so many of their withdrawal transactions did not have a change output.&lt;br /&gt;
# Bustabit also imported many thousands of [[Address reuse|re-used addresses]] into [[JoinMarket]] and made them be used as inputs in many [[CoinJoin]] transactions.&lt;br /&gt;
# No more Bustabit customers were ever warned or banned&lt;br /&gt;
# It seems the combination of both methods broke the [[common-input-ownership heuristic]] and reduced the privacy-relevant information leaked by change outputs, enough that Coinbase.com&#039;s [[transaction surveillance company]] partner was unable to identify Bustabit&#039;s wallet addresses anymore.&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Rare multisignature scripts ===&lt;br /&gt;
# As of January 2019 [[multisignature]] contracts are visible to any observer of the blockchain.&lt;br /&gt;
# This includes their m-of-n values, the most common by far are 2-of-3 multisig&amp;lt;ref&amp;gt;https://p2sh.info/dashboard/db/p2sh-repartition-by-type?orgId=1&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# Some very unusual scripts such as 12-of-14 multisignature has been used a handful of times on the blockchain. These are easily visible as someone&#039;s wallet who received some money and then spent it.&lt;br /&gt;
# The bitcoin vault of the Xapo company used a 3-of-5 multisignature scheme. At one point when they moved it which resulted in 90% of the coins held on 3-of-5 multisig addresses moving on the blockchain. This revealed the amount of bitcoin in Xapo&#039;s wallet&amp;lt;ref&amp;gt;https://www.youtube.com/watch?v=Tiyvrh53Yp8&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# In 2016 the exchange Bitfinex was hacked and part of its wallet was stolen. Bitfinex used 2-of-3 multisignature addresses to store its coins. As the thief moved the hacked coins to regular non-multisignature addresses, the movement of 120,000 bitcoins out of 2-of-3 multisig was visible on the blockchain, and it revealed the size of the theft&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/4vupa6/p2shinfo_shows_movement_out_of_multisig_wallets/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Freelance IT contractor has his co-workers figure out his salary ===&lt;br /&gt;
&lt;br /&gt;
# A user posted on the bitcoin reddit forum&amp;lt;ref&amp;gt;https://web.archive.org/web/20170309231819/https://www.reddit.com/r/Bitcoin/comments/4v28jl/how_have_fungiblity_problems_affected_you_in/&amp;lt;/ref&amp;gt; about his experience with co-workers figuring out his salary because of [[address reuse]].&lt;br /&gt;
# &#039;&#039;&amp;quot;As a freelance IT contractor, I had one incident where an on-site specialist found out my daily rate. Surely, he was a bit upset and complained to his manager about the lack of his own compensation. My agency fined me for 50% of the monthly rate. Needless to say, I now create a unique receive address for every invoice, and use another set of addresses for the daily personal-use expenditure.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lesson: [[Address reuse]] is terrible for privacy.&lt;br /&gt;
&lt;br /&gt;
=== Real life example - Hacker hides destination of 445 btc with [[CoinJoin]] ===&lt;br /&gt;
&lt;br /&gt;
# In May 2017 a reddit user posted a thread saying they kept 445 btc on blockchain.info&#039;s web wallet, and their coins were stolen&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/69duq9/50_bounty_for_anybody_recovering_445_btc_stolen/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# They offered a 50% bounty for any help or information leading to finding their bitcoins again&lt;br /&gt;
# The stolen coins turned out to have been mixed through [[JoinMarket]]. It seems the hacker put the coins in a JoinMarket yield generator script and allowed them to be used for coinjoins a large number of times. A CoinJoin peeling chain can be seen.&lt;br /&gt;
# All traces are lost from what anybody has been able to tell.&lt;br /&gt;
&lt;br /&gt;
For good advice on how to store bitcoins without having them stolen by hackers see the [[Storing bitcoins]] article on this wiki.&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Data fusion of blockchain data and web cookies when online shopping with Bitcoin ===&lt;br /&gt;
&lt;br /&gt;
# Online shopping has several potential privacy leaks. Examples are third-party tracking cookies (such as from sites Doubleclick, Google Analytics or Facebook), or data given intentionally to merchants such as name, delivery address or email address.&lt;br /&gt;
# Bitcoin&#039;s blockchain leaks a lot of privacy-relevant information.&lt;br /&gt;
# Data fusion of these two categories of leaks can reveal a lot of information about people using Bitcoin for online shopping. This is the topic of a 2018 paper called When The Cookie Meets The Blockchain&amp;lt;ref&amp;gt;Goldfeder, S., Kalodner, H., Reisman, D., &amp;amp; Narayanan, A. (2018). When the cookie meets the blockchain: Privacy risks of web payments via cryptocurrencies, Proceedings on Privacy Enhancing Technologies, 2018(4), 179-199. doi: https://doi.org/10.1515/popets-2018-0038&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# For example, if a bitcoin user buys a novelty hat and has it shipped to their home and then later the same bitcoin wallet donates to Wikileaks, then the hat merchant and third-party trackers (who know the user&#039;s real name and mail address) can figure out that the same user donated to Wikileaks.&lt;br /&gt;
&lt;br /&gt;
This is example of the power of data fusion, where two or more privacy leaks which when combined reveal far more information than each individual leak.&lt;br /&gt;
&lt;br /&gt;
The privacy problems of third-party web tracking cookies have been known for nearly a decade but the situation has not improved much. Privacy can be regained in practice in this situation by 1) Using browser extensions such as uBlock Origin, Adblock Plus or Ghostery to block third-party tracking cookies, and/or 2) Using [[Off-Chain Transactions|off-chain transaction methods]] to make payments where much less privacy-relevant information is leaked. Most practically as of 2019 would be using [[Lightning Network]] for online shopping.&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Centralized mixers being easily unmixed with amount correlation ===&lt;br /&gt;
&lt;br /&gt;
# BitcoinFog is a centralized bitcoin mixer, it charges 1-3% for a mix.&lt;br /&gt;
# Someone on reddit easily unmixes many BitcoinFog mixes using [[#Amount_correlation|Amount correlation]]&amp;lt;ref&amp;gt;https://web.archive.org/web/20150607131623/http://www.reddit.com/r/DarkNetMarkets/comments/2rhaqc/deanonimyzing_bitcoinfog_and_other_tumblers/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bad privacy example - Data fusion of blockchain data and IP address transaction broadcasting data ===&lt;br /&gt;
&lt;br /&gt;
# A 2018 paper&amp;lt;ref&amp;gt;Juhász PL, Stéger J, Kondor D, Vattay G (2018) A Bayesian approach to identify Bitcoin users. PLOS ONE 13(12): e0207000. https://doi.org/10.1371/journal.pone.0207000&amp;lt;/ref&amp;gt; uses blockchain analysis and the tracking of transaction broadcasts to deanonymize bitcoin users.&lt;br /&gt;
# The researchers use [[address reuse]] and the [[common-input-ownership heuristic]] (the paper authors do not mention the possibility of [[CoinJoin]])&lt;br /&gt;
# The researchers connect to every single listening bitcoin node, and attempt to track transactions as they broadcast. This gives them an idea of the originating IP address.&lt;br /&gt;
# The paper identifies about 22,000 bitcoin users by linking their IP address and bitcoin [[address]]es. About 20,000 of these users come from one IP address which is probably a popular web wallet.&lt;br /&gt;
# The paper collected data during late-2013, but the Bitcoin Core transaction relay algorithm has been changed significantly in the meantime to improve privacy. So the method used should work less well today.&lt;br /&gt;
&lt;br /&gt;
Lesson: Private transaction broadcasting (for example over [[tor]]) is necessary for privacy.&lt;br /&gt;
&lt;br /&gt;
=== Real life example - 2018 paper on analysis of bitcoin ransomware transactions ===&lt;br /&gt;
&lt;br /&gt;
# A 2018 paper uses tracking techniques to study bitcoin ransomware&amp;lt;ref&amp;gt;D. Y. Huang et al., &amp;quot;Tracking Ransomware End-to-end,&amp;quot; 2018 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, 2018, pp. 618-631. doi: 10.1109/SP.2018.00047 https://www.youtube.com/watch?v=H5bPmzsVLF8&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# Some ransomware uses static addresses (which implies [[address reuse]]) while other ransomware requires victims to connect to a http server that hands out new bitcoin addresses.&lt;br /&gt;
# To find ransomware [[address]]es the researchers found online reports by victims and reverse-engineered ransomware binaries to find addresses within.&lt;br /&gt;
# They also used [[Mystery_shopper_payments|mystery shopper payments]], sending 0.001 BTC to ransomware addresses and watching where that coin is sent to. Two ransomware operators (Cerber and Locky) took the bait but one operator (Sage) did not and so his cluster was never found.&lt;br /&gt;
# The researchers use the [[common-input-ownership heuristic]] to find clusters of [[address]]es. They know that [[CoinJoin]] breaks this assumption and so search for detectable [[CoinJoin]] transactions within the clusters which would indicate a break. This was before the invention or implementation of [[PayJoin]] so it is assumed that all coinjoins can be detected.&lt;br /&gt;
# The researchers try to match incoming payments to the ransomware clusters with spikes in Google searches for that ransomware, and uploads of the ransomware binary to malware-tracking websites. If there are spikes in google searches or binary uploads without a corresponding increase in incoming bitcoin payments, then that indicates that the researchers have missed some clusters belonging to the ransomware wallets. This is [[#Timing correlation|Timing correlation]] in use. The researchers conclude they are in fact missing most clusters for CryptoDefense, CryptoLocker, and CryptoWall, but probably have all the clusters for the other ransomware they study.&lt;br /&gt;
# A [[transaction surveillance company]] called Chainalysis is used to find the ownership of certain addresses. It works particularly well for exchanges which share their data with Chainalysis. With this the destination of ransomware funds can be tracked. The largest known destination is the BTC-E, a now-shut-down Russian bitcoin exchange with lax controls that was widely known to be used by criminals. However the vast majority of funds is sent to Unknown destinations. One ransomware called CryptoXXX is ~95% sent to Unknown, WannaCry had 100% unknown. The researchers write BTC-E in the paper&#039;s abstract and conclusion because that&#039;s the biggest destination they could find, but in reality most of the ransomware money could not be tracked&lt;br /&gt;
&lt;br /&gt;
The paper is an excellent example of transaction tracking. The researchers take great care in their conclusions, as in blockchain analysis it is sometimes easy to trick yourself into thinking you know more than you do. It is worth reading by anyone interested in bitcoin privacy.&lt;br /&gt;
&lt;br /&gt;
Ransomware is a threat. Always keep good backups of your important data.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Common-input-ownership heuristic]]&lt;br /&gt;
* [[Address reuse]]&lt;br /&gt;
* [[CoinJoin]]&lt;br /&gt;
* [[PayJoin]]&lt;br /&gt;
* [[Transaction surveillance company]]&lt;br /&gt;
* [[Client-side block filtering]]&lt;br /&gt;
* [[Full node#Privacy]]&lt;br /&gt;
* [[Lightning Network]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Privacy]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=ASICMiner&amp;diff=69457</id>
		<title>ASICMiner</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=ASICMiner&amp;diff=69457"/>
		<updated>2022-09-26T08:39:17Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: added a bit more information and the reference text used for this.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox company|name=ASICMiner|native_name=烤猫矿机|image=[[{{ns:file}}:Logo-asicminer-en.png|270x64px]]|website=[http://iasicminer.com/ iasicminer.com]|twitter=ASICMinerANN|weibo=5195261989}}&lt;br /&gt;
The ASIC (Application-Specific Integrated Circuit) miner is a computer device that is specifically used for the main purpose of mining digital currency. It does not need any additional hardware.&amp;lt;ref&amp;gt;https://www.ionos.com/digitalguide/server/know-how/cryptomining/&amp;lt;/ref&amp;gt;&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://bitcointalk.org/index.php?topic=99497.0 Official Announcement/Shareholder Thread]&lt;br /&gt;
* [http://www.weibo.com/u/5195261989 Official Microblogging]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Changelog&amp;diff=69455</id>
		<title>Changelog</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Changelog&amp;diff=69455"/>
		<updated>2022-09-26T07:58:33Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page aggregates the changelogs that have been posted on the forum for the Bitcoin releases. &lt;br /&gt;
Note that some download links are no longer valid as highly insecure versions may have been deleted, or links may have changed.&lt;br /&gt;
&lt;br /&gt;
This page hasn&#039;t been updated for a while. Changelogs for newer versions as well as historical release notes can be found at bitcoin.org: https://bitcoin.org/en/version-history and/or through github: https://github.com/bitcoin/bitcoin/tree/master/doc/release-notes&lt;br /&gt;
&lt;br /&gt;
=Changelogs=&lt;br /&gt;
&lt;br /&gt;
https://bitcoin.org/en/release/v0.7.1&lt;br /&gt;
==0.7.X==&lt;br /&gt;
&lt;br /&gt;
===0.7.1&amp;lt;ref&amp;gt;[https://bitcoin.org/en/release/v0.7.1 0.7.1 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
New features:&lt;br /&gt;
&lt;br /&gt;
* Added a boolean argument to the RPC stop command, if true sets -detachdb to create standalone database .dat files before shutting down.&lt;br /&gt;
&lt;br /&gt;
* -salvagewallet command-line option, which moves any existing wallet.dat to wallet.{timestamp}.dat and then attempts to salvage public/private keys and master encryption keys (if the wallet is encrypted) into a new wallet.dat. This should only be used if your wallet becomes corrupted, and is not intended to replace regular wallet backups.&lt;br /&gt;
&lt;br /&gt;
* Import $DataDir/bootstrap.dat automatically, if it exists.&lt;br /&gt;
&lt;br /&gt;
==0.6.X==&lt;br /&gt;
After 0.6.3, all subsequent releases are stable maintenance releases, 0.7.0 is based on 0.6.3.&lt;br /&gt;
&lt;br /&gt;
===0.6.3&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=89877.0 0.6.3 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.6.3 is now available for download at:&lt;br /&gt;
  http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.3/&lt;br /&gt;
&lt;br /&gt;
This is a bug-fix release, with no new features.&lt;br /&gt;
&lt;br /&gt;
Please report bugs using the issue tracker at github:&lt;br /&gt;
  https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
CHANGE SUMMARY&lt;br /&gt;
&lt;br /&gt;
Fixed a serious denial-of-service attack that could cause the&lt;br /&gt;
bitcoin process to become unresponsive. Thanks to Sergio Lerner&lt;br /&gt;
for finding and responsibly reporting the problem. (CVE-2012-3789)&lt;br /&gt;
&lt;br /&gt;
Optimized the process of checking transaction signatures, to&lt;br /&gt;
speed up the processing of new block messages and make propagating&lt;br /&gt;
blocks across the network faster.&lt;br /&gt;
&lt;br /&gt;
Fixed an obscure bug that could cause the bitcoin process to get&lt;br /&gt;
stuck on an invalid block-chain, if the invalid chain was&lt;br /&gt;
hundreds of blocks long.&lt;br /&gt;
&lt;br /&gt;
Bitcoin-Qt no longer automatically selects the first address&lt;br /&gt;
in the address book (Issue #1384).&lt;br /&gt;
&lt;br /&gt;
Fixed minimize-to-dock behavior of Bitcoin-Qt on the Mac.&lt;br /&gt;
&lt;br /&gt;
Added a blocking checkpoint at block 185,333 to speed up initial&lt;br /&gt;
blockchain download.&lt;br /&gt;
&lt;br /&gt;
===0.6.2&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=80187.0 0.6.2 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.6.2 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.2/&lt;br /&gt;
&lt;br /&gt;
This is a bug-fix and code-cleanup release, with no major new features.&lt;br /&gt;
&lt;br /&gt;
Please report bugs using the GitHub issue tracker at:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTABLE CHANGES&lt;br /&gt;
&lt;br /&gt;
Much faster shutdowns. However, the blkindex.dat file is no longer&lt;br /&gt;
portable to different data directories by default. If you need a&lt;br /&gt;
portable blkindex.dat file then run with the new -detachdb=1 option&lt;br /&gt;
or the &amp;quot;Detach databases at shutdown&amp;quot; GUI preference.&lt;br /&gt;
&lt;br /&gt;
Fixed https://github.com/bitcoin/bitcoin/issues/1065, a bug that&lt;br /&gt;
could cause long-running nodes to crash.&lt;br /&gt;
&lt;br /&gt;
Mac and Windows binaries are compiled against OpenSSL 1.0.1b (Linux&lt;br /&gt;
binaries are dynamically linked to the version of OpenSSL on the system).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CHANGE SUMMARY&lt;br /&gt;
&lt;br /&gt;
Use &#039;git shortlog --no-merges v0.6.0..&#039; for a summary of this release.&lt;br /&gt;
&lt;br /&gt;
Source codebase changes:&lt;br /&gt;
- Many source code cleanups and warnings fixes.  Close to building with -Wall&lt;br /&gt;
- Locking overhaul, and several minor locking fixes&lt;br /&gt;
- Several source code portability fixes, e.g. FreeBSD&lt;br /&gt;
&lt;br /&gt;
JSON-RPC interface changes:&lt;br /&gt;
- addmultisigaddress enabled for mainnet (previously only enabled for testnet)&lt;br /&gt;
&lt;br /&gt;
Network protocol changes:&lt;br /&gt;
- protocol version 60001&lt;br /&gt;
- added nonce value to &amp;quot;ping&amp;quot; message (BIP 31)&lt;br /&gt;
- added new &amp;quot;pong&amp;quot; message (BIP 31)&lt;br /&gt;
&lt;br /&gt;
Backend storage changes:&lt;br /&gt;
- Less redundant database flushing, especially during initial block download&lt;br /&gt;
- Shutdown improvements (see above)&lt;br /&gt;
&lt;br /&gt;
Qt user interface:&lt;br /&gt;
- minor URI handling improvements&lt;br /&gt;
- progressbar improvements&lt;br /&gt;
- error handling improvements (show message box rather than console exception,&lt;br /&gt;
etc.)&lt;br /&gt;
- by popular request, make the 4th bar of the connection icon green&lt;br /&gt;
&lt;br /&gt;
===0.6.1===&lt;br /&gt;
Never released&lt;br /&gt;
&lt;br /&gt;
===0.6.0&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=74737.0 0.6.0 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.6.0 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.0/test/&lt;br /&gt;
&lt;br /&gt;
This release includes more than 20 language localizations.&lt;br /&gt;
More translations are welcome; join the&lt;br /&gt;
project at Transifex to help:&lt;br /&gt;
https://www.transifex.net/projects/p/bitcoin/&lt;br /&gt;
&lt;br /&gt;
Please report bugs using the issue tracker at github:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
Project source code is hosted at github; we are no longer&lt;br /&gt;
distributing .tar.gz files here, you can get them&lt;br /&gt;
directly from github:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/tarball/v0.6.0  # .tar.gz&lt;br /&gt;
https://github.com/bitcoin/bitcoin/zipball/v0.6.0  # .zip&lt;br /&gt;
&lt;br /&gt;
For Ubuntu users, there is a ppa maintained by Matt Corallo which&lt;br /&gt;
you can add to your system so that it will automatically keep&lt;br /&gt;
bitcoin up-to-date.  Just type&lt;br /&gt;
sudo apt-add-repository ppa:bitcoin/bitcoin&lt;br /&gt;
in your terminal, then install the bitcoin-qt package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KNOWN ISSUES&lt;br /&gt;
&lt;br /&gt;
Shutting down while synchronizing with the network&lt;br /&gt;
(downloading the blockchain) can take more than a minute,&lt;br /&gt;
because database writes are queued to speed up download&lt;br /&gt;
time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NEW FEATURES SINCE BITCOIN VERSION 0.5&lt;br /&gt;
&lt;br /&gt;
Initial network synchronization should be much faster&lt;br /&gt;
(one or two hours on a typical machine instead of ten or more&lt;br /&gt;
hours).&lt;br /&gt;
&lt;br /&gt;
Backup Wallet menu option.&lt;br /&gt;
&lt;br /&gt;
Bitcoin-Qt can display and save QR codes for sending&lt;br /&gt;
and receiving addresses.&lt;br /&gt;
&lt;br /&gt;
New context menu on addresses to copy/edit/delete them.&lt;br /&gt;
&lt;br /&gt;
New Sign Message dialog that allows you to prove that you&lt;br /&gt;
own a bitcoin address by creating a digital&lt;br /&gt;
signature.&lt;br /&gt;
&lt;br /&gt;
New wallets created with this version will&lt;br /&gt;
use 33-byte &#039;compressed&#039; public keys instead of&lt;br /&gt;
65-byte public keys, resulting in smaller&lt;br /&gt;
transactions and less traffic on the bitcoin&lt;br /&gt;
network. The shorter keys are already supported&lt;br /&gt;
by the network but wallet.dat files containing&lt;br /&gt;
short keys are not compatible with earlier&lt;br /&gt;
versions of Bitcoin-Qt/bitcoind.&lt;br /&gt;
&lt;br /&gt;
New command-line argument -blocknotify=&amp;lt;command&amp;gt;&lt;br /&gt;
that will spawn a shell process to run &amp;lt;command&amp;gt; &lt;br /&gt;
when a new block is accepted.&lt;br /&gt;
&lt;br /&gt;
New command-line argument -splash=0 to disable&lt;br /&gt;
Bitcoin-Qt&#039;s initial splash screen&lt;br /&gt;
&lt;br /&gt;
validateaddress JSON-RPC api command output includes&lt;br /&gt;
two new fields for addresses in the wallet:&lt;br /&gt;
pubkey : hexadecimal public key&lt;br /&gt;
iscompressed : true if pubkey is a short 33-byte key&lt;br /&gt;
&lt;br /&gt;
New JSON-RPC api commands for dumping/importing&lt;br /&gt;
private keys from the wallet (dumprivkey, importprivkey).&lt;br /&gt;
&lt;br /&gt;
New JSON-RPC api command for getting information about&lt;br /&gt;
blocks (getblock, getblockhash).&lt;br /&gt;
&lt;br /&gt;
New JSON-RPC api command (getmininginfo) for getting&lt;br /&gt;
extra information related to mining. The getinfo&lt;br /&gt;
JSON-RPC command no longer includes mining-related&lt;br /&gt;
information (generate/genproclimit/hashespersec).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTABLE CHANGES&lt;br /&gt;
&lt;br /&gt;
BIP30 implemented (security fix for an attack involving&lt;br /&gt;
duplicate &amp;quot;coinbase transactions&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
The -nolisten, -noupnp and -nodnsseed command-line&lt;br /&gt;
options were renamed to -listen, -upnp and -dnsseed,&lt;br /&gt;
with a default value of 1. The old names are still&lt;br /&gt;
supported for compatibility (so specifying -nolisten&lt;br /&gt;
is automatically interpreted as -listen=0; every&lt;br /&gt;
boolean argument can now be specified as either&lt;br /&gt;
-foo or -nofoo).&lt;br /&gt;
&lt;br /&gt;
The -noirc command-line options were renamed to&lt;br /&gt;
-irc, with a default value of 0. Run -irc=1 to&lt;br /&gt;
get the old behavior.&lt;br /&gt;
&lt;br /&gt;
Three fill-up-available-memory denial-of-service&lt;br /&gt;
attacks were fixed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOT YET IMPLEMENTED FEATURES&lt;br /&gt;
&lt;br /&gt;
Support for clicking on bitcoin: URIs and&lt;br /&gt;
opening/launching Bitcoin-Qt is available only on Linux,&lt;br /&gt;
and only if you configure your desktop to launch&lt;br /&gt;
Bitcoin-Qt. All platforms support dragging and dropping&lt;br /&gt;
bitcoin: URIs onto the Bitcoin-Qt window to start&lt;br /&gt;
payment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PRELIMINARY SUPPORT FOR MULTISIGNATURE TRANSACTIONS&lt;br /&gt;
&lt;br /&gt;
This release has preliminary support for multisignature&lt;br /&gt;
transactions-- transactions that require authorization&lt;br /&gt;
from more than one person or device before they&lt;br /&gt;
will be accepted by the bitcoin network.&lt;br /&gt;
&lt;br /&gt;
Prior to this release, multisignature transactions&lt;br /&gt;
were considered &#039;non-standard&#039; and were ignored;&lt;br /&gt;
with this release multisignature transactions are&lt;br /&gt;
considered standard and will start to be relayed&lt;br /&gt;
and accepted into blocks.&lt;br /&gt;
&lt;br /&gt;
It is expected that future releases of Bitcoin-Qt&lt;br /&gt;
will support the creation of multisignature transactions,&lt;br /&gt;
once enough of the network has upgraded so relaying&lt;br /&gt;
and validating them is robust.&lt;br /&gt;
&lt;br /&gt;
For this release, the creation, and testing of multi-signature&lt;br /&gt;
transactions is limited to the bitcoin test network using&lt;br /&gt;
the &amp;quot;addmultisigaddress&amp;quot; JSON-RPC api call.&lt;br /&gt;
&lt;br /&gt;
Short multisignature address support is included in this&lt;br /&gt;
release, as specified in BIP 13 and BIP 16.&lt;br /&gt;
&lt;br /&gt;
==0.5.X==&lt;br /&gt;
After 0.5.1, all subsequent releases are stable maintenance releases, 0.6.0 is based on 0.5.1.&lt;br /&gt;
&lt;br /&gt;
===0.5.5&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=79651 0.4.6/0.5.5 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
bitcoind and Bitcoin-Qt version 0.5.5 are now available for download at:&lt;br /&gt;
Windows: installer | zip (sig)&lt;br /&gt;
Source: tar.gz&lt;br /&gt;
bitcoind and Bitcoin-Qt version 0.6.0.7 are also tagged in git, but it is recommended to upgrade to 0.6.1.&lt;br /&gt;
&lt;br /&gt;
These are bugfix-only releases.&lt;br /&gt;
&lt;br /&gt;
Please report bugs by replying to this forum thread. Note that the 0.4.x wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr.&lt;br /&gt;
&lt;br /&gt;
BUG FIXES&lt;br /&gt;
&lt;br /&gt;
Version 0.6.0 allowed importing invalid &amp;quot;private keys&amp;quot;, which would be unspendable; 0.6.0.7 will now verify the private key is valid, and refuse to import an invalid one&lt;br /&gt;
Verify the status of encrypt/decrypt calls to detect failed padding&lt;br /&gt;
Check blocks for duplicate transactions earlier. Fixes #1167&lt;br /&gt;
Upgrade Windows builds to OpenSSL 1.0.1b&lt;br /&gt;
Set label when selecting an address that already has a label. Fixes #1080 (Bitcoin-Qt)&lt;br /&gt;
JSON-RPC listtransactions&#039;s from/count handling is now fixed&lt;br /&gt;
Optimize and fix multithreaded access, when checking whether we already know about transactions&lt;br /&gt;
Fix potential networking deadlock&lt;br /&gt;
Proper support for Growl 1.3 notifications&lt;br /&gt;
Display an error, rather than crashing, if encoding a QR Code failed (0.6.0.7)&lt;br /&gt;
Don&#039;t erroneously set &amp;quot;Display addresses&amp;quot; for users who haven&#039;t explicitly enabled it (Bitcoin-Qt)&lt;br /&gt;
Some non-ASCII input in JSON-RPC expecting hexadecimal may have been misinterpreted rather than rejected&lt;br /&gt;
Missing error condition checking added&lt;br /&gt;
Do not show a green tick unless all known blocks are downloaded. Fixes #921 (Bitcoin-Qt)&lt;br /&gt;
Increase time ago of the last block for &amp;quot;up to date&amp;quot; status from 30 to 90 minutes&lt;br /&gt;
Show a message box when a runaway exception happens (Bitcoin-Qt)&lt;br /&gt;
Use a messagebox to display the error when -server is provided without providing a rpc password&lt;br /&gt;
Show error message instead of exception crash when unable to bind RPC port (Bitcoin-Qt)&lt;br /&gt;
Correct sign message bitcoin address tooltip. Fixes #1050 (Bitcoin-Qt)&lt;br /&gt;
Removed &amp;quot;(no label)&amp;quot; from QR Code dialog titlebar if we have no label (0.6.0.7)&lt;br /&gt;
Removed an ugly line break in the tooltip for mature transactions (0.6.0.7)&lt;br /&gt;
Add missing tooltip and key shortcut in settings dialog (part of #1088) (Bitcoin-Qt)&lt;br /&gt;
Work around an issue in boost::program_options that prevents from compiling in clang&lt;br /&gt;
Fixed bugs occurring only on platforms with unsigned characters (such as ARM).&lt;br /&gt;
Rename make_windows_icon.py to .sh as it is a shell script. Fixes #1099 (Bitcoin-Qt)&lt;br /&gt;
Various trivial internal corrections to types used for counting/size loops and warnings&lt;br /&gt;
&lt;br /&gt;
===0.5.4&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=76808.0 0.5.4 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.5.4 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.4/&lt;br /&gt;
NOTE: 0.5.4rc3 is being renamed to 0.5.4 final with no changes.&lt;br /&gt;
&lt;br /&gt;
This is a bugfix-only release in the 0.5.x series, plus a few protocol updates.&lt;br /&gt;
&lt;br /&gt;
Please report bugs using the issue tracker at GitHub:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
Stable source code is hosted at Gitorious:&lt;br /&gt;
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.4#.tar.gz&lt;br /&gt;
&lt;br /&gt;
PROTOCOL UPDATES&lt;br /&gt;
&lt;br /&gt;
BIP 16: Special-case &amp;quot;pay to script hash&amp;quot; logic to enable minimal validation of new transactions.&lt;br /&gt;
Support for validating message signatures produced with compressed public keys.&lt;br /&gt;
&lt;br /&gt;
BUG FIXES&lt;br /&gt;
&lt;br /&gt;
Build with thread-safe MingW libraries for Windows, fixing a dangerous memory corruption scenario when exceptions are thrown.&lt;br /&gt;
Fix broken testnet mining.&lt;br /&gt;
Stop excess inventory relay during initial block download.&lt;br /&gt;
When disconnecting a node, clear the received buffer so that we do not process any already received messages.&lt;br /&gt;
Yet another attempt at implementing &amp;quot;minimize to tray&amp;quot; that works on all operating systems.&lt;br /&gt;
Fix Bitcoin-Qt notifications under Growl 1.3.&lt;br /&gt;
Increase the required age of Bitcoin-Qt&#039;s &amp;quot;not up to date&amp;quot; status from 30 to 90 minutes.&lt;br /&gt;
Implemented missing verifications that led to crashes on entering some wrong passphrases for encrypted wallets.&lt;br /&gt;
Fix default filename suffixes in GNOME save dialog.&lt;br /&gt;
Make the &amp;quot;Send coins&amp;quot; tab use the configured unit type, even on the first attempt.&lt;br /&gt;
Print detailed wallet loading errors to debug.log when it is corrupt.&lt;br /&gt;
Allocate exactly the amount of space needed for signing transactions, instead of a fixed 10k buffer.&lt;br /&gt;
Workaround for an improbable memory access violation.&lt;br /&gt;
Check wallet&#039;s minimum version before trying to load it.&lt;br /&gt;
Remove wxBitcoin properly when installing Bitcoin-Qt over it. (Windows)&lt;br /&gt;
Detail reorganization information is better in debug log.&lt;br /&gt;
Use a messagebox to display the error when -server is provided without configuring a RPC password.&lt;br /&gt;
Testing suite build now honours provided CXXFLAGS.&lt;br /&gt;
Removed an extraneous line-break in mature transaction tooltips.&lt;br /&gt;
Fix some grammatical errors in the translation process documentation.&lt;br /&gt;
&lt;br /&gt;
===0.5.3&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=68895.0 0.5.3 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.5.3 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.3/&lt;br /&gt;
&lt;br /&gt;
This is a bugfix-only release based on 0.5.1.&lt;br /&gt;
It also includes a few protocol updates.&lt;br /&gt;
&lt;br /&gt;
Please report bugs using the issue tracker at github:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
Stable source code is hosted at Gitorious:&lt;br /&gt;
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.3#.tar.gz&lt;br /&gt;
&lt;br /&gt;
PROTOCOL UPDATES&lt;br /&gt;
&lt;br /&gt;
BIP 30: Introduce a new network rule: &amp;quot;a block is not valid if it contains a transaction whose hash already exists in the blockchain, unless all that transaction&#039;s outputs were already spent before said block&amp;quot; beginning on March 15, 2012, 00:00 UTC.&lt;br /&gt;
On testnet, allow mining of min-difficulty blocks if 20 minutes have gone by without mining a regular-difficulty block. This is to make testing Bitcoin easier, and will not affect normal mode.&lt;br /&gt;
&lt;br /&gt;
BUG FIXES&lt;br /&gt;
&lt;br /&gt;
Limit the number of orphan transactions stored in memory, to prevent a potential denial-of-service attack by flooding orphan transactions. Also never store invalid transactions at all.&lt;br /&gt;
Fix possible buffer overflow on systems with very long application data paths. This is not exploitable.&lt;br /&gt;
Resolved multiple bugs preventing long-term unlocking of encrypted wallets&lt;br /&gt;
(issue #922).&lt;br /&gt;
Only send local IP in &amp;quot;version&amp;quot; messages if it is globally routable (ie, not private), and try to get such an IP from UPnP if applicable.&lt;br /&gt;
Reannounce UPnP port forwards every 20 minutes, to workaround routers expiring old entries, and allow the -upnp option to override any stored setting.&lt;br /&gt;
Skip splash screen when -min is used, and fix Minimize to Tray function.&lt;br /&gt;
Do not blank &amp;quot;label&amp;quot; in Bitcoin-Qt &amp;quot;Send&amp;quot; tab, if the user has already entered something.&lt;br /&gt;
Correct various labels and messages.&lt;br /&gt;
Various memory leaks and potential null pointer deferences have been fixed.&lt;br /&gt;
Handle invalid Bitcoin URIs using &amp;quot;bitcoin://&amp;quot; instead of &amp;quot;bitcoin:&amp;quot;.&lt;br /&gt;
Several shutdown issues have been fixed.&lt;br /&gt;
Revert to &amp;quot;global progress indication&amp;quot;, as starting from zero every time was considered too confusing for many users.&lt;br /&gt;
Check that keys stored in the wallet are valid at startup, and if not, report corruption.&lt;br /&gt;
Enable accessible widgets on Windows, so that people with screen readers such as NVDA can make sense of it.&lt;br /&gt;
Various build fixes.&lt;br /&gt;
If no password is specified to bitcoind, recommend a secure password.&lt;br /&gt;
Automatically focus and scroll to new &amp;quot;Send coins&amp;quot; entries in Bitcoin-Qt.&lt;br /&gt;
Show a message box for --help on Windows, for Bitcoin-Qt.&lt;br /&gt;
Add missing &amp;quot;About Qt&amp;quot; menu option to show built-in Qt About dialog.&lt;br /&gt;
Don&#039;t show &amp;quot;-daemon&amp;quot; as an option for Bitcoin-Qt, since it isn&#039;t available.&lt;br /&gt;
Update hard-coded fallback seed nodes, choosing recent ones with long uptime and versions at least 0.4.0.&lt;br /&gt;
Add checkpoint at block 168,000.&lt;br /&gt;
&lt;br /&gt;
===0.5.2&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=60146.0 0.5.2 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.5.2 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.2/&lt;br /&gt;
&lt;br /&gt;
This is a bugfix-only release based on 0.5.1.&lt;br /&gt;
&lt;br /&gt;
Please report bugs using the issue tracker at github:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
Stable source code is hosted at Gitorious:&lt;br /&gt;
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.2#.tar.gz&lt;br /&gt;
&lt;br /&gt;
BUG FIXES&lt;br /&gt;
&lt;br /&gt;
Check all transactions in blocks after the last checkpoint (0.5.0 and 0.5.1 skipped checking ECDSA signatures during initial blockchain download).&lt;br /&gt;
Cease locking memory used by non-sensitive information (this caused a huge performance hit on some platforms, especially noticable during initial blockchain download; this was&lt;br /&gt;
not a security vulnerability).&lt;br /&gt;
Fixed some address-handling deadlocks (client freezes).&lt;br /&gt;
No longer accept inbound connections over the internet when Bitcoin is being used with Tor (identity leak).&lt;br /&gt;
Re-enable SSL support for the JSON-RPC interface (it was unintentionally disabled for the 0.5.0 and 0.5.1 release Linux binaries).&lt;br /&gt;
Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed).&lt;br /&gt;
Don&#039;t show &amp;quot;IP&amp;quot; for transactions which are not necessarily IP transactions.&lt;br /&gt;
Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr).&lt;br /&gt;
&lt;br /&gt;
===0.5.1&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=54717.0 0.5.1 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.5.1 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.1/&lt;br /&gt;
&lt;br /&gt;
This is a bugfix-only release.&lt;br /&gt;
&lt;br /&gt;
This release includes 13 translations, including 5 new translations:&lt;br /&gt;
Italian, Hungarian, Ukrainian, Portuguese (Brazilian), and Simplified Chinese.&lt;br /&gt;
More translations are welcome; join the project at Transifex if you can help:&lt;br /&gt;
https://www.transifex.net/projects/p/bitcoin/&lt;br /&gt;
&lt;br /&gt;
Please report bugs using the issue tracker at GitHub:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
Project source code is hosted at GitHub; we are no longer&lt;br /&gt;
distributing .tar.gz files here, you can get them&lt;br /&gt;
directly from GitHub:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/tarball/v0.5.1  # .tar.gz&lt;br /&gt;
https://github.com/bitcoin/bitcoin/zipball/v0.5.1  # .zip&lt;br /&gt;
&lt;br /&gt;
For Ubuntu users, there is a new ppa maintained by Matt Corallo which&lt;br /&gt;
you can add to your system so that it will automatically keep&lt;br /&gt;
bitcoin up-to-date.  Just type&lt;br /&gt;
sudo apt-add-repository ppa:bitcoin/bitcoin&lt;br /&gt;
in your terminal, then install the bitcoin-qt package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BUG FIXES&lt;br /&gt;
&lt;br /&gt;
Re-enable SSL support for the JSON-RPC interface (it was unintentionally&lt;br /&gt;
disabled for the 0.5.0 release binaries).&lt;br /&gt;
&lt;br /&gt;
The code that finds peers via &amp;quot;dns seeds&amp;quot; no longer stops bitcoin startup&lt;br /&gt;
if one of the dns seed machines is down.&lt;br /&gt;
&lt;br /&gt;
Tooltips on the transaction list view were rendering incorrectly (as black boxes&lt;br /&gt;
or with a transparent background).&lt;br /&gt;
&lt;br /&gt;
Prevent a denial-of-service attack involving flooding a bitcoin node with&lt;br /&gt;
orphan blocks.&lt;br /&gt;
&lt;br /&gt;
The wallet passphrase dialog now warns you if the caps lock key was pressed.&lt;br /&gt;
&lt;br /&gt;
Improved searching in addresses and labels in bitcoin-qt.&lt;br /&gt;
&lt;br /&gt;
===0.5.0&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=52480.0 0.5.0 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.5.0 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.0/&lt;br /&gt;
&lt;br /&gt;
The major change for this release is a completely new graphical interface that uses the Qt user interface toolkit.&lt;br /&gt;
&lt;br /&gt;
This release includes German, Spanish, Spanish-Castilian, Norwegian and Dutch translations. More translations are welcome; join the project at Transifex if you can help:&lt;br /&gt;
https://www.transifex.net/projects/p/bitcoin/&lt;br /&gt;
&lt;br /&gt;
Please report bugs using the issue tracker at GitHub:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
For Ubuntu users, there is a new ppa maintained by Matt Corallo which you can add to your system so that it will automatically keep bitcoin up-to-date.  Just type &amp;quot;sudo apt-add-repository ppa:bitcoin/bitcoin&amp;quot; in your terminal, then install the bitcoin-qt package.&lt;br /&gt;
&lt;br /&gt;
MAJOR BUG FIX  (CVE-2011-4447)&lt;br /&gt;
&lt;br /&gt;
The wallet encryption feature introduced in Bitcoin version 0.4.0 did not sufficiently secure the private keys. An attacker who&lt;br /&gt;
managed to get a copy of your encrypted wallet.dat file might be able to recover some or all of the unencrypted keys and steal the&lt;br /&gt;
associated coins.&lt;br /&gt;
&lt;br /&gt;
If you have a previously encrypted wallet.dat, the first time you run bitcoin-qt or bitcoind the wallet will be rewritten, Bitcoin will&lt;br /&gt;
shut down, and you will be prompted to restart it to run with the new, properly encrypted file.&lt;br /&gt;
&lt;br /&gt;
If you had a previously encrypted wallet.dat that might have been copied or stolen (for example, you backed it up to a public&lt;br /&gt;
location) you should send all of your bitcoins to yourself using a new bitcoin address and stop using any previously generated addresses.&lt;br /&gt;
&lt;br /&gt;
Wallets encrypted with this version of Bitcoin are written properly.&lt;br /&gt;
&lt;br /&gt;
Technical note: the encrypted wallet&#039;s &#039;keypool&#039; will be regenerated the first time you request a new bitcoin address; to be certain that the&lt;br /&gt;
new private keys are properly backed up you should:&lt;br /&gt;
&lt;br /&gt;
1. Run Bitcoin and let it rewrite the wallet.dat file&lt;br /&gt;
&lt;br /&gt;
2. Run it again, then ask it for a new bitcoin address.&lt;br /&gt;
Bitcoin-Qt: Address Book, then New Address...&lt;br /&gt;
bitcoind: run the &#039;walletpassphrase&#039; RPC command to unlock the wallet,  then run the &#039;getnewaddress&#039; RPC command.&lt;br /&gt;
&lt;br /&gt;
3. If your encrypted wallet.dat may have been copied or stolen, send all of your bitcoins to the new bitcoin address.&lt;br /&gt;
&lt;br /&gt;
4. Shut down Bitcoin, then back up the wallet.dat file.&lt;br /&gt;
IMPORTANT: be sure to request a new bitcoin address before backing up, so that the &#039;keypool&#039; is regenerated and backed up.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Security in depth&amp;quot; is always a good idea, so choosing a secure location for the backup and/or encrypting the backup before uploading it is recommended. And as in previous releases, if your machine is infected by malware there are several ways an attacker might steal your bitcoins.&lt;br /&gt;
&lt;br /&gt;
Thanks to Alan Reiner (etotheipi) for finding and reporting this bug.&lt;br /&gt;
&lt;br /&gt;
MAJOR GUI CHANGES&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Splash&amp;quot; graphics at startup that show address/wallet/blockchain loading progress.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Synchronizing with network&amp;quot; progress bar to show the block-chain download progress.&lt;br /&gt;
&lt;br /&gt;
Icons at the bottom of the window show how well connected you are to the network, with tooltips to display details.&lt;br /&gt;
&lt;br /&gt;
Drag and drop support for bitcoin: URIs on web pages.&lt;br /&gt;
&lt;br /&gt;
Export transactions as a .csv file.&lt;br /&gt;
&lt;br /&gt;
Many other GUI improvements, large and small.&lt;br /&gt;
&lt;br /&gt;
RPC CHANGES&lt;br /&gt;
&lt;br /&gt;
getmemorypool : new RPC command, provides everything needed to construct a block with a custom generation transaction and submit a solution&lt;br /&gt;
&lt;br /&gt;
listsinceblock : new RPC command, list transactions since the given block&lt;br /&gt;
&lt;br /&gt;
signmessage/verifymessage : new RPC commands to sign a message with one of your private keys or verify that a message is signed by the private key is associated with a bitcoin address.&lt;br /&gt;
&lt;br /&gt;
GENERAL CHANGES&lt;br /&gt;
&lt;br /&gt;
Faster initial block download.&lt;br /&gt;
&lt;br /&gt;
==0.4.X==&lt;br /&gt;
After 0.4.0, all subsequent releases are stable maintenance releases, 0.5.0 is based on 0.4.0.&lt;br /&gt;
&lt;br /&gt;
===0.4.6&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=79651 0.4.6/0.5.5 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
bitcoind version 0.4.6 is now available for download at:&lt;br /&gt;
Windows: installer | zip (sig)&lt;br /&gt;
Source: tar.gz&lt;br /&gt;
bitcoind and Bitcoin-Qt version 0.6.0.7 are also tagged in git, but it is recommended to upgrade to 0.6.1.&lt;br /&gt;
&lt;br /&gt;
These are bugfix-only releases.&lt;br /&gt;
&lt;br /&gt;
Please report bugs by replying to this forum thread. Note that the 0.4.x wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr.&lt;br /&gt;
&lt;br /&gt;
BUG FIXES&lt;br /&gt;
&lt;br /&gt;
Version 0.6.0 allowed importing invalid &amp;quot;private keys&amp;quot;, which would be unspendable; 0.6.0.7 will now verify the private key is valid, and refuse to import an invalid one&lt;br /&gt;
Verify the status of encrypt/decrypt calls to detect failed padding&lt;br /&gt;
Check blocks for duplicate transactions earlier. Fixes #1167&lt;br /&gt;
Upgrade Windows builds to OpenSSL 1.0.1b&lt;br /&gt;
Set label when selecting an address that already has a label. Fixes #1080 (Bitcoin-Qt)&lt;br /&gt;
JSON-RPC listtransactions&#039;s from/count handling is now fixed&lt;br /&gt;
Optimize and fix multithreaded access, when checking whether we already know about transactions&lt;br /&gt;
Fix potential networking deadlock&lt;br /&gt;
Proper support for Growl 1.3 notifications&lt;br /&gt;
Display an error, rather than crashing, if encoding a QR Code failed (0.6.0.7)&lt;br /&gt;
Don&#039;t erroneously set &amp;quot;Display addresses&amp;quot; for users who haven&#039;t explicitly enabled it (Bitcoin-Qt)&lt;br /&gt;
Some non-ASCII input in JSON-RPC expecting hexadecimal may have been misinterpreted rather than rejected&lt;br /&gt;
Missing error condition checking added&lt;br /&gt;
Do not show a green tick unless all known blocks are downloaded. Fixes #921 (Bitcoin-Qt)&lt;br /&gt;
Increase time ago of the last block for &amp;quot;up to date&amp;quot; status from 30 to 90 minutes&lt;br /&gt;
Show a message box when a runaway exception happens (Bitcoin-Qt)&lt;br /&gt;
Use a messagebox to display the error when -server is provided without providing a rpc password&lt;br /&gt;
Show error message instead of exception crash when unable to bind RPC port (Bitcoin-Qt)&lt;br /&gt;
Correct sign message bitcoin address tooltip. Fixes #1050 (Bitcoin-Qt)&lt;br /&gt;
Removed &amp;quot;(no label)&amp;quot; from QR Code dialog titlebar if we have no label (0.6.0.7)&lt;br /&gt;
Removed an ugly line break in tooltip for mature transactions (0.6.0.7)&lt;br /&gt;
Add missing tooltip and key shortcut in settings dialog (part of #1088) (Bitcoin-Qt)&lt;br /&gt;
Work around an issue in boost::program_options that prevents from compiling in clang&lt;br /&gt;
Fixed bugs occurring only on platforms with unsigned characters (such as ARM).&lt;br /&gt;
Rename make_windows_icon.py to .sh as it is a shell script. Fixes #1099 (Bitcoin-Qt)&lt;br /&gt;
Various trivial internal corrections to types used for counting/size loops and warnings&lt;br /&gt;
&lt;br /&gt;
===0.4.5===&lt;br /&gt;
(No known forum post.)&lt;br /&gt;
&lt;br /&gt;
===0.4.4&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=70566.0 0.4.4 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.4.4 is now available for download at:&lt;br /&gt;
http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.4/&lt;br /&gt;
&lt;br /&gt;
This is a bugfix-only release based on 0.4.0.&lt;br /&gt;
&lt;br /&gt;
Please note that the wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr.&lt;br /&gt;
&lt;br /&gt;
Please report bugs for the daemon only using the issue tracker at GitHub:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
Stable source code is hosted at Gitorious:&lt;br /&gt;
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.4.4#.tar.gz&lt;br /&gt;
&lt;br /&gt;
BUG FIXES&lt;br /&gt;
&lt;br /&gt;
Limit the number of orphan transactions stored in memory, to prevent a potential denial-of-service attack by flooding orphan transactions. Also never store invalid transactions at all.&lt;br /&gt;
Fix possible buffer overflow on systems with very long application data paths. This is not exploitable.&lt;br /&gt;
Resolved multiple bugs preventing long-term unlocking of encrypted wallets (issue #922).&lt;br /&gt;
Only send local IP in &amp;quot;version&amp;quot; messages if it is globally routable (ie, not private), and try to get such an IP from UPnP if applicable.&lt;br /&gt;
Reannounce UPnP port forwards every 20 minutes, to workaround routers expiring old entries, and allow the -upnp option to override any stored setting.&lt;br /&gt;
Various memory leaks and potential null pointer deferences have been&lt;br /&gt;
fixed.&lt;br /&gt;
Several shutdown issues have been fixed.&lt;br /&gt;
Check that keys stored in the wallet are valid at startup, and if not,&lt;br /&gt;
report corruption.&lt;br /&gt;
Various build fixes.&lt;br /&gt;
If no password is specified to bitcoind, recommend a secure password.&lt;br /&gt;
Update hard-coded fallback seed nodes, choosing recent ones with long uptime and versions at least 0.4.0.&lt;br /&gt;
Add checkpoint at block 168,000.&lt;br /&gt;
&lt;br /&gt;
===0.4.3&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=57734.0 0.4.3 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
bitcoind version 0.4.3 is now available for download at:&lt;br /&gt;
http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.3/ (until Gavin uploads to SourceForge)&lt;br /&gt;
&lt;br /&gt;
This is a bugfix-only release based on 0.4.0.&lt;br /&gt;
&lt;br /&gt;
Please note that the wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr.&lt;br /&gt;
&lt;br /&gt;
Please report bugs for the daemon only using the issue tracker at GitHub:&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
Stable source code is hosted at Gitorious:&lt;br /&gt;
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.4.3#.tar.gz&lt;br /&gt;
&lt;br /&gt;
BUG FIXES&lt;br /&gt;
&lt;br /&gt;
Cease locking memory used by non-sensitive information (this caused a huge performance hit on some platforms, especially noticeable during initial blockchain download).&lt;br /&gt;
Fixed some address-handling deadlocks (client freezes).&lt;br /&gt;
No longer accept inbound connections over the internet when Bitcoin is being used with Tor (identity leak).&lt;br /&gt;
Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed).&lt;br /&gt;
Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr).&lt;br /&gt;
&lt;br /&gt;
===0.4.2===&lt;br /&gt;
(No known forum post.)&lt;br /&gt;
&lt;br /&gt;
===0.4.1&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=52503.0 0.4.1 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.4.1 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.1/&lt;br /&gt;
&lt;br /&gt;
This is a bugfix only release based on 0.4.0.&lt;br /&gt;
&lt;br /&gt;
Please report bugs by replying to this forum thread.&lt;br /&gt;
&lt;br /&gt;
MAJOR BUG FIX  (CVE-2011-4447)&lt;br /&gt;
&lt;br /&gt;
The wallet encryption feature introduced in Bitcoin version 0.4.0 did not sufficiently secure the private keys. An attacker who&lt;br /&gt;
managed to get a copy of your encrypted wallet.dat file might be able to recover some or all of the unencrypted keys and steal the&lt;br /&gt;
associated coins.&lt;br /&gt;
&lt;br /&gt;
If you have a previously encrypted wallet.dat, the first time you run wxbitcoin or bitcoind the wallet will be rewritten, Bitcoin will&lt;br /&gt;
shut down, and you will be prompted to restart it to run with the new, properly encrypted file.&lt;br /&gt;
&lt;br /&gt;
If you had a previously encrypted wallet.dat that might have been copied or stolen (for example, you backed it up to a public&lt;br /&gt;
location) you should send all of your bitcoins to yourself using a new bitcoin address and stop using any previously generated addresses.&lt;br /&gt;
&lt;br /&gt;
Wallets encrypted with this version of Bitcoin are written properly.&lt;br /&gt;
&lt;br /&gt;
Technical note: the encrypted wallet&#039;s &#039;keypool&#039; will be regenerated the first time you request a new bitcoin address; to be certain that the&lt;br /&gt;
new private keys are properly backed up you should:&lt;br /&gt;
&lt;br /&gt;
1. Run Bitcoin and let it rewrite the wallet.dat file&lt;br /&gt;
&lt;br /&gt;
2. Run it again, then ask it for a new bitcoin address.&lt;br /&gt;
wxBitcoin: new address visible on main window&lt;br /&gt;
bitcoind: run the &#039;walletpassphrase&#039; RPC command to unlock the wallet,  then run the &#039;getnewaddress&#039; RPC command.&lt;br /&gt;
&lt;br /&gt;
3. If your encrypted wallet.dat may have been copied or stolen, send all of your bitcoins to the new bitcoin address.&lt;br /&gt;
&lt;br /&gt;
4. Shut down Bitcoin, then backup the wallet.dat file.&lt;br /&gt;
IMPORTANT: be sure to request a new bitcoin address before backing up, so that the &#039;keypool&#039; is regenerated and backed up.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Security in depth&amp;quot; is always a good idea, so choosing a secure location for the backup and/or encrypting the backup before uploading it is recommended. And as in previous releases, if your machine is infected by malware there are several ways an attacker might steal your bitcoins.&lt;br /&gt;
&lt;br /&gt;
Thanks to Alan Reiner (etotheipi) for finding and reporting this bug.&lt;br /&gt;
&lt;br /&gt;
===0.4.0&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=45410.0 0.4 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin version 0.4.0 is now available for download at:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.0/&lt;br /&gt;
&lt;br /&gt;
The main feature in this release is wallet private key encryption;&lt;br /&gt;
you can set a passphrase that must be entered before sending coins.&lt;br /&gt;
See below for more information; if you decide to encrypt your wallet,&lt;br /&gt;
WRITE DOWN YOUR PASSPHRASE AND PUT IT IN A SECURE LOCATION. If you&lt;br /&gt;
forget or lose your wallet passphrase, you lose your bitcoins.&lt;br /&gt;
Previous versions of bitcoin are unable to read encrypted wallets,&lt;br /&gt;
and will crash on startup if the wallet is encrypted.&lt;br /&gt;
&lt;br /&gt;
Also note: bitcoin version 0.4 uses a newer version of Berkeley DB&lt;br /&gt;
(bdb version 4.8) than previous versions (bdb 4.7). If you upgrade&lt;br /&gt;
to version 0.4 and then revert back to an earlier version of bitcoin&lt;br /&gt;
the it may be unable to start because bdb 4.7 cannot read bdb 4.8&lt;br /&gt;
&amp;quot;log&amp;quot; files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notable bug fixes from version 0.3.24:&lt;br /&gt;
&lt;br /&gt;
Fix several bitcoin-becomes-unresponsive bugs due to multithreading&lt;br /&gt;
deadlocks.&lt;br /&gt;
&lt;br /&gt;
Optimize database writes for large (lots of inputs) transactions&lt;br /&gt;
(fixes a potential denial-of-service attack)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wallet Encryption&lt;br /&gt;
&lt;br /&gt;
Bitcoin supports native wallet encryption so that people who steal your&lt;br /&gt;
wallet file don&#039;t automatically get access to all of your Bitcoins.&lt;br /&gt;
In order to enable this feature, choose &amp;quot;Encrypt Wallet&amp;quot; from the&lt;br /&gt;
Options menu.  You will be prompted to enter a passphrase, which&lt;br /&gt;
will be used as the key to encrypt your wallet and will be needed&lt;br /&gt;
every time you wish to send Bitcoins.  If you lose this passphrase,&lt;br /&gt;
you will lose access to spend all of the bitcoins in your wallet,&lt;br /&gt;
no one, not even the Bitcoin developers can recover your Bitcoins.&lt;br /&gt;
This means you are responsible for your own security, store your&lt;br /&gt;
passphrase in a secure location and do not forget it.&lt;br /&gt;
&lt;br /&gt;
Remember that the encryption built into bitcoin only encrypts the&lt;br /&gt;
actual keys which are required to send your bitcoins, not the full&lt;br /&gt;
wallet.  This means that someone who steals your wallet file will&lt;br /&gt;
be able to see all the addresses which belong to you, as well as the&lt;br /&gt;
relevant transactions, you are only protected from someone spending&lt;br /&gt;
your coins.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you backup your wallet file before you&lt;br /&gt;
encrypt your wallet.  To do this, close the Bitcoin client and&lt;br /&gt;
copy the wallet.dat file from ~/.bitcoin/ on Linux, /Users/(user&lt;br /&gt;
name)/Application Support/Bitcoin/ on Mac OSX, and %APPDATA%/Bitcoin/&lt;br /&gt;
on Windows (that is /Users/(user name)/AppData/Roaming/Bitcoin on&lt;br /&gt;
Windows Vista and 7 and /Documents and Settings/(user name)/Application&lt;br /&gt;
Data/Bitcoin on Windows XP).  Once you have copied that file to a&lt;br /&gt;
safe location, reopen the Bitcoin client and Encrypt your wallet.&lt;br /&gt;
If everything goes fine, delete the backup and enjoy your encrypted&lt;br /&gt;
wallet.  Note that once you encrypt your wallet, you will never be&lt;br /&gt;
able to go back to a version of the Bitcoin client older than 0.4.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that you are always responsible for your own security.&lt;br /&gt;
All it takes is a slightly more advanced wallet-stealing trojan which&lt;br /&gt;
installs a keylogger to steal your wallet passphrase as you enter it&lt;br /&gt;
in addition to your wallet file and you have lost all your Bitcoins.&lt;br /&gt;
Wallet encryption cannot keep you safe if you do not practice&lt;br /&gt;
good security, such as running up-to-date antivirus software, only&lt;br /&gt;
entering your wallet passphrase in the Bitcoin client and using the&lt;br /&gt;
same passphrase only as your wallet passphrase.&lt;br /&gt;
&lt;br /&gt;
See the doc/README file in the bitcoin source for technical details&lt;br /&gt;
of wallet encryption.&lt;br /&gt;
&lt;br /&gt;
==0.3.X==&lt;br /&gt;
&lt;br /&gt;
===0.3.24&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=27187.0 0.3.24 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Bitcoin v0.3.24 is now available for download at&lt;br /&gt;
https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.24/&lt;br /&gt;
&lt;br /&gt;
This is another bug fix release.  We had hoped to have wallet encryption ready for release, but more urgent fixes for existing clients were needed -- most notably block download problems were getting severe.  Wallet encryption is ready for testing at https://github.com/bitcoin/bitcoin/pull/352 for the git-savvy, and hopefully will follow shortly in the next release, v0.4.&lt;br /&gt;
&lt;br /&gt;
Notable fixes in v0.3.24, and the main reasons for this release:&lt;br /&gt;
&lt;br /&gt;
F1) Block downloads were failing or taking unreasonable amounts of time to complete, because the increased size of the block chain was bumping up against some earlier buffer-size DoS limits.&lt;br /&gt;
&lt;br /&gt;
F2) Fix crash caused by loss/lack of network connection.&lt;br /&gt;
&lt;br /&gt;
Notable changes in v0.3.24:&lt;br /&gt;
&lt;br /&gt;
C1) DNS seeding enabled by default.&lt;br /&gt;
&lt;br /&gt;
C2) UPNP enabled by default in the GUI client.  The percentage of bitcoin clients that accept incoming connections is quite small, and that is a problem.  This should help.  bitcoind, and unofficial builds, are unchanged (though we encourage use of &amp;quot;-upnp&amp;quot; to help the network!)&lt;br /&gt;
&lt;br /&gt;
C3) Initial unit testing framework.  Bitcoin sorely needs automated tests, and this is a beginning.  Contributions welcome.&lt;br /&gt;
&lt;br /&gt;
C4) Internal wallet code cleanup.  While invisible to an end user, this change provides the basis for v0.4&#039;s wallet encryption.&lt;br /&gt;
&lt;br /&gt;
===0.3.23&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=16553.0 0.3.23 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Win32, Linux, MacOSX and source releases for bitcoin v0.3.23 have been uploaded to&lt;br /&gt;
https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/&lt;br /&gt;
&lt;br /&gt;
This is another quick bugfix release, trying to deal with the influx of new bitcoin users.&lt;br /&gt;
&lt;br /&gt;
Main items of note:&lt;br /&gt;
&lt;br /&gt;
* P2P connect-to-node logic changed to reduce timeout a bit.  The network saw a huge influx of new users, who do not permit incoming connections.  This change is a short-term hack, to more quickly hunt for useful P2P connections.  Better &amp;quot;leaf node&amp;quot; logic is in the works, but this should let us limp along until then.  One may use -upnp to properly forward ports, and help the network.&lt;br /&gt;
* Transaction fee reduced to 0.0005 for new transactions&lt;br /&gt;
* Client will relay transactions with fees as low as 0.0001 BTC&lt;br /&gt;
&lt;br /&gt;
===0.3.22&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=12269.0 0.3.22 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Download URL: https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.22/&lt;br /&gt;
&lt;br /&gt;
This is largely a bugfix and TX fee schedule release.  We also hope to make 0.3.23 a quick release, to fix problems that the network has seen due to explosive growth in the past week.&lt;br /&gt;
&lt;br /&gt;
Notable changes:&lt;br /&gt;
* Client will accept and relay TX&#039;s with 0.0005 BTC fee schedule (users still pay 0.01 BTC per kb, until next version)&lt;br /&gt;
* Non-standard transactions accepted on testnet&lt;br /&gt;
* Source code tree reorganized (prep for autotools build)&lt;br /&gt;
* Remove &amp;quot;Generate Coins&amp;quot; option from GUI, and remove 4way SSE miner.  Internal reference CPU miner remains available, but users are directed to external miners for best hash production.&lt;br /&gt;
* IRC is overflowing.  Client now bootstraps to channels #bitcoin00 - #bitcoin99&lt;br /&gt;
* DNS names now may be used with -addnode, -connect (requires -dns to enable)&lt;br /&gt;
&lt;br /&gt;
RPC changes:&lt;br /&gt;
* &#039;listtransactions&#039; adds &#039;from&#039; param, for range queries&lt;br /&gt;
* &#039;move&#039; may take account balances negative&lt;br /&gt;
* &#039;settxfee&#039; added, to manually set TX fee&lt;br /&gt;
&lt;br /&gt;
===0.3.21&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=6642.0 0.3.21 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Binaries for Bitcoin version 0.3.21 are available at:&lt;br /&gt;
  https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.21/&lt;br /&gt;
&lt;br /&gt;
Changes and new features from the 0.3.20 release include:&lt;br /&gt;
&lt;br /&gt;
* Universal Plug and Play support.  Enable automatic opening of a port for incoming connections by running bitcoin or bitcoind with the - -upnp=1 command line switch or using the Options dialog box.&lt;br /&gt;
&lt;br /&gt;
* Support for full-precision bitcoin amounts.  You can now send, and bitcoin will display, bitcoin amounts smaller than 0.01.  However, sending fewer than 0.01 bitcoins still requires a 0.01 bitcoin fee (so you can send 1.0001 bitcoins without a fee, but you will be asked to pay a fee if you try to send 0.0001).&lt;br /&gt;
&lt;br /&gt;
* A new method of finding bitcoin nodes to connect with, via DNS A records. Use the -dnsseed option to enable.&lt;br /&gt;
&lt;br /&gt;
For developers, changes to bitcoin&#039;s remote-procedure-call API:&lt;br /&gt;
&lt;br /&gt;
* New rpc command &amp;quot;sendmany&amp;quot; to send bitcoins to more than one address in a single transaction.&lt;br /&gt;
&lt;br /&gt;
* Several bug fixes, including a serious intermittent bug that would sometimes cause bitcoind to stop accepting rpc requests. &lt;br /&gt;
&lt;br /&gt;
* -logtimestamps option, to add a timestamp to each line in debug.log.&lt;br /&gt;
&lt;br /&gt;
* Immature blocks (newly generated, under 120 confirmations) are now shown in listtransactions.&lt;br /&gt;
&lt;br /&gt;
===0.3.20.2&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=4167.0 0.3.20.2 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
The maxsendbuffer bug (0.3.20.1 clients not being able to download the block chain from other 0.3.20.1 clients) was only going to get&lt;br /&gt;
worse as people upgraded, so I cherry-picked the bug fix and created a minor release yesterday.&lt;br /&gt;
&lt;br /&gt;
The Amazon Machine Images I used to do the builds are available:&lt;br /&gt;
&lt;br /&gt;
  ami-38a05251   Bitcoin-v0.3.20.2 Mingw    (Windows; Administrator password &#039;bitcoin development&#039;)&lt;br /&gt;
  ami-30a05259   Bitcoin_0.3.20.2 Linux32&lt;br /&gt;
  ami-8abc4ee3   Bitcoin_0.3.20.2 Linux64&lt;br /&gt;
&lt;br /&gt;
(mac build will be done soon)&lt;br /&gt;
&lt;br /&gt;
If you have already downloaded version 0.3.20.1, please either add this to your bitcoin.conf file:&lt;br /&gt;
&lt;br /&gt;
  maxsendbuffer=10000&lt;br /&gt;
  maxreceivebuffer=10000&lt;br /&gt;
&lt;br /&gt;
... or download the new version.&lt;br /&gt;
&lt;br /&gt;
===0.3.20.1===&lt;br /&gt;
(No known forum post.)&lt;br /&gt;
&lt;br /&gt;
===0.3.20&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=2953.0 0.3.20 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
Please checkout the git integration branch from:&lt;br /&gt;
&lt;br /&gt;
https://github.com/bitcoin/bitcoin&lt;br /&gt;
&lt;br /&gt;
... and help test.  The new features that need testing are:&lt;br /&gt;
&lt;br /&gt;
* -nolisten : https://github.com/bitcoin/bitcoin/pull/11&lt;br /&gt;
* -rescan : scan block chain for missing wallet transactions&lt;br /&gt;
* -printtoconsole : https://github.com/bitcoin/bitcoin/pull/37&lt;br /&gt;
* RPC gettransaction details : https://github.com/bitcoin/bitcoin/pull/24&lt;br /&gt;
* listtransactions new features : https://github.com/bitcoin/bitcoin/pull/10&lt;br /&gt;
&lt;br /&gt;
Bug fixes that also need testing:&lt;br /&gt;
&lt;br /&gt;
* -maxconnections= : https://github.com/bitcoin/bitcoin/pull/42&lt;br /&gt;
* RPC listaccounts minconf : https://github.com/bitcoin/bitcoin/pull/27&lt;br /&gt;
* RPC move, add time to output : https://github.com/bitcoin/bitcoin/pull/21&lt;br /&gt;
* ...and several improvements to --help output.&lt;br /&gt;
&lt;br /&gt;
This needs more testing on Windows!  Please drop me a quick private message, email, or IRC message if you are able to do some testing.  If you find bugs, please open an issue at:&lt;br /&gt;
&lt;br /&gt;
https://github.com/bitcoin/bitcoin/issues&lt;br /&gt;
&lt;br /&gt;
===0.3.19&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=2228.0 0.3.19 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
There&#039;s more work to do on DoS, but I&#039;m doing a quick build of what I have so far in case it&#039;s needed, before venturing into more complex ideas.  The build for this is version 0.3.19.&lt;br /&gt;
&lt;br /&gt;
- Added some DoS controls&lt;br /&gt;
As Gavin and I have said clearly before, the software is not at all resistant to DoS attack.  This is one improvement, but there are still more ways to attack than I can count.  &lt;br /&gt;
&lt;br /&gt;
I&#039;m leaving the -limitfreerelay part as a switch for now and it&#039;s there if you need it.&lt;br /&gt;
&lt;br /&gt;
- Removed &amp;quot;safe mode&amp;quot; alerts&lt;br /&gt;
&amp;quot;safe mode&amp;quot; alerts was a temporary measure after the 0.3.9 overflow bug.  We can say all we want that users can just run with &amp;quot;-disablesafemode&amp;quot;, but it&#039;s better just not to have it for the sake of appearances.  It was never intended as a long term feature.  Safe mode can still be triggered by seeing a longer (greater total PoW) invalid block chain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===0.3.18&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=2162.0 0.3.18 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Fixed a wallet.dat compatibility problem if you downgraded from 0.3.17 and then upgraded again&lt;br /&gt;
* IsStandard() check to only include known transaction types in blocks&lt;br /&gt;
* Jgarzik&#039;s optimisation to speed up the initial block download a little&lt;br /&gt;
&lt;br /&gt;
The main addition in this release is the Accounts-Based JSON-RPC commands that Gavin&#039;s been working on (more details at https://bitcointalk.org/index.php?topic=1886.0).  &lt;br /&gt;
* getaccountaddress&lt;br /&gt;
* sendfrom&lt;br /&gt;
* move&lt;br /&gt;
* getbalance&lt;br /&gt;
* listtransactions&lt;br /&gt;
&lt;br /&gt;
===0.3.17&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=1946.0 0.3.17 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Version 0.3.17 is now available.&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* new getwork, thanks m0mchil&lt;br /&gt;
* added transaction fee setting in UI options menu&lt;br /&gt;
* free transaction limits&lt;br /&gt;
* sendtoaddress returns transaction id instead of &amp;quot;sent&amp;quot;&lt;br /&gt;
* getaccountaddress &amp;lt;account&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The UI transaction fee setting was easy since it was still there from 0.1.5 and all I had to do was re-enable it.&lt;br /&gt;
&lt;br /&gt;
The accounts-based commands: move, sendfrom and getbalance &amp;lt;account&amp;gt; will be in the next release.  We still have some more changes to make first.&lt;br /&gt;
&lt;br /&gt;
===0.3.16===&lt;br /&gt;
&lt;br /&gt;
Never released.&lt;br /&gt;
&lt;br /&gt;
===0.3.15&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=1780.0 0.3.15 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* paytxfee switch is now per KB, so it adds the correct fee for large transactions&lt;br /&gt;
* sending avoids using coins with less than 6 confirmations if it can&lt;br /&gt;
* BitcoinMiner processes transactions in priority order based on age of dependencies&lt;br /&gt;
* make sure generation doesn&#039;t start before block 74000 downloaded&lt;br /&gt;
* bugfixes by Dean Gores&lt;br /&gt;
* testnet, keypoololdest and paytxfee added to getinfo&lt;br /&gt;
&lt;br /&gt;
===0.3.14&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=1528.0 0.3.14 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Version 0.3.14 is now available&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.14/&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Key pool feature for safer wallet backup&lt;br /&gt;
Gavin Andresen:&lt;br /&gt;
* TEST network mode with switch -testnet&lt;br /&gt;
* Option to use SSL for JSON-RPC connections on unix/osx&lt;br /&gt;
* validateaddress RPC command&lt;br /&gt;
eurekafag:&lt;br /&gt;
* Russian translation&lt;br /&gt;
&lt;br /&gt;
===0.3.13&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=1327.0 0.3.13 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Version 0.3.13 is now available.  You should upgrade to prevent potential problems with 0/unconfirmed transactions.  Note: 0.3.13 prevents problems if you haven&#039;t already spent a 0/unconfirmed transaction, but if that already happened, you need 0.3.13.2.&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Don&#039;t count or spend payments until they have 1 confirmation.&lt;br /&gt;
* Internal version number from 312 to 31300.&lt;br /&gt;
* Only accept transactions sent by IP address if -allowreceivebyip is specified.&lt;br /&gt;
* Dropped DB_PRIVATE Berkeley DB flag.&lt;br /&gt;
* Fix problem sending the last cent with sub-cent fractional change.&lt;br /&gt;
* Auto-detect whether to use 128-bit 4-way SSE2 on Linux.&lt;br /&gt;
Gavin Andresen:&lt;br /&gt;
* Option -rpcallowip= to accept json-rpc connections from another machine.&lt;br /&gt;
* Clean shutdown on SIGTERM on Linux.&lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.13/&lt;br /&gt;
&lt;br /&gt;
(Thanks Laszlo for the Mac OSX build!)&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The SSE2 auto-detect in the Linux 64-bit version doesn&#039;t work with AMD in 64-bit mode.  Please try this instead and let me know if it gets it right:&lt;br /&gt;
http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz&lt;br /&gt;
&lt;br /&gt;
You can still control the SSE2 use manually with -4way and -4way=0.&lt;br /&gt;
&lt;br /&gt;
Version 0.3.13.2 (SVN rev 161) has improvements for the case where you already had 0/unconfirmed transactions that you might have already spent.  Here&#039;s a Windows build of it:&lt;br /&gt;
http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe&lt;br /&gt;
&lt;br /&gt;
===0.3.12&amp;lt;ref&amp;gt;[https://bitcointalk.org/index.php?topic=999.0 0.3.12 release announcement]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Version 0.3.12 is now available.&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
* json-rpc errors return a more standard error object. (thanks to Gavin Andresen)&lt;br /&gt;
* json-rpc command line returns exit codes.&lt;br /&gt;
* json-rpc &amp;quot;backupwallet&amp;quot; command.&lt;br /&gt;
* Recovers and continues if an exception is caused by a message you received.  Other nodes shouldn&#039;t be able to cause an exception, and it hasn&#039;t happened before, but if a way is found to cause an exception, this would keep it from being used to stop network nodes.&lt;br /&gt;
&lt;br /&gt;
If you have json-rpc code that checks the contents of the error string, you need to change it to expect error objects of the form {&amp;quot;code&amp;quot;:&amp;lt;number&amp;gt;,&amp;quot;message&amp;quot;:&amp;lt;string&amp;gt;}, which is the standard.  See this thread:&lt;br /&gt;
https://bitcointalk.org/index.php?topic=969.0&lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.12/&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Enabling_SSL_on_original_client_daemon&amp;diff=69454</id>
		<title>Enabling SSL on original client daemon</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Enabling_SSL_on_original_client_daemon&amp;diff=69454"/>
		<updated>2022-09-26T07:51:49Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling, grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
SSL for RPC in Bitcoin Core client, was &#039;&#039;&#039;removed and is no longer available&#039;&#039;&#039; (as of 2019.03) apparently in commit 40b556d374 .&lt;br /&gt;
&lt;br /&gt;
Even before its removal, it was criticized for some time.&lt;br /&gt;
&lt;br /&gt;
=== Historical comments ===&lt;br /&gt;
&lt;br /&gt;
(this no longer applies as RPC SSL was removed).&lt;br /&gt;
&lt;br /&gt;
JSON-RPC over [https://en.wikipedia.org/wiki/Secure_Sockets_Layer SSL] is strongly discouraged&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The RPC interface isn&#039;t designed to be used in any scenario which would require SSL, which would be accessed over the internet or other untrusted networks. It doesn&#039;t have the necessary denial of service protections or review to make it safe for use this way, and so letting potentially malicious clients connect to it would be incredibly unwise. If you need to talk to a remote bitcoind instance you are better off tunneling with SSH or stunnel which will provide a secure, authenticated path without exposing the socket any further than localhost.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-[https://bitcoin.stackexchange.com/questions/39117/why-is-json-rpc-over-ssl-strongly-discouraged Bitcoin(StackExchange, August 17th, 2015)]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Bitcoin_Core&amp;diff=69453</id>
		<title>Bitcoin Core</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Bitcoin_Core&amp;diff=69453"/>
		<updated>2022-09-26T07:50:32Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Bitcoin Core&#039;&#039;&#039; (formerly &#039;&#039;&#039;Bitcoin-Qt&#039;&#039;&#039;) is the third [[Bitcoin]] [[Clients|client]], developed by [[Wladimir van der Laan]] based on the original reference code by [[Satoshi Nakamoto]].&amp;lt;ref&amp;gt;https://gavintech.blogspot.co.uk/2012/03/full-disclosure-bitcoin-qt-on-windows.html, Full disclosure: Bitcoin-Qt on Windows vulnerability, 21st October 2012&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://nvd.nist.gov/vuln/detail/CVE-2012-4682, Vulnerability Summary for CVE-2012-4682, 21st October 2012&amp;lt;/ref&amp;gt; It has been bundled with [[bitcoind]] since version 0.5. Bitcoin-Qt has been rebranded to &#039;&#039;&#039;[[Bitcoin Core]]&#039;&#039;&#039; since version 0.9.0.&amp;lt;ref name=&amp;quot;Rebranding to Bitcoin Core&amp;quot;&amp;gt;{{cite web|title=Bitcoin Core version 0.9.0 released|url=https://bitcoin.org/en/release/v0.9.0|publisher=Bitcoin.org|accessdate=19 March 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bitcoin Core can be used as a desktop client for regular payments or as a server utility for merchants and other payment services. &lt;br /&gt;
&lt;br /&gt;
===Current version===&lt;br /&gt;
Source code (and build instructions for supported platforms) can be found on the [https://github.com/bitcoin/bitcoin Bitcoin GitHub page].&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Most popular software implementation of a bitcoin [[full node]]. Provides trustless validation that all of bitcoin&#039;s consensus rules are being followed.&lt;br /&gt;
* Has an RPC interface allowing developers to interface with Core and access the bitcoin currency trustlessly.&lt;br /&gt;
* Has a GUI frontend, Bitcoin-Qt, allowing ordinary users to use bitcoin with full validation.&lt;br /&gt;
* Compatibility with Linux (both GNOME and KDE), Mac OS X and Windows&lt;br /&gt;
* All functionality of the original wxWidgets client&lt;br /&gt;
* Asks for confirmation before sending coins&lt;br /&gt;
* CSV export of transactions&lt;br /&gt;
* Clearer transaction list with status icons and real-time filtering&lt;br /&gt;
* Progress bar on initial block download&lt;br /&gt;
* Languages: Dutch, English, German, Chinese and many more. Translations are being done by volunteers on [https://www.transifex.com/projects/p/bitcoin/ Transifex].&lt;br /&gt;
* Sendmany support in UI (send to multiple recipients in one transaction)&lt;br /&gt;
* Multiple [[Units|unit]] support, can show subdivided bitcoins (mBTC, µBTC) for users that like large numbers (only decimal units)&lt;br /&gt;
* Splash screen that details progress&lt;br /&gt;
* Debug window&lt;br /&gt;
* Payment requests (BIP 70)&lt;br /&gt;
* Coin control&lt;br /&gt;
* Bitcoin Core uses OpenTimestamps.org to timestamp merge commits.&amp;lt;ref&amp;gt;{{cite web|url=https://github.com/bitcoin/bitcoin/blob/ebd786b72a2a15143d7ef4ea2229fef121bd8f12/contrib/devtools/README.md#create-and-verify-timestamps-of-merge-commits|title=Bitcoin Core devtools README - Create and verify timestamps of merge commits|date=|website=GitHub|archive-url=|archive-date=|accessdate=May 5, 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Checkpoints that have been hard coded into the client are used only to prevent Denial of Service attacks against nodes that are initially syncing the chain. For this reason, the checkpoints included are only as of several years ago.&amp;lt;ref name=&amp;quot;check&amp;quot;&amp;gt;{{cite web |url=https://github.com/bitcoin/bitcoin/blob/master/src/checkpoints.cpp |title=checkpoints.cpp |work=Repository source code |publisher=GitHub, Inc. |accessdate=13 November 2016 }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |title=bitcoin/chainparams.cpp |url=https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp |website=GitHub |accessdate=21 October 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* A network alert system was included by Satoshi Nakamoto as a way of informing users of important news regarding bitcoin.&amp;lt;ref name=&amp;quot;asr&amp;quot;&amp;gt;{{cite web |url=https://bitcoin.org/en/alert/2016-11-01-alert-retirement |title=Alert System Retirement |date=1 November 2016 |publisher=Bitcoin Project |accessdate=16 November 2016 }}&amp;lt;/ref&amp;gt; In November 2016 it was retired. It had become obsolete as news on bitcoin is now widely disseminated.&lt;br /&gt;
&lt;br /&gt;
== Naming Controversy ==&lt;br /&gt;
&lt;br /&gt;
Some people like Peter Todd, Luke-jr and Greg Maxwell warned against the renaming to Bitcoin Core because it implied a centralization.&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/60jmq2/a_proposal_for_and_demo_of_a_new_bitcoin_address/df73k2h/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://www.reddit.com/r/Bitcoin/comments/60owl3/did_you_know_that_bitcoin_core_opposed_its_own/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://bitcoinfoundation.org/forum/index.php?/topic/95-new-name-for-bitcoin-qt-bitcoind/&amp;amp;&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Bitcoin Core right now may be the most popular or &amp;quot;reference&amp;quot; [[full node]] implementation, but that status depends on the [[economic majority]] continuing to use it&amp;lt;ref&amp;gt;https://bitcoinmagazine.com/articles/a-primer-on-bitcoin-governance-or-why-developers-aren-t-in-charge-of-the-protocol-1473270427/&amp;lt;/ref&amp;gt;. Should one day come where another implementation overtakes it economically, that implementation would become the reference implementation. In one situation in 2017 significant parts of the economy moved to the BIP148 [[UASF]] implementation&amp;lt;ref&amp;gt;https://bitcoinmagazine.com/articles/long-road-segwit-how-bitcoins-biggest-protocol-upgrade-became-reality/&amp;lt;/ref&amp;gt; and then moved back to Core after BIP148 was successful. The point here is that Bitcoin Core does not control bitcoin and the naming &amp;quot;Core&amp;quot; is misleading in that respect.&lt;br /&gt;
&lt;br /&gt;
On the other hand, many people are happy with the name Bitcoin Core and continue to use it. As long as it&#039;s emphasized that Bitcoin Core is just one possible software implementation of bitcoin that people are free to use or not use.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
The original creator of the bitcoin client has described their approach to the software&#039;s authorship as it being written first to prove to themselves that the concept of purely peer-to-peer electronic cash was valid and that a paper with solutions could be written. The lead developer is Wladimir J. van der Laan, who took over the role on 8 April 2014.&amp;lt;ref name=&amp;quot;hunt&amp;quot;/&amp;gt; [[Gavin Andresen]] was the former lead maintainer for the software client. Andresen left the role of lead developer for bitcoin to work on the strategic development of its technology.&amp;lt;ref name=&amp;quot;hunt&amp;quot;&amp;gt;Bitcoin: The Hunt of Satoshi Nakamoto, Alex Preukschat, Josep Busquet, 2015, Europe Comics, ISBN 9791032800201, page 87 [https://play.google.com/store/books/details?id=438FCwAAQBAJ]&amp;lt;/ref&amp;gt; Bitcoin Core developers have been in charge of bitcoin&#039;s development since [[Satoshi Nakamoto]] left the project.&amp;lt;ref name=&amp;quot;wtbf&amp;quot;&amp;gt;{{Cite news |url=https://www.forbes.com/sites/laurashin/2017/10/23/will-this-battle-for-the-soul-of-bitcoin-destroy-it/#62d19db23d3c |title=Will This Battle For The Soul Of Bitcoin Destroy It? |author=Laura Shin |accessdate=14 April 2018 |date=23 October 2017 |work=Forbes }}&amp;lt;/ref&amp;gt; Bitcoin Core in 2015 was central to a dispute with [[Bitcoin XT]], a competing client that sought to increase the blocksize.&amp;lt;ref name=&amp;quot;NewYorker&amp;quot;&amp;gt;{{Cite news |url=https://www.newyorker.com/business/currency/inside-the-fight-over-bitcoins-future&lt;br /&gt;
 |title=Inside the Fight Over Bitcoin’s Future |author=Maria Bustillos |accessdate=29 June 2020 |date=25 August 2015 |work=New Yorker}}&amp;lt;/ref&amp;gt; Over a dozen different companies and industry groups fund the development of Bitcoin Core.&amp;lt;ref&amp;gt;{{cite web|url=https://blog.bitmex.com/who-funds-bitcoin-development/|title=Who Funds Bitcoin Development?|date=2020-03-28|publisher=BitMex Research|access-date=2020-06-30}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=FIt7GLxxIpY Visualization of code changes during 2015]&lt;br /&gt;
&lt;br /&gt;
==Version history==&lt;br /&gt;
Bitcoin 0.1 was released on 9 January 2009 by Satoshi Nakamoto with only Windows supported. This was followed by some minor bug-fixing versions. On 16 December 2009 Bitcoin 0.2 was released. It included a Linux version for the first time and made use of multi-core processors for mining. In version 0.3.2 Nakamoto included checkpoints as a safeguard. After the release of version 0.3.9, Satoshi Nakamoto left the project and shortly after stopped communicating on online forums.&lt;br /&gt;
&lt;br /&gt;
Between 2011 and 2013 new versions of the software were released at Bitcoin.org.&amp;lt;ref name=&amp;quot;abo&amp;quot;&amp;gt;{{cite web |url=https://bitcoin.org/en/about-us#sponsorship |title=About bitcoin.org |publisher=Bitcoin Project |accessdate=14 November 2016 }}&amp;lt;/ref&amp;gt; Developers wanted to differentiate themselves as creators of software rather than advocates for bitcoin and so now maintain bitcoincore.org for just the software.&lt;br /&gt;
&lt;br /&gt;
Bitcoin-Qt version 0.5.0 was released on 1 November 2011. It introduced a front end that uses the Qt user interface toolkit.&amp;lt;ref name=&amp;quot;bqt&amp;quot;&amp;gt;{{cite web |url=https://bitcoin.org/en/release/v0.5.0 |title=Bitcoin-Qt version 0.5.0 released |date=1 November 2011 |publisher=Bitcoin Project |accessdate=13 November 2016 }}&amp;lt;/ref&amp;gt; The software previously used Berkeley DB for database management. Developers switched to LevelDB in release 0.8 in order to reduce blockchain synchronization time ([[initial block download]], beware, a misnomer). The update to this release resulted in a minor blockchain fork on the 11 March 2013. The fork was resolved shortly afterward. Seeding nodes through Internet Relay Chat was discontinued in version 0.8.2. From version 0.9.0 the software was renamed Bitcoin Core. Transaction fees were reduced again by a factor of ten as a means to encourage microtransactions. Although Bitcoin Core does not use OpenSSL for the operation of the network, the software did use OpenSSL for remote procedure calls. Version 0.9.1 was released to remove the network&#039;s vulnerability to the Heartbleed bug.&lt;br /&gt;
&lt;br /&gt;
Release 0.10 was made public on 16 February 2015. It introduced a consensus library which gave programmers easy access to the rules governing consensus on the network. In version 0.11.2 developers added a new feature which allowed transactions to be made unspendable until a specific time in the future.&amp;lt;ref name=&amp;quot;v0.11.2&amp;quot;&amp;gt;{{cite web |url=https://bitcoin.org/en/release/v0.11.2 |title=Bitcoin Core version 0.11.2 released |date=13 November 2015 |publisher=Bitcoin Project |accessdate=14 November 2016 }}&amp;lt;/ref&amp;gt; Bitcoin Core 0.12.1 was released on April 15, 2016 and enabled multiple soft forks to occur concurrently.&amp;lt;ref name=&amp;quot;0.12.1rel&amp;quot;&amp;gt;{{Cite news |url=http://www.nasdaq.com/article/bitcoin-core-0121-released-major-step-forward-for-scalability-cm607209 |title=Bitcoin Core 0.12.1 Released, Major Step Forward for Scalability |author=Kyle Torpey |accessdate=7 November 2016 |date=15 April 2016 |work=Bitcoin Magazine |publisher=NASDAQ.com }}&amp;lt;/ref&amp;gt; Around 100 contributors worked on Bitcoin Core 0.13.0 which was released on 23 August 2016.&lt;br /&gt;
&lt;br /&gt;
In July 2016, the CheckSequenceVerify soft fork was activated.&amp;lt;ref&amp;gt;Mastering Bitcoin: Programming the Open Blockchain. Quote &amp;quot;BIP-68 and BIP-112 were activated in May 2016 as a soft fork upgrade to the consensus rules.&amp;quot;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In October 2016, Bitcoin Core’s 0.13.1 release featured the &amp;quot;[[Segwit]]&amp;quot; soft fork that included a scaling improvement aiming to optimize the bitcoin block size. The patch was originally finalized in April and 35 developers were engaged to deploy it. This release featured Segregated Witness ([[SegWit]]) which aimed to place downward pressure on transaction fees as well as increase the maximum transaction capacity of the network.&amp;lt;ref name=&amp;quot;rel13.1&amp;quot;&amp;gt;{{cite web |url=https://bitcoincore.org/en/releases/0.13.1/ |title=Bitcoin Core 0.13.1 |publisher=Bitcoin Core |accessdate=25 October 2016 }}&amp;lt;/ref&amp;gt; The 0.13.1 release endured extensive testing and research leading to some delays in its release date. SegWit prevents various forms of transaction malleability.&amp;lt;ref name=&amp;quot;swb&amp;quot;&amp;gt;{{cite web|url=https://bitcoincore.org/en/2016/01/26/segwit-benefits/|title=Segregated Witness Benefits|last=|first=|date=January 26, 2016|work=Bitcoin Core|archive-url=|archive-date=|accessdate=October 20, 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In September 2018, a Bitcoin Cash developer discovered the vulnerability CVE 2018-17144 in the Bitcoin Core software that could allow an attacker to crash vulnerable Bitcoin Core nodes and exceed the 21 million coin limit.&amp;lt;ref&amp;gt;{{Cite news|url=https://bitcoincore.org/en/2018/09/20/notice/|title=CVE-2018-17144 Full Disclosure|work=Bitcoin Core|access-date=2018-09-23|language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bitcoin Improvement Proposals==&lt;br /&gt;
A [[Bitcoin Improvement Proposal]] (BIP) is a design document, typically describing a new feature for Bitcoin with a concise technical specification of the feature and the rationale for it. Bitcoin Core implements some of these design documents.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[bitcoind]]&lt;br /&gt;
* [[Full node]]&lt;br /&gt;
* [[Bitcoin Knots]]&lt;br /&gt;
* [[QBitcoin]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [https://bitcoin.org/en/download Download link at bitcoin.org]&lt;br /&gt;
* [https://bitcoin.org/en/version-history Version history]&lt;br /&gt;
* [https://bitcoincore.org/ Bitcoin Core website]&lt;br /&gt;
* [https://bitcointalk.org/index.php?topic=15276.0 Forum thread] (includes screenshots)&lt;br /&gt;
* [https://github.com/bitcoin/bitcoin Current GitHub repository shared with bitcoind]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[es:Bitcoin-Qt]]&lt;br /&gt;
&lt;br /&gt;
[[Category:User Interfaces]]&lt;br /&gt;
[[Category:Frontends]]&lt;br /&gt;
[[Category:Free Software]]&lt;br /&gt;
[[Category:Open Source]]&lt;br /&gt;
&lt;br /&gt;
{{Bitcoin Core documentation}}&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Contingency_plans&amp;diff=69452</id>
		<title>Contingency plans</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Contingency_plans&amp;diff=69452"/>
		<updated>2022-09-26T07:44:18Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling, grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to create plans for the first few days after a catastrophic failure of the network in order to save time should any such failure actually occur.&lt;br /&gt;
&lt;br /&gt;
Only failures that would not allow much time for discussion will be covered here. &#039;&#039;Preventing&#039;&#039; future problems will not be discussed.&lt;br /&gt;
&lt;br /&gt;
Once the plans themselves are well-accepted, code implementing the plans can be written and tested in case the code is ever required.&lt;br /&gt;
&lt;br /&gt;
==Getting the word out==&lt;br /&gt;
&lt;br /&gt;
===Alerts===&lt;br /&gt;
These people have [[alerts|alert keys]] and should be contacted ASAP in case of emergencies:&lt;br /&gt;
* Satoshi&lt;br /&gt;
* Gavin&lt;br /&gt;
* theymos&lt;br /&gt;
Email Satoshi, even though he is believed to be gone. A serious issue may &amp;quot;bring him out of retirement&amp;quot;, which would be helpful.&lt;br /&gt;
&lt;br /&gt;
Because alerts are known to be very secure, all information related to an emergency should be sent with alerts. For example, hashes of new releases should be included in alerts.&lt;br /&gt;
&lt;br /&gt;
The most important part of alert messages should be put at the front since the remaining text might get cut off. A good way to begin would be: &amp;quot;EMERGENCY: DO NOT ACCEPT OR SEND PAYMENTS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Pools===&lt;br /&gt;
The owners of all pools must be contacted, as changes will be required of them.&lt;br /&gt;
&lt;br /&gt;
===IRC===&lt;br /&gt;
The relevant [[IRC_channels]] should have their topics updated to spread info about the emergency.&lt;br /&gt;
&lt;br /&gt;
===Forum===&lt;br /&gt;
A topic should be posted in &amp;quot;development and technical discussion&amp;quot;, and a sticky locked topic pointing to the main topic should be created in all other sections. The main topic should not be sticky, as this makes it more difficult to see and it will be bumped to the top constantly, anyway.&lt;br /&gt;
&lt;br /&gt;
===Sites===&lt;br /&gt;
The owners of all big sites, especially exchanges and banks, should be contacted.&lt;br /&gt;
&lt;br /&gt;
===Stock message===&lt;br /&gt;
Here is a message that could be used to spread the word. Preferably it would be updated to reflect specifics and signed by some trusted people.&lt;br /&gt;
&lt;br /&gt;
A critical bug has been discovered in Bitcoin. Transactions must be considered REVERSIBLE for the time being. Do not send payments, and do not trust the payments that you receive.&lt;br /&gt;
&lt;br /&gt;
If you run a Bitcoin-related site, shut down the site and replace it with this message.&lt;br /&gt;
&lt;br /&gt;
[Note: The following paragraph only applies to certain attacks and may need to be removed.]&lt;br /&gt;
&lt;br /&gt;
If you are solo mining or running a pool, you must stop mining until you upgrade to the latest version (which may not be released quite yet). If you are mining in a pool, shut down your miner until your pool upgrades. If you continue mining, any blocks you solve will end up being rejected eventually, and you will be working against the legitimate chain.&lt;br /&gt;
&lt;br /&gt;
Look to your favorite HTTPS-enabled Bitcoin sites for more news. Before running any software, check that a consensus exists among several sites. Do not trust information from Google, as it can be manipulated by the attacker. Other sites, such as bitcoin.org, can likewise be manipulated, though with more difficulty. The most trustworthy source of information is the text that appears at the bottom of the graphical Bitcoin client.&lt;br /&gt;
&lt;br /&gt;
==Coordination==&lt;br /&gt;
&lt;br /&gt;
During an emergency, coordination will take place on the #bitcoin-dev channel on chat.freenode.net. All decisions will take place there. Possibly additional channels will be created if there is too much discussion happening for one channel, though #bitcoin-dev is where all developers will naturally go, and it is, therefore, best if general discussion about the emergency takes place there.&lt;br /&gt;
&lt;br /&gt;
Channel mode &amp;quot;+q $~a&amp;quot; should be set in order to prevent unregistered users from speaking. The last thing we want is an impersonator or a spam flood. People should also be identified with [[gribble]] if possible. Mode +m may also need to be set if there is too much spam.&lt;br /&gt;
&lt;br /&gt;
===Backup communication methods===&lt;br /&gt;
It is not impossible for an attacker to make #bitcoin-dev unusable, either through abuse or denial-of-service attacks. There must be several backup methods of communication.&lt;br /&gt;
&lt;br /&gt;
====IRC====&lt;br /&gt;
&lt;br /&gt;
If #bitcoin-dev becomes unusable due to flooding or other abuse that the Freenode IRC operators are unable/unwilling to handle, then moving #bitcoin-dev to irc.lfnet.org will be useful. The operators of LFnet are Bitcoin users who will be very helpful in fighting abuse.&lt;br /&gt;
&lt;br /&gt;
If Freenode is taken down by a denial-of-service attack, #bitcoin-dev can be moved to one of the larger networks, which will (presumably) be more resistant to attacks.&lt;br /&gt;
&lt;br /&gt;
So if the regular #bitcoin-dev is broken, try #bitcoin-dev on these networks:&lt;br /&gt;
* LFnet&lt;br /&gt;
* IRCnet&lt;br /&gt;
* EFnet&lt;br /&gt;
* Undernet&lt;br /&gt;
* Any other IRC networks you know of&lt;br /&gt;
&lt;br /&gt;
Gribble can be moved to any network in order to facilitate GPG identification.&lt;br /&gt;
&lt;br /&gt;
====Other real-time chat====&lt;br /&gt;
&lt;br /&gt;
In case all IRC networks are made unusable, Google+ multi-user chat might work well, and it is unlikely to be brought down by denial-of-service attacks.&lt;br /&gt;
&lt;br /&gt;
(A distributed chat network where every participant needs to send his message directly to all other participants would be best, as this would be difficult to attack. Does something like this exist?)&lt;br /&gt;
&lt;br /&gt;
====Non-realtime communication====&lt;br /&gt;
&lt;br /&gt;
The SourceForge mailing list can be used for non-real-time communication. In case this list is brought down, participants can send emails manually to a list of people.&lt;br /&gt;
&lt;br /&gt;
===Issuing statements===&lt;br /&gt;
When it has been decided by the developers that action is required by Bitcoin users, a statement will be issued. All statements should contain text encouraging people to distribute the statement. Statements should be numbered sequentially from the start of the incident.&lt;br /&gt;
&lt;br /&gt;
Statements should be PGP signed by a few people present at the time and then emailed to owners of big sites and posted on bitcoin.org and the forums.&lt;br /&gt;
&lt;br /&gt;
An alert summarizing the statement will probably need to be issued, as well.&lt;br /&gt;
&lt;br /&gt;
===Emergency versions===&lt;br /&gt;
Emergency versions of Bitcoin should preferably be based on the latest stable versions instead of the very latest code in order to avoid introducing new bugs.&lt;br /&gt;
&lt;br /&gt;
Source releases should be made as soon as a fix is available, even if it can&#039;t yet be hosted on SourceForge. In most cases, binary releases can wait for the people who normally build binaries to do it. If source releases are available without binary releases, statements should encourage users to either compile themselves or wait for official binary releases built using the standard [[release process]] (instead of using binaries provided by third parties).&lt;br /&gt;
&lt;br /&gt;
==Contingencies==&lt;br /&gt;
===Many historical blocks replaced===&lt;br /&gt;
&lt;br /&gt;
Situation: 6+ historical blocks have been replaced by new versions all at once, allowing confirmed transactions to be invalidated.&lt;br /&gt;
&lt;br /&gt;
====Impact====&lt;br /&gt;
&lt;br /&gt;
* People who have received payments from the attacker might have these payments reversed.&lt;br /&gt;
* The double-spent versions of these transactions might immediately get 6+ confirmations. So people receiving the attacker&#039;s stolen coins might accept them.&lt;br /&gt;
* Other transactions may become unconfirmed again.&lt;br /&gt;
&lt;br /&gt;
====Response====&lt;br /&gt;
&lt;br /&gt;
* Alert users to stop accepting payments, as an attacker clearly has too much control over the network. The network will be unusable for weeks or more while the issue is straightened out.&lt;br /&gt;
&lt;br /&gt;
If more than a few BTC was stolen by the attacker, then the transaction order may need to be manually modified. This is done by adding new block checkpoints and/or hardcoding transaction ordering [note: code should be prepared for hardcoded transaction ordering].&lt;br /&gt;
&lt;br /&gt;
A lot of time should be taken to decide whether and how to re-order the transactions. It may be a very complex issue, as restoring the original versions of transactions could cause damage many times larger than the original transaction reversal. The network will need to be offline for a week or more after an incident of this scale, anyway.&lt;br /&gt;
&lt;br /&gt;
===SHA-256 is broken===&lt;br /&gt;
Situation: Severe, 0-day failure of SHA-256. First/second preimage resistance or collision resistance can be defeated with only a few days of work.&lt;br /&gt;
&lt;br /&gt;
====Impact====&lt;br /&gt;
&lt;br /&gt;
* Attacker may be able to defeat OP_CHECKSIG, which hashes transactions before signing.&lt;br /&gt;
* Attacker may be able to split the network by creating identical transactions or blocks with the same hashes.&lt;br /&gt;
* Attacker may be able to create blocks very quickly.&lt;br /&gt;
* The alert system may be compromised.&lt;br /&gt;
&lt;br /&gt;
====Response====&lt;br /&gt;
&lt;br /&gt;
* Users will be notified to shut down their clients. Note that the attacker may be able to send valid alerts, which could disrupt notification efforts.&lt;br /&gt;
* OP_CHECKSIG will be changed to use some other hash outside of old blocks.&lt;br /&gt;
* All addresses in the version-1 chain that have a known public key and at least one unspent output will have their public keys hardcoded into the client. When a version-2 transaction spends one of these version-1 outputs, the hardcoded public key will be used instead of the hash.&lt;br /&gt;
* The version-1 chain will be securely hashed into a hash tree. At least the root of the version-1 tree will be hardcoded into the client.&lt;br /&gt;
* All hashing Bitcoin does will use the new hashing algorithm.&lt;br /&gt;
&lt;br /&gt;
[Code for all of this should be prepared.]&lt;br /&gt;
&lt;br /&gt;
===ECDSA is broken===&lt;br /&gt;
Situation: an attacker can sign for a public key that he does not own the private key for in only a few days of work.&lt;br /&gt;
&lt;br /&gt;
====Impact====&lt;br /&gt;
* Attacker can spend money that is not his in a large number of cases. Transactions to addresses that have never been used before may be protected if SHA-256 and RIPEMD-160 are still strong.&lt;br /&gt;
* Alert system may be compromised.&lt;br /&gt;
&lt;br /&gt;
====Response====&lt;br /&gt;
&lt;br /&gt;
If the attacker can&#039;t get the private key from the public key easily and a stronger algorithm that can use ECDSA keys is available:&lt;br /&gt;
* Switch to the stronger algorithm.&lt;br /&gt;
* Get users to update. Alerts will be compromised.&lt;br /&gt;
&lt;br /&gt;
Otherwise:&lt;br /&gt;
* OP_CHECKSIG should use some other signing algorithm.&lt;br /&gt;
* As soon as the new version of Bitcoin is run, it should automatically send all old transactions somewhere else using the new algorithm.&lt;br /&gt;
* Get users to update immediately. Alerts will be compromised.&lt;br /&gt;
&lt;br /&gt;
[Code for all of this should be prepared.]&lt;br /&gt;
&lt;br /&gt;
===Remote attacker can execute arbitrary code===&lt;br /&gt;
Situation: Due to a bug in Bitcoin, a remote attacker is able to run arbitrary code on the machines of some/all Bitcoin users.&lt;br /&gt;
&lt;br /&gt;
====Impact====&lt;br /&gt;
* Attacker can install malware, which could be used to steal private keys from wallets that are decrypted while the malware is installed.&lt;br /&gt;
&lt;br /&gt;
====Response====&lt;br /&gt;
* Issue an alert telling people to shut down their clients immediately and look for updates elsewhere. Put special effort into alerting people through other means.&lt;br /&gt;
* Remove critical powers (git push, bitcoin.org update, IRC op, etc.) from people who do not need them, as all Bitcoin users are at a high risk of having their passwords compromised. Trust GPG signatures a bit less than usual.&lt;br /&gt;
&lt;br /&gt;
Stock alert message: &amp;quot;EMERGENCY: SHUT DOWN YOUR CLIENT RIGHT NOW! Look for updates on popular Bitcoin sites. A bug has been discovered that can allow a remote attacker to install malware on your computer through Bitcoin.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Stock statement:&lt;br /&gt;
&lt;br /&gt;
A bug has been discovered in Bitcoin that can allow a remote attacker to execute arbitrary code. The attacker could install malware onto your computer, which could steal your wallet. Shut down Bitcoin now. Under no circumstances should you enter your wallet passphrase until this incident is resolved and you have made absolutely sure that there is no malware on your computer. If possible, carefully copy your wallet to some offline safe location and then securely delete the copy on your computer.&lt;br /&gt;
&lt;br /&gt;
Look to your favorite HTTPS-enabled Bitcoin sites for more news. Before running any software, check that a consensus exists among several sites. Do not trust information from Google, as it can be manipulated by the attacker. Other sites, such as bitcoin.org, can likewise be manipulated, though with more difficulty.&lt;br /&gt;
&lt;br /&gt;
===Emergency rule change===&lt;br /&gt;
Situation: A core network rule in Bitcoin is broken and needs to be changed ASAP. Like the [[Incidents#CVE-2010-5139|overflow incident]].&lt;br /&gt;
&lt;br /&gt;
====Response====&lt;br /&gt;
* Issue an alert. Tell people to stop mining.&lt;br /&gt;
* After the issue is fixed, get people to update.&lt;br /&gt;
&lt;br /&gt;
It is preferable to make a rule more restrictive than to relax a rule. In the former case, only miners need an update.&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=BTCrow&amp;diff=69451</id>
		<title>BTCrow</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BTCrow&amp;diff=69451"/>
		<updated>2022-09-26T07:42:38Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An escrow-like service that allows safer payment by securely holding a buyer&#039;s coins in escrow until the terms of the sale are met. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Warning: Please be careful with your money.  When sending money to an escrow partner you are trusting that the operator will not abscond with your funds and that the operator maintains secure systems that protect against theft -- internal or external.  It is recommended that you obtain the real-world identity of the operator and ensure that sufficient recourse is available.  Exchanging or storing significant amounts of funds for others is not recommended.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fees==&lt;br /&gt;
&lt;br /&gt;
The service charges a 1% escrow fee which includes potential dispute resolution.&lt;br /&gt;
&lt;br /&gt;
==Dispute Resolution==&lt;br /&gt;
&lt;br /&gt;
# Buyer and Seller Agree to Terms&lt;br /&gt;
#* After Creating the bitcoin escrow at BTCrow.com, both parties agree to the terms of the transaction, which include a description of the merchandise, sale price, and method of escrow.&lt;br /&gt;
# Buyer Pays BTCrow.com&lt;br /&gt;
#* The Buyer submits funds to BTCrow. BTCrow.com verifies the payment with network confirmations. Processing time varies depending if the transaction takes time to be included in a block.&lt;br /&gt;
# Seller Ships Merchandise&lt;br /&gt;
#* Upon payment verification, the Seller is authorized to ship the merchandise and submit tracking information.&lt;br /&gt;
# Buyer Accepts the Merchandise&lt;br /&gt;
#* The Buyer accepts or refuses the merchandise. In case of refusal, the buyer initiates a dispute.&lt;br /&gt;
# BTCrow.com Pays the Seller&lt;br /&gt;
#* BTCrow.com pays the Seller in bitcoin for the amount agreed at point no 1. The transaction is complete.&lt;br /&gt;
&lt;br /&gt;
It is strongly recommended to sellers to have proof of item(s) delivery or proof that the service(s) was completed in order for the escrow service to manage disputes.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
The site was launched on June 23rd, 2011&amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=21544.0 BTCrow.com - New Bitcoin Escrow Service]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In March, 2012 the service had gone offline, reportedly due to an extended distributed denial-of-service (DDoS) attack&amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=21544.msg926817#msg926817 Site back online after DDoS]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On May 28th, 2012 the operator announced a partnership with another service, [[BitcoinOPX]], and provided identity information&amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=84092.0 Trade Bitcoin Options - BitcoinOPX.com]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In December 2015 the service was listed for sale, [http://cointelegraph.com/news/115957/the-first-and-most-reputable-btc-escrow-is-for-sale Article]&lt;br /&gt;
&lt;br /&gt;
As of 2016, the site is closed and coming back soon&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Secure Trading]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://BTCrow.com BTCrow] web site&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Escrow services]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Proof_of_Stake&amp;diff=69450</id>
		<title>Proof of Stake</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Proof_of_Stake&amp;diff=69450"/>
		<updated>2022-09-26T07:40:51Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling, grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proof of Stake is a proposed alternative to [[Proof of Work]]. Like proof of work, proof of stake attempts to provide consensus and [[Double-spending|doublespend]] prevention (see [https://bitcointalk.org/index.php?topic=68213.0 &amp;quot;main&amp;quot; bitcointalk thread], and a [https://bitcointalk.org/index.php?topic=96854.0 Bounty Thread]). Because creating forks is costless when you aren&#039;t burning an external resource Proof of Stake alone is considered to an unworkable consensus mechanism.&amp;lt;ref&amp;gt;https://download.wpsoftware.net/bitcoin/pos.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It was probably first proposed [https://bitcointalk.org/index.php?topic=27787.0 here] by a member named [https://bitcointalk.org/index.php?action=profile;u=241 QuantumMechanic]. With Proof of Work, the probability of mining a block depends on the work done by the miner (e.g. CPU/GPU cycles spent checking hashes). With Proof of Stake, the resource that&#039;s compared is the amount of Bitcoin a miner holds - someone holding 1% of the Bitcoin can mine 1% of the &amp;quot;Proof of Stake blocks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some argue that methods based on Proof of Work alone might lead to a low network security in a cryptocurrency with block incentives that decline over time (like bitcoin) due to [[Tragedy of the Commons]], and Proof of Stake is one way of changing the miner&#039;s incentives in favor of higher network security.&lt;br /&gt;
&lt;br /&gt;
= Motivation For Proof of Stake =&lt;br /&gt;
&lt;br /&gt;
* A proof-of-stake system might provide increased protection from a malicious attack on the network. Additional protection comes from two sources:&lt;br /&gt;
*# Executing an attack would be much more expensive. &lt;br /&gt;
*# Reduced incentives for attack. The attacker would need to own a near majority of all bitcoin. Therefore, the attacker suffer severely from his own attack. &lt;br /&gt;
&lt;br /&gt;
* When block rewards are produced through txn fees, a proof of stake system would result in lower equilibrium txn fees. Lower long-run fees would increase the competitiveness of bitcoin relative to alternative payments systems. Intuitively reduced fees are due to vast reductions in the scale of  wastage of resources. &lt;br /&gt;
== The Monopoly Problem ==&lt;br /&gt;
&lt;br /&gt;
If a single entity (hereafter a monopolist) took control of the majority of txn verification resources, he could use these resources to impose conditions on the rest of the network. Potentially, the monopolist could choose to do this in malicious ways, such as double spending or denying service. If the monopolist chose a malicious strategy and maintained his control for a long period, confidence in bitcoin would be undermined and bitcoin purchasing power would collapse. Alternatively, the monopolist could choose to act benevolently. A benevolent monopolist would exclude all other txn verifiers from fee collection and currency generation, but would not try to exploit currency holders in any way. In order to maintain a good reputation, he would refrain from double spends and maintain service provision. In this case, confidence in Bitcoin could be maintained under monopoly since all of its basic functionality would not be affected.&lt;br /&gt;
&lt;br /&gt;
Both benevolent and malevolent monopoly are potentially profitable, so there are reasons to suspect that an entrepreneurial miner might attempt to become a monopolist at some point. Due to the [[Tragedy of the Commons]] effect, attempts at monopoly become increasingly likely over time.&lt;br /&gt;
&lt;br /&gt;
== How Proof of Stake Addresses Monopoly Problems ==&lt;br /&gt;
&lt;br /&gt;
Monopoly is still possible under proof-of-stake. However, proof-of-stake would be more secure against malicious attacks for two reasons. &lt;br /&gt;
&lt;br /&gt;
Firstly, proof-of-stake makes establishing a verification monopoly more difficult. At the time of writing, an entrepreneur could achieve monopoly over proof-of-work by investing at most 10 million USD in computing hardware. The actual investment necessary might be less than this because other miners will exit as difficulty increases, but it is difficult to predict exactly how much exit will occur. If the price remained constant in the face of extremely large purchases (unlikely), such an entrepreneur would need to invest at least 20 million USD to obtain monopoly under proof-of-stake. Since such a large purchase would dramatically increase the bitcoin price, the entrepreneur would likely need to invest several times this amount. Thus, even now proof-of-stake monopoly would be several-fold more costly to achieve than proof-of-work monopoly. Over time the comparison of monopoly costs will become more and more dramatic. The ratio of bitcoin&#039;s mining rewards to market value is programmed to decline exponentially. As this happens, proof-of-work monopoly will become easier and easier to obtain, whereas obtaining proof-of-stake monopoly will become progressively more difficult as more of the total money supply is released into circulation.&lt;br /&gt;
&lt;br /&gt;
Secondly, and perhaps more importantly, a proof-of-stake monopolist is more likely to behave benevolently exactly because of his stake in Bitcoin. In a benevolent monopoly, the currency txn continues as usual, but the monopolist earns all txn fees and coin generations. Other txn verifiers are shut out of the system, however. Since mining is not source of demand for bitcoin, bitcoin might retain most of its value in the event of a benevolent attack. Earnings from a benevolent attack are similar regardless of whether the attack occurs under proof-of-stake or proof-of-work. In a malicious attack, the attacker has some outside opportunity that allows profit from bitcoin&#039;s destruction (simple double-spends are not a plausible motivation; ownership of a competing payment platform is). At the same time, the attacker faces costs related to losses on bitcoin-specific investments which are necessary for the attack. It can be assumed that a malicious attack causes the purchasing power of bitcoin to fall to zero. Under such an attack, the proof-of-stake monopolist will lose his entire investment. By contrast, a malicious proof-of-work monopolist will be able to recover much of their hardware investment through resale. Recall also, that the necessary proof-of-work investment is much smaller than the proof-of-stake investment. Thus, the costs of a malicious attack are several-fold lower under proof-of-work. The low costs associated with malicious attack make a malicious attack more likely to occur.&lt;br /&gt;
&lt;br /&gt;
== Why Proof of Stake Would Likely Decrease Long-run Txn Fees Considerably ==&lt;br /&gt;
In a competitive market equilibrium, the total volume of txn fees must be equal to opportunity cost of all resources used to verify txns. Under proof-of-work mining, opportunity cost can be calculated as the total sum spent on mining electricity, mining equipment depreciation, mining labor, and a market rate of return on mining capital. Electricity costs, returns on mining equipment, and equipment depreciation costs are likely to dominate here. If these costs are not substantial, then it will be exceptionally easy to monopolize the mining network. The fees necessary to prevent monopolization will be onerous, possibly in excess of the 3% fee currently charged for credit card purchases. Under pure proof-of-stake, opportunity cost can be calculated as the total sum spent on mining labor and the market interest rate for risk-free bitcoin lending (hardware-related costs will be negligible). Since bitcoins are designed to appreciate over time due to hard-coded supply limitations, interest rates on risk-free bitcoin-denominated loans are likely to be negligible. Therefore, the total volume of txn fees under pure proof-of-stake will just need to be just sufficient to compensate labor involved in maintaining bandwidth and storage space. The associated txn fees will be exceptionally low. Despite these exceptionally low fees, a proof-of-stake network will be many times more costly to exploit than the proof-of-work network. Approximately, a proof-of-work network can be exploited using expenditure equal to about one years worth of currency generation and txn fees. By contrast, exploitation of a proof-of-stake network requires the purchase of a majority or near majority of all extant coins.&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
There are currently a few distinct proposals on how to implement PoS&lt;br /&gt;
&lt;br /&gt;
== Cunicula&#039;s Implementation of Mixed Proof-of-Work and Proof-of-Stake ==&lt;br /&gt;
&lt;br /&gt;
This suggestion is of a mixed Proof-of-Work / Proof-of-Stake system.&lt;br /&gt;
&lt;br /&gt;
=== Cunicula&#039;s Note ===&lt;br /&gt;
Check the page history for the older implementation. I am replacing my description with a new system which I believe to be much more secure. The new system is a greatly improved version of Coblee&#039;s Proof of Activity [https://bitcointalk.org/index.php?topic=102355.0 proposal]. It provides extremely strong protection against PoW attacks, both double-spends, and denials of service. It is not vulnerable even if PoW attackers also have a substantial (but non majority) stake. It provides strong incentives to maintain full nodes. The system is supported through taxes on coin owners who fail to maintain full nodes. Tax revenue is redistributed to coin owners who maintain full nodes. The maintenance of full nodes is the key element providing security in the system.&lt;br /&gt;
&lt;br /&gt;
The discussion focuses on the long-term maintenance of the system. Initial distribution of coins could occur through PoW mining, an IPO mechanism, or a more complex scheme that allows initial coins to be distributed to both PoW miners and businesses voted for by coin owners. The issue of initial distribution is separate from long-term maintenance and it is confusing to discuss the two together.&lt;br /&gt;
&lt;br /&gt;
=== Glossary ===&lt;br /&gt;
Voluntary Signatures - Voluntary signatures result from random auditing processes. As blocks are mined, keys are selected for auditing based on random selection. The signatures provide public evidence that a public key owner is running a full node. Passing the audit allows a private key to remaining active.&lt;br /&gt;
&lt;br /&gt;
Active Keys - By default, public keys that appear in the blockchain are active if they have a balance of at least one full coin. Public keys that provide voluntary signatures when randomly audited remain active. Active public keys are eligible to participate in lotteries to sign PoW blocks and mine PoS blocks. This is remunerative. Public keys that fail to provide signatures become dead private keys. &lt;br /&gt;
&lt;br /&gt;
Dead Keys - Keys that have failed to provide signatures lose lottery eligibility. Keys that have balances of less than 1 coin are considered dead by default. Dead keys can no longer mine PoS blocks. However, these dead keys can still be used to generate txns. Network maintenance is supported primarily through mandatory fees levied on coins sent by dead keys. After coins are sent using a dead key, the key becomes active provided that it retains a balance of at least 1 coin.&lt;br /&gt;
&lt;br /&gt;
Mandatory Signature Sequence - In order for a PoW block to be valid and enter the blockchain, it must be signed by a sequence of 5 randomly selected active keys. The fifth signatory in the sequence mines a PoS block. &lt;br /&gt;
&lt;br /&gt;
PoS block - The fifth signatory of a PoW block must mint his own block without any PoW submission at all. This block is called a PoS block.&lt;br /&gt;
&lt;br /&gt;
Coin-age - Coin age refers to the age of txn inputs. Coin age is equal to the number of coins sent times the average age on these coins. Age is measured in blocks. Age is reset to 1 block whenever a coin is sent AND whenever a coin provides a signature (both mandatory and voluntary signatures count). Coin-age is used to calculate mandatory fees.&lt;br /&gt;
&lt;br /&gt;
Demurrage Fee - Chain Security is supported primarily through a demurrage tax on sent inputs. This tax is proportional to the average input age as measured in coin-years. I suggest 5% per coin-year as a reasonable fee. Active keys can avoid demurrage fees simply by remaining active. Thus the actual fee generation will be much lower than 5% per year. Dead keys must pay demurrage. The opportunity to evade demurrage motivates activity.&lt;br /&gt;
&lt;br /&gt;
Optional Fee - Fees are used to ration block space. Blocks select prioritize txns with high fees. If demurrage fees alone are insufficient to motivate txn inclusion, the user can add an optional fee to his txn.&lt;br /&gt;
&lt;br /&gt;
Fee Fund - Both optional fees and demurrage fees enter a fund, rather than being distributed directly to miners. Fees are added to the fund immediately, so there is a weak incentive to include high fee txns in blocks. The PoW miner receives a distribution equal to 0.01% of the accumulated fund. The first four mandatory signatories also receive 0.1% each. The PoS block miner receives 0.1% as well, but his takings will differ slightly because the fund is updated based on txns included in his block. Use of a fund reduces volatility in mining rewards.&lt;br /&gt;
&lt;br /&gt;
Root Private Key - The root private key has full spending and signing authority. When significant balances are held, this key should be kept as an offline backup to guard against theft. &lt;br /&gt;
 &lt;br /&gt;
Stake Signing Key - Private Key can delegate signing and sending authority to one other private key. The delegated key can sign blocks and has limited authority to send coins. The authority to send coins is determined by two positive constants, t and k. The following txn rule limits the stake signing keys&#039; spending authority:&lt;br /&gt;
&lt;br /&gt;
              Change Returned to Public Key &amp;gt;= all coins sent to other addresses * {max(k,k*(t/coin-years on public key)}&lt;br /&gt;
              k=9 and t=1/12 are suggested as possible parameters. These parameters allow the stake signing key to spending up to 10% of the total key balance per month. The max value at risk in event of theft of                 &lt;br /&gt;
              this key is 10%. Holders of large balances &#039;zero-out&#039; their coin-age frequently via mining and face less theft risk. If this occurs once per week, for example, the large balance holder will only&lt;br /&gt;
              risk being able to spend up to 2.3% of their balance per week and will only lose 2.3% in the event of theft. Once the theft is detected, all remaining coins can be moved to a secure computer using the&lt;br /&gt;
              root private key.&lt;br /&gt;
&lt;br /&gt;
=== Mining Process ===&lt;br /&gt;
&lt;br /&gt;
1) Block meeting work difficulty target is mined. Difficulty target is periodically adjusted so that 1 PoW block arrives every 10 minutes.&lt;br /&gt;
&lt;br /&gt;
2) Work submission is hashed 10 times consecutively. Each consecutive hash maps to an individual unspent output in the blockchain. This is essentially a lottery drawing two sets of five winners. The first five hashes map to mandatory signatures, the final five hashses map to voluntary signatures.&lt;br /&gt;
&lt;br /&gt;
3) If the mandatory signatures map to active public keys [see glossary], the block can potentially be valid. Otherwise, the block is invalid and must be discarded.&lt;br /&gt;
&lt;br /&gt;
4) If PoW miner finds a potentially valid block, he transmits the following hash to the network: {work submission;hash(his block, the previous valid block)}&lt;br /&gt;
&lt;br /&gt;
5) If the work submission meets the difficulty target and maps to active signatories, then the block is relayed through the network. Otherwise, the message is dropped as spam.&lt;br /&gt;
&lt;br /&gt;
5) The first five selected signatories sequentially sign this hash and transmit it onwards as {work submission; hash; sig 1; sig 2; sig 3; sig 4; sig 5}&lt;br /&gt;
&lt;br /&gt;
6) After the mandatory signature sequence is complete, the final signatory publishes the PoW block and also his own PoS block. &lt;br /&gt;
&lt;br /&gt;
7) The final five hashes map to voluntary signatures. These voluntary signatures can be inserted into any block within the next 6 blocks as special txns. These txns do not require fees. &lt;br /&gt;
&lt;br /&gt;
9) Go to step 1&lt;br /&gt;
&lt;br /&gt;
Note: This process is simultaneous so that multiple block hashes can circulate in the network attempting to collect five signatures and generate PoW/PoS block pairs. Block pairs that lose this race&lt;br /&gt;
are orphaned.&lt;br /&gt;
&lt;br /&gt;
=== Infeasability of standard attack vectors ===&lt;br /&gt;
&lt;br /&gt;
Unless attackers own a large share of stake, all types of PoW attacks are computationally infeasible. I think there are two types of known attacks: 1) Double-Spend 2) Denial of Service&lt;br /&gt;
I consider the approximations below. The numbers are so favorable that consideration of exact statistics is not particularly interesting.&lt;br /&gt;
&lt;br /&gt;
1) Double Spend.&lt;br /&gt;
&lt;br /&gt;
Double spends rely on secrecy. In order to mine blocks in secret a PoW miner must select his 5 of his own public keys in the lottery. If the PoW miner owns a share 0&amp;lt;s&amp;lt;1 of all coins, &lt;br /&gt;
the probability of doing that a block meeting the difficulty target will select the miner&#039;s coins is (1/s)^5. For s=0.01, 1 out of 10 billion blocks will satisfy this criterion. &lt;br /&gt;
Even for extremely small hash aggregate rates, it is not practical to privately mine at a rate 10 billion times faster than all other miners combined. For s=0.1, 1 out of 100,000 blocks will &lt;br /&gt;
satisfy this criteria. (i.e. the attack still requires approximately 99.999% of all hashing power). For s=0.5, the attacker will succeed if he controls 51% of the aggregate hash rate.&lt;br /&gt;
&lt;br /&gt;
2) Denial of Service&lt;br /&gt;
&lt;br /&gt;
An attacker who mines publicly could simply produce empty PoW blocks. However, this would fail to deny service. 50% of all blocks are randomly mined via PoS. The attacker cannot&lt;br /&gt;
force the PoS miners to produce empty blocks. Therefore he cannot deny service regardless of how much hash rate he controls.&lt;br /&gt;
&lt;br /&gt;
=== Long-term Chain Evaluation  ===&lt;br /&gt;
1) Comparison of two long chains is based on a simple sum of block difficulty, just as in bitcoin.&lt;br /&gt;
&lt;br /&gt;
2) A criticism of PoS is that there is no reason not to sign attack chains. However, in a long secret chain, many stakeholders will have dead signatures. These dead stakeholders will not be able to sign the main chain, but not the attack chain. They will have a strong incentive to make sure the main chain wins because the attack chain will impose demurrage fees on them.&lt;br /&gt;
&lt;br /&gt;
=== Incentives to maintain full nodes ===&lt;br /&gt;
&lt;br /&gt;
This system introduces powerful incentives to maintain full nodes. Many people argue that the lack of an incentive to maintain a full node is a problem in the bitcoin system.&lt;br /&gt;
&lt;br /&gt;
1) a steady flow of txns will generate some fees even if all public keys remain active. Active keys must be maintaining full nodes. Otherwise, they could not provide the voluntary signatures which prove their activity. Even very weak incentives are sufficient in this case. If almost all keys are associated with active nodes, then it is not necessary to motivate additional participation.&lt;br /&gt;
&lt;br /&gt;
2) Some public keys may decide to become inactive. This is costly for them. They will suffer a loss of 5% of their balance per year for as long as they remain inactive.&lt;br /&gt;
&lt;br /&gt;
3) The active public keys constantly capture revenue from inactive public keys. This means that the incentives to remain increase dramatically as participation falls. Suppose that 50% of public keys maintain full nodes, then this 50% will capture 2.5% of coins per annum. This is equal to an annual of return of 2.0%. The alternative, inactivity, yields an annual return of -5.0% as discussed in point 2. I consider this a reasonable incentive level and participation rate. Suppose that I am wrong, and only 10% of public keys maintain full nodes. Then these 10% will capture 4.5% of all extant coins per annum. This implies an annual return on participation equal to 45% per annum. This is a very strong incentive and is almost certain to be sufficient, even if nodes are quite costly to maintain. If only 1% of coins participate, then 4.95% of all extant coins will be distributed to this 1% each year. This implies a weekly return on the participation of 3%, a pirate ponzi scheme level return. If these incentive are inadequate to support a healthy network of full nodes (which seems unlikely to me), then the levy on dead coins could be increased to exceed 5% per annum.&lt;br /&gt;
&lt;br /&gt;
4) Many people will not have enough coins to justify running their own node. Such individuals will likely use an online banking service that could store their limited spend key. The service could return interest to users in exchange for managing their keys.&lt;br /&gt;
&lt;br /&gt;
5) Other individuals may prefer the privacy associated with dropping out of participation. These individuals are still welcome to use the network, but must face a wealth tax of 5% per annum to compensate for the security risk created by their behavior.&lt;br /&gt;
&lt;br /&gt;
=== Storage of Blockchain Metadata  ===&lt;br /&gt;
To facilitate the system, data should be extracted from the blockchain in a readily accessible database that is updated with each block. The database only needs to incorporate&lt;br /&gt;
public keys which control at least 1 coin. Keys with balances less than 1 coin are considered dead by default. These low-value public keys&lt;br /&gt;
are not allowed to create limited stake public keys. If a public key balance drops below 1 coin, the limited stake public key associated with the root key is invalidated. &lt;br /&gt;
&lt;br /&gt;
The database would look like this:&lt;br /&gt;
                                        &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Public Key (ordered list) !! Linked Stake Public key (if any) !! Balance !! Cumulative Balance !! Active? !! Coin-age (in years)&lt;br /&gt;
|-&lt;br /&gt;
| A || As || 1 || 1 || 1 || 0.03&lt;br /&gt;
|-&lt;br /&gt;
| B || Bs || 2.5 || 3.5 || 0 || 0.1 &lt;br /&gt;
|-&lt;br /&gt;
| C || Cs || 3 || 6.5 || 1 || 0.2 &lt;br /&gt;
|-&lt;br /&gt;
| ... || ... || ... || ... || ... || ... &lt;br /&gt;
|}&lt;br /&gt;
The block chain must maintain records of links between public keys and delegated limited stake public keys. These should be put in a simple database for easy access.&lt;br /&gt;
&lt;br /&gt;
Cumulative balance can be used to determine the winners of the lottery. (i.e. the lottery is a uniform draw on the support [0,total issued coins]) This indicates a unique lottery winner,&lt;br /&gt;
whose chance of winning is proportional to his ownership share.&lt;br /&gt;
&lt;br /&gt;
Coin-age is updated as follows.&lt;br /&gt;
If no send, Coin-age_t = Coin-age_t-1 + 1. &lt;br /&gt;
If send, Coin_age_t = 1. &lt;br /&gt;
If send and receipt of coins, Coin_age_t = 1. &lt;br /&gt;
If receipt of coins but no send, Coin_age_t = [Coin_age_(t-1)*balance_(t-1)+received coins]/balance(t)&lt;br /&gt;
&lt;br /&gt;
Coin-age is necessary to determine mandatory demurrage fees and to calculate spending limits for limited stake public keys.&lt;br /&gt;
&lt;br /&gt;
Active is 1 by default and becomes 0 if a key fails to provide a requested voluntary signature. 0 is an absorbing state.&lt;br /&gt;
&lt;br /&gt;
=== Beneficiaries and Lossers from Txn Fees  ===&lt;br /&gt;
The total amount of demurrage fees collected annually varies between 0% and 5% of the total money supply. &lt;br /&gt;
&lt;br /&gt;
The most burdensome fee in the system is the fee paid to PoW miners. This fee imposes a demurrage tax of between 0% and 0.1% per annum on all users of the system. In addition to the demurrage tax, PoW miners receive a 2% share of any optional fees paid to access scarce block space. All coin owners are net losers as a result of PoW mining fees. To minimize costs to coin owners, PoW fee payments are kept as low as possible. Since large hash rates play only a tiny role in security, larger fees for PoW miners are unnecessary.&lt;br /&gt;
 &lt;br /&gt;
Other demurrage fees are transfers of revenue from one private key to another. Some keys are net beneficiaries of these transfers, while other keys are net losers. Collectively, these fees do not make coin owners better or worse off. Their effects are neutral. However, individually, the fees do create winners and losers. &#039;&#039;Active&#039;&#039; users that spend infrequently gain from the system. An &#039;&#039;active&#039;&#039; user with average spend frequency is likely to gain from the system as well, but only by a small amount. An &#039;&#039;active&#039;&#039; user that spends very frequently will probably lose from the system. &#039;&#039;Dead&#039;&#039; users will certainly lose from the system. This loss serves as a punishment for failure to maintain an &#039;&#039;active&#039;&#039; node.&lt;br /&gt;
&lt;br /&gt;
== Meni&#039;s implementation ==&lt;br /&gt;
This proposal is for a proof-of-work (PoW) skeleton on which occasional checkpoints set by stakeholders are placed. In one variant, double-spending is prevented by waiting for a transaction to be included in a checkpoint; the variant described here uses cementing to prevent double-spending, and checkpoints to resolve cementing conflicts.&lt;br /&gt;
&lt;br /&gt;
=== Proof of work ===&lt;br /&gt;
Miners use their hashrate to find blocks and build the blockchain exactly as with the pure PoW system. They receive any new generated coins from the block; there will be two kinds of transaction fees, one of which is a mining fee given to the miner who finds the block, just like the PoW transaction fees.&lt;br /&gt;
&lt;br /&gt;
=== Signatures ===&lt;br /&gt;
One block every 100 blocks (a different number can be used instead) is a signature block. When a signature block is found and confirmed with several subsequent blocks, stakeholders (people who have bitcoins) are expected to sign it by using a private key associated with their address which contains coins to sign the block hash. If there are several blocks of the same height, an address should not sign more than one of them. The signatures are broadcast on the network and included in a future block. For every candidate block, the total weight of all signatures is tallied (the weight of an address is determined mostly by the number of coins in it, as of the last signature block). Stakeholders will be able to collect signature fees when providing a signature, proportionally to their weight.&lt;br /&gt;
&lt;br /&gt;
At the basic level, there are no rules to choosing which of several conflicting blocks to sign, stakeholders should just choose one.&lt;br /&gt;
&lt;br /&gt;
=== Cementing ===&lt;br /&gt;
Cementing is a node&#039;s reluctance to do a blockchain reorganization. A node will reject any new block found if it contradicts a 6-block deep branch it is already aware of and currently considers valid. That is, once a node receives 6 confirmations for a block, it will not accept a competing block even if it is part of a longer branch.&lt;br /&gt;
&lt;br /&gt;
In a pure PoW system this is problematic to do because a node could be stuck on &amp;quot;the wrong version&amp;quot; - if an attacker isolates the node and feeds him bogus data, it will not embrace the true, longer chain when he learns of it. However, using PoS to have the final say in such situations makes this possible.&lt;br /&gt;
&lt;br /&gt;
=== Branch selection ===&lt;br /&gt;
When a node needs to select which of several branches is valid, it chooses one based on the following criteria in increasing importance (each one is overridden by the next):&lt;br /&gt;
&lt;br /&gt;
#Branch length (total difficulty of all blocks), as in a PoW system.&lt;br /&gt;
#Cementing - an already cemented block will not be replaced by a longer branch.&lt;br /&gt;
#Signatures - even a cemented block will be overridden by a signature block with signature weight more than half the total possible weight by some margin.&lt;br /&gt;
&lt;br /&gt;
If the conflict is so long that it contains more than one spot for a signature block, the conflicting signature blocks will be traversed earliest to latest, each time choosing the branch with the majority vote. After the newest uncontested signature block it proceeds to use cementing and branch length.&lt;br /&gt;
&lt;br /&gt;
A signature block with no clear majority will be considered tied, and will not override the other criteria. Signature fees will not be given out but instead carried over to the next signature spot, to encourage stakeholders to participate then.&lt;br /&gt;
&lt;br /&gt;
=== [[Double-spending]] prevention ===&lt;br /&gt;
A good level of security can be achieved by waiting for a block to be cemented. By that time it is safe to assume that the network recognizes this block and will not easily switch to a different block, even if a longer branch is presented.&lt;br /&gt;
&lt;br /&gt;
A more authoritative confirmation is enabled by waiting for a signature block. Once a block achieves a majority (and some more time is allowed for this majority to spread in the network), it is extremely unlikely that the network will ever switch away from this block.&lt;br /&gt;
&lt;br /&gt;
=== Weights ===&lt;br /&gt;
The weight of every address starts at 0. When an address provides a signature, its weight increases so that after several signatures, the weight approaches the number of coins in the address as of the last signature block. For example,&lt;br /&gt;
 New weight = 0.9 * Old weight + 0.1 * Balance&lt;br /&gt;
If a signature is not provided by the address in a signature block, its weight decreases:&lt;br /&gt;
 New weight = 0.9 * Old weight&lt;br /&gt;
This way, addresses whose owners do not wish to participate in signing do not hamper the ability to reach a majority.&lt;br /&gt;
&lt;br /&gt;
If an address signs two conflicting blocks, its weight is reset to 0. This is to limit the power of malicious stakeholders.&lt;br /&gt;
&lt;br /&gt;
If coins move to a new address, weight is proportionally taken away from the addressed, but is not transferred to the new address. The new stakeholder will have to build up his weight.&lt;br /&gt;
&lt;br /&gt;
=== Malicious stakeholders ===&lt;br /&gt;
The system is resilient against stakeholders who misuse their signature power, even if they have a majority of the bitcoins. Since their only obligation is to not sign conflicting blocks, the only way they could double-spend is if they first sign one block so it achieves a majority, then sign a different one so that it achieves a bigger majority. Generally this will not work. A short while after a majority is achieved, most of the network will be aware of the relevant signatures. If a different signature is broadcast, the conflict will be detected and both signatures will be ignored. This will cause the current majority block to become tied, but the network is already cemented on it and will vote for this branch in the next signature block. The weight of the attacker will by then reduce to 0 so he will be unable to create more disruption.&lt;br /&gt;
&lt;br /&gt;
Another attack is refusing to sign blocks to keep them tied. Since this causes a decay of the weight, they can only stand in the way of a majority for a short time.&lt;br /&gt;
&lt;br /&gt;
=== Denial of service ===&lt;br /&gt;
The method as described does not solve a denial of service scenario. A majority miner could create only blocks with no transactions (or with many transactions missing) and reject all other blocks.&lt;br /&gt;
&lt;br /&gt;
This may be solvable by adding some measure of the transaction in a block to the selection criteria, such as Bitcoin days destroyed.&lt;br /&gt;
&lt;br /&gt;
Also, proposals to replace the block chain with a directed acyclic graph have been made, and could be used to make it easier to include transactions.&lt;br /&gt;
&lt;br /&gt;
== Key difference between the two proposals ==&lt;br /&gt;
In Cunicula&#039;s system, voting power is determined by combining (multiplicatively) your hashrate and stake. This would be problematic if small players could not compete effectively with large players. Though we are waiting on a formal mathematical proof, evidence to date suggests that small and large players would have an equal competitive footing. Simulations described in this thread [https://bitcointalk.org/index.php?topic=68213.msg801253#msg801253] indicate that small players are competitive with large players because the multiplicative combination of hashrate and stake exhibits constant returns. Evidence in the thread suggests that these simulation results are accepted by both Cunicula and Meni.) &lt;br /&gt;
&lt;br /&gt;
In Meni&#039;s, there&#039;s a skeleton based purely on hashrate, and superimposed on it are occasional checkpoints set by stakeholders. You can contribute PoW without having stake, and you can contribute PoS without having work, and in both cases your voting power and reward is linearly proportional to the resources you have.&lt;br /&gt;
&lt;br /&gt;
= Delegated Proof of Stake =&lt;br /&gt;
&lt;br /&gt;
The [[Delegated proof of stake]] closely resembles pooling of stakes in a manner, similar to PoW [[mining]]. According to the proof of share principle, instead of computing powers, the partaking users are pooling their stakes, certain amounts of money, blocked on their wallets and delegated to the pool’s staking balance.&lt;br /&gt;
&lt;br /&gt;
The network periodically selects a pre-defined number of top staking pools (usually between 20 and 100), based on their staking balances, and allows them to validate transactions in order to get a reward. The rewards are then shared with the delegators, according to their stakes with the pool.&lt;br /&gt;
&lt;br /&gt;
This principle allows increasing the decentralization, and minimizing the possibility of attaining of 51% of staking power by any of the pools, as such pool will be considered insecure by the users, and they would withdraw their stakes.&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
*[[Proof_of_work|Proof of work]]&lt;br /&gt;
*[[Proof_of_burn|Proof of burn]]&lt;br /&gt;
*[http://www.reddit.com/r/reddCoin/comments/249dnl/major_announcement_reddcoin_to_implement_new/ Proof of Stake Velocity by Reddcoin]&lt;br /&gt;
&lt;br /&gt;
[[category:mining]]&lt;br /&gt;
[[category:Proof-of-x]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=BIP_0038&amp;diff=69449</id>
		<title>BIP 0038</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BIP_0038&amp;diff=69449"/>
		<updated>2022-09-26T07:32:10Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: shortened sentences, grammar, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{bip}}&lt;br /&gt;
{{BipMoved|bip-0038.mediawiki}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  BIP: 38&lt;br /&gt;
  Layer: Applications&lt;br /&gt;
  Title: Passphrase-protected private key&lt;br /&gt;
  Author: Mike Caldwell &amp;lt;mcaldwell@swipeclock.com&amp;gt;&lt;br /&gt;
          Aaron Voisine &amp;lt;voisine@gmail.com&amp;gt;&lt;br /&gt;
  Comments-Summary: Unanimously Discourage for implementation&lt;br /&gt;
  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0038&lt;br /&gt;
  Status: Draft (Some confusion applies: The announcements for this never made it to the list, so it hasn&#039;t had public discussion)&lt;br /&gt;
  Type: Standards Track&lt;br /&gt;
  Created: 2012-11-20&lt;br /&gt;
  License: PD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Abstract==&lt;br /&gt;
A method is proposed for encrypting and encoding a passphrase-protected Bitcoin private key record in the form of a 58-character Base58Check-encoded printable string.  Encrypted private key records are intended for use on paper wallets and physical Bitcoins.  Each record string contains all the information needed to reconstitute the private key except for a passphrase, and the methodology uses salting and &#039;&#039;scrypt&#039;&#039; to resist brute-force attacks.&lt;br /&gt;
&lt;br /&gt;
The method provides two encoding methodologies - one permitting any known private key to be encrypted with any passphrase, and another permitting a shared private key generation scheme where the party generating the final key string and its associated Bitcoin address (such as a physical bitcoin manufacturer) knows only a string derived from the original passphrase, and where the original passphrase is needed in order to actually redeem funds sent to the associated Bitcoin address.&lt;br /&gt;
&lt;br /&gt;
A 32-bit hash of the resulting Bitcoin address is encoded in plaintext within each encrypted key, so it can be correlated to a Bitcoin address with reasonable probability by someone not knowing the passphrase.  The complete Bitcoin address can be derived through successful decryption of the key record.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
The motivation to make this proposal stems from observations of the way physical bitcoins and paper wallets are used.&lt;br /&gt;
&lt;br /&gt;
An issuer of physical bitcoins must be trustworthy and trusted.  Even if trustworthy, users are rightful to be skeptical about a third party with theoretical access to take their funds.  A physical bitcoin that cannot be compromised by its issuer is always more intrinsically valuable than one that can.&lt;br /&gt;
&lt;br /&gt;
A two-factor physical bitcoin solution is highly useful to individuals and organizations wishing to securely own bitcoins without any risk of electronic theft and without the responsibility of climbing the technological learning curve necessary to produce such an environment themselves.  Two-factor physical bitcoins allow a secure storage solution to be put in a box and sold on the open market, greatly enlarging the number of people who are able to securely store bitcoins.&lt;br /&gt;
&lt;br /&gt;
Existing methodologies for creating two-factor physical bitcoins are limited and cumbersome.  At the time of this proposal, a user could create their own private key, submit the public key to the physical bitcoin issuer. Then you receive a physical bitcoin that must be kept together with some sort of record of the user-generated private key, and finally, must be redeemed through a tool.  The fact that the physical bitcoin must be kept together with a user-produced private key negates much of the benefit of the physical bitcoin — the user may as well just print and maintain a private key.&lt;br /&gt;
&lt;br /&gt;
A standardized password-protected private key format makes acquiring and redeeming two-factor physical bitcoins simpler for the user.  Instead of maintaining a private key that cannot be memorized, the user may choose a passphrase of their choice.  The passphrase may be much shorter than the length of a typical private key, short enough that they could use a label or engraver to permanently commit their passphrase to their physical Bitcoin piece once they have received it.  By adopting a standard way to encrypt a private key, we maximize the possibility that they&#039;ll be able to redeem their funds in the venue of their choice. Rather than relying on an executable redemption tool, they may not wish to download.&lt;br /&gt;
&lt;br /&gt;
Password and passphrase-protected private keys enable new practical use cases for sending bitcoins from person to person.  Someone wanting to send bitcoins through postal mail could send a password-protected paper wallet and give the recipient the passphrase over the phone or e-mail, making the transfer safe from interception of either channel.  A user of paper wallets or Bitcoin banknote-style vouchers (&amp;quot;cash&amp;quot;) could carry funded encrypted private keys, while leaving a copy at home as an element of protection against accidental loss or theft.  A user of paper wallets who leaves bitcoins in a bank vault or safety deposit box could keep the password at home or share it with trusted associates as protection against someone at the bank gaining access to the paper wallets and spending from them.  The foreseeable and unforeseeable use cases for password-protected private keys are numerous.&lt;br /&gt;
&lt;br /&gt;
==Copyright==&lt;br /&gt;
This proposal is hereby placed in the public domain.&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;User story:&#039;&#039;&#039; As a Bitcoin user who uses paper wallets, I would like the ability to add encryption, so that my Bitcoin paper storage can be two factors: something I have plus something I know.&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;User story:&#039;&#039;&#039; As a Bitcoin user who would like to pay a person or a company with a private key, I do not want to worry that any part of the communication path may result in the interception of the key and theft of my funds.  I would prefer to offer an encrypted private key, and then follow it up with the password using a different communication channel (e.g. a phone call or SMS).&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;User story:&#039;&#039;&#039; (EC-multiplied keys) As a user of physical bitcoins, I would like a third party to be able to create password-protected Bitcoin private keys for me, without them knowing the password, so I can benefit from the physical bitcoin without the issuer having access to the private key.  I would like to be able to choose a password whose minimum length and required format does not preclude me from memorizing it or engraving it on my physical bitcoin, without exposing me to an undue risk of password cracking and/or theft by the manufacturer of the item.&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;User story:&#039;&#039;&#039; (EC multiplied keys) As a user of paper wallets, I would like the ability to generate a large number of Bitcoin addresses protected by the same password, while enjoying a high degree of security (highly expensive scrypt parameters), but without having to incur the scrypt delay for each address I generate.&lt;br /&gt;
&lt;br /&gt;
==Specification==&lt;br /&gt;
This proposal makes use of the following functions and definitions:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;AES256Encrypt, AES256Decrypt&#039;&#039;&#039;: the simple form of the well-known AES block cipher without consideration for initialization vectors or block chaining.  Each of these functions takes a 256-bit key and 16 bytes of input, and deterministically yields 16 bytes of output.&lt;br /&gt;
*&#039;&#039;&#039;SHA256&#039;&#039;&#039;, a well-known hashing algorithm that takes an arbitrary number of bytes as input and deterministically yields a 32-byte hash.&lt;br /&gt;
*&#039;&#039;&#039;scrypt&#039;&#039;&#039;: A well-known key derivation algorithm.  It takes the following parameters: (string) password, (string) salt, (int) n, (int) r, (int) p, (int) length, and deterministically yields an array of bytes whose length is equal to the length parameter.&lt;br /&gt;
*&#039;&#039;&#039;ECMultiply&#039;&#039;&#039;: Multiplication of an elliptic curve point by a scalar integer with respect to the [[secp256k1]] elliptic curve.&lt;br /&gt;
*&#039;&#039;&#039;G, N&#039;&#039;&#039;: Constants defined as part of the [[secp256k1]] elliptic curve.  G is an elliptic curve point, and N is a large positive integer.&lt;br /&gt;
*&#039;&#039;&#039;[[Base58Check]]&#039;&#039;&#039;: a method for encoding arrays of bytes using 58 alphanumeric characters commonly used in the Bitcoin ecosystem.&lt;br /&gt;
&lt;br /&gt;
===Prefix===&lt;br /&gt;
It is proposed that the resulting Base58Check-encoded string starts with a &#039;6&#039;.  The number &#039;6&#039; is intended to represent, from the perspective of the user, &amp;quot;a private key that needs something else to be usable&amp;quot; - an umbrella definition that could be understood in the future to include keys participating in multisig transactions, and was chosen with deference to the existing prefix &#039;5&#039; most commonly observed in [[Wallet Import Format]] which denotes an unencrypted private key.&lt;br /&gt;
&lt;br /&gt;
It is proposed that the second character ought to give a hint as to what is needed as a second factor, and for an encrypted key requiring a passphrase, the uppercase letter P is proposed.&lt;br /&gt;
&lt;br /&gt;
To keep the size of the encrypted key down, no initialization vectors (IVs) are used in the AES encryption.  Rather, suitable values for IV-like use are derived using scrypt from the passphrase and from using a 32-bit hash of the resulting Bitcoin address as salt.&lt;br /&gt;
&lt;br /&gt;
===Proposed specification===&lt;br /&gt;
&lt;br /&gt;
* Object identifier prefix: 0x0142 (non-EC-multiplied) or 0x0143 (EC-multiplied).  These are constant bytes that appear at the beginning of the Base58Check-encoded record, and their presence causes the resulting string to have a predictable prefix.&lt;br /&gt;
* How the user sees it: 58 characters always starting with &#039;6P&#039;&lt;br /&gt;
** Visual cues are present in the third character for visually identifying the EC-multiply and compress flag.&lt;br /&gt;
* Count of payload bytes (beyond prefix): 37&lt;br /&gt;
** 1 byte (&#039;&#039;flagbyte&#039;&#039;): &lt;br /&gt;
*** the most significant two bits are set as follows to preserve the visibility of the compression flag in the prefix, as well as to keep the payload within the range of allowable values that keep the &amp;quot;6P&amp;quot; prefix intact.  For non-EC-multiplied keys, the bits are 11.  For EC-multiplied keys, the bits are 00.&lt;br /&gt;
*** the bit with value 0x20 when set indicates the key should be converted to a base58check encoded P2PKH bitcoin address using the DER compressed public key format. When not set, it should be a base58check encoded P2PKH bitcoin address using the DER uncompressed public key format.&lt;br /&gt;
*** the bits with values 0x10 and 0x08 are reserved for a future specification that contemplates using multisig as a way to combine the factors such that parties in possession of the separate factors can independently sign a proposed transaction without requiring that any party possess both factors.  These bits must be 0 to comply with this version of the specification.&lt;br /&gt;
*** the bit with value 0x04 indicates whether a lot and sequence number are encoded into the first factor, and activates special behavior for including them in the decryption process.  This applies to EC-multiplied keys only.  Must be 0 for non-EC-multiplied keys.&lt;br /&gt;
*** remaining bits are reserved for future use and must all be 0 to comply with this version of the specification.&lt;br /&gt;
** 4 bytes: SHA256(SHA256(expected_bitcoin_address))[0...3], used both for typo checking and as salt&lt;br /&gt;
**16 bytes: Contents depend on whether EC multiplication is used.&lt;br /&gt;
**16 bytes: lasthalf: An AES-encrypted key material record (contents depend on whether EC multiplication is used)&lt;br /&gt;
* Range in base58check encoding for non-EC-multiplied keys without compression (prefix 6PR):&lt;br /&gt;
** Minimum value: 6PRHv1jg1ytiE4kT2QtrUz8gEjMQghZDWg1FuxjdYDzjUkcJeGdFj9q9Vi (based on 01 42 C0 plus thirty-six 00&#039;s)&lt;br /&gt;
** Maximum value: 6PRWdmoT1ZursVcr5NiD14p5bHrKVGPG7yeEoEeRb8FVaqYSHnZTLEbYsU (based on 01 42 C0 plus thirty-six FF&#039;s) &lt;br /&gt;
* Range in base58check encoding for non-EC-multiplied keys with compression (prefix 6PY):&lt;br /&gt;
** Minimum value: 6PYJxKpVnkXUsnZAfD2B5ZsZafJYNp4ezQQeCjs39494qUUXLnXijLx6LG (based on 01 42 E0 plus thirty-six 00&#039;s)&lt;br /&gt;
** Maximum value: 6PYXg5tGnLYdXDRZiAqXbeYxwDoTBNthbi3d61mqBxPpwZQezJTvQHsCnk (based on 01 42 E0 plus thirty-six FF&#039;s) &lt;br /&gt;
* Range in base58check encoding for EC-multiplied keys without compression (prefix 6Pf):&lt;br /&gt;
** Minimum value: 6PfKzduKZXAFXWMtJ19Vg9cSvbFg4va6U8p2VWzSjtHQCCLk3JSBpUvfpf (based on 01 43 00 plus thirty-six 00&#039;s)&lt;br /&gt;
** Maximum value: 6PfYiPy6Z7BQAwEHLxxrCEHrH9kasVQ95ST1NnuEnnYAJHGsgpNPQ9dTHc (based on 01 43 00 plus thirty-six FF&#039;s)&lt;br /&gt;
* Range in base58check encoding for EC-multiplied keys with compression (prefix 6Pn):&lt;br /&gt;
** Minimum value: 6PnM2wz9LHo2BEAbvoGpGjMLGXCom35XwsDQnJ7rLiRjYvCxjpLenmoBsR (based on 01 43 20 plus thirty-six 00&#039;s)&lt;br /&gt;
** Maximum value: 6PnZki3vKspApf2zym6Anp2jd5hiZbuaZArPfa2ePcgVf196PLGrQNyVUh (based on 01 43 20 plus thirty-six FF&#039;s)&lt;br /&gt;
&lt;br /&gt;
====Encryption when EC multiply flag is not used====&lt;br /&gt;
Encrypting a private key without the EC multiplication offers the advantage that any known private key can be encrypted.  The party performing the encryption must know the passphrase.&lt;br /&gt;
&lt;br /&gt;
Encryption steps:&lt;br /&gt;
# Compute the Bitcoin address (ASCII), and take the first four bytes of SHA256(SHA256()) of it.  Let&#039;s call this &amp;quot;addresshash&amp;quot;.&lt;br /&gt;
# Derive a key from the passphrase using scrypt&lt;br /&gt;
#*Parameters: &#039;&#039;passphrase&#039;&#039; is the passphrase itself encoded in UTF-8 and normalized using Unicode Normalization Form C (NFC).  salt is &#039;&#039;addresshash&#039;&#039; from the earlier step, n=16384, r=8, p=8, length=64 (n, r, p are provisional and subject to consensus)&lt;br /&gt;
#*Let&#039;s split the resulting 64 bytes in half, and call them &#039;&#039;derivedhalf1&#039;&#039; and &#039;&#039;derivedhalf2&#039;&#039;.&lt;br /&gt;
# Do AES256Encrypt(block = bitcoinprivkey[0...15] xor derivedhalf1[0...15], key = derivedhalf2), call the 16-byte result &#039;&#039;encryptedhalf1&#039;&#039;&lt;br /&gt;
# Do AES256Encrypt(block = bitcoinprivkey[16...31] xor derivedhalf1[16...31], key = derivedhalf2), call the 16-byte result &#039;&#039;encryptedhalf2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The encrypted private key is the Base58Check-encoded concatenation of the following, which totals 39 bytes without Base58 checksum:&lt;br /&gt;
* 0x01 0x42 + &#039;&#039;flagbyte&#039;&#039; + &#039;&#039;salt&#039;&#039; + &#039;&#039;encryptedhalf1&#039;&#039; + &#039;&#039;encryptedhalf2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Decryption steps:&lt;br /&gt;
# Collect encrypted private key and passphrase from user.&lt;br /&gt;
# Derive &#039;&#039;derivedhalf1&#039;&#039; and &#039;&#039;derivedhalf2&#039;&#039; by passing the passphrase and &#039;&#039;addresshash&#039;&#039; into scrypt function.&lt;br /&gt;
# Decrypt &#039;&#039;encryptedhalf1&#039;&#039; and &#039;&#039;encryptedhalf2&#039;&#039; using AES256Decrypt, merge them to form the encrypted private key.&lt;br /&gt;
# Convert that private key into a Bitcoin address, honoring the compression preference specified in &#039;&#039;flagbyte&#039;&#039; of the encrypted key record.&lt;br /&gt;
# Hash the Bitcoin address, and verify that &#039;&#039;addresshash&#039;&#039; from the encrypted private key record matches the hash.  If not, report that the passphrase entry was incorrect.&lt;br /&gt;
&lt;br /&gt;
====Encryption when EC multiply mode is used====&lt;br /&gt;
Encrypting a private key with EC multiplication offers the ability for someone to generate encrypted keys knowing only an EC point derived from the original passphrase and some salt generated by the passphrase&#039;s owner, and without knowing the passphrase itself.  Only the person who knows the original passphrase can decrypt the private key.  A code known as an &#039;&#039;intermediate code&#039;&#039; conveys the information needed to generate such a key without knowledge of the passphrase.&lt;br /&gt;
&lt;br /&gt;
This methodology does not offer the ability to encrypt a known private key - this means that the process of creating encrypted keys is also the process of generating new addresses.  On the other hand, this serves a security benefit for someone possessing an address generated this way: if the address can be recreated by decrypting its private key with a passphrase, and it&#039;s a strong passphrase one can be certain only he knows himself, then he can safely conclude that nobody could know the private key to that address.&lt;br /&gt;
&lt;br /&gt;
The person who knows the passphrase and who is the intended beneficiary of the private keys is called the &#039;&#039;owner&#039;&#039;.  He will generate one or more &amp;quot;intermediate codes&amp;quot;, which are the first factor of a two-factor redemption system, and will give them to someone else we&#039;ll call &#039;&#039;printer&#039;&#039;, who generates a key pair with an intermediate code can know the address and encrypted private key, but cannot decrypt the private key without the original passphrase.&lt;br /&gt;
&lt;br /&gt;
An intermediate code should but is not required to, embed a printable &amp;quot;lot&amp;quot; and &amp;quot;sequence&amp;quot; number for the benefit of the user.  The proposal forces these lot and sequence numbers to be included in any valid private keys generated from them.  An owner who has requested multiple private keys to be generated for him will be advised by applications to ensure that each private key has a unique lot and sequence number consistent with the intermediate codes he generated.  These mainly help protect &#039;&#039;owner&#039;&#039; from potential mistakes and/or attacks that could be made by &#039;&#039;printer&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;lot&amp;quot; and &amp;quot;sequence&amp;quot; number are combined into a single 32 bit number.  20 bits are used for the lot number and 12 bits are used for the sequence number, such that the lot number can be any decimal number between 0 and 1048575, and the sequence number can be any decimal number between 0 and 4095.  For programs that generate batches of intermediate codes for an &#039;&#039;owner&#039;&#039;, it is recommended that lot numbers be chosen at random within the range 100000-999999 and that sequence numbers are assigned starting with 1.&lt;br /&gt;
&lt;br /&gt;
Steps performed by &#039;&#039;owner&#039;&#039; to generate a single intermediate code, if lot and sequence numbers are being included:&lt;br /&gt;
# Generate 4 random bytes, call them &#039;&#039;ownersalt&#039;&#039;.&lt;br /&gt;
# Encode the lot and sequence numbers as a 4 byte quantity (big-endian): lotnumber * 4096 + sequencenumber.  Call these four bytes &#039;&#039;lotsequence&#039;&#039;.&lt;br /&gt;
# Concatenate &#039;&#039;ownersalt&#039;&#039; + &#039;&#039;lotsequence&#039;&#039; and call this &#039;&#039;ownerentropy&#039;&#039;.&lt;br /&gt;
# Derive a key from the passphrase using scrypt&lt;br /&gt;
#* Parameters: &#039;&#039;passphrase&#039;&#039; is the passphrase itself encoded in UTF-8 and normalized using Unicode Normalization Form C (NFC).  salt is &#039;&#039;ownersalt&#039;&#039;. n=16384, r=8, p=8, length=32.&lt;br /&gt;
#* Call the resulting 32 bytes &#039;&#039;prefactor&#039;&#039;.&lt;br /&gt;
#* Take SHA256(SHA256(&#039;&#039;prefactor&#039;&#039; + &#039;&#039;ownerentropy&#039;&#039;)) and call this &#039;&#039;passfactor&#039;&#039;. The &amp;quot;+&amp;quot; operator is concatenation.&lt;br /&gt;
# Compute the elliptic curve point G * &#039;&#039;passfactor&#039;&#039;, and convert the result to compressed notation (33 bytes).  Call this &#039;&#039;passpoint&#039;&#039;.  Compressed notation is used for this purpose regardless of whether the intent is to create Bitcoin addresses with or without compressed public keys.&lt;br /&gt;
# Convey &#039;&#039;ownersalt&#039;&#039; and &#039;&#039;passpoint&#039;&#039; to the party generating the keys, along with a checksum to ensure integrity.&lt;br /&gt;
#* The following Base58Check-encoded format is recommended for this purpose: magic bytes &amp;quot;2C E9 B3 E1 FF 39 E2 51&amp;quot; followed by &#039;&#039;ownerentropy&#039;&#039;, and then &#039;&#039;passpoint&#039;&#039;.  The resulting string will start with the word &amp;quot;passphrase&amp;quot; due to the constant bytes, will be 72 characters in length, and encodes 49 bytes (8 bytes constant + 8 bytes &#039;&#039;ownerentropy&#039;&#039; + 33 bytes &#039;&#039;passpoint&#039;&#039;).  The checksum is handled in the Base58Check encoding.  The resulting string is called &#039;&#039;intermediate_passphrase_string&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If lot and sequence numbers are not being included, then follow the same procedure with the following changes:&lt;br /&gt;
* &#039;&#039;ownersalt&#039;&#039; is 8 random bytes instead of 4, and &#039;&#039;lotsequence&#039;&#039; is omitted.  &#039;&#039;ownerentropy&#039;&#039; becomes an alias for &#039;&#039;ownersalt&#039;&#039;.&lt;br /&gt;
* The SHA256 conversion of &#039;&#039;prefactor&#039;&#039; to &#039;&#039;passfactor&#039;&#039; is omitted.  Instead, the output of scrypt is used directly as &#039;&#039;passfactor&#039;&#039;.&lt;br /&gt;
* The magic bytes are &amp;quot;2C E9 B3 E1 FF 39 E2 53&amp;quot; instead (the last byte is 0x53 instead of 0x51).&lt;br /&gt;
&lt;br /&gt;
Steps to create new encrypted private keys given &#039;&#039;intermediate_passphrase_string&#039;&#039; from &#039;&#039;owner&#039;&#039; (so we have &#039;&#039;ownerentropy&#039;&#039;, and &#039;&#039;passpoint&#039;&#039;, but we do not have &#039;&#039;passfactor&#039;&#039; or the passphrase):&lt;br /&gt;
# Set &#039;&#039;flagbyte&#039;&#039;.&lt;br /&gt;
#* Turn on bit 0x20 if the Bitcoin address will be formed by hashing the compressed public key (optional, saves space, but many Bitcoin implementations aren&#039;t compatible with it)&lt;br /&gt;
#* Turn on bit 0x04 if &#039;&#039;ownerentropy&#039;&#039; contains a value for &#039;&#039;lotsequence&#039;&#039;.  (While it has no effect on the keypair generation process, the decryption process needs this flag to know how to process &#039;&#039;ownerentropy&#039;&#039;)&lt;br /&gt;
# Generate 24 random bytes, call this &#039;&#039;seedb&#039;&#039;.  Take SHA256(SHA256(&#039;&#039;seedb&#039;&#039;)) to yield 32 bytes, call this &#039;&#039;factorb&#039;&#039;.&lt;br /&gt;
# ECMultiply &#039;&#039;passpoint&#039;&#039; by &#039;&#039;factorb&#039;&#039;.  Use the resulting EC point as a public key and hash it into a Bitcoin address using either compressed or uncompressed public key methodology (specify which methodology is used inside &#039;&#039;flagbyte&#039;&#039;).  This is the generated Bitcoin address, call it &#039;&#039;generatedaddress&#039;&#039;.&lt;br /&gt;
# Take the first four bytes of SHA256(SHA256(&#039;&#039;generatedaddress&#039;&#039;)) and call it &#039;&#039;addresshash&#039;&#039;.&lt;br /&gt;
# Now we will encrypt &#039;&#039;seedb&#039;&#039;.  Derive a second key from &#039;&#039;passpoint&#039;&#039; using scrypt&lt;br /&gt;
#*Parameters: &#039;&#039;passphrase&#039;&#039; is &#039;&#039;passpoint&#039;&#039; provided from the first party (expressed in binary as 33 bytes).  &#039;&#039;salt&#039;&#039; is &#039;&#039;addresshash&#039;&#039; + &#039;&#039;ownerentropy&#039;&#039;, n=1024, r=1, p=1, length=64.  The &amp;quot;+&amp;quot; operator is concatenation.&lt;br /&gt;
#*Split the result into two 32-byte halves and call them &#039;&#039;derivedhalf1&#039;&#039; and &#039;&#039;derivedhalf2&#039;&#039;.&lt;br /&gt;
# Do AES256Encrypt(block = (seedb[0...15] xor derivedhalf1[0...15]), key = derivedhalf2), call the 16-byte result &#039;&#039;encryptedpart1&#039;&#039;&lt;br /&gt;
# Do AES256Encrypt(block = ((encryptedpart1[8...15] + seedb[16...23]) xor derivedhalf1[16...31]), key = derivedhalf2), call the 16-byte result &#039;&#039;encryptedpart2&#039;&#039;.  The &amp;quot;+&amp;quot; operator is concatenation.&lt;br /&gt;
&lt;br /&gt;
The encrypted private key is the Base58Check-encoded concatenation of the following, which totals 39 bytes without Base58 checksum:&lt;br /&gt;
* 0x01 0x43 + &#039;&#039;flagbyte&#039;&#039; + &#039;&#039;addresshash&#039;&#039; + &#039;&#039;ownerentropy&#039;&#039; + &#039;&#039;encryptedpart1&#039;&#039;[0...7] + &#039;&#039;encryptedpart2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=====Confirmation code=====&lt;br /&gt;
The party generating the Bitcoin address has the option to return a &#039;&#039;confirmation code&#039;&#039; back to &#039;&#039;owner&#039;&#039; which allows &#039;&#039;owner&#039;&#039; to independently verify that he has been given a Bitcoin address that actually depends on his passphrase, and to confirm the lot and sequence numbers (if applicable).  This protects &#039;&#039;owner&#039;&#039; from being given a Bitcoin address by the second party that is unrelated to the key derivation and possibly spendable by the second party.  If a Bitcoin address given to &#039;&#039;owner&#039;&#039; can be successfully regenerated through the confirmation process, &#039;&#039;owner&#039;&#039; can be reasonably assured that any spending without the passphrase is infeasible.  This confirmation code is 75 characters starting with &amp;quot;cfrm38&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To generate it, we need &#039;&#039;flagbyte&#039;&#039;, &#039;&#039;ownerentropy&#039;&#039;, &#039;&#039;factorb&#039;&#039;, &#039;&#039;derivedhalf1&#039;&#039; and &#039;&#039;derivedhalf2&#039;&#039; from the original encryption operation.&lt;br /&gt;
# ECMultiply &#039;&#039;factorb&#039;&#039; by G, call the result &#039;&#039;pointb&#039;&#039;.  The result is 33 bytes.&lt;br /&gt;
# The first byte is 0x02 or 0x03.  XOR it by (derivedhalf2[31] &amp;amp; 0x01), call the resulting byte &#039;&#039;pointbprefix&#039;&#039;.&lt;br /&gt;
# Do AES256Encrypt(block = (pointb[1...16] xor derivedhalf1[0...15]), key = derivedhalf2) and call the result &#039;&#039;pointbx1&#039;&#039;.&lt;br /&gt;
# Do AES256Encrypt(block = (pointb[17...32] xor derivedhalf1[16...31]), key = derivedhalf2) and call the result &#039;&#039;pointbx2&#039;&#039;.&lt;br /&gt;
# Concatenate &#039;&#039;pointbprefix&#039;&#039; + &#039;&#039;pointbx1&#039;&#039; + &#039;&#039;pointbx2&#039;&#039; (total 33 bytes) and call the result &#039;&#039;encryptedpointb&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The result is a Base58Check-encoded concatenation of the following:&lt;br /&gt;
* 0x64 0x3B 0xF6 0xA8 0x9A + &#039;&#039;flagbyte&#039;&#039; + &#039;&#039;addresshash&#039;&#039; + &#039;&#039;ownerentropy&#039;&#039; + &#039;&#039;encryptedpointb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A confirmation tool, given a passphrase and a confirmation code, can recalculate the address, verify the address hash, and then assert the following: &amp;quot;It is confirmed that Bitcoin address &#039;&#039;address&#039;&#039; depends on this passphrase&amp;quot;.  If applicable: &amp;quot;The lot number is &#039;&#039;lotnumber&#039;&#039; and the sequence number is &#039;&#039;sequencenumber&#039;&#039;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To recalculate the address:&lt;br /&gt;
# Derive &#039;&#039;passfactor&#039;&#039; using scrypt with &#039;&#039;ownerentropy&#039;&#039; and the user&#039;s passphrase and use it to recompute &#039;&#039;passpoint&#039;&#039;&lt;br /&gt;
# Derive decryption key for &#039;&#039;pointb&#039;&#039; using scrypt with &#039;&#039;passpoint&#039;&#039;, &#039;&#039;addresshash&#039;&#039;, and &#039;&#039;ownerentropy&#039;&#039;&lt;br /&gt;
# Decrypt &#039;&#039;encryptedpointb&#039;&#039; to yield &#039;&#039;pointb&#039;&#039;&lt;br /&gt;
# ECMultiply &#039;&#039;pointb&#039;&#039; by &#039;&#039;passfactor&#039;&#039;. Use the resulting EC point as a public key and hash it into &#039;&#039;address&#039;&#039; using either compressed or uncompressed public key methodology as specifid in &#039;&#039;flagbyte&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=====Decryption=====&lt;br /&gt;
# Collect encrypted private key and passphrase from user.&lt;br /&gt;
# Derive &#039;&#039;passfactor&#039;&#039; using scrypt with &#039;&#039;ownersalt&#039;&#039; and the user&#039;s passphrase and use it to recompute &#039;&#039;passpoint&#039;&#039;&lt;br /&gt;
# Derive decryption key for &#039;&#039;seedb&#039;&#039; using scrypt with &#039;&#039;passpoint&#039;&#039;, &#039;&#039;addresshash&#039;&#039;, and &#039;&#039;ownerentropy&#039;&#039;&lt;br /&gt;
# Decrypt &#039;&#039;encryptedpart2&#039;&#039; using AES256Decrypt to yield the last 8 bytes of &#039;&#039;seedb&#039;&#039; and the last 8 bytes of &#039;&#039;encryptedpart1&#039;&#039;.&lt;br /&gt;
# Decrypt &#039;&#039;encryptedpart1&#039;&#039; to yield the remainder of &#039;&#039;seedb&#039;&#039;.&lt;br /&gt;
# Use &#039;&#039;seedb&#039;&#039; to compute &#039;&#039;factorb&#039;&#039;.&lt;br /&gt;
# Multiply &#039;&#039;passfactor&#039;&#039; by &#039;&#039;factorb&#039;&#039; mod N to yield the private key associated with &#039;&#039;generatedaddress&#039;&#039;.&lt;br /&gt;
# Convert that private key into a Bitcoin address, honoring the compression preference specified in the encrypted key.&lt;br /&gt;
# Hash the Bitcoin address, and verify that &#039;&#039;addresshash&#039;&#039; from the encrypted private key record matches the hash.  If not, report that the passphrase entry was incorrect.&lt;br /&gt;
&lt;br /&gt;
==Backwards compatibility==&lt;br /&gt;
Backwards compatibility is minimally applicable since this is a new standard that at most extends [[Wallet Import Format]].  It is assumed that an entry point for private key data may also accept existing formats of private keys (such as hexadecimal and [[Wallet Import Format]]); this draft uses a key format that cannot be mistaken for any existing one and preserves auto-detection capabilities.&lt;br /&gt;
&lt;br /&gt;
==Suggestions for implementers of the proposal with alt-chains==&lt;br /&gt;
If this proposal is accepted into alt-chains, it is requested that the unused flag bytes not be used for denoting that the key belongs to an alt-chain.&lt;br /&gt;
&lt;br /&gt;
Alt-chain implementers should exploit the address hash for this purpose.  Since each operation in this proposal involves hashing a text representation of a coin address which (for Bitcoin) includes the leading &#039;1&#039;, an alt-chain can easily be denoted simply by using the alt-chain&#039;s preferred format for representing an address.  Alt-chain implementers may also change the prefix such that encrypted addresses do not start with &amp;quot;6P&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Discussion item: scrypt parameters==&lt;br /&gt;
This proposal leaves the scrypt parameters up in the air.  The following items are proposed for consideration:&lt;br /&gt;
&lt;br /&gt;
The main goal of scrypt is to reduce the feasibility of brute force attacks.  It must be assumed that an attacker will be able to use an efficient implementation of scrypt.  The parameters should force a highly efficient implementation of scrypt to wait a decent amount of time to slow attacks.&lt;br /&gt;
&lt;br /&gt;
On the other hand, an unavoidably likely place where scrypt will be implemented is using slow-interpreted languages such as javascript.  What might take milliseconds on an efficient scrypt implementation may take seconds in javascript.&lt;br /&gt;
&lt;br /&gt;
It is believed, however, that someone using a javascript implementation is probably dealing with codes by hand, one at a time, rather than generating or processing large batches of codes.  Thus, a wait time of several seconds is acceptable to a user.&lt;br /&gt;
&lt;br /&gt;
A private key redemption process that forces a server to consume several seconds of CPU time would discourage implementation by the server owner, because they would be opening up a denial of service avenue by inviting users to make numerous attempts to invoke the redemption process.  However, it&#039;s also feasible for the server owner to implement his redemption process in such a way that the decryption is done by the user&#039;s browser, offloading the task from his own server (and providing another reason why the chosen scrypt parameters should be tolerant of javascript-based decryptors).&lt;br /&gt;
&lt;br /&gt;
The preliminary values of 16384, 8, and 8 are hoped to offer the following properties:&lt;br /&gt;
* Encryption/decryption in javascript requiring several seconds per operation&lt;br /&gt;
* Use of the parallelization parameter provides a modest opportunity for speedups in environments where concurrent threading is available - such environments would be selected for processes that must handle bulk quantities of encryption/decryption operations.  The estimated time for an operation is in the tens or hundreds of milliseconds.&lt;br /&gt;
&lt;br /&gt;
==Reference implementation==&lt;br /&gt;
Added to alpha version of Casascius Bitcoin Address Utility for Windows available at:&lt;br /&gt;
&lt;br /&gt;
* via https: https://casascius.com/btcaddress-alpha.zip&lt;br /&gt;
* at github: https://github.com/casascius/Bitcoin-Address-Utility&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Tools&amp;quot; then &amp;quot;PPEC Keygen&amp;quot; (provisional name)&lt;br /&gt;
&lt;br /&gt;
==Other implementations==&lt;br /&gt;
* Javascript - https://github.com/bitcoinjs/bip38&lt;br /&gt;
&lt;br /&gt;
==Test vectors==&lt;br /&gt;
&lt;br /&gt;
===No compression, no EC multiply===&lt;br /&gt;
&lt;br /&gt;
Test 1:&lt;br /&gt;
*Passphrase: TestingOneTwoThree&lt;br /&gt;
*Encrypted: 6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg&lt;br /&gt;
*Unencrypted (WIF): 5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR&lt;br /&gt;
*Unencrypted (hex): CBF4B9F70470856BB4F40F80B87EDB90865997FFEE6DF315AB166D713AF433A5&lt;br /&gt;
&lt;br /&gt;
Test 2:&lt;br /&gt;
*Passphrase: Satoshi&lt;br /&gt;
*Encrypted: 6PRNFFkZc2NZ6dJqFfhRoFNMR9Lnyj7dYGrzdgXXVMXcxoKTePPX1dWByq&lt;br /&gt;
*Unencrypted (WIF): 5HtasZ6ofTHP6HCwTqTkLDuLQisYPah7aUnSKfC7h4hMUVw2gi5&lt;br /&gt;
*Unencrypted (hex): 09C2686880095B1A4C249EE3AC4EEA8A014F11E6F986D0B5025AC1F39AFBD9AE&lt;br /&gt;
&lt;br /&gt;
Test 3:&lt;br /&gt;
*Passphrase ϓ␀𐐀💩 (&amp;lt;tt&amp;gt;\u03D2\u0301\u0000\U00010400\U0001F4A9&amp;lt;/tt&amp;gt;; [http://codepoints.net/U+03D2 GREEK UPSILON WITH HOOK], [http://codepoints.net/U+0301 COMBINING ACUTE ACCENT], [http://codepoints.net/U+0000 NULL], [http://codepoints.net/U+10400 DESERET CAPITAL LETTER LONG I], [http://codepoints.net/U+1F4A9 PILE OF POO])&lt;br /&gt;
*Encrypted key: 6PRW5o9FLp4gJDDVqJQKJFTpMvdsSGJxMYHtHaQBF3ooa8mwD69bapcDQn&lt;br /&gt;
*Bitcoin Address: 16ktGzmfrurhbhi6JGqsMWf7TyqK9HNAeF&lt;br /&gt;
*Unencrypted private key (WIF): 5Jajm8eQ22H3pGWLEVCXyvND8dQZhiQhoLJNKjYXk9roUFTMSZ4&lt;br /&gt;
* &#039;&#039;Note:&#039;&#039; The non-standard UTF-8 characters in this passphrase should be NFC normalized to result in a passphrase of &amp;lt;tt&amp;gt;0xcf9300f0909080f09f92a9&amp;lt;/tt&amp;gt; before further processing&lt;br /&gt;
&lt;br /&gt;
===Compression, no EC multiply===&lt;br /&gt;
&lt;br /&gt;
Test 1:&lt;br /&gt;
*Passphrase: TestingOneTwoThree&lt;br /&gt;
*Encrypted: 6PYNKZ1EAgYgmQfmNVamxyXVWHzK5s6DGhwP4J5o44cvXdoY7sRzhtpUeo&lt;br /&gt;
*Unencrypted (WIF): L44B5gGEpqEDRS9vVPz7QT35jcBG2r3CZwSwQ4fCewXAhAhqGVpP&lt;br /&gt;
*Unencrypted (hex): CBF4B9F70470856BB4F40F80B87EDB90865997FFEE6DF315AB166D713AF433A5&lt;br /&gt;
&lt;br /&gt;
Test 2:&lt;br /&gt;
*Passphrase: Satoshi&lt;br /&gt;
*Encrypted: 6PYLtMnXvfG3oJde97zRyLYFZCYizPU5T3LwgdYJz1fRhh16bU7u6PPmY7&lt;br /&gt;
*Unencrypted (WIF): KwYgW8gcxj1JWJXhPSu4Fqwzfhp5Yfi42mdYmMa4XqK7NJxXUSK7&lt;br /&gt;
*Unencrypted (hex): 09C2686880095B1A4C249EE3AC4EEA8A014F11E6F986D0B5025AC1F39AFBD9AE&lt;br /&gt;
&lt;br /&gt;
===EC multiply, no compression, no lot/sequence numbers===&lt;br /&gt;
&lt;br /&gt;
Test 1:&lt;br /&gt;
*Passphrase: TestingOneTwoThree&lt;br /&gt;
*Passphrase code: passphrasepxFy57B9v8HtUsszJYKReoNDV6VHjUSGt8EVJmux9n1J3Ltf1gRxyDGXqnf9qm&lt;br /&gt;
*Encrypted key: 6PfQu77ygVyJLZjfvMLyhLMQbYnu5uguoJJ4kMCLqWwPEdfpwANVS76gTX&lt;br /&gt;
*Bitcoin address: 1PE6TQi6HTVNz5DLwB1LcpMBALubfuN2z2&lt;br /&gt;
*Unencrypted private key (WIF): 5K4caxezwjGCGfnoPTZ8tMcJBLB7Jvyjv4xxeacadhq8nLisLR2&lt;br /&gt;
*Unencrypted private key (hex): A43A940577F4E97F5C4D39EB14FF083A98187C64EA7C99EF7CE460833959A519&lt;br /&gt;
&lt;br /&gt;
Test 2:&lt;br /&gt;
*Passphrase: Satoshi&lt;br /&gt;
*Passphrase code: passphraseoRDGAXTWzbp72eVbtUDdn1rwpgPUGjNZEc6CGBo8i5EC1FPW8wcnLdq4ThKzAS&lt;br /&gt;
*Encrypted key: 6PfLGnQs6VZnrNpmVKfjotbnQuaJK4KZoPFrAjx1JMJUa1Ft8gnf5WxfKd&lt;br /&gt;
*Bitcoin address: 1CqzrtZC6mXSAhoxtFwVjz8LtwLJjDYU3V&lt;br /&gt;
*Unencrypted private key (WIF): 5KJ51SgxWaAYR13zd9ReMhJpwrcX47xTJh2D3fGPG9CM8vkv5sH&lt;br /&gt;
*Unencrypted private key (hex): C2C8036DF268F498099350718C4A3EF3984D2BE84618C2650F5171DCC5EB660A&lt;br /&gt;
&lt;br /&gt;
===EC multiply, no compression, lot/sequence numbers===&lt;br /&gt;
&lt;br /&gt;
Test 1:&lt;br /&gt;
*Passphrase: MOLON LABE&lt;br /&gt;
*Passphrase code: passphraseaB8feaLQDENqCgr4gKZpmf4VoaT6qdjJNJiv7fsKvjqavcJxvuR1hy25aTu5sX &lt;br /&gt;
*Encrypted key: 6PgNBNNzDkKdhkT6uJntUXwwzQV8Rr2tZcbkDcuC9DZRsS6AtHts4Ypo1j&lt;br /&gt;
*Bitcoin address: 1Jscj8ALrYu2y9TD8NrpvDBugPedmbj4Yh&lt;br /&gt;
*Unencrypted private key (WIF): 5JLdxTtcTHcfYcmJsNVy1v2PMDx432JPoYcBTVVRHpPaxUrdtf8&lt;br /&gt;
*Unencrypted private key (hex): 44EA95AFBF138356A05EA32110DFD627232D0F2991AD221187BE356F19FA8190&lt;br /&gt;
*Confirmation code: cfrm38V8aXBn7JWA1ESmFMUn6erxeBGZGAxJPY4e36S9QWkzZKtaVqLNMgnifETYw7BPwWC9aPD&lt;br /&gt;
*Lot/Sequence: 263183/1&lt;br /&gt;
&lt;br /&gt;
Test 2: &lt;br /&gt;
*Passphrase (all letters are Greek - test UTF-8 compatibility with this): ΜΟΛΩΝ ΛΑΒΕ&lt;br /&gt;
*Passphrase code: passphrased3z9rQJHSyBkNBwTRPkUGNVEVrUAcfAXDyRU1V28ie6hNFbqDwbFBvsTK7yWVK &lt;br /&gt;
*Encrypted private key: 6PgGWtx25kUg8QWvwuJAgorN6k9FbE25rv5dMRwu5SKMnfpfVe5mar2ngH&lt;br /&gt;
*Bitcoin address: 1Lurmih3KruL4xDB5FmHof38yawNtP9oGf&lt;br /&gt;
*Unencrypted private key (WIF): 5KMKKuUmAkiNbA3DazMQiLfDq47qs8MAEThm4yL8R2PhV1ov33D&lt;br /&gt;
*Unencrypted private key (hex): CA2759AA4ADB0F96C414F36ABEB8DB59342985BE9FA50FAAC228C8E7D90E3006&lt;br /&gt;
*Confirmation code: cfrm38V8G4qq2ywYEFfWLD5Cc6msj9UwsG2Mj4Z6QdGJAFQpdatZLavkgRd1i4iBMdRngDqDs51&lt;br /&gt;
*Lot/Sequence: 806938/1&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Mining&amp;diff=69364</id>
		<title>Mining</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Mining&amp;diff=69364"/>
		<updated>2022-06-30T14:15:25Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: /* Introduction */ corrected spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This page is designed to be short and simple! It should provide only a very brief explanation of things that have their own page and should link to other pages whenever possible. This page should serve as an entry point and a place to organize most of our mining articles. Thank You! (-Atheros) --&amp;gt;&lt;br /&gt;
[[File:Quick-and-dirty-4x5970-cooling.jpg|thumb|right|A home-made &amp;quot;[[Mining rig|mining rig]]&amp;quot;]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&#039;&#039;&#039;Mining&#039;&#039;&#039; is the process of adding transaction records to Bitcoin&#039;s public ledger of past transactions (and a &amp;quot;[[Mining rig|mining rig]]&amp;quot; is a colloquial metaphor for a single computer system that performs the necessary computations for &amp;quot;mining&amp;quot;.&lt;br /&gt;
This ledger of past transactions calls itself the [[blockchain]] as it is a chain of [[block|blocks]].&lt;br /&gt;
The blockchain serves to [[Confirmation|confirm]] transactions to the rest of the network as having taken place.&lt;br /&gt;
Bitcoin nodes use the blockchain to distinguish legitimate Bitcoin transactions from attempts to re-spend coins that have already been spent elsewhere.&lt;br /&gt;
&lt;br /&gt;
Mining is intentionally designed to be resource-intensive and difficult so that the number of blocks found each day by miners remains steady. Individual [[blocks]] must contain a [[proof of work|proof of work]] to be considered valid. This proof of work is verified by other Bitcoin nodes each time they receive a block. Bitcoin uses the [[hashcash]] proof-of-work function.&lt;br /&gt;
&lt;br /&gt;
The primary purpose of mining is to set the history of [[transactions]] in a way that is [[Irreversible Transactions|computationally impractical to modify by any one entity]]. By downloading and verifying the blockchain, bitcoin [[full node|nodes]] are able to reach a consensus about the ordering of events in bitcoin.&lt;br /&gt;
&lt;br /&gt;
Mining is also the mechanism used to [[Controlled supply|introduce Bitcoins]] into the system:&lt;br /&gt;
Miners are paid any [[transaction fees]] as well as a &amp;quot;subsidy&amp;quot; of newly created coins.&lt;br /&gt;
This both serves the purpose of disseminating new coins in a decentralized manner as well as motivating people to provide security for the system.&lt;br /&gt;
&lt;br /&gt;
Bitcoin mining is so-called because it resembles the mining of other commodities:&lt;br /&gt;
it requires exertion and it slowly makes new units available to anybody who wishes to take part. An important difference is that the [[Controlled supply|supply]] does not depend on the amount of mining. In general changing total miner hashpower does not change how many bitcoins are created over the long term.&lt;br /&gt;
&lt;br /&gt;
== Difficulty ==&lt;br /&gt;
=== The Computationally-Difficult Problem ===&lt;br /&gt;
Mining a block is difficult because the SHA-256 hash of a block&#039;s header must be lower than or equal to the [[Target|target]] in order for the block to be accepted by the network. This problem can be simplified for explanation purposes: The hash of a block must start with a certain number of zeros. The probability of calculating a hash that starts with many zeros is very low, therefore many attempts must be made. In order to generate a new hash each round, a [[Nonce|nonce]] is incremented. See [[Proof of work]] for more information.&lt;br /&gt;
&lt;br /&gt;
=== The Difficulty Metric ===&lt;br /&gt;
The [[Difficulty|difficulty]] is the measure of how difficult it is to find a new block compared to the easiest it can ever be. The rate is recalculated every 2,016 blocks to a value such that the previous 2,016 blocks would have been generated in exactly one fortnight (two weeks) had everyone been mining at this difficulty. This is expected yield, on average, one block every ten minutes.&lt;br /&gt;
&lt;br /&gt;
As more miners join, the rate of block creation increases. As the rate of block generation increases, the difficulty rises to compensate, which has a balancing of effect due to reducing the rate of block-creation. Any blocks released by malicious miners that do not meet the required [[Target|difficulty target]] will simply be rejected by the other participants in the network.&lt;br /&gt;
&lt;br /&gt;
=== Reward ===&lt;br /&gt;
When a block is discovered, the discoverer may award themselves a certain number of bitcoins, which is agreed-upon by everyone in the network. Currently this bounty is 6.25 bitcoins; this value will halve every 210,000 blocks. See [[Controlled Currency Supply]].&lt;br /&gt;
&lt;br /&gt;
Additionally, the miner is awarded the fees paid by users sending transactions. The fee is an incentive for the miner to include the transaction in their block. In the future, as the number of new bitcoins miners are allowed to create in each block dwindles, the fees will make up a much more important percentage of mining income.&lt;br /&gt;
&lt;br /&gt;
== The mining ecosystem ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
[[File:Usb-fpga module 1.15x-hs-800.jpg|thumb|right|FPGA Module]]&lt;br /&gt;
Users have used various types of hardware over time to mine blocks. Hardware specifications and performance statistics are detailed on the [[Mining Hardware Comparison]] page.&lt;br /&gt;
==== CPU Mining ==== &lt;br /&gt;
Early Bitcoin client versions allowed users to use their CPUs to mine. The advent of GPU mining made CPU mining financially unwise as the hashrate of the network grew to such a degree that the amount of bitcoins produced by CPU mining became lower than the cost of power to operate a CPU. The option was therefore removed from the core Bitcoin client&#039;s user interface.&lt;br /&gt;
&lt;br /&gt;
==== GPU Mining ====&lt;br /&gt;
GPU Mining is drastically faster and more efficient than CPU mining. See the main article: [[Why a GPU mines faster than a CPU]]. A variety of popular [[Mining rig|mining rigs]] have been documented.&lt;br /&gt;
==== FPGA Mining ====&lt;br /&gt;
FPGA mining is a very efficient and fast way to mine, comparable to GPU mining and drastically outperforming CPU mining. FPGAs typically consume very small amounts of power with relatively high hash ratings, making them more viable and efficient than GPU mining. See [[Mining Hardware Comparison]] for FPGA hardware specifications and statistics.&lt;br /&gt;
==== ASIC Mining ====&lt;br /&gt;
An application-specific integrated circuit, or &#039;&#039;ASIC&#039;&#039;, is a microchip designed and manufactured for a very specific purpose. ASICs designed for Bitcoin mining were first released in 2013. For the amount of power they consume, they are vastly faster than all previous technologies and already have made GPU mining financially.&lt;br /&gt;
&lt;br /&gt;
==== Mining services (Cloud mining) ====&lt;br /&gt;
[[:Category:Mining_contractors|Mining contractors]] provide mining services with performance specified by contract, often referred to as a &amp;quot;Mining Contract.&amp;quot; They may, for example, rent out a specific level of mining capacity for a set price at a specific duration.&lt;br /&gt;
&lt;br /&gt;
=== Pools ===&lt;br /&gt;
As more and more miners competed for the limited supply of blocks, individuals found that they were working for months without finding a block and receiving any reward for their mining efforts. This made mining something of a gamble. To address the variance in their income miners started organizing themselves into [[Pooled mining|pools]] so that they could share rewards more evenly. See [[Pooled mining]] and [[Comparison of mining pools]].&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
Bitcoin&#039;s public ledger (the &amp;quot;block chain&amp;quot;) was started on January 3rd, 2009 at 18:15 UTC presumably by [[Satoshi Nakamoto]]. The first block is known as the [[genesis block]]. The first transaction recorded in the first block was a single transaction paying the reward of 50 new bitcoins to its creator.&lt;br /&gt;
&lt;br /&gt;
== Staking ==&lt;br /&gt;
&lt;br /&gt;
Staking is a concept in the [[Delegated proof of stake]] coins, closely resembling pooled mining of proof of work coins. According to the [[Proof of Stake|proof of share]] principle, instead of computing powers, the partaking users are pooling their &#039;&#039;stakes&#039;&#039;, certain amounts of money, blocked on their wallets and delegated to the pool’s staking balance.&lt;br /&gt;
&lt;br /&gt;
The network periodically selects a pre-defined number of top staking pools (usually between 20 and 100), based on their staking balances, and allows them to validate transactions in order to get a reward. The rewards are then shared with the delegators, according to their stakes with the pool.&lt;br /&gt;
&lt;br /&gt;
Although staking doesn’t require lots of computing power as mining, it still needs very stable and fast Internet connection in order to collect, verify and sign all transactions in the queue within a small timespan, which can be as short as one second. If a pool fails to do so, it doesn’t get the reward, and it may be shared with the next pool in order.&lt;br /&gt;
&lt;br /&gt;
A lot of [[altcoin]]s are using staking. Staking is often marketed as a much more efficient alternative. Unfortunately staking has the potential to not be much different than politics. A good example is that it&#039;s easy for a big actor to take over the network by simply buying enough coins. This actually happened in 2020 when TRON&#039;s Justin Sun took over the Steem &amp;quot;forum&amp;quot; network and then did some things that made some people unhappy. &lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [https://99bitcoins.com/beginners-guide-to-mining/ Beginner&#039;s Guide to Bitcoin Mining]&lt;br /&gt;
* [https://www.zpool.ca Bitcoin Multipool]&lt;br /&gt;
* [https://www.bitcoinmining.com Bitcoin Mining]&lt;br /&gt;
* [http://codinginmysleep.com/bitcoin-mining-in-plain-english Bitcoin Mining in Plain English] by David Perry&lt;br /&gt;
* [https://www.weusecoins.com/en/mining-guide/ Getting Started With Bitcoin Mining]&lt;br /&gt;
* [[Automatically mine when computer is locked|Tutorial to automatically start mining when you lock your computer]]. (Windows 7)&lt;br /&gt;
* [http://bitcoinminer.com Bitcoin Miner]&lt;br /&gt;
* [http://www.bitcongress.org/bitcoin/best-bitcoin-mining-hardware/ Bitcoin Mining Hardware Comparison]&lt;br /&gt;
* [http://www.reddit.com/r/Bitcoin/comments/18q2jx/eli5_bitcoin_mining_xpost_in_eli5/ Simplified Explanation of Bitcoin Mining] by reddit user [http://www.reddit.com/user/azotic azotic]&lt;br /&gt;
* [https://bitcoinchain.com/pools Bitcoin Mining Pools Comparison]&lt;br /&gt;
* [http://www.bitcoinmining.com/best-bitcoin-cloud-mining-contract-reviews/ Research, Review and Compare Cloud Mining Contracts]&lt;br /&gt;
* [https://www.youtube.com/watch?v=GmOzih6I1zs Video: What is Bitcoin Mining?] &lt;br /&gt;
* [http://yogh.io/#mine:last Mining Simulator] ([https://github.com/JornC/bitcoin-transaction-explorer GitHub source])&lt;br /&gt;
* [http://bitcoindaily.org/bitcoin-guides/what-is-bitcoin-mining/ Bitcoin Mining Explained]&lt;br /&gt;
[[ru:Mining]]&lt;br /&gt;
[[Category:Mining]][[Category:Vocabulary]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Satoshi_(unit)&amp;diff=69363</id>
		<title>Satoshi (unit)</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Satoshi_(unit)&amp;diff=69363"/>
		<updated>2022-06-30T14:07:36Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: spelling corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SatoshiUsage.png|thumb|The term &amp;quot;satoshi&amp;quot; in use on a message board]]The &#039;&#039;&#039;satoshi&#039;&#039;&#039; is currently the smallest unit of the bitcoin currency recorded on the [[block chain]].&amp;lt;ref name=&amp;quot;se&amp;quot;&amp;gt;[http://bitcoin.stackexchange.com/questions/114/what-is-a-satoshi What is a &#039;Satoshi&#039;? - Bitcoin Stack Exchange]&amp;lt;/ref&amp;gt; It is a one hundred millionth of a single bitcoin (0.00000001 BTC).&amp;lt;ref name=&amp;quot;se&amp;quot;/&amp;gt; The unit has been named in collective homage to the original creator of Bitcoin, [[Satoshi Nakamoto]].&amp;lt;ref name=&amp;quot;ribuck&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All amounts in the blockchain are denominated in satoshi before being converted for display.&amp;lt;ref name=&amp;quot;why&amp;quot;&amp;gt;{{cite btct|title=Why 1BTC should equal 10^8 satoshi ?|date=11 October 2014|id=819656}}&amp;lt;/ref&amp;gt; The source code also uses satoshi when specifying an amount of bitcoin.&amp;lt;ref name=&amp;quot;nov08&amp;quot;/&amp;gt; When displaying an extremely fine fraction of a bitcoin, such as when calculating [[satoshi per byte|fee per byte]] or a [[Bitcoin faucet|faucet]] reward, the amount is displayed in satoshi for readability.&amp;lt;ref&amp;gt;{{cite web|title=How do I calculate my transaction fee?|work=[[21]] Support|author=Binns, Will|date=|accessdate=23 October 2017|url=https://support.21.co/bitcoin/transactions-and-fees/how-do-i-calculate-my-transaction-fee}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|title=Do These &amp;quot;Free Bitcoin&amp;quot; Sites Work?|work=[[CryptoCoinsNews]]|author=Barnes, Samuel|date=9 April 2014|accessdate=19 August 2015|url=https://www.cryptocoinsnews.com/do-free-bitcoin-sites-work/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although the satoshi is the finest amount that can be recorded in the blockchain,&amp;lt;ref name=&amp;quot;why&amp;quot;/&amp;gt; [[payment channels]] may need to make very granular payments and so are sometimes denominated in &#039;&#039;millisatoshi&#039;&#039;, which are one hundred billionths of a single bitcoin.&amp;lt;ref&amp;gt;[https://github.com/ElementsProject/lightning/blob/master/README.md#receiving-and-receiving-payments Receiving and receiving payments]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In January 2018, 1 Euro cent is worth approximately 83 satoshi.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The value of a bitcoin in satoshi was decided by Satoshi Nakamoto to be 100 million no later than November 2008.&amp;lt;ref name=&amp;quot;nov08&amp;quot;&amp;gt;{{cite btct|id=382374|date=23 December 2013|title=Bitcoin source from November 2008.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On November 15, 2010, ribuck proposed that the one hundredth of a bitcoin (0.01 BTC) be called a &#039;&#039;Satoshi&#039;&#039;.&amp;lt;ref&amp;gt;{{cite btct|id=369|post=22160|date=14 July 2010|title=Official Bitcoin Unicode Character?}}&amp;lt;/ref&amp;gt; Four months later he instead suggested that the one hundred millionth unit be called an &#039;&#039;austrian&#039;&#039; or a &#039;&#039;satoshi&#039;&#039;.&amp;lt;ref&amp;gt;{{cite btct|id=3311|post=46648|date=10 February 2011|title=More divisibility required - move the decimal point}}&amp;lt;/ref&amp;gt; The name &#039;&#039;satoshi&#039;&#039; caught on, and was widely adopted thereafter.&amp;lt;ref name=&amp;quot;ribuck&amp;quot;&amp;gt;{{cite btct|id=407442|post=4415850|date=9 January 2014|title=How did “satoshi” become the name of the base unit?}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In December 2017, BIP-176&amp;lt;ref&amp;gt;https://github.com/bitcoin/bips/blob/master/bip-0176.mediawiki&amp;lt;/ref&amp;gt; also proposed &amp;quot;Bits&amp;quot; be used as a standard term for 100 (one hundred) satoshis or 1/1,000,000 (one one-millionth) of a bitcoin.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Plural===&lt;br /&gt;
Traditionally, the plural form has been simply &#039;&#039;satoshi&#039;&#039;,&amp;lt;ref&amp;gt;[https://en.bitcoin.it/w/index.php?title=Help:FAQ&amp;amp;diff=53369&amp;amp;oldid=53362 Bitcoin Wiki revision by theymos]&amp;lt;/ref&amp;gt; but the term &#039;&#039;satoshis&#039;&#039; is also popular and equally correct. If the plural form were to follow the rules of Japanese grammar, it may be pronounced as &#039;&#039;satoshisa&#039;&#039;,&amp;lt;ref name=&amp;quot;jj73&amp;quot;&amp;gt;{{cite btct|id=289475|post=3112861|date=9 September 2013|title=satoshii}}&amp;lt;/ref&amp;gt; or simply &#039;&#039;satoshi&#039;&#039;.&amp;lt;ref name=&amp;quot;jj73&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Symbol===&lt;br /&gt;
Satoshi is often abbreviated to &#039;&#039;sat&#039;&#039; or &#039;&#039;s&#039;&#039;, although no currency symbol has been widely adopted. There are various proposed symbols:&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symbol&lt;br /&gt;
! Explanation&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Satoshi-symbol-small.png|frameless|left]]&lt;br /&gt;
| Reminiscent of the Japanese aesthetic, the closest character being 丰 meaning: &amp;quot;Bountiful - abundant, lush, bountiful, plenty, luxurious growth of grass&amp;quot; which suggests a vast amount of Satoshi are still left to mine. This symbol has been adopted by multiple Bitcoin services including satoshilabs.com (Trezor), SatoshiCap.net, pricedinbitcoin21.com, Thunderhub.io, bitcoinicons.com, thebitcoinmachines.com, and many more.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;font-size:x-large&amp;quot;&amp;gt;里&amp;lt;/span&amp;gt;&lt;br /&gt;
| In Japanese names, this character can (rarely) be read &amp;quot;satoshi&amp;quot;. It is an uncommon Chinese/Japanese character on its own, and an infrequent radical (kangxi #166). It can be seen as a radical in the common kanji 理 and 量, used in meaningful words like 理想 (ideals), 理論 (theory), 理性 (reason), 理科 (science), and 量 (quantity). &amp;quot;Satoshi&amp;quot; is a rare reading; more commonly it is read as &amp;quot;ri&amp;quot; or &amp;quot;sato&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;font-size:x-large&amp;quot;&amp;gt;シ&amp;lt;/span&amp;gt;&lt;br /&gt;
| A Japanese katakana representing the syllable &amp;quot;shi&amp;quot;. Note that this character is extremely common in Japanese, so it could cause confusion. Also, it can mean &amp;quot;death&amp;quot; in Japanese and Chinese.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;font-size:x-large&amp;quot;&amp;gt;㋛&amp;lt;/span&amp;gt;&lt;br /&gt;
| As above, but circled to distinguish it from the katakana.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;font-size:x-large&amp;quot;&amp;gt;し&amp;lt;/span&amp;gt;&lt;br /&gt;
| As above, but this is the hiragana instead of the katakana. This is even more common than シ in Japanese writing, however.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;font-size:x-large&amp;quot;&amp;gt;サ&amp;lt;/span&amp;gt;&lt;br /&gt;
| A Japanese katakana represents the syllable &amp;quot;sa&amp;quot;. Maybe it looks more reminiscent of a currency symbol than others. Note that this character is extremely common in Japanese, so it could cause confusion.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{article}}&lt;br /&gt;
[[Category:Denominations]]&lt;br /&gt;
[[Category:Terms and properties named after Satoshi Nakamoto]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Weaknesses&amp;diff=69362</id>
		<title>Weaknesses</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Weaknesses&amp;diff=69362"/>
		<updated>2022-06-30T13:44:49Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: /* Denial of Service (DoS) attacks */ added extra info and reference, corrected spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Might be a problem ==&lt;br /&gt;
=== Wallet Vulnerable To Theft ===&lt;br /&gt;
&lt;br /&gt;
The [[wallet]] is stored unencrypted, by default, and thus becomes a valuable target for theft.  Recent releases of the Bitcoin client now supports encryption to protect the wallet data, though the user must opt in.&lt;br /&gt;
&lt;br /&gt;
==== New wallets vulnerable with old passwords via backups ====&lt;br /&gt;
&lt;br /&gt;
An old copy of a wallet with its old password is often easily retrievable via an existing backup facility (particularly Apple Time-Machine): draining that old wallet, with its old password, drains the current wallet with the current password -- this is contrary to most non-technical users expectation of what &#039;change the password on your wallet&#039; should mean following password compromise.&lt;br /&gt;
&lt;br /&gt;
An initial solution is to mandate (either in code or as expressed policy) that changing a wallet&#039;s password causes (or asks the user to cause). The creation of a new wallet with new addresses and the sending of existing sums to them. Backed-up copies of the original wallet with the original password would then be empty, should they be compromised. On the downside, the password-changing process would potentially take much longer, cost a transaction fee or more, and initially at least, the new wallet is no longer backed up. On the upside, non-technical users won&#039;t find their wallets drained from security compromises they believed they had closed, nor be required to locate existing backups of a wallet in order to destroy them.&lt;br /&gt;
&lt;br /&gt;
=== Tracing a coin&#039;s history ===&lt;br /&gt;
Tracing a coin&#039;s history can be used to connect identities to addresses (the [[Anonymity]] article elaborates on this concern in greater detail).&lt;br /&gt;
&lt;br /&gt;
=== Sybil attack ===&lt;br /&gt;
If an attacker attempts to fill the network with clients that they control, you would then be very likely to connect only to attacker nodes.  Although Bitcoin never uses a count of nodes for anything, completely isolating a node from the honest network can be helpful in the execution of other attacks.&lt;br /&gt;
&lt;br /&gt;
This state can be exploited in (at least) the following ways:&lt;br /&gt;
&lt;br /&gt;
* the attacker can refuse to relay blocks and transactions from everyone, effectively disconnecting you from the network&lt;br /&gt;
* the attacker can relay only blocks that they create, effectively putting you on a separate network and then also leaving you open to [[double-spending]] attacks&lt;br /&gt;
* if you rely on transactions with 0 confirmations, the attacker can just filter out certain transactions to execute [[double-spending]] attacks&lt;br /&gt;
* low-latency encryption/anonymization of Bitcoin&#039;s transmissions (with Tor, JAP, etc.) can be defeated relatively easily with a timing attack if you&#039;re connected to several of the attacker&#039;s nodes and the attacker is watching your transmissions at your ISP&lt;br /&gt;
&lt;br /&gt;
Bitcoin makes these attacks more difficult by only making an outbound connection to one IP address per /16 (x.y.0.0).  Incoming connections are unlimited and unregulated, but this is generally only a problem in the anonymity case where you&#039;re probably already unable to accept incoming connections.&lt;br /&gt;
&lt;br /&gt;
Looking for suspiciously-low network hash-rates may help prevent the second one.&lt;br /&gt;
&lt;br /&gt;
=== Packet sniffing ===&lt;br /&gt;
Someone who can see all of your Internet traffic can easily see when you send a transaction that you didn&#039;t receive (which suggests you originated it). Bitcoin-QT has good Tor integration which closes this attack vector if used.&lt;br /&gt;
&lt;br /&gt;
=== Denial of Service (DoS) attacks ===&lt;br /&gt;
In most cases, a denial of service (DoS) happens when a node is overloaded by too much data being sent. A DoS attack is caused deliberately by external parties.&amp;lt;ref&amp;gt;https://www.ionos.com/digitalguide/server/know-how/dos-and-ddos-attack-patterns-at-a-glance/&amp;lt;/ref&amp;gt; This means that normal Bitcoin transactions cannot be made, although Bitcoin has some denial-of-service prevention built-in, it&#039;s likely still vulnerable to more sophisticated denial-of-service attacks.&lt;br /&gt;
&lt;br /&gt;
These are the current Bitcoin Satoshi client protections to deter DoS attacks, as of version 0.7.0:&lt;br /&gt;
&lt;br /&gt;
# Does not forward orphan transactions/blocks&lt;br /&gt;
# Does not forward double-spend transactions&lt;br /&gt;
# Does not forward the same block, transaction, or alert twice to the same peer.&lt;br /&gt;
# Continuous rate-limit of free transactions to mitigate &#039;penny-flooding&#039;&lt;br /&gt;
# Keeps a DoS score of each connected peer and disconnects from a peer that sends messages that fail to comply with the rules.&lt;br /&gt;
# Bans IP addresses that misbehave for a time-lapse (24 hours default)&lt;br /&gt;
# Limits the number of stored orphan transactions (10000 by default)&lt;br /&gt;
# Uses a signature cache to prevent attacks that try to continuously trigger the re-verification of stored orphan transactions (protects from https://bitcointalk.org/index.php?topic=136422.0 attack)&lt;br /&gt;
# Limits the number of stored signatures in the signature cache (50000 signatures by default)&lt;br /&gt;
# Tries to catch all possible errors in transactions before the signature verifications take place, to avoid DoS attacks on CPU usage.&lt;br /&gt;
# Penalizes peers that send lots of duplicate/expired/invalid-signature/whatever alerts, so they eventually get banned.&lt;br /&gt;
# In orphan/signature caches, when removing an item, evicts a random entry.&lt;br /&gt;
# Data structures are specially chosen to avoid loops in which the number of iterations can be controlled by an attacker resulting in an exponential complexity.&lt;br /&gt;
# Ignores big orphan transactions, to avoid a send-big-orphans memory exhaustion attack.&lt;br /&gt;
# In RPC: Only sends an HTTP 403 response if it&#039;s not using SSL to prevent a DoS during the SSL handshake.&lt;br /&gt;
# In RPC: Sleeps some time if authorization fails to deter brute-forcing short passwords.&lt;br /&gt;
# In GUI: Limits URI length to prevent a DoS against the QR-Code dialog&lt;br /&gt;
# Considers non-standard signature scripts with size greater than 500 bytes.&lt;br /&gt;
# Considers non-standard signature scripts that contain operations that are not PUSHs.&lt;br /&gt;
# Does not forward nor process non-standard transactions&lt;br /&gt;
&lt;br /&gt;
These are protocol rules built to prevent DoS:&lt;br /&gt;
&lt;br /&gt;
# Restricts the block size to 1 megabyte.&lt;br /&gt;
# Restricts the maximum number of signature checks a transaction input may request&lt;br /&gt;
# Limits the size of each script (up to 10000 bytes)&lt;br /&gt;
# Limits the size of each value pushed while evaluating a script (up to 520 bytes)&lt;br /&gt;
# Limits the number of expensive operations in a script (up to 201 operations). All but pushs are considered expensive. Also, each key argument of signature checking in multi-signature checking (OP_CHECKMULTISIG) is considered an additional operation.&lt;br /&gt;
# Limits the number of key arguments OP_CHECKMULTISIG can use (up to 20 keys)&lt;br /&gt;
# Limits the number of the stack elements that can be stored simultaneously (up to 1000 elements, in standard and alt stacks together)&lt;br /&gt;
# Limits the number of signature checks a block may request (up to 20000 checks)&lt;br /&gt;
&lt;br /&gt;
These are the Satoshi client protections added in version 0.8.0: &lt;br /&gt;
&lt;br /&gt;
# Transactions greater than 100 Kbytes are considered non-standard (protects from variations of the https://bitcointalk.org/index.php?topic=140078.0 attack).&lt;br /&gt;
# Only the UXTO (Unspent Transaction Output Set) is stored in memory, the remaining data is stored on disk.&lt;br /&gt;
# When processing a transaction, before fetching transaction inputs from disk to memory, the client checks that all the inputs are unspent (protects from the Continuous Hard Disk Seek/Read Activity (https://bitcointalk.org/index.php?topic=144122.0) DoS attack)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Satoshi client does not directly limit peer bandwidth nor CPU usage.&lt;br /&gt;
&lt;br /&gt;
=== Forcing clock drift against a target node ===&lt;br /&gt;
&lt;br /&gt;
See [http://culubas.blogspot.com/2011/05/timejacking-bitcoin_802.html Timejacking] for a description of this attack. It can be fixed by changing how nodes calculate the current time.&lt;br /&gt;
&lt;br /&gt;
=== Illegal content in the block chain ===&lt;br /&gt;
It is illegal in some countries to possess/distribute certain kinds of data. Since arbitrary data can be included in Bitcoin transactions, and full Bitcoin nodes must normally have a copy of all unspent transactions, this could cause legal problems. However, Local node policy generally doesn&#039;t permit arbitrary data (transactions attempting to embed data are non-standard), but steganographic embedding can still be used though this generally limits storage to small amounts.  [http://sourceforge.net/mailarchive/message.php?msg_id=30705609 Various ideas have been proposed] to further limit data storage in the [[UTXO|UTXO set]] (but are not currently being seriously considered for deployment).&lt;br /&gt;
&lt;br /&gt;
=== Security Vulnerabilities and bugs  ===&lt;br /&gt;
It&#039;s possible but unlikely that a newly discovered bug or security vulnerability in the standard client could lead to a block chain split, or the need for every node to upgrade in a short time period. For example, a single malformed message tailored to exploit a specific vulnerability, when spread from node to node, could cause the whole network to shutdown in a few hours. Bugs that break user anonymity, on the contrary, have been found, since the pseudo-anonymity property of Bitcoin has been analyzed less.&lt;br /&gt;
Starting from version 0.7.0, Bitcoin client can be considered a mature project. The security critical sections of the source code are updated less and less frequently and those parts have been reviewed by many computer security experts. Also Bitcoin Satoshi client has passed the test of being on-line for more than 3 years, without a single vulnerability being exploited &#039;&#039;in the wild&#039;&#039;. &lt;br /&gt;
See [[Common Vulnerabilities and Exposures]] for a detailed list of vulnerabilities detected and fixed.&lt;br /&gt;
&lt;br /&gt;
=== Energy Consumption ===&lt;br /&gt;
Energy consumption for mining has a high correlation with bitcoin value (exchange rate). Because variable costs of [[mining]] are dominated by electricity price, the economic equilibrium for the mining rate is reached when global electricity costs for mining approximate the value of [[mining]] reward plus [[transaction_fee | transaction fees]]. &lt;br /&gt;
&lt;br /&gt;
So the higher the value of one bitcoin, the higher the value of mining rewards and transaction fees, the higher the energy consumption of the bitcoin network in the long run.&lt;br /&gt;
&lt;br /&gt;
* more efficient mining gear does not reduce energy use of the bitcoin network. It will only raise the network [[difficulty]]&lt;br /&gt;
* cheaper energy linearly increases mining energy use of the bitcoin network&lt;br /&gt;
* the same conclusions apply to all [[proof of work]] based currencies.&lt;br /&gt;
&lt;br /&gt;
== Probably not a problem ==&lt;br /&gt;
&lt;br /&gt;
===Breaking the cryptography===&lt;br /&gt;
SHA-256 and [[ECDSA]] are considered very strong currently, but they might be broken in the far future. If that happens, Bitcoin can shift to a stronger algorithm. [https://bitcointalk.org/index.php?topic=191.msg1585#msg1585 More info].&lt;br /&gt;
&lt;br /&gt;
===Scalability===&lt;br /&gt;
Bitcoin can easily scale beyond the level of traffic VISA sees globally today. See the discussion on the [[scalability]] page for more information.&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
If there is even a &amp;quot;trickle&amp;quot; of a connection between two sides of a segmented network, things should still work perfectly. When block chains are combined, all of the non-generation transactions in the shorter chain are re-added to the transaction pool -- they&#039;ll start over at 0/unconfirmed, but they&#039;ll still be valid. No mature transactions will be lost unless the segmentation persists for longer than ~120 blocks. Then generations will start to mature, and any transactions based on those generations will become invalid when recombined with the longer chain. [https://bitcointalk.org/index.php?topic=241.msg2071#msg2071 More info].&lt;br /&gt;
&lt;br /&gt;
=== Attacking all users ===&lt;br /&gt;
The IP addresses of most users are totally public. You can use Tor to hide this, but the network won&#039;t work if everyone does this. Bitcoin requires that &#039;&#039;some&#039;&#039; country is still free.&lt;br /&gt;
&lt;br /&gt;
=== Dropping transactions ===&lt;br /&gt;
Nodes that generate blocks can choose not to include a transaction in their blocks. When this happens, the transaction remains &amp;quot;active&amp;quot; and can be included in a later block. Two things discourage this:&lt;br /&gt;
* Nodes only hash a fixed-size &#039;&#039;header&#039;&#039;, so there is no speed advantage to dropping transactions.&lt;br /&gt;
* [[Satoshi]] has [https://bitcointalk.org/index.php?topic=165.msg1595#msg1595 communicated] that he will write code to stop this kind of thing if it becomes a problem.&lt;br /&gt;
&lt;br /&gt;
=== Attacker has a lot of computing power ===&lt;br /&gt;
An attacker that controls more than 50% of the network&#039;s computing power can, for the time that he is in control, exclude and modify the ordering of transactions. This allows him to:&lt;br /&gt;
* Reverse transactions that he sends while he&#039;s in control.  This has the potential to [[Double-spending#51.25_attack|double-spend transactions]] that previously had already been seen in the block chain, affecting all coins that share a history with the reversed transaction&lt;br /&gt;
* Reverse confirmations for any transaction that had previously been seen in the block chain while he’s in control. &lt;br /&gt;
* Prevent some or all transactions from gaining any confirmations&lt;br /&gt;
* Prevent some or all other miners from mining any valid blocks&lt;br /&gt;
The attacker &#039;&#039;can&#039;t&#039;&#039;:&lt;br /&gt;
* Reverse other people&#039;s transactions without their cooperation (unless their coin history has been affected by a double-spend)&lt;br /&gt;
* Prevent transactions from being sent at all (they&#039;ll show as 0/unconfirmed)&lt;br /&gt;
* Change the number of coins generated per block&lt;br /&gt;
* Create coins out of thin air&lt;br /&gt;
* Send coins that never belonged to him&lt;br /&gt;
&lt;br /&gt;
Note that the above limitations only apply to the perspective of Bitcoin as seen by [[full node]]s. Some lightweight nodes work by trusting miners absolutely; from the perspective of Bitcoin as seen by lightweight nodes, miners &#039;&#039;can&#039;&#039; steal BTC, etc. This is one of the reasons why lightweight nodes are less secure than full nodes.&lt;br /&gt;
&lt;br /&gt;
With less than 50%, the same kind of attacks are possible, but with less than 100% rate of success.&lt;br /&gt;
For example, someone with only 40% of the network computing power can overcome a 6-deep confirmed transaction with a 50% success rate &amp;lt;ref&amp;gt;https://bitcoil.co.il/Doublespend.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It&#039;s much more difficult to change historical blocks, and it becomes exponentially more difficult the further back you go. As above, changing historical blocks only allows you to exclude and change the ordering of transactions. If miners rewrite historical blocks too far back, then full nodes with pruning enabled will be unable to continue, and will shut down; the network situation would then probably need to be untangled manually (eg. by updating the software to reject this chain even though it is longer).&lt;br /&gt;
&lt;br /&gt;
Since this attack doesn&#039;t permit all that much power over the network, it is expected that rational miners will not attempt it. A profit-seeking miner should always gain more by just following the rules, and even someone trying to destroy the system might find other attacks more attractive. Probably the most likely scenario where this attack would be employed would be for a government to try to get control over Bitcoin by acquiring a majority of hashing power (either directly or by enforcing rules on private miners within its borders). Then this government could use the transaction-censorship power listed above to do things like:&lt;br /&gt;
&lt;br /&gt;
* Prevent any transactions spending &amp;quot;stolen&amp;quot; coins, effectively destroying those coins. If the coins clearly are stolen, then there is a risk that this action will be accepted by the Bitcoin community, but this would set a very damaging precedent. If it becomes possible for coins to be blacklisted in this way, then it is a slippery slope toward blacklisting of other &amp;quot;suspicious&amp;quot; coins.&lt;br /&gt;
* Prevent all transactions from unknown people, so everyone has to register with the government in order to transact.&lt;br /&gt;
&lt;br /&gt;
The appropriate response to any long-term attack by miners is a [[hardfork]] to change the proof-of-work function. This fires all existing miners, and allows totally new ones to replace them.&lt;br /&gt;
&lt;br /&gt;
See also: [[Majority_attack]]&lt;br /&gt;
&lt;br /&gt;
=== Spamming transactions ===&lt;br /&gt;
{{main|Flood attack}}&lt;br /&gt;
It is easy to send transactions to yourself repeatedly. If these transactions fill blocks to the maximum size (1MB), other transactions would be delayed until the next block.&lt;br /&gt;
&lt;br /&gt;
This is made expensive by the [[transaction fee|fees]] that would be required after the 50KB of free transactions per block are exhausted. An attacker will eventually eliminate free transactions, but Bitcoin fees will always be low because raising fees above 0.01 BTC per KB would require spending transaction fees. An attacker will eventually run out of money. Even if an attacker wants to waste money, transactions are further prioritized by the time since the coins were last spent, so attacks spending the same coins repeatedly are less effective.&lt;br /&gt;
&lt;br /&gt;
=== The [[Double-spending#Finney_attack|Finney attack]] ===&lt;br /&gt;
Named for Hal Finney, who first described this variation of a double-spend attack involving accepting [http://www.bitcointalk.org/index.php?topic=3441.msg48384#msg48384 0-confirmation transactions].  Accepting 0-confirmation large-value transactions is problematic; accepting them for low-value transactions (after waiting several seconds to detect an ordinary double-spend attempt) is probably safe.&lt;br /&gt;
&lt;br /&gt;
===Rival/malicious client code===&lt;br /&gt;
Any rival client must follow Bitcoin&#039;s rules or else all current Bitcoin clients will ignore it. You&#039;d have to actually get people to &#039;&#039;use&#039;&#039; your client. A better client that pretends to follow the same rules, but with an exception known only to the author (possibly by making it closed source), might conceivably be able to gain widespread adoption. At that point, its author could use his exception and go largely unnoticed.&lt;br /&gt;
&lt;br /&gt;
== Definitely not a problem ==&lt;br /&gt;
&lt;br /&gt;
===Coin destruction===&lt;br /&gt;
Bitcoin has 2.1 quadrillion raw units, making up 8 decimals of BTC precision, so the entire network could potentially operate on much less than the full quantity of Bitcoins. If deflation gets to the point where transactions of more than 10 BTC are unheard of, clients can just switch to another unit so that, for example, it shows 10 mBTC rather than 0.01 BTC.&lt;br /&gt;
&lt;br /&gt;
The maximum number of raw units might not be enough if the &#039;&#039;entire world&#039;&#039; starts using BTC, but it would not be too difficult to increase precision in that case. The transaction format and version number would be scheduled to change at some particular block number after a year or two, and everyone would have to update by then.&lt;br /&gt;
&lt;br /&gt;
===Generating tons of addresses===&lt;br /&gt;
Generating an address doesn&#039;t touch the network at all. You&#039;d only be wasting your CPU resources and disk space.&lt;br /&gt;
&lt;br /&gt;
Also, a collision is highly unlikely.&lt;br /&gt;
&lt;br /&gt;
Keys are 256 bit in length and are hashed in a 160 bit address.(2^160th power)&lt;br /&gt;
Divide it by the world population and you have about 215,000,000,000,000,000,000,000,000,000,000,000,000 addresses per capita.(2.15 x 10^38)[http://www.wolframalpha.com/input/?i=2^160+%2F+world+population]&lt;br /&gt;
&lt;br /&gt;
===Everyone calculates at the same rate===&lt;br /&gt;
If everyone began with identical blocks and started their nonce at 1 and incremented, the fastest machine would always win. However, each block contains a new, random public key known only to you in the list of transactions.  The 256-bit &amp;quot;Merkle tree&amp;quot; hash of this is part of the block header.&lt;br /&gt;
&lt;br /&gt;
So everyone begins with slightly different blocks and everyone truly has a random chance of winning (modified by CPU power).&lt;br /&gt;
&lt;br /&gt;
===Generate &amp;quot;valid&amp;quot; blocks with a lower difficulty than normal===&lt;br /&gt;
Using unmodified Bitcoin code, an attacker could segment himself from the main network and generate a long block chain with a lower difficulty than the real network. These blocks would be totally valid for his network. However, it would be impossible to combine the two networks (and the &amp;quot;false&amp;quot; chain would be destroyed in the process).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Block chain length&amp;quot; is calculated from the combined difficulty of all the blocks, not just the number of blocks in the chain. The one that represents the most computation will win.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Double-spending]]&lt;br /&gt;
* [http://bitcoin.stackexchange.com/questions/10025/where-can-i-find-well-written-criticism-about-bitcoin Stack Exchange]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Weaknesses&amp;diff=69361</id>
		<title>Weaknesses</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Weaknesses&amp;diff=69361"/>
		<updated>2022-06-30T12:42:48Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: /* Wallet Vulnerable To Theft */ spell and gramar check&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Might be a problem ==&lt;br /&gt;
=== Wallet Vulnerable To Theft ===&lt;br /&gt;
&lt;br /&gt;
The [[wallet]] is stored unencrypted, by default, and thus becomes a valuable target for theft.  Recent releases of the Bitcoin client now supports encryption to protect the wallet data, though the user must opt in.&lt;br /&gt;
&lt;br /&gt;
==== New wallets vulnerable with old passwords via backups ====&lt;br /&gt;
&lt;br /&gt;
An old copy of a wallet with its old password is often easily retrievable via an existing backup facility (particularly Apple Time-Machine): draining that old wallet, with its old password, drains the current wallet with the current password -- this is contrary to most non-technical users expectation of what &#039;change the password on your wallet&#039; should mean following password compromise.&lt;br /&gt;
&lt;br /&gt;
An initial solution is to mandate (either in code or as expressed policy) that changing a wallet&#039;s password causes (or asks the user to cause). The creation of a new wallet with new addresses and the sending of existing sums to them. Backed-up copies of the original wallet with the original password would then be empty, should they be compromised. On the downside, the password-changing process would potentially take much longer, cost a transaction fee or more, and initially at least, the new wallet is no longer backed up. On the upside, non-technical users won&#039;t find their wallets drained from security compromises they believed they had closed, nor be required to locate existing backups of a wallet in order to destroy them.&lt;br /&gt;
&lt;br /&gt;
=== Tracing a coin&#039;s history ===&lt;br /&gt;
Tracing a coin&#039;s history can be used to connect identities to addresses (the [[Anonymity]] article elaborates on this concern in greater detail).&lt;br /&gt;
&lt;br /&gt;
=== Sybil attack ===&lt;br /&gt;
If an attacker attempts to fill the network with clients that they control, you would then be very likely to connect only to attacker nodes.  Although Bitcoin never uses a count of nodes for anything, completely isolating a node from the honest network can be helpful in the execution of other attacks.&lt;br /&gt;
&lt;br /&gt;
This state can be exploited in (at least) the following ways:&lt;br /&gt;
&lt;br /&gt;
* the attacker can refuse to relay blocks and transactions from everyone, effectively disconnecting you from the network&lt;br /&gt;
* the attacker can relay only blocks that they create, effectively putting you on a separate network and then also leaving you open to [[double-spending]] attacks&lt;br /&gt;
* if you rely on transactions with 0 confirmations, the attacker can just filter out certain transactions to execute [[double-spending]] attacks&lt;br /&gt;
* low-latency encryption/anonymization of Bitcoin&#039;s transmissions (with Tor, JAP, etc.) can be defeated relatively easily with a timing attack if you&#039;re connected to several of the attacker&#039;s nodes and the attacker is watching your transmissions at your ISP&lt;br /&gt;
&lt;br /&gt;
Bitcoin makes these attacks more difficult by only making an outbound connection to one IP address per /16 (x.y.0.0).  Incoming connections are unlimited and unregulated, but this is generally only a problem in the anonymity case where you&#039;re probably already unable to accept incoming connections.&lt;br /&gt;
&lt;br /&gt;
Looking for suspiciously-low network hash-rates may help prevent the second one.&lt;br /&gt;
&lt;br /&gt;
=== Packet sniffing ===&lt;br /&gt;
Someone who can see all of your Internet traffic can easily see when you send a transaction that you didn&#039;t receive (which suggests you originated it). Bitcoin-QT has good Tor integration which closes this attack vector if used.&lt;br /&gt;
&lt;br /&gt;
=== Denial of Service (DoS) attacks ===&lt;br /&gt;
Sending lots of data to a node may make it so busy it cannot process normal Bitcoin transactions.  Bitcoin has some denial-of-service prevention built-in, but is likely still vulnerable to more sophisticated denial-of-service attacks.&lt;br /&gt;
&lt;br /&gt;
These are the current Bitcoin Satoshi client protections to deter DoS attacks, as of version 0.7.0:&lt;br /&gt;
&lt;br /&gt;
# Does not forward orphan transactions/blocks&lt;br /&gt;
# Does not forward double-spend transactions&lt;br /&gt;
# Does not forward the same block, transaction or alert twice to the same peer.&lt;br /&gt;
# Continuous rate-limit of free transactions to mitigate &#039;penny-flooding&#039;&lt;br /&gt;
# Keeps a DoS score of each connected peer and disconnects from a peer that send messages that fail to comply with the rules.&lt;br /&gt;
# Bans IP addresses that misbehave for a time lapse (24 hours default)&lt;br /&gt;
# Limits the number of stored orphan transactions (10000 by default)&lt;br /&gt;
# Uses a signature cache to prevent attacks that try to continuously trigger the re-verification of stored orphan transactions (protects from https://bitcointalk.org/index.php?topic=136422.0 attack)&lt;br /&gt;
# Limits the number of stored signatures in the signature cache (50000 signatures by default)&lt;br /&gt;
# Tries to catch all possible errors in transactions before the signature verifications take place, to avoid DoS attacks on CPU usage.&lt;br /&gt;
# Penalizes peers that send lots of duplicate/expired/invalid-signature/whatever alerts, so they eventually get banned.&lt;br /&gt;
# In orphan/signature caches, when removing an item, evicts a random entry.&lt;br /&gt;
# Data structures are specially chosen to avoid loops in which the number of iterations can be controlled by an attacker that result in exponential complexity.&lt;br /&gt;
# Ignores big orphan transactions, to avoid a send-big-orphans memory exhaustion attack.&lt;br /&gt;
# In RPC: Only sends a HTTP 403 response if it&#039;s not using SSL to prevent a DoS during the SSL handshake.&lt;br /&gt;
# In RPC: Sleeps some time if authorization fails to deter brute-forcing short passwords.&lt;br /&gt;
# In GUI: Limits URI length to prevent a DoS against the QR-Code dialog&lt;br /&gt;
# Considers non-standard signature scripts with size greater than 500 bytes.&lt;br /&gt;
# Considers non-standard signature scripts that contain operations that are not PUSHs.&lt;br /&gt;
# Does not forward nor process non-standard transactions&lt;br /&gt;
&lt;br /&gt;
These are protocol rules built to prevent DoS:&lt;br /&gt;
&lt;br /&gt;
# Restricts the block size to 1 megabyte.&lt;br /&gt;
# Restricts the maximum number of signature checks a transaction input may request&lt;br /&gt;
# Limits the size of each script (up to 10000 bytes)&lt;br /&gt;
# Limits the size of each value pushed while evaluating a a script (up to 520 bytes)&lt;br /&gt;
# Limits the number of expensive operations in a script (up to 201 operations). All but pushs are considered expensive. Also each key argument of signature checking in multi-signature checking (OP_CHECKMULTISIG) is considered an additional operation.&lt;br /&gt;
# Limits the number of key arguments OP_CHECKMULTISIG can use (up to 20 keys)&lt;br /&gt;
# Limits the number of the stack elements that can be stored simultaneously (up to 1000 elements, in standard and alt stacks together)&lt;br /&gt;
# Limits the number of signature checks a block may request (up to 20000 checks)&lt;br /&gt;
&lt;br /&gt;
These are the Satoshi client protections added in version 0.8.0: &lt;br /&gt;
&lt;br /&gt;
# Transactions greater than 100 Kbytes are considered non-standard (protects from variations of the https://bitcointalk.org/index.php?topic=140078.0 attack).&lt;br /&gt;
# Only the UXTO (Unspent Transaction Output Set) is stored in memory, the remaining data is stored on disk.&lt;br /&gt;
# When processing a transaction, before fetching transaction inputs from disk to memory, the client checks that all the inputs are unspent (protects from the Continuous Hard Disk Seek/Read Activity (https://bitcointalk.org/index.php?topic=144122.0) DoS attack)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Satoshi client does not directly limit peer bandwidth nor CPU usage.&lt;br /&gt;
&lt;br /&gt;
=== Forcing clock drift against a target node ===&lt;br /&gt;
&lt;br /&gt;
See [http://culubas.blogspot.com/2011/05/timejacking-bitcoin_802.html Timejacking] for a description of this attack. It can be fixed by changing how nodes calculate the current time.&lt;br /&gt;
&lt;br /&gt;
=== Illegal content in the block chain ===&lt;br /&gt;
It is illegal in some countries to possess/distribute certain kinds of data. Since arbitrary data can be included in Bitcoin transactions, and full Bitcoin nodes must normally have a copy of all unspent transactions, this could cause legal problems. However, Local node policy generally doesn&#039;t permit arbitrary data (transactions attempting to embed data are non-standard), but steganographic embedding can still be used though this generally limits storage to small amounts.  [http://sourceforge.net/mailarchive/message.php?msg_id=30705609 Various ideas have been proposed] to further limit data storage in the [[UTXO|UTXO set]] (but are not currently being seriously considered for deployment).&lt;br /&gt;
&lt;br /&gt;
=== Security Vulnerabilities and bugs  ===&lt;br /&gt;
It&#039;s possible but unlikely that a newly discovered bug or security vulnerability in the standard client could lead to a block chain split, or the need for every node to upgrade in a short time period. For example, a single malformed message tailored to exploit a specific vulnerability, when spread from node to node, could cause the whole network to shutdown in a few hours. Bugs that break user anonymity, on the contrary, have been found, since the pseudo-anonymity property of Bitcoin has been analyzed less.&lt;br /&gt;
Starting from version 0.7.0, Bitcoin client can be considered a mature project. The security critical sections of the source code are updated less and less frequently and those parts have been reviewed by many computer security experts. Also Bitcoin Satoshi client has passed the test of being on-line for more than 3 years, without a single vulnerability being exploited &#039;&#039;in the wild&#039;&#039;. &lt;br /&gt;
See [[Common Vulnerabilities and Exposures]] for a detailed list of vulnerabilities detected and fixed.&lt;br /&gt;
&lt;br /&gt;
=== Energy Consumption ===&lt;br /&gt;
Energy consumption for mining has a high correlation with bitcoin value (exchange rate). Because variable costs of [[mining]] are dominated by electricity price, the economic equilibrium for the mining rate is reached when global electricity costs for mining approximate the value of [[mining]] reward plus [[transaction_fee | transaction fees]]. &lt;br /&gt;
&lt;br /&gt;
So the higher the value of one bitcoin, the higher the value of mining rewards and transaction fees, the higher the energy consumption of the bitcoin network in the long run.&lt;br /&gt;
&lt;br /&gt;
* more efficient mining gear does not reduce energy use of the bitcoin network. It will only raise the network [[difficulty]]&lt;br /&gt;
* cheaper energy linearly increases mining energy use of the bitcoin network&lt;br /&gt;
* the same conclusions apply to all [[proof of work]] based currencies.&lt;br /&gt;
&lt;br /&gt;
== Probably not a problem ==&lt;br /&gt;
&lt;br /&gt;
===Breaking the cryptography===&lt;br /&gt;
SHA-256 and [[ECDSA]] are considered very strong currently, but they might be broken in the far future. If that happens, Bitcoin can shift to a stronger algorithm. [https://bitcointalk.org/index.php?topic=191.msg1585#msg1585 More info].&lt;br /&gt;
&lt;br /&gt;
===Scalability===&lt;br /&gt;
Bitcoin can easily scale beyond the level of traffic VISA sees globally today. See the discussion on the [[scalability]] page for more information.&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
If there is even a &amp;quot;trickle&amp;quot; of a connection between two sides of a segmented network, things should still work perfectly. When block chains are combined, all of the non-generation transactions in the shorter chain are re-added to the transaction pool -- they&#039;ll start over at 0/unconfirmed, but they&#039;ll still be valid. No mature transactions will be lost unless the segmentation persists for longer than ~120 blocks. Then generations will start to mature, and any transactions based on those generations will become invalid when recombined with the longer chain. [https://bitcointalk.org/index.php?topic=241.msg2071#msg2071 More info].&lt;br /&gt;
&lt;br /&gt;
=== Attacking all users ===&lt;br /&gt;
The IP addresses of most users are totally public. You can use Tor to hide this, but the network won&#039;t work if everyone does this. Bitcoin requires that &#039;&#039;some&#039;&#039; country is still free.&lt;br /&gt;
&lt;br /&gt;
=== Dropping transactions ===&lt;br /&gt;
Nodes that generate blocks can choose not to include a transaction in their blocks. When this happens, the transaction remains &amp;quot;active&amp;quot; and can be included in a later block. Two things discourage this:&lt;br /&gt;
* Nodes only hash a fixed-size &#039;&#039;header&#039;&#039;, so there is no speed advantage to dropping transactions.&lt;br /&gt;
* [[Satoshi]] has [https://bitcointalk.org/index.php?topic=165.msg1595#msg1595 communicated] that he will write code to stop this kind of thing if it becomes a problem.&lt;br /&gt;
&lt;br /&gt;
=== Attacker has a lot of computing power ===&lt;br /&gt;
An attacker that controls more than 50% of the network&#039;s computing power can, for the time that he is in control, exclude and modify the ordering of transactions. This allows him to:&lt;br /&gt;
* Reverse transactions that he sends while he&#039;s in control.  This has the potential to [[Double-spending#51.25_attack|double-spend transactions]] that previously had already been seen in the block chain, affecting all coins that share a history with the reversed transaction&lt;br /&gt;
* Reverse confirmations for any transaction that had previously been seen in the block chain while he’s in control. &lt;br /&gt;
* Prevent some or all transactions from gaining any confirmations&lt;br /&gt;
* Prevent some or all other miners from mining any valid blocks&lt;br /&gt;
The attacker &#039;&#039;can&#039;t&#039;&#039;:&lt;br /&gt;
* Reverse other people&#039;s transactions without their cooperation (unless their coin history has been affected by a double-spend)&lt;br /&gt;
* Prevent transactions from being sent at all (they&#039;ll show as 0/unconfirmed)&lt;br /&gt;
* Change the number of coins generated per block&lt;br /&gt;
* Create coins out of thin air&lt;br /&gt;
* Send coins that never belonged to him&lt;br /&gt;
&lt;br /&gt;
Note that the above limitations only apply to the perspective of Bitcoin as seen by [[full node]]s. Some lightweight nodes work by trusting miners absolutely; from the perspective of Bitcoin as seen by lightweight nodes, miners &#039;&#039;can&#039;&#039; steal BTC, etc. This is one of the reasons why lightweight nodes are less secure than full nodes.&lt;br /&gt;
&lt;br /&gt;
With less than 50%, the same kind of attacks are possible, but with less than 100% rate of success.&lt;br /&gt;
For example, someone with only 40% of the network computing power can overcome a 6-deep confirmed transaction with a 50% success rate &amp;lt;ref&amp;gt;https://bitcoil.co.il/Doublespend.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It&#039;s much more difficult to change historical blocks, and it becomes exponentially more difficult the further back you go. As above, changing historical blocks only allows you to exclude and change the ordering of transactions. If miners rewrite historical blocks too far back, then full nodes with pruning enabled will be unable to continue, and will shut down; the network situation would then probably need to be untangled manually (eg. by updating the software to reject this chain even though it is longer).&lt;br /&gt;
&lt;br /&gt;
Since this attack doesn&#039;t permit all that much power over the network, it is expected that rational miners will not attempt it. A profit-seeking miner should always gain more by just following the rules, and even someone trying to destroy the system might find other attacks more attractive. Probably the most likely scenario where this attack would be employed would be for a government to try to get control over Bitcoin by acquiring a majority of hashing power (either directly or by enforcing rules on private miners within its borders). Then this government could use the transaction-censorship power listed above to do things like:&lt;br /&gt;
&lt;br /&gt;
* Prevent any transactions spending &amp;quot;stolen&amp;quot; coins, effectively destroying those coins. If the coins clearly are stolen, then there is a risk that this action will be accepted by the Bitcoin community, but this would set a very damaging precedent. If it becomes possible for coins to be blacklisted in this way, then it is a slippery slope toward blacklisting of other &amp;quot;suspicious&amp;quot; coins.&lt;br /&gt;
* Prevent all transactions from unknown people, so everyone has to register with the government in order to transact.&lt;br /&gt;
&lt;br /&gt;
The appropriate response to any long-term attack by miners is a [[hardfork]] to change the proof-of-work function. This fires all existing miners, and allows totally new ones to replace them.&lt;br /&gt;
&lt;br /&gt;
See also: [[Majority_attack]]&lt;br /&gt;
&lt;br /&gt;
=== Spamming transactions ===&lt;br /&gt;
{{main|Flood attack}}&lt;br /&gt;
It is easy to send transactions to yourself repeatedly. If these transactions fill blocks to the maximum size (1MB), other transactions would be delayed until the next block.&lt;br /&gt;
&lt;br /&gt;
This is made expensive by the [[transaction fee|fees]] that would be required after the 50KB of free transactions per block are exhausted. An attacker will eventually eliminate free transactions, but Bitcoin fees will always be low because raising fees above 0.01 BTC per KB would require spending transaction fees. An attacker will eventually run out of money. Even if an attacker wants to waste money, transactions are further prioritized by the time since the coins were last spent, so attacks spending the same coins repeatedly are less effective.&lt;br /&gt;
&lt;br /&gt;
=== The [[Double-spending#Finney_attack|Finney attack]] ===&lt;br /&gt;
Named for Hal Finney, who first described this variation of a double-spend attack involving accepting [http://www.bitcointalk.org/index.php?topic=3441.msg48384#msg48384 0-confirmation transactions].  Accepting 0-confirmation large-value transactions is problematic; accepting them for low-value transactions (after waiting several seconds to detect an ordinary double-spend attempt) is probably safe.&lt;br /&gt;
&lt;br /&gt;
===Rival/malicious client code===&lt;br /&gt;
Any rival client must follow Bitcoin&#039;s rules or else all current Bitcoin clients will ignore it. You&#039;d have to actually get people to &#039;&#039;use&#039;&#039; your client. A better client that pretends to follow the same rules, but with an exception known only to the author (possibly by making it closed source), might conceivably be able to gain widespread adoption. At that point, its author could use his exception and go largely unnoticed.&lt;br /&gt;
&lt;br /&gt;
== Definitely not a problem ==&lt;br /&gt;
&lt;br /&gt;
===Coin destruction===&lt;br /&gt;
Bitcoin has 2.1 quadrillion raw units, making up 8 decimals of BTC precision, so the entire network could potentially operate on much less than the full quantity of Bitcoins. If deflation gets to the point where transactions of more than 10 BTC are unheard of, clients can just switch to another unit so that, for example, it shows 10 mBTC rather than 0.01 BTC.&lt;br /&gt;
&lt;br /&gt;
The maximum number of raw units might not be enough if the &#039;&#039;entire world&#039;&#039; starts using BTC, but it would not be too difficult to increase precision in that case. The transaction format and version number would be scheduled to change at some particular block number after a year or two, and everyone would have to update by then.&lt;br /&gt;
&lt;br /&gt;
===Generating tons of addresses===&lt;br /&gt;
Generating an address doesn&#039;t touch the network at all. You&#039;d only be wasting your CPU resources and disk space.&lt;br /&gt;
&lt;br /&gt;
Also, a collision is highly unlikely.&lt;br /&gt;
&lt;br /&gt;
Keys are 256 bit in length and are hashed in a 160 bit address.(2^160th power)&lt;br /&gt;
Divide it by the world population and you have about 215,000,000,000,000,000,000,000,000,000,000,000,000 addresses per capita.(2.15 x 10^38)[http://www.wolframalpha.com/input/?i=2^160+%2F+world+population]&lt;br /&gt;
&lt;br /&gt;
===Everyone calculates at the same rate===&lt;br /&gt;
If everyone began with identical blocks and started their nonce at 1 and incremented, the fastest machine would always win. However, each block contains a new, random public key known only to you in the list of transactions.  The 256-bit &amp;quot;Merkle tree&amp;quot; hash of this is part of the block header.&lt;br /&gt;
&lt;br /&gt;
So everyone begins with slightly different blocks and everyone truly has a random chance of winning (modified by CPU power).&lt;br /&gt;
&lt;br /&gt;
===Generate &amp;quot;valid&amp;quot; blocks with a lower difficulty than normal===&lt;br /&gt;
Using unmodified Bitcoin code, an attacker could segment himself from the main network and generate a long block chain with a lower difficulty than the real network. These blocks would be totally valid for his network. However, it would be impossible to combine the two networks (and the &amp;quot;false&amp;quot; chain would be destroyed in the process).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Block chain length&amp;quot; is calculated from the combined difficulty of all the blocks, not just the number of blocks in the chain. The one that represents the most computation will win.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Double-spending]]&lt;br /&gt;
* [http://bitcoin.stackexchange.com/questions/10025/where-can-i-find-well-written-criticism-about-bitcoin Stack Exchange]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=ArtForz&amp;diff=69360</id>
		<title>ArtForz</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=ArtForz&amp;diff=69360"/>
		<updated>2022-06-30T12:38:26Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: added new information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{outdated}}&lt;br /&gt;
ArtForz is a regular on #bitcoin-dev. He and Laszlo Hanyecz are considered the first two person to mine with GPUs, using private mining code. ArtForz once held a high percentage of network computation power (~25%) but reports&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=37904.msg478671#msg478671&amp;lt;/ref&amp;gt; that he now controls less than 1%.  He claims that his mining software is still more efficient than all other GPU miners. He uses a heavily-modified version of Bitcoin; notably, he requires less transaction fees and he doesn&#039;t perform IsStandard checks.&lt;br /&gt;
&lt;br /&gt;
ArtForz has a very good understanding of Bitcoin. He reported [[incidents#LSHIFT_and_RETURN_bugs|serious bugs]] in Bitcoin&#039;s handling of certain [[script]] opcodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Asmoney&amp;diff=69358</id>
		<title>Asmoney</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Asmoney&amp;diff=69358"/>
		<updated>2022-06-30T12:19:38Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: added info and  corrected grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AsMoney is an electronic payment system based on Bitcoin that helps its members make instant payment for goods or services or send and receive money with minimum fee, on the other hand, Asmoney provide a web-based  [[EWallet]] used for sending, receiving, and storing Bitcoins. Asmoney support multi currencies and allow people to send money based on location and their local currency. Asmoney make Bitcoin easier for non-technical users to send and receive payments. AsMoney also supports Litecoin, Dogecoin and Peercoin. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Currencies==&lt;br /&gt;
&lt;br /&gt;
At the present time, Asmoney support BTC,  LTC,  USD,  EUR,  AUD, GBP,  JPY,  CAD,  CHF, CNY, MYR, NZR, RUB, SGD, THB, TRL, ZAR, INR, IDR and EGP.&lt;br /&gt;
&lt;br /&gt;
==Deposit==&lt;br /&gt;
&lt;br /&gt;
Deposit&lt;br /&gt;
Asmoney users may deposit to your account by using three methods : Exchangers, Bitcoin and Litecoin.&lt;br /&gt;
&lt;br /&gt;
==Withdrawal==&lt;br /&gt;
&lt;br /&gt;
Same as deposit methods,  Asmoney users can withdrawal from Asmoney account by using three methods anytime : Exchangers, Bitcoin and Litecoin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Send and Receive money==&lt;br /&gt;
&lt;br /&gt;
This feature provides the ability to send money to Asmoney username, there is No limitation for sending/receiving money to/from others&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fees==&lt;br /&gt;
&lt;br /&gt;
Due to lack of tax in P2P Currencies and low network fees, Asmoney fees is lower than other payment processors and safety is more than others. There are no fees for transfer on BTC/LTC between Asmoney accounts,  the 0.5% fees apply for other currencies.&lt;br /&gt;
&lt;br /&gt;
==Asmoney for Merchants==&lt;br /&gt;
&lt;br /&gt;
Asmoney allow all users generate a checkout button and make accepting Bitcoin easy on any website by copying and pasting a few lines of code. Payment SCI allow merchants to accept Bitcoin with a hosted checkout page on asmoney.com.&lt;br /&gt;
&lt;br /&gt;
==Mass Payment==&lt;br /&gt;
&lt;br /&gt;
Asmoney provide an API interface that helps all members use API for sending Bitcoin to many recipients at once.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [https://www.asmoney.com asmoney.com] website&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:EWallets]]&lt;br /&gt;
[[Category:Wallets]]&lt;br /&gt;
[[Category:Exchanges]]&lt;br /&gt;
[[Category:Shopping Cart Interfaces]]&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=1WBE&amp;diff=69357</id>
		<title>1WBE</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=1WBE&amp;diff=69357"/>
		<updated>2022-06-29T20:30:15Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: grammar corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox company|name=1WBE.COM|image=[[File:1wbe.png|200px]]&lt;br /&gt;
|industry=[[Exchange|Bitcoin exchange]]&lt;br /&gt;
|foundation=January 27, 2014&lt;br /&gt;
|defunct=c. 2014&lt;br /&gt;
|pairs=BTC/USD&amp;lt;br/&amp;gt;BTC/EUR&amp;lt;br/&amp;gt;EUR/USD&lt;br /&gt;
|website=https://1wbe.com/en/&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;1WBE&#039;&#039;&#039; was an exchange announced in January 2014. It suffered from slow withdrawal times&amp;lt;ref&amp;gt;{{cite btct|title=1wbe.com / worldwide bitcoin exchange is a scam !|id=672809|date=1 July 2014}}&amp;lt;/ref&amp;gt; and closed at some point between mid 2014 and mid 2015.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{stub}}{{article}}&lt;br /&gt;
[[Category:Defunct exchanges]]&lt;br /&gt;
[[Category:Properties established in 2014]]&lt;br /&gt;
[[Category:USD exchanges]]&lt;br /&gt;
[[Category:EUR exchanges]]&lt;br /&gt;
[[Category:Barely notable subjects]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Asia_Nexgen_Bitcoin_Exchange&amp;diff=69356</id>
		<title>Asia Nexgen Bitcoin Exchange</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Asia_Nexgen_Bitcoin_Exchange&amp;diff=69356"/>
		<updated>2022-06-29T20:28:52Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: /* Asia Nexgen (ANX) */ grammar, spelling corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Asia Nexgen (ANX) ==&lt;br /&gt;
&lt;br /&gt;
[https://anxpro.com &#039;&#039;&#039;ANX&#039;&#039;&#039;] is a trading platform for buying and selling Bitcoin in AUD, CAD, CHF, EUR, GBP, HKD, JPY, NZD, SGD and USD currencies.&lt;br /&gt;
The exchange was established in 2013 and is legally registered and based in Hong Kong.  Asia Nexgen was one of the first Bitcoin exchanges in Hong Kong to be issued with a Money Services Operator (MSO) license by the Hong Kong Customs and Excise Department.  The trading engine is built upon the LMAX Disruptor technology used by banks for their foreign currency exchange (FX) trading.  The engine was designed to handle high volume, high throughput, and low latency trading.  The exchange has a favorable reputation for offering same-day processing of deposit and withdrawal requests on a weekday, daily basis.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ANX originally offered only a single product, namely [https://anxbtc.com &#039;&#039;&#039;ANXBTC&#039;&#039;&#039;] to satisfy customers who were wanting to buy and sell Bitcoins via a simple and efficient service with fast and varied payment processing options.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On 20 January 2014, owing to the feedback from ANX clients, [https://anxpro.com &#039;&#039;&#039;ANXPRO&#039;&#039;&#039;] was released.  ANXPRO was designed for the advanced user and specializes in Altcoins, Algos and Performance.  The platform provides a professional trading facility with all major currency and crypto pairs.  ANXPRO is the only cryptocurrency exchange in the world that facilitates Altcoin trading in no less than 10 fiat currencies.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a January 2014 promotion, the company distributed red envelopes of “lucky money”, a centuries-old New Year&#039;s tradition, which contained vouchers for HK$10 worth of Bitcoin (about 1.4 mBTC at the time).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In February 2014, the company prepared to open Hong Kong&#039;s first physical bitcoin shop, in Sai Ying Pun. Customers, who must supply an identity card and proof of address for anti-money laundering regulatory compliance, will be able to purchase bitcoins for cash.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In March 2014, ANX has brought the first Bitcoin ATM to Hong Kong. Customers must be verified to use this ATM and will need to use their Bitcoin wallet QR code to make a cash deposit.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In July 2014, ANX announced a re-loadable prepaid debit card that can be used to make purchases or perform cash withdrawals via an extensive global network of retailers, online merchants and ATMs. It is available for immediate delivery for ANX customers whom have completed the ANX KYC verification procedure.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advantages ==&lt;br /&gt;
&lt;br /&gt;
•	Trading Fees as low as 0.05% &amp;lt;br&amp;gt;&lt;br /&gt;
•	Daily processing of withdrawals and deposits Mon-Fri, with less than 24hours turnaround.&amp;lt;br&amp;gt;&lt;br /&gt;
•	Offer local HKD/AUD banking support with zero deposit fees.&amp;lt;br&amp;gt;&lt;br /&gt;
•	Support the most popular cryto currencies:  Bitcoin, Litecoin, Peercoin, Namecoin and Dogecoin.&amp;lt;br&amp;gt;&lt;br /&gt;
•	Support all global fiat currencies:  USD/ HKD/ GBP/ CHF/ NZD/ EUR/ CAD/ AUD/ YEN/ SGD.&amp;lt;br&amp;gt;&lt;br /&gt;
•	A single order book for all currencies for maximum liquidity and ease of use from customer’s perspective.&amp;lt;br&amp;gt;&lt;br /&gt;
•	Multilingual support (English, Traditional Chinese, Simplified Chinese).&amp;lt;br&amp;gt;&lt;br /&gt;
•	Advanced trading interface including support for keyboard hotkeys (i.e. &#039;B&#039; for Buy, &#039;L&#039; for Limit, &#039;Enter&#039; to execute, etc)&amp;lt;br&amp;gt;&lt;br /&gt;
•	Native wallet apps for both [https://play.google.com/store/apps/details?id=com.anxbtc.android Android] and [https://itunes.apple.com/us/app/anx-vault-your-bitcoin-wallet/id855057847?ls=1&amp;amp;mt=8 iOS]&amp;lt;br&amp;gt;&lt;br /&gt;
•	Support SEPA with same day processing of both EUR deposits and withdrawals. &amp;lt;br&amp;gt;&lt;br /&gt;
•	Support Egopay with instant processing of both EUR/ USD deposits and withdrawals.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
•	Support Two-Factor Authentication greatly reducing online identity theft.&amp;lt;br&amp;gt;&lt;br /&gt;
•	ANX is using an industry leading service provider for DDOS protection and our servers are hosted in a Tier 3+ ISO 27001/9001 compliant datacentre.&amp;lt;br&amp;gt;&lt;br /&gt;
•	ANX supports two-factor authentication in addition to email verification for all crypto withdrawals.&amp;lt;br&amp;gt;&lt;br /&gt;
•	ANX does not run a fractural reserve. All customer funds segregated and accounted for.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [https://anxpro.com &#039;&#039;&#039;ANXPRO&#039;&#039;&#039;]&lt;br /&gt;
* [https://anxbtc.com &#039;&#039;&#039;ANXBTC&#039;&#039;&#039;]&lt;br /&gt;
* [http://www.linkedin.com/company/anx/ &#039;&#039;&#039;ANX LinkedIn&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
[[Category:Exchanges]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Atomic_multipath_payments&amp;diff=69355</id>
		<title>Atomic multipath payments</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Atomic_multipath_payments&amp;diff=69355"/>
		<updated>2022-06-29T20:25:11Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: /* Roadmap */ grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Atomic Multipath Payments&#039;&#039;&#039; (&#039;&#039;&#039;AMP&#039;&#039;&#039;) are payments that use multiple paths to complete a transaction that either all complete successfully or none complete successfully. &lt;br /&gt;
&lt;br /&gt;
One of the problems the lightning network has had is limited ability to send higher-value payments, because of limitations in channel capacity along possible routes to the payee. Using AMP, a payer can send a payment using many paths, which can make larger payments far more reliable.&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
AMP is not yet available yet on any lightning implementation, but non-atomic multipath payments (MPP) were recently implemented by LND in v0.10.0. MPP is the first stage in a three-stage process for AMP. The second stage is hash-based AMP, and the third step is a better form of AMP that uses points and scalars instead of hashes. The third stage requires [[Eltoo]] and [[Schnorr]].&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Alert_system&amp;diff=69354</id>
		<title>Alert system</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Alert_system&amp;diff=69354"/>
		<updated>2022-06-29T20:21:05Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: corrected spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Prefinal alert.png|thumb|300px|The prefinal alert message in the status bar of the GUI client]]Bitcoin versions 0.3.10 introduced an &#039;&#039;&#039;alert system&#039;&#039;&#039; which allowed messages about critical network problems to be broadcast to all clients.&lt;br /&gt;
&lt;br /&gt;
The alert system has been completely retired.&amp;lt;ref name=&amp;quot;org&amp;quot;&amp;gt;https://bitcoin.org/en/alert/2016-11-01-alert-retirement&amp;lt;/ref&amp;gt; The code was removed since 0.13.0 and since 0.14.0 any old nodes will receive a static hard-coded &amp;quot;Alert Key Compromised&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
When an alert was in effect, the message it contains would appear in the status bar of all clients and in the &amp;quot;errors&amp;quot; field of RPC &#039;&#039;getinfo&#039;&#039;. Any script registered with the &amp;lt;code&amp;gt;-alertnotify&amp;lt;/code&amp;gt; command-line option will be notified.&lt;br /&gt;
&lt;br /&gt;
===Alert message===&lt;br /&gt;
Alerts are broadcast using the same [[network|TCP relay system]] as &#039;&#039;block&#039;&#039; and &#039;&#039;tx&#039;&#039; messages. They are not encoded in a special transaction. Unlike block and tx relaying, alerts are sent at the start of every new connection for as long as the alert is in effect. This ensures that everyone receives the alert.&lt;br /&gt;
&lt;br /&gt;
Alerts contain this information:&lt;br /&gt;
* How long to relay the alert.&lt;br /&gt;
* How long to consider the alert valid.&lt;br /&gt;
* An alert ID number.&lt;br /&gt;
* A list of alerts that should be canceled upon receipt of this alert.&lt;br /&gt;
* Exactly which versions of Bitcoin are affected by the alert. Unaffected versions still relay the alert for the benefit of older versions.&lt;br /&gt;
* Alert priority.&lt;br /&gt;
* The alert text.&lt;br /&gt;
&lt;br /&gt;
Only alerts that are signed by a specific ECDSA public key are considered valid. Some known private keyholders were [[Satoshi Nakamoto]], [[User:gavinandresen|Gavin Andresen]] and [[User:Theymos|theymos]], but the private key was made public after the alert system was retired, so there is no longer any special group of alert-key-holders.&lt;br /&gt;
&lt;br /&gt;
===Safe mode===&lt;br /&gt;
Until version 0.3.20, Bitcoin went into safe mode when a valid alert was received. In safe mode, all RPC commands that send BTC or get info about received BTC return an error. Current Bitcoin versions no longer go into safe mode in response to alerts, though Bitcoin &#039;&#039;will&#039;&#039; still go into safe mode when it detects on its own that something is seriously wrong with the network.&lt;br /&gt;
&lt;br /&gt;
Even though Bitcoin no longer automatically disables RPC when an alert is live, it is wise for Bitcoin sites to shut down when an alert has been issued. To detect an active alert, poll the &amp;quot;errors&amp;quot; field of &#039;&#039;getinfo&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test safe mode, run Bitcoin with the -testsafemode switch. To override a real safe mode event, run Bitcoin with the -disablesafemode switch.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
{{multiple image|align=vertical|width=300&lt;br /&gt;
|image1=alert.png&lt;br /&gt;
|image2=bitcoin-alert-cli.png&lt;br /&gt;
|footer=An alert appearing on bitcoin clients&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The alert system was hastily implemented by [[Satoshi Nakamoto]] after the [[value overflow incident]] on August 15, 2010. Satoshi never actually used this system; it remained dormant until the [[February 20, 2012 protocol change]], for which an alert was issued on February 18.&amp;lt;ref&amp;gt;[https://bitcoin.org/en/alert/2012-02-18-protocol-change February 20, 2012 Protocol Changes] at bitcoin.org&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 2016, the alert system was retired&amp;lt;ref name=&amp;quot;org&amp;quot;/&amp;gt; because of the possibility of privileged users sending political alert messages, &amp;lt;!-- because of consensus that there shouldn&#039;t be privileged users in a decentralized system in the first place, [reword?]--&amp;gt; and because of the possibility of the alert key having been taken from [[Mark Karpelès]] by the Japanese police in 2014.&amp;lt;ref&amp;gt;https://github.com/bitcoin/bitcoin/pull/7692&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The alert key was scheduled to be released to the public in May 2017, but this was postponed.&amp;lt;ref name=&amp;quot;org&amp;quot;/&amp;gt; It was eventually published in July 2018.&lt;br /&gt;
&lt;br /&gt;
===Past alerts===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! ID&lt;br /&gt;
! Sent date&lt;br /&gt;
! Expires (UTC)&lt;br /&gt;
! Versions&lt;br /&gt;
! Priority&lt;br /&gt;
! Message&lt;br /&gt;
|-&lt;br /&gt;
| 1010&lt;br /&gt;
| Feb 18, 2012&lt;br /&gt;
| Feb 21 02:47:15&lt;br /&gt;
| All&lt;br /&gt;
| 100&lt;br /&gt;
| See bitcoin.org/feb20 if you have trouble connecting after 20 February&lt;br /&gt;
|-&lt;br /&gt;
| 1011&lt;br /&gt;
| Mar 16, 2012&lt;br /&gt;
| cancelled May 15, 2012&lt;br /&gt;
| 0.5 - 0.5.3&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: security fix for Bitcoin-Qt on Windows: http://bitcoin.org/critfix&lt;br /&gt;
|-&lt;br /&gt;
| 1012&lt;br /&gt;
| Mar 16, 2012&lt;br /&gt;
| cancelled May 15, 2012&lt;br /&gt;
| 6.0&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: security fix for Bitcoin-Qt on Windows: http://bitcoin.org/critfix&lt;br /&gt;
|-&lt;br /&gt;
| 1013&lt;br /&gt;
| Mar 16, 2012&lt;br /&gt;
| cancelled May 15, 2012&lt;br /&gt;
| 5.99&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: security fix for Bitcoin-Qt on Windows: http://bitcoin.org/critfix&lt;br /&gt;
|-&lt;br /&gt;
| 1015&lt;br /&gt;
| May 15, 2012&lt;br /&gt;
| May 16, 2013&lt;br /&gt;
| 0.1 - 0.4.5&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: upgrade required, see http://bitcoin.org/dos for details&lt;br /&gt;
|-&lt;br /&gt;
| 1016&lt;br /&gt;
| May 15, 2012&lt;br /&gt;
| May 16, 2013&lt;br /&gt;
| 0.4.99 - 0.5.4&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: upgrade required, see http://bitcoin.org/dos for details&lt;br /&gt;
|-&lt;br /&gt;
| 1020&lt;br /&gt;
| May 15, 2012&lt;br /&gt;
| May 16, 2013&lt;br /&gt;
| 0.6.0&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: upgrade required, see http://bitcoin.org/dos for details&lt;br /&gt;
|-&lt;br /&gt;
| 1032&lt;br /&gt;
| March 12, 2013&lt;br /&gt;
| March 13, 2013&lt;br /&gt;
| 0.8.0&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: chain fork, stop mining on version 0.8&lt;br /&gt;
|-&lt;br /&gt;
| 1033&lt;br /&gt;
| March 19, 2013&lt;br /&gt;
| March 20, 2013&lt;br /&gt;
| 0.1 - 0.7.2&lt;br /&gt;
| 10&lt;br /&gt;
| See http://bitcoin.org/may15.html for an important message&lt;br /&gt;
|-&lt;br /&gt;
| 1034&lt;br /&gt;
| May 9, 2013&lt;br /&gt;
| June 8, 2013&lt;br /&gt;
| 0.1 - 0.7.2&lt;br /&gt;
| 10&lt;br /&gt;
| Action required: see http://bitcoin.org/may15.html for more information&lt;br /&gt;
|-&lt;br /&gt;
| 1040&lt;br /&gt;
| April 11, 2014&lt;br /&gt;
| cancelled&lt;br /&gt;
| 0.9.0&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: Upgrade required: see https://www.bitcoin.org/heartbleed/&lt;br /&gt;
|-&lt;br /&gt;
| 1041&lt;br /&gt;
| April 11, 2014&lt;br /&gt;
| April 11, 2015&lt;br /&gt;
| 0.9.0&lt;br /&gt;
| 5000&lt;br /&gt;
| URGENT: Upgrade required: see https://www.bitcoin.org/heartbleed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/bitcoin/bitcoin/pull/7692 - The pull request where removing the alert system from [[Bitcoin Core]] was discussed&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Vocabulary]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
https://bitcoin.org/en/alerts&lt;br /&gt;
&lt;br /&gt;
{{Bitcoin Core documentation}}&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Anycoin_Direct&amp;diff=69353</id>
		<title>Anycoin Direct</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Anycoin_Direct&amp;diff=69353"/>
		<updated>2022-06-29T20:16:17Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: /* History */ corrected spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Anycoin Direct is a cryptocurrency brokerage platform headquartered in the Netherlands. The company was registered at the Dutch Chamber of Commerce by Lennert Vlemmings, Bram C. L. Ceelen, and Julian A. W. van der Wijst under the name Bitplaats B.V. in April 2013.&amp;lt;ref&amp;gt;[https://www.kvk.nl/handelsregister/TST-BIN/FP/MDWS002@?BUTT=H608155310000&amp;amp;kvknummer=594661970000&amp;amp;product=Concernrelaties Chamber of Commerce - Registration]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History == &lt;br /&gt;
&lt;br /&gt;
In 2014, the company expanded its services to Belgium by implementing the payment method, Bancontact, formerly known as Mister Cash. Initially, Anycoin Direct was called Bitplaats (Dutch for Bit[coin]place). However, the name changed to fit the geographic area served. &amp;lt;ref&amp;gt;[https://cointelegraph.com/news/anycoin-direct-makes-bitcoin-available-all-over-europe-in-under-5-minutes Cointelegraph - Anycoin Direct makes bitcoin available all over Europe]&amp;lt;/ref&amp;gt; The company name also changed from Bitplaats B.V. to Phoenix Payments B.V. for the same reason. &lt;br /&gt;
The same year, Anycoin Direct further expanded its services to the European Economic Area (EEA) with the addition of Single Euro Payments (SEPA). &amp;lt;ref&amp;gt;[https://www.coinspeaker.com/anycoin-direct-makes-bitcoin-available-all-over-europe/  Coinspeaker- Anycoin Direct makes bitcoin available all over Europe]&amp;lt;/ref&amp;gt; Additional local payment methods were added: Giropay &amp;amp; Mybank in September, Sofort in October, and Trustpay in March 2015.&lt;br /&gt;
&lt;br /&gt;
Anycoin Direct announced a €500.000 private investment funding in January 2015.&amp;lt;ref&amp;gt;[https://www.coindesk.com/anycoin-direct-e500k-funding Coindesk - Anycoin Direct receives 500k funding]&amp;lt;/ref&amp;gt; The funding allowed the company to expand outside the European Economic Area into Canada. Anycoin Direct partnered with San Francisco-based Salt Technology, Inc. to provide Interac Online Payments services to its Canadian customers. It discontinued service to Canada in late December 2016.&lt;br /&gt;
&lt;br /&gt;
In March 2018, Anycoin Direct became the first European crypto broker to implement SegWit, a protocol upgrade that reduces the load placed on the Bitcoin network and improves scalability.&amp;lt;ref&amp;gt;[https://www.btc-echo.de/anycoin-direct-aktiviert-segwit/ BTC-Echo - Anycoin Direct activates SegWit]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mission Statement==&lt;br /&gt;
Anycoin Direct’s mission statement is “Cryptocurrencies: easily available for everyone, fully under your control.” It aims to achieve this by focusing on three pillars: convenience, speed and security.&amp;lt;ref&amp;gt;[https://anycoindirect.eu/en  Anycoin Direct - Easy, Fast, Secure]&amp;lt;/ref&amp;gt;   &lt;br /&gt;
==Support==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You can contact Anycoin Direct through all of the following channels:&amp;lt;/p&amp;gt; &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt;Live-chat&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;Support ticket&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;Telephone&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;Facebook&amp;lt;/li&amp;gt; &amp;lt;/ul&amp;gt; &amp;lt;p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Supported payment methods==&lt;br /&gt;
* SEPA&amp;lt;br/&amp;gt;&lt;br /&gt;
* Giropay&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sofort banking&amp;lt;br/&amp;gt;&lt;br /&gt;
* Bancontact&amp;lt;br/&amp;gt;&lt;br /&gt;
* iDEAL&amp;lt;br/&amp;gt;&lt;br /&gt;
* MyBank&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fees and rates==&lt;br /&gt;
&lt;br /&gt;
Concurrently, Anycoin Direct’s product folio consists of 21 cryptocurrencies available for buy, sell, and trade orders. The overall commission ranges between 0.3 and 1.0% without account (maintenance) fees. &lt;br /&gt;
The various payment methods charge a fixed and a variable amount.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
[https://anycoindirect.eu/ Anycoin Direct website]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Exchanges]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Abescrow&amp;diff=69352</id>
		<title>Abescrow</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Abescrow&amp;diff=69352"/>
		<updated>2022-06-29T20:10:42Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: corrected grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An Anonymous bitcoin-based secure escrow service.&lt;br /&gt;
&lt;br /&gt;
Essentially, Funds are held by the escrow service until the payment sender releases the funds to the payment recipient, after receive the item or service.&lt;br /&gt;
This service is provided by a real company based in Hong Kong and is anonymous because it does not save logs of IP.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [https://abescrow.com/ ABEscrow - Anonymous Bitcoin Escrow] Trusted escrow service from a real hong kong based company. &lt;br /&gt;
&lt;br /&gt;
* [http://www.webutation24.net/go/review/abescrow.com ABEscrow Rating] at Webutation - Online Website Reputation (and a quite negative one at the moment)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Escrow services]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=BASIC&amp;diff=69351</id>
		<title>BASIC</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BASIC&amp;diff=69351"/>
		<updated>2022-06-29T20:07:32Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: corrected spelling, grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Infobox company|name=bASIC|image=[[{{ns:file}}:Logo-basic.png|270x64px]]|website=[https://www.bitcoinasic.com/ bitcoinasic.com]}}&lt;br /&gt;
bASIC sprang forth from [[BTCFPGA]] which had a range of highly successful [[FPGA]] Bitcoin miners (ModMiner), and had hoped to release an ASIC design, taking pre-orders for funding.&lt;br /&gt;
&lt;br /&gt;
On September 3rd, 2012, bASIC was announced as BitcoinASIC / BTCFPGA&#039;s &#039;fourth generation Bitcoin mining device&#039;.&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=79637.msg1157524#msg1157524&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On January 9th, 2013, the bASIC project was canceled&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=135428.0&amp;lt;/ref&amp;gt; and claimed to have been sold to an Asian investor, however, this claim was later retracted.&lt;br /&gt;
&lt;br /&gt;
On January 13th, 2013, the principal of the project noted &amp;quot;At this point, if you are thinking of sending me a refund request, I recommend you do a chargeback instead.&amp;quot;&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=136217.0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On February 1st, 2013, a message was posted to the bASIC website stating that a &amp;quot;a devision of a huge corporate electronics manufacturer in Canada&amp;quot; had taken over the reins.&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=140411.0&amp;lt;/ref&amp;gt;, later revealed to be CAN-ELECTRIC&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=140411.msg1497234#msg1497234&amp;lt;/ref&amp;gt;.  However, a purported exchange between a [[BitcoinTalk Forum]] member and Can Electric resulted in a statement suggesting that they were not involved in this endeavor.&amp;lt;ref&amp;gt;https://bitcointalk.org/index.php?topic=140411.msg1507124#msg1507124&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=B-money&amp;diff=69350</id>
		<title>B-money</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=B-money&amp;diff=69350"/>
		<updated>2022-06-29T20:02:50Z</updated>

		<summary type="html">&lt;p&gt;AllEd01: corrected grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;B-money&#039;&#039;&#039; was an early proposal created by [[Wei Dai]] for an &amp;quot;anonymous, distributed electronic cash system&amp;quot;. [[Satoshi Nakamoto]] referenced b-money when creating [[Bitcoin]]. In his essay, published on the  cypherpunks mailing-list in November 1998, Dai proposed two protocols.  The first protocol is impractical as it requires a broadcast channel that is unjammable as well as being synchronous. &lt;br /&gt;
&lt;br /&gt;
In the first protocol in the essay, the use of a [[proof of work]] function is recommended as a means of creating money.  Dai&#039;s B-Money was proposed in the context of cypherpunks mailing-list discussions relating to possible applications of [[Hashcash]], the first symmetric proof-of-work function, which was itself also published on the same mailing-list, the previous year - May 1997.   (Like the B-money proposal, bitcoin itself also uses the hashcash cost-function as the proof-of-work during coin minting).  In B-Money, money is transferred by broadcasting the transaction to all participants, all of whom keep accounts of all others. Contracts can be made with possible reparation in case of default, with a third party agreeing to be the arbitrator. If there is no agreement, each party broadcasts arguments or evidence in its favor and each of the participants determines the reparations/fines in his accounts for himself.&lt;br /&gt;
&lt;br /&gt;
The second protocol has only a subset of the participants (the &amp;quot;servers&amp;quot;) keeping accounts, which they have to publish, and the participants who do transactions verifying their balances by asking many of them. The participants also verify that the money supply is not being inflated. An amount of money as bail is required to become a server, which is lost if the server is found to be dishonest.&lt;br /&gt;
&lt;br /&gt;
An alternate method of creating money is proposed, via an auction where participants bid on the solution of computational problems of known complexity.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[http://weidai.com/bmoney.txt b-money, an anonymous, distributed electronic cash system]&lt;br /&gt;
*[http://www.hashcash.org/ hashcash cost-function]&lt;br /&gt;
[[Category:Economics]]&lt;/div&gt;</summary>
		<author><name>AllEd01</name></author>
	</entry>
</feed>