https://tests.bitcoin.it/w/api.php?action=feedcontributions&user=Geremia&feedformat=atomBitcoin Wiki - User contributions [en]2024-03-29T07:33:00ZUser contributionsMediaWiki 1.30.0https://tests.bitcoin.it/w/index.php?title=Controlled_supply&diff=69202Controlled supply2022-02-17T17:16:36Z<p>Geremia: </p>
<hr />
<div><blockquote>A fixed money supply, or a supply altered only in accord with objective and calculable criteria, is a necessary condition to a meaningful just price of money.<ref>[https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] [https://babel.hathitrust.org/cgi/pt?id=mdp.39015011903997&seq=230 p. 210] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960); cf. John Horvat II [https://isidore.co/calibre/browse/book/5155 <i>Return to Order</i>] ch. 37 "The Backing of Money"</ref><br />
<p align="right">—[https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960)</p></blockquote><br />
<br />
In a centralized economy, currency is issued by a central bank at a rate that is supposed to match the growth of the amount of goods that are exchanged so that these goods can be traded with stable prices. The <br />
[[wikipedia:monetary base|monetary base]] is controlled by a central bank. In the United States, the [[wikipedia:Federal Reserve System|Fed]] increases the monetary base by issuing currency, increasing the amount banks have on reserve or by a process called [[wikipedia:Quantitative Easing|Quantitative Easing]].<br />
<br />
In a fully decentralized monetary system, there is no central authority that regulates the monetary base. Instead, currency is created by the nodes of a peer-to-peer network. The Bitcoin generation algorithm defines, in advance, how currency will be created and at what rate. Any currency that is generated by a malicious user that does not follow the rules will be rejected by the network and thus is worthless.<br />
<br />
==Currency with Finite Supply==<br />
[[Image:Controlled supply-block reward halving.png|160px|thumb|right| Block reward halving]]<br />
[[Image:Controlled supply-supply over block height.png|160px|thumb|right| Controlled supply]]<br />
Bitcoins are created each time a user discovers a new [[block]]. <br />
The rate of block creation is adjusted every 2016 blocks to aim for a constant two week adjustment period (equivalent to 6 per hour.) The number of bitcoins generated per block is set to decrease geometrically, with a 50% reduction every 210,000 blocks, or approximately four years. The result is that the number of bitcoins in existence will not exceed slightly less than 21 million.<ref>[http://www.bitcointalk.org/index.php?topic=3366.msg47522#msg47522 21 million cap]</ref> Speculated justifications for the unintuitive value "21 million" are that it matches a 4-year reward halving schedule; or the ultimate total number of Satoshis that will be mined is close to the maximum capacity of a 64-bit floating point number. Satoshi has never really justified or explained many of these constants.<br />
<br />
[[File:SupplyFormula.gif|Cumulated bitcoin supply]]<br />
<br />
This decreasing-supply algorithm was chosen because it approximates the rate at which commodities like gold are mined. Users who use their computers to perform calculations to try and discover a block are thus called [[Mining|''Miners'']].<br />
<br />
See also: http://bashco.github.io/Bitcoin_Monetary_Inflation/<br />
<br />
==Projected Bitcoins Short Term ==<br />
This chart shows the number of bitcoins that will exist in the near future. The ''Year'' is a forecast and may be slightly off.<br />
{| class="wikitable"<br />
|-<br />
! Date reached!!Block!!Reward Era!! BTC/block!! Year (estimate)!! Start BTC!! BTC Added!! End BTC!! BTC Increase|| End BTC % of Limit<br />
|-<br />
|2009-01-03||0||1||50.00||2009||0||2625000||2625000||infinite||12.500%<br />
|-<br />
|2010-04-22||52500||1||50.00||2010||2625000||2625000||5250000||100.00%||25.000%<br />
|-<br />
|2011-01-28||105000||1||50.00||2011*||5250000||2625000||7875000||50.00%||37.500%<br />
|-<br />
|2011-12-14||157500||1||50.00||2012||7875000||2625000||10500000||33.33%||50.000%<br />
|-<br />
|[[Halving day 2012|2012-11-28]]||210000||2||25.00||2013||10500000||1312500||11812500||12.50%||56.250%<br />
|-<br />
|2013-10-09||262500||2||25.00||2014||11812500||1312500||13125000||11.11%||62.500%<br />
|-<br />
|2014-08-11||315000||2||25.00||2015||13125000||1312500||14437500||10.00%||68.750%<br />
|-<br />
|2015-07-29||367500||2||25.00||2016||14437500||1312500||15750000||9.09%||75.000%<br />
|-<br />
|2016-07-09||420000||3||12.50||2016||15750000||656250||16406250||4.17%||78.125%<br />
|-<br />
|2017-06-23||472500||3||12.50||2018||16406250||656250||17062500||4.00%||81.250%<br />
|-<br />
|2018-05-29||525000||3||12.50||2019||17062500||656250||17718750||3.85%||84.375%<br />
|-<br />
|2019-05-24||577500||3||12.50||2020||17718750||656250||18375000||3.70%||87.500%<br />
|-<br />
|2020-05-11||630000||4||6.25||2021||18375000||328125||18703125||1.79%||89.063%<br />
|-<br />
|2021-05-08||682500||4||6.25||2022||18703125||328125||19031250||1.75%||90.625%<br />
|-<br />
|||735000||4||6.25||2023||19031250||328125||19359375||1.72%||92.188%<br />
|-<br />
|||787500||4||6.25||2024||19359375||328125||19687500||1.69%||93.750%<br />
|}<br />
''* In Block 124724, user midnightmagic mined a solo block to himself which underpaid the reward by a single Satoshi and simultaneously destroyed the block's fees. This is one of two only known reductions in the total mined supply of Bitcoin. Therefore, from block 124724 onwards, all total supply estimates must technically be reduced by 1 Satoshi.<br />
<br />
==Projected Bitcoins Long Term ==<br />
[[Image:Controlled supply-timeline estimation.png|160px|thumb|right| Supply timeline estimation]]<br />
Because the number of bitcoins created each time a user discovers a new block - the block reward - is halved based on a fixed interval of blocks, and the time it takes on average to discover a block can vary based on [[mining]] power and the network [[difficulty]], the exact time when the block reward is halved can vary as well. Consequently, the time the last Bitcoin will be created will also vary, and is subject to speculation based on assumptions.<br />
<br />
If the mining power had remained constant since the first Bitcoin was mined, the last Bitcoin would have been mined somewhere near October 8th, 2140. Due to the mining power having increased overall over time, as of block 367,500 - assuming mining power remained constant from that block forward - the last Bitcoin will be mined on May 7th, 2140.<br />
<br />
As it is very difficult to predict how mining power will evolve into the future - i.e. whether technological progress will continue to make hardware faster or whether mining will hit a a technological wall; or whether or not faster methods of SHA2 calculation will be discovered - putting an exact date or even year on this event is difficult.<br />
<br />
The total number of bitcoins, as mentioned earlier, has an asymptote at 21 million, due to a side-effect of the data structure of the blockchain - specifically the integer storage type of the [[Transaction#general_format_.28inside_a_block.29_of_each_output_of_a_transaction_-_Txout|transaction output]], this exact value would have been 20,999,999.9769 bitcoin. Should this technical limitation be adjusted by increasing the size of the field, the total number will still only approach a maximum of 21 million.<br />
<br />
{| class="wikitable" style="text-align:right"<br />
|-<br />
! Block!!Reward Era!! BTC/block!! Start BTC!! BTC Added!! End BTC!! BTC Increase|| End BTC % of Limit<br />
|-<br />
| 0|| 1|| 50.00000000|| 0.00000000|| 10500000.00000000|| 10500000.00000000*|| infinite|| 50.00000006%<br />
|-<br />
| 210000|| 2|| 25.00000000|| 10500000.00000000|| 5250000.00000000|| 15750000.00000000|| 50.00000000%|| 75.00000008%<br />
|-<br />
| 420000|| 3|| 12.50000000|| 15750000.00000000|| 2625000.00000000|| 18375000.00000000|| 16.66666667%|| 87.50000010%<br />
|-<br />
| 630000|| 4|| 6.25000000|| 18375000.00000000|| 1312500.00000000|| 19687500.00000000|| 7.14285714%|| 93.75000010%<br />
|-<br />
| 840000|| 5|| 3.12500000|| 19687500.00000000|| 656250.00000000|| 20343750.00000000|| 3.33333333%|| 96.87500011%<br />
|-<br />
| 1050000|| 6|| 1.56250000|| 20343750.00000000|| 328125.00000000|| 20671875.00000000|| 1.61290323%|| 98.43750011%<br />
|-<br />
| 1260000|| 7|| 0.78125000|| 20671875.00000000|| 164062.50000000|| 20835937.50000000|| 0.79365079%|| 99.21875011%<br />
|-<br />
| 1470000|| 8|| 0.39062500|| 20835937.50000000|| 82031.25000000|| 20917968.75000000|| 0.39370079%|| 99.60937511%<br />
|-<br />
| 1680000|| 9|| 0.19531250|| 20917968.75000000|| 41015.62500000|| 20958984.37500000|| 0.19607843%|| 99.80468761%<br />
|-<br />
| 1890000|| 10|| 0.09765625|| 20958984.37500000|| 20507.81250000|| 20979492.18750000|| 0.09784736%|| 99.90234386%<br />
|-<br />
| 2100000|| 11|| 0.04882812|| 20979492.18750000|| 10253.90520000|| 20989746.09270000|| 0.04887585%|| 99.95117198%<br />
|-<br />
| 2310000|| 12|| 0.02441406|| 20989746.09270000|| 5126.95260000|| 20994873.04530000|| 0.02442599%|| 99.97558604%<br />
|-<br />
| 2520000|| 13|| 0.01220703|| 20994873.04530000|| 2563.47630000|| 20997436.52160000|| 0.01221001%|| 99.98779307%<br />
|-<br />
| 2730000|| 14|| 0.00610351|| 20997436.52160000|| 1281.73710000|| 20998718.25870000|| 0.00610426%|| 99.99389658%<br />
|-<br />
| 2940000|| 15|| 0.00305175|| 20998718.25870000|| 640.86750000|| 20999359.12620000|| 0.00305194%|| 99.99694833%<br />
|-<br />
| 3150000|| 16|| 0.00152587|| 20999359.12620000|| 320.43270000|| 20999679.55890000|| 0.00152592%|| 99.99847420%<br />
|-<br />
| 3360000|| 17|| 0.00076293|| 20999679.55890000|| 160.21530000|| 20999839.77420000|| 0.00076294%|| 99.99923713%<br />
|-<br />
| 3570000|| 18|| 0.00038146|| 20999839.77420000|| 80.10660000|| 20999919.88080000|| 0.00038146%|| 99.99961859%<br />
|-<br />
| 3780000|| 19|| 0.00019073|| 20999919.88080000|| 40.05330000|| 20999959.93410000|| 0.00019073%|| 99.99980932%<br />
|-<br />
| 3990000|| 20|| 0.00009536|| 20999959.93410000|| 20.02560000|| 20999979.95970000|| 0.00009536%|| 99.99990468%<br />
|-<br />
| 4200000|| 21|| 0.00004768|| 20999979.95970000|| 10.01280000|| 20999989.97250000|| 0.00004768%|| 99.99995236%<br />
|-<br />
| 4410000|| 22|| 0.00002384|| 20999989.97250000|| 5.00640000|| 20999994.97890000|| 0.00002384%|| 99.99997620%<br />
|-<br />
| 4620000|| 23|| 0.00001192|| 20999994.97890000|| 2.50320000|| 20999997.48210000|| 0.00001192%|| 99.99998812%<br />
|-<br />
| 4830000|| 24|| 0.00000596|| 20999997.48210000|| 1.25160000|| 20999998.73370000|| 0.00000596%|| 99.99999408%<br />
|-<br />
| 5040000|| 25|| 0.00000298|| 20999998.73370000|| 0.62580000|| 20999999.35950000|| 0.00000298%|| 99.99999706%<br />
|-<br />
| 5250000|| 26|| 0.00000149|| 20999999.35950000|| 0.31290000|| 20999999.67240000|| 0.00000149%|| 99.99999855%<br />
|-<br />
| 5460000|| 27|| 0.00000074|| 20999999.67240000|| 0.15540000|| 20999999.82780000|| 0.00000074%|| 99.99999929%<br />
|-<br />
| 5670000|| 28|| 0.00000037|| 20999999.82780000|| 0.07770000|| 20999999.90550000|| 0.00000037%|| 99.99999966%<br />
|-<br />
| 5880000|| 29|| 0.00000018|| 20999999.90550000|| 0.03780000|| 20999999.94330000|| 0.00000018%|| 99.99999984%<br />
|-<br />
| 6090000|| 30|| 0.00000009|| 20999999.94330000|| 0.01890000|| 20999999.96220000|| 0.00000009%|| 99.99999993%<br />
|-<br />
| 6300000|| 31|| 0.00000004|| 20999999.96220000|| 0.00840000|| 20999999.97060000|| 0.00000004%|| 99.99999997%<br />
|-<br />
| 6510000|| 32|| 0.00000002|| 20999999.97060000|| 0.00420000|| 20999999.97480000|| 0.00000002%|| 99.99999999%<br />
|-<br />
| 6720000|| 33|| 0.00000001|| 20999999.97480000|| 0.00210000|| 20999999.97690000|| 0.00000001%|| 100.00000000%<br />
|-<br />
| 6930000|| 34|| 0.00000000|| 20999999.97690000|| 0.00000000|| 20999999.97690000|| 0.00000000%|| 100.00000000%<br />
|}<br />
''Note: The number of bitcoins are presented in a floating point format. However, these values are based on the number of satoshi per block originally in integer format to prevent compounding error.''<br />
<br />
''* In block 124724, user midnightmagic solo mined a block which caused one less Satoshi to be created than would otherwise have come into existence. Therefore, all calculations from this block onwards must now, to be accurate, include this underpay in total Bitcoins in existence. Then, in an act of sheer stupidity, a more recent miner who failed to implement RSK properly destroyed an entire block reward of 12.5 XBT in block 501726.''<br />
<br />
==What happens when all the bitcoins are mined?==<br />
<br />
The bitcoin inflation rate steadily trends downwards. At the time of writing, more than 3 out of every 4 bitcoins that will ever exist have already been mined, and the annual inflation rate is just 4%. The [[block]] reward given to miners is made up of newly-created bitcoins plus [[transaction fees]]. As inflation goes to zero miners will obtain an income only from transaction fees which will provide an incentive to keep mining to make transactions [[Irreversible Transactions|irreversible]].<br />
<br />
Due to deep technical reasons, [[Transaction_fees#The_market_for_block_space|block space is a scarce commodity]], getting a transaction mined can be seen as purchasing a portion of it. By analogy, on average every 10 minutes a fixed amount of land is created and no more, people wanting to make transactions bid for parcels of this land. The sale of this land is what supports the miners even in a zero-inflation regime. The price of this land is set by demand for transactions (because the supply is fixed and known) and the mining [[difficulty]] readjusts around this to keep the average interval at 10 minutes.<br />
<br />
==Spendable Supply==<br />
The theoretical total number of bitcoins, slightly less than 21 million, should not be confused with the total spendable supply. The total spendable supply is always lower than the theoretical total supply, and is subject to accidental loss, willful destruction, and technical peculiarities.<br />
<br />
One way to see a part of the destruction of coin is by collecting a sum of all unspent transaction outputs, using a [[API reference (JSON-RPC)|Bitcoin RPC]] command <code>gettxoutsetinfo</code>. The ''total_amount'' value returned is the sum of all outputs that the client deems technically spendable but not currently spent. Note however that this does not take into account outputs that are exceedingly unlikely to be spent as is the case in loss and destruction via constructed addresses, for example.<br />
===Miner Underpay===<br />
<br />
The algorithm which decides whether a block is valid only checks to verify whether the total amount of the reward '''exceeds''' the reward plus available fees. Therefore it is possible for a miner to deliberately choose to underpay himself by any value: not only can this destroy the fees involved, but also the reward itself, which can prevent the total possible bitcoins that can come into existence from reaching its theoretical maximum. This is a form of underpay which the reference implementation recognises as impossible to spend. Some of the other types below are not recognised as officially destroying Bitcoins; it is possible for example to spend the 1BitcoinEaterAddressDontSendf59kuE if a corresponding private key is used (although this would imply that Bitcoin has been broken.)<br />
<br />
===Loss of bitcoin===<br />
Bitcoins may be lost if the conditions required to spend them are no longer known. For example, if you made a transaction to an [[address]] that requires a private key in order to spend those bitcoins further, had written that private key down on a piece of paper, but that piece of paper was lost. In this case, that bitcoin may also be considered lost, as the odds of randomly finding a matching private key are such that it is generally considered impossible.<br />
<br />
===Willful destruction of bitcoin===<br />
Bitcoins may also be willfully 'destroyed' - for example by attaching conditions that make it impossible to spend them.<br />
<br />
A common method is to send bitcoin to an address that was constructed and only made to pass validity checks, but for which no private key is actually known. An example of such an address is "1BitcoinEaterAddressDontSendf59kuE", where the last "f59kuE" is text to make the preceding constructed text pass validation. Finding a matching private key is, again, generally considered impossible. For an example of how difficult this would be, see [[Vanitygen#Use_of_vanitygen_to_try_to_attack_addresses|Vanitygen]].<br />
<br />
Another common method is to send bitcoin in a transaction where the conditions for spending are not just unfathomably unlikely, but literally impossible to meet. For example, a transaction that is made [[Script#Provably_Unspendable.2FPrunable_Outputs|provably unspendable using OP_RETURN]], or uses script operations that requires the user to prove that 1+1 equals 3.<br />
<br />
A lesser known method is to send bitcoin to an address based on private key that is outside the [[Private_key#Range_of_valid_ECDSA_private_keys|range of valid ECDSA private keys]]. For example, the address 16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM has a known matching private key of value 0 (zero), which is outside the valid range.<br />
<br />
===Technical peculiarities preventing spending of bitcoin===<br />
There are also technical peculiarities that prevent the spending of some bitcoin.<br />
<br />
The first {{btc}}50, included in the [[genesis block]], cannot be spent as its transaction is not in the global database.<br />
<br />
In older versions of the bitcoin reference code, a miner could make their coinbase transaction (block reward) have the exact same ID as used in a previous block<ref>https://github.com/bitcoin/bitcoin/issues/612</ref>. This effectively caused the previous block reward to become unspendable. Two known such cases<ref>{{cite tx|e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd81b84ee974b6585fb468|used in blocks 91722 and 91880}}</ref><ref>{{cite tx|d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599|used in blocks 91812 and 91842</ref> are left as special cases in the code<ref>https://github.com/bitcoin/bitcoin/commit/ab91bf39b7c11e9c86bb2043c24f0f377f1cf514</ref> as part of [[BIP 0030]] changes that fixed this issue. These transactions were {{btc}}50 each.<br />
<br />
==Money Supply==<br />
While the number of bitcoins in existence will never exceed slightly less than 21 million, the [[wikipedia:money supply|money supply]] of bitcoins can exceed 21 million due to [[wikipedia:Fractional-reserve banking|Fractional-reserve banking]].<br />
<br />
==Deflation==<br />
<br />
Because the monetary base of bitcoins cannot be expanded, the currency would be subject to severe deflation if it becomes widely used. <br />
Keynesian economists argue that [[Deflationary spiral|deflation]] is bad for an economy because it incentivises individuals and businesses to save money rather than invest in businesses and create jobs. The [[wikipedia:Austrian school|Austrian school]] of thought counters this criticism, claiming that as deflation occurs in all stages of production, entrepreneurs who invest benefit from it. As a result, profit ratios tend to stay the same and only their magnitudes change. In other words, in a deflationary environment, goods and services decrease in price, but at the same time the cost for the production of these goods and services tend to decrease proportionally, effectively not affecting profits. Price deflation encourages an increase in hoarding &mdash; hence savings &mdash; which in turn tends to lower interest rates and increase the incentive for entrepreneurs to invest in projects of longer term.<br />
<br />
==See also==<br />
<br />
* [http://www.econlib.org/library/Columns/y2006/Friedmantranscript.html Milton Friedman interview], where he proposed to replace the central bank with a computer, and to fix the money supply growth at 4% annually<br />
* [[Deflationary spiral]]<br />
* [http://blockchain.info/charts/total-bitcoins Chart of total bitcoins in circulation]<br />
* [[Inflation]]<br />
* [[Prohibited changes]]<br />
<br />
==References==<br />
<references /><br />
<br />
[[Category:Economics]] [[Category:Technical]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=69193User:Geremia2022-02-12T21:22:29Z<p>Geremia: /* My Economic Views */</p>
<hr />
<div>==About Me==<br />
I am a freelance translator and Linux developer.<br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://isidore.co/calibre/browse/book/3320 Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://youtu.be/u_j04HaR9Ak?t=17m54s The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://isidore.co/calibre/browse/book/5291 ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[https://isidore.co/aquinas/summa/SS/SS057.html#SSQ57A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [https://isidore.co/aquinas/Emptio.htm his short-work on buying and selling time]</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[https://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin, or his controversial "[https://www.returntoorder.org/2018/01/three-reasons-bitcoin-not-money/ Three Reasons Why Bitcoin Is Not Money]")<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://isidore.co/calibre/browse/book/3313 the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury]; but is worse than [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://bitcoin.org/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F54C34861AB6663<br><br />
<b>Join [https://www.kraken.com/ Kraken]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Weight_units&diff=68469Weight units2021-03-02T02:39:04Z<p>Geremia: /* History */ fixed "Why a discount factor of 4? Why not 2 or 8?" link, too.</p>
<hr />
<div><br />
'''Weight units''' are a measurement used to compare the size of different Bitcoin transactions to each other in proportion to the [[consensus]]-enforced [[maximum block size limit]]. Weight units are also used to measure the size of other block chain data, such as [[block headers]]. As of Bitcoin Core 0.13.0 (released August 2016)<ref>[https://bitcoincore.org/en/releases/0.13.0/ Bitcoin Core 0.13.0 release notes]</ref>, each weight unit represents 1/4,000,000th of the maximum size of a block.<br />
<br />
'''Virtual size''' (vsize), also called '''virtual bytes''' (vbytes), are an alternative measurement, with one vbyte being equal to four weight units. That means the maximum block size measured in vsize is 1 million vbytes.<br />
<br />
== History ==<br />
<br />
Bitcoin was released with an implicit maximum block size limit of 32 mibibytes (32 MiB), which was the maximum allowed size of a P2P protocol [[Protocol_documentation#block|block]] message.<ref>[https://bitcointalk.org/index.php?topic=68121 Earliest known Bitcoin code], <code>src/main.h:17</code>, Satoshi Nakamoto (attributed), November 2008 (published 10 March 2012)</ref> Effective block 79,400 (7 September 2010), this became an explicit limit of 1 megabyte (1 MB).<ref>[https://github.com/bitcoin/bitcoin/commit/8c9479c6bbbc38b897dc97de9d04e4d5a5a36730 Bitcoin commit 8c9479c], Satoshi Nakamoto, 7 September 2010</ref><br />
<br />
In both cases, to calculate how much a transaction or other data counted towards these maximum block size limits, you simply put the data in the format used by the [[Protocol documentation|P2P protocol's]] ''block'' message and counted the bytes.<br />
<br />
The introduction of a soft-fork [[Segregated Witness|segregated witness]] (segwit) idea in late 2015<ref>[https://youtu.be/fst1IK_mrng?t=36m Segregated witness and its impact on scalability (presentation video)], Pieter Wuille, 2015-12-07</ref> meant that the transaction format could be extended with new fields that would be excluded from the historic block size limits—allowing an increase in the maximum block size. But that increase was only possible in a [[Softfork|soft fork]] if the new fields contributed less towards the maximum block size than the fields in the original transaction format.<br />
<br />
Although some people complained about that being unfair<ref>[https://twitter.com/JihanWu/status/868896110760181760 SegWit tx is unfairly cheap], Jihan Wu, Twitter.com, 2017-05-27, retrieved 2017-01-17</ref>, many Bitcoin Protocol developers considered discounting the new fields to be advantageous.<ref>[https://medium.com/segwit-co/what-is-behind-the-segwit-discount-8515a8d3bca9 What is behind the segwit discount?], Segwit.org, 2017-01-10, retrieved 2021-03-01</ref><ref>[https://medium.com/segwit-co/why-a-discount-factor-of-4-why-not-2-or-8-bbcebe91721e Why a discount factor of 4?], Segwit.org, 2017-01-13, retrieved 2021-03-01</ref> The new fields store witnesses, which are transaction signatures and other data necessary to authenticate the spender of certain bitcoins. Witnesses do not need to be stored by all full nodes after they are processed, unlike other parts of a transaction, so they have less effect on the [[cost of node operation]] and (arguably) warrant a discount.<br />
<br />
This introduction of a discount for certain fields in certain transactions lead to the development of the ''weight unit'' which allows easy comparison between transactions that contain the discounted fields and those that don't. Weight units were designed to be fully backwards compatible with all previous versions of Bitcoin Core even though blocks created after segwit activated may include up to almost four times as much data as they could previously.<br />
<br />
For backwards compatibility with software using the earlier ''bytes'' metric<ref>[https://bitcoin.stackexchange.com/a/57800 The advantage of using vsize...], Pieter Wuille, Bitcoin.StackExchange.com, 2017-08-09, retrieved 2017-01-17</ref>, virtual size (vsize) was introduced. A unit of vsize is equal to four weight units. Some developers call a unit of vsize by the name of vbyte<ref>[https://medium.com/@murchandamus/psa-wrong-fee-rates-on-block-explorers-48390cbfcc74 PSA: Wrong fee rates on block explorers], Mark Erhardt, 2017-12-12, retrieved 2017-01-17</ref> because the number of bytes and vbytes in a transaction are identical for legacy transactions.<br />
<br />
== Weight for legacy transactions ==<br />
<br />
Transactions that don't use segregated witness (segwit) are currently called ''legacy transactions''. For these transactions, calculating the number of weight units in a transaction is as easy as putting the transaction into the format used in a P2P protocol ''block'' message, counting the number of bytes, and multiplying by four.<br />
<br />
For example, at the time of writing (January 2018), the most commonly seen transaction template in the block chain is a legacy transaction with one input (using P2PKH with a [[compressed pubkey]]) and two P2PKH outputs, or about 226 bytes. Here's a byte map of that transaction template:<br />
<br />
[[File:p2pkh-1in-2out_bytes.png|center]]<br />
<br />
To change from bytes to weight units, we simply scale everything up by a factor of four:<br />
<br />
[[File:p2pkh-1in-2out_weight.png|center]]<br />
<br />
At 904 weight, to include the above transaction in a block consumes 0.0226% of the available maximum block space.<br />
<br />
To convert from weight units to vbytes, divide the total by four. For legacy transactions, this means that vbytes are equal to bytes.<br />
<br />
== Weight for segwit transactions ==<br />
<br />
Transactions that use segregated witnesses are called ''segwit transactions.'' For these transactions, calculating the number of weight units in a transaction is more complicated.<br />
<br />
* The transaction is put into the format used by a P2P protocol ''block'' message (segwit-enabled)<br />
* Each byte of the segwit marker, flag, and witness fields counts as one weight unit<br />
* Each byte of the other fields in the transaction counts as four weight units<br />
<br />
For example, the segwit equivalent to the P2PKH transaction analyzed in the ''legacy'' section above would be a transaction with one input (using P2WPKH) and two P2WPKH outputs, or about 222 bytes. Here's a byte map of that transaction template with the segwit-specific fields highlighted in blue:<br />
<br />
[[File:p2wpkh-1in-2out_bytes.png|center]]<br />
<br />
To change from bytes to weight units, we use the method described above where the highlighted fields stay the same size but the other fields are multiplied by four. When displayed at the same scale, this makes it appear that the segwit fields have shrunk:<br />
<br />
[[File:p2wpkh-1in-2out_weight.png|center]]<br />
<br />
At 561 weight units, to include the above transaction in a block consumes 0.014025% of the available maximum block space, a 61% reduction compared to the equivalent legacy transaction described previously. The exact amount of space saved by converting from legacy transactions to segwit transactions will vary depending on various transaction details.<br />
<br />
To convert from weight units to vbytes, divide by four. For the example transaction above, this makes the transaction 140.25 vbytes. Note that fractional vbytes are possible, but they may not be compatible with legacy applications that expect only integer values, so it is recommended<ref>[https://bitcoincore.org/en/segwit_wallet_dev/#transaction-fee-estimation Segwit wallet dev guide: fee estimation], BitcoinCore.org contributors, BitcoinCore.org, retrieved 2018-01-17</ref> to round up. For example, Bitcoin Core reports this transaction as having a vsize of 141 vbytes.<br />
<br />
== Misconceptions ==<br />
<br />
Possibly because of the vbytes metric, it is a common misconception that segwit somehow makes transactions much smaller—but this is incorrect. A 300-byte transaction is 300 bytes on-disk and over-the-wire. Segwit just counts those bytes differently toward the maximum block size of 4M weight units.<br />
<br />
The maximum size of a block in bytes is nearly equal in number to the maximum amount of block weight units, so 4M weight units allows a block of almost 4M bytes (4MB). This is not a somehow "made-up" size; the maximum block size is really almost 4MB on-disk and over-the-wire. However, this maximum can only be reached if the block is full of very weirdly-formatted transactions, so it should not usually be seen.<br />
<br />
The typical size of a block depends on the make-up of transactions in that block. As of 2017, the average transaction make-up would lead to blocks with 4M weight units being about 2.3MB in size if all transactions were segwit transactions.<br />
<br />
===Detailed example===<br />
<br />
Consider this transaction:<br />
<br />
<pre>0100000000010115e180dc28a2327e687facc33f10f2a20da717e5548406f7ae8b4c8<br />
11072f85603000000171600141d7cd6c75c2e86f4cbf98eaed221b30bd9a0b928ffff<br />
ffff019caef505000000001976a9141d7cd6c75c2e86f4cbf98eaed221b30bd9a0b92<br />
888ac02483045022100f764287d3e99b1474da9bec7f7ed236d6c81e793b20c4b5aa1<br />
f3051b9a7daa63022016a198031d5554dbb855bdbe8534776a4be6958bd8d530dc001<br />
c32b828f6f0ab0121038262a6c6cec93c2d3ecd6c6072efea86d02ff8e3328bbd0242<br />
b20af3425990ac00000000</pre><br />
<br />
{|<br />
|-<br />
! Data<br />
! Description<br />
! Raw byte count<br />
! Type (multiplier)<br />
! Section total weight<br />
! Running total weight<br />
|-<br />
| <tt>01000000</tt><br />
| Version 1<br />
| 4<br />
| Non-witness (4x)<br />
| 16<br />
| 16<br />
|-<br />
| <tt>00</tt><br />
| SegWit marker<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 17<br />
|-<br />
| <tt>01</tt><br />
| SegWit flag<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 18<br />
|-<br />
| <tt>01</tt><br />
| Number of inputs (1)<br />
| 1<br />
| Non-witness (4x)<br />
| 4<br />
| 22<br />
|-<br />
| <tt>15..56</tt><br />
| Previous output hash<br />
| 32<br />
| Non-witness (4x)<br />
| 128<br />
| 150<br />
|-<br />
| <tt>03000000</tt><br />
| Previous output index (3)<br />
| 4<br />
| Non-witness (4x)<br />
| 16<br />
| 166<br />
|-<br />
|<tt>17</tt><br />
| Script length (23 bytes)<br />
| 1<br />
| Non-witness (4x)<br />
| 4<br />
| 170<br />
|-<br />
|<tt>16..28</tt><br />
| Script: P2SH-enclosed P2WPKH witness program<br />
| 23<br />
| Non-witness (4x)<br />
| 92<br />
| 262<br />
|-<br />
|<tt>ffffffff</tt><br />
| Sequence<br />
| 4<br />
| Non-witness (4x)<br />
| 16<br />
| 278<br />
|-<br />
|<tt>01</tt><br />
| Output count (1)<br />
| 1<br />
| Non-witness (4x)<br />
| 4<br />
| 282<br />
|-<br />
|<tt>9caef50500000000</tt><br />
| Output value (0.99987100 BTC)<br />
| 8<br />
| Non-witness (4x)<br />
| 32<br />
| 314<br />
|-<br />
|<tt>19</tt><br />
| Output script size (25)<br />
| 1<br />
| Non-witness (4x)<br />
| 4<br />
| 318<br />
|-<br />
|<tt>76..ac</tt><br />
| Script: DUP HASH160 0x1d7c... EQUALVERIFY CHECKSIG<br />
| 25<br />
| Non-witness (4x)<br />
| 100<br />
| 418<br />
|-<br />
|<tt>02</tt><br />
| Number of stack items for input 0 (2)<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 419<br />
|-<br />
|<tt>48</tt><br />
| Size of stack item 0 (72)<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 420<br />
|-<br />
|<tt>304...ab01</tt><br />
| Stack item 0, signature<br />
| 72<br />
| Witness (1x)<br />
| 72<br />
| 492<br />
|-<br />
|<tt>21</tt><br />
| Size of stack item 1 (33)<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 493<br />
|-<br />
|<tt>03..ac</tt><br />
| Stack item 1, pubkey<br />
| 33<br />
| Witness (1x)<br />
| 33<br />
| 526<br />
|-<br />
|<tt>00000000</tt><br />
| Locktime (0)<br />
| 4<br />
| Non-witness (4x)<br />
| 16<br />
| 542<br />
|}<br />
<br />
The transaction's real size on disk and over the network is 218 bytes, which is the size in bytes of the whole transaction expressed above in hexadecimal. The weight is always greater than the real size, in this case 542 weight units. The size in vbytes would be 135.5.<br />
<br />
== References ==<br />
<br />
<references /><br />
<br />
[[Category:Technical]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Weight_units&diff=68468Weight units2021-03-02T02:36:47Z<p>Geremia: /* History */ fixed broken "SegWit discount" link</p>
<hr />
<div><br />
'''Weight units''' are a measurement used to compare the size of different Bitcoin transactions to each other in proportion to the [[consensus]]-enforced [[maximum block size limit]]. Weight units are also used to measure the size of other block chain data, such as [[block headers]]. As of Bitcoin Core 0.13.0 (released August 2016)<ref>[https://bitcoincore.org/en/releases/0.13.0/ Bitcoin Core 0.13.0 release notes]</ref>, each weight unit represents 1/4,000,000th of the maximum size of a block.<br />
<br />
'''Virtual size''' (vsize), also called '''virtual bytes''' (vbytes), are an alternative measurement, with one vbyte being equal to four weight units. That means the maximum block size measured in vsize is 1 million vbytes.<br />
<br />
== History ==<br />
<br />
Bitcoin was released with an implicit maximum block size limit of 32 mibibytes (32 MiB), which was the maximum allowed size of a P2P protocol [[Protocol_documentation#block|block]] message.<ref>[https://bitcointalk.org/index.php?topic=68121 Earliest known Bitcoin code], <code>src/main.h:17</code>, Satoshi Nakamoto (attributed), November 2008 (published 10 March 2012)</ref> Effective block 79,400 (7 September 2010), this became an explicit limit of 1 megabyte (1 MB).<ref>[https://github.com/bitcoin/bitcoin/commit/8c9479c6bbbc38b897dc97de9d04e4d5a5a36730 Bitcoin commit 8c9479c], Satoshi Nakamoto, 7 September 2010</ref><br />
<br />
In both cases, to calculate how much a transaction or other data counted towards these maximum block size limits, you simply put the data in the format used by the [[Protocol documentation|P2P protocol's]] ''block'' message and counted the bytes.<br />
<br />
The introduction of a soft-fork [[Segregated Witness|segregated witness]] (segwit) idea in late 2015<ref>[https://youtu.be/fst1IK_mrng?t=36m Segregated witness and its impact on scalability (presentation video)], Pieter Wuille, 2015-12-07</ref> meant that the transaction format could be extended with new fields that would be excluded from the historic block size limits—allowing an increase in the maximum block size. But that increase was only possible in a [[Softfork|soft fork]] if the new fields contributed less towards the maximum block size than the fields in the original transaction format.<br />
<br />
Although some people complained about that being unfair<ref>[https://twitter.com/JihanWu/status/868896110760181760 SegWit tx is unfairly cheap], Jihan Wu, Twitter.com, 2017-05-27, retrieved 2017-01-17</ref>, many Bitcoin Protocol developers considered discounting the new fields to be advantageous.<ref>[https://medium.com/segwit-co/what-is-behind-the-segwit-discount-8515a8d3bca9 What is behind the segwit discount?], Segwit.org, 2017-01-10, retrieved 2017-01-17</ref><ref>[https://segwit.org/why-a-discount-factor-of-4-why-not-2-or-8-bbcebe91721e Why a discount factor of 4?], Segwit.org, 2017-01-13, retrieved 2017-01-17</ref> The new fields store witnesses, which are transaction signatures and other data necessary to authenticate the spender of certain bitcoins. Witnesses do not need to be stored by all full nodes after they are processed, unlike other parts of a transaction, so they have less effect on the [[cost of node operation]] and (arguably) warrant a discount.<br />
<br />
This introduction of a discount for certain fields in certain transactions lead to the development of the ''weight unit'' which allows easy comparison between transactions that contain the discounted fields and those that don't. Weight units were designed to be fully backwards compatible with all previous versions of Bitcoin Core even though blocks created after segwit activated may include up to almost four times as much data as they could previously.<br />
<br />
For backwards compatibility with software using the earlier ''bytes'' metric<ref>[https://bitcoin.stackexchange.com/a/57800 The advantage of using vsize...], Pieter Wuille, Bitcoin.StackExchange.com, 2017-08-09, retrieved 2017-01-17</ref>, virtual size (vsize) was introduced. A unit of vsize is equal to four weight units. Some developers call a unit of vsize by the name of vbyte<ref>[https://medium.com/@murchandamus/psa-wrong-fee-rates-on-block-explorers-48390cbfcc74 PSA: Wrong fee rates on block explorers], Mark Erhardt, 2017-12-12, retrieved 2017-01-17</ref> because the number of bytes and vbytes in a transaction are identical for legacy transactions.<br />
<br />
== Weight for legacy transactions ==<br />
<br />
Transactions that don't use segregated witness (segwit) are currently called ''legacy transactions''. For these transactions, calculating the number of weight units in a transaction is as easy as putting the transaction into the format used in a P2P protocol ''block'' message, counting the number of bytes, and multiplying by four.<br />
<br />
For example, at the time of writing (January 2018), the most commonly seen transaction template in the block chain is a legacy transaction with one input (using P2PKH with a [[compressed pubkey]]) and two P2PKH outputs, or about 226 bytes. Here's a byte map of that transaction template:<br />
<br />
[[File:p2pkh-1in-2out_bytes.png|center]]<br />
<br />
To change from bytes to weight units, we simply scale everything up by a factor of four:<br />
<br />
[[File:p2pkh-1in-2out_weight.png|center]]<br />
<br />
At 904 weight, to include the above transaction in a block consumes 0.0226% of the available maximum block space.<br />
<br />
To convert from weight units to vbytes, divide the total by four. For legacy transactions, this means that vbytes are equal to bytes.<br />
<br />
== Weight for segwit transactions ==<br />
<br />
Transactions that use segregated witnesses are called ''segwit transactions.'' For these transactions, calculating the number of weight units in a transaction is more complicated.<br />
<br />
* The transaction is put into the format used by a P2P protocol ''block'' message (segwit-enabled)<br />
* Each byte of the segwit marker, flag, and witness fields counts as one weight unit<br />
* Each byte of the other fields in the transaction counts as four weight units<br />
<br />
For example, the segwit equivalent to the P2PKH transaction analyzed in the ''legacy'' section above would be a transaction with one input (using P2WPKH) and two P2WPKH outputs, or about 222 bytes. Here's a byte map of that transaction template with the segwit-specific fields highlighted in blue:<br />
<br />
[[File:p2wpkh-1in-2out_bytes.png|center]]<br />
<br />
To change from bytes to weight units, we use the method described above where the highlighted fields stay the same size but the other fields are multiplied by four. When displayed at the same scale, this makes it appear that the segwit fields have shrunk:<br />
<br />
[[File:p2wpkh-1in-2out_weight.png|center]]<br />
<br />
At 561 weight units, to include the above transaction in a block consumes 0.014025% of the available maximum block space, a 61% reduction compared to the equivalent legacy transaction described previously. The exact amount of space saved by converting from legacy transactions to segwit transactions will vary depending on various transaction details.<br />
<br />
To convert from weight units to vbytes, divide by four. For the example transaction above, this makes the transaction 140.25 vbytes. Note that fractional vbytes are possible, but they may not be compatible with legacy applications that expect only integer values, so it is recommended<ref>[https://bitcoincore.org/en/segwit_wallet_dev/#transaction-fee-estimation Segwit wallet dev guide: fee estimation], BitcoinCore.org contributors, BitcoinCore.org, retrieved 2018-01-17</ref> to round up. For example, Bitcoin Core reports this transaction as having a vsize of 141 vbytes.<br />
<br />
== Misconceptions ==<br />
<br />
Possibly because of the vbytes metric, it is a common misconception that segwit somehow makes transactions much smaller—but this is incorrect. A 300-byte transaction is 300 bytes on-disk and over-the-wire. Segwit just counts those bytes differently toward the maximum block size of 4M weight units.<br />
<br />
The maximum size of a block in bytes is nearly equal in number to the maximum amount of block weight units, so 4M weight units allows a block of almost 4M bytes (4MB). This is not a somehow "made-up" size; the maximum block size is really almost 4MB on-disk and over-the-wire. However, this maximum can only be reached if the block is full of very weirdly-formatted transactions, so it should not usually be seen.<br />
<br />
The typical size of a block depends on the make-up of transactions in that block. As of 2017, the average transaction make-up would lead to blocks with 4M weight units being about 2.3MB in size if all transactions were segwit transactions.<br />
<br />
===Detailed example===<br />
<br />
Consider this transaction:<br />
<br />
<pre>0100000000010115e180dc28a2327e687facc33f10f2a20da717e5548406f7ae8b4c8<br />
11072f85603000000171600141d7cd6c75c2e86f4cbf98eaed221b30bd9a0b928ffff<br />
ffff019caef505000000001976a9141d7cd6c75c2e86f4cbf98eaed221b30bd9a0b92<br />
888ac02483045022100f764287d3e99b1474da9bec7f7ed236d6c81e793b20c4b5aa1<br />
f3051b9a7daa63022016a198031d5554dbb855bdbe8534776a4be6958bd8d530dc001<br />
c32b828f6f0ab0121038262a6c6cec93c2d3ecd6c6072efea86d02ff8e3328bbd0242<br />
b20af3425990ac00000000</pre><br />
<br />
{|<br />
|-<br />
! Data<br />
! Description<br />
! Raw byte count<br />
! Type (multiplier)<br />
! Section total weight<br />
! Running total weight<br />
|-<br />
| <tt>01000000</tt><br />
| Version 1<br />
| 4<br />
| Non-witness (4x)<br />
| 16<br />
| 16<br />
|-<br />
| <tt>00</tt><br />
| SegWit marker<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 17<br />
|-<br />
| <tt>01</tt><br />
| SegWit flag<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 18<br />
|-<br />
| <tt>01</tt><br />
| Number of inputs (1)<br />
| 1<br />
| Non-witness (4x)<br />
| 4<br />
| 22<br />
|-<br />
| <tt>15..56</tt><br />
| Previous output hash<br />
| 32<br />
| Non-witness (4x)<br />
| 128<br />
| 150<br />
|-<br />
| <tt>03000000</tt><br />
| Previous output index (3)<br />
| 4<br />
| Non-witness (4x)<br />
| 16<br />
| 166<br />
|-<br />
|<tt>17</tt><br />
| Script length (23 bytes)<br />
| 1<br />
| Non-witness (4x)<br />
| 4<br />
| 170<br />
|-<br />
|<tt>16..28</tt><br />
| Script: P2SH-enclosed P2WPKH witness program<br />
| 23<br />
| Non-witness (4x)<br />
| 92<br />
| 262<br />
|-<br />
|<tt>ffffffff</tt><br />
| Sequence<br />
| 4<br />
| Non-witness (4x)<br />
| 16<br />
| 278<br />
|-<br />
|<tt>01</tt><br />
| Output count (1)<br />
| 1<br />
| Non-witness (4x)<br />
| 4<br />
| 282<br />
|-<br />
|<tt>9caef50500000000</tt><br />
| Output value (0.99987100 BTC)<br />
| 8<br />
| Non-witness (4x)<br />
| 32<br />
| 314<br />
|-<br />
|<tt>19</tt><br />
| Output script size (25)<br />
| 1<br />
| Non-witness (4x)<br />
| 4<br />
| 318<br />
|-<br />
|<tt>76..ac</tt><br />
| Script: DUP HASH160 0x1d7c... EQUALVERIFY CHECKSIG<br />
| 25<br />
| Non-witness (4x)<br />
| 100<br />
| 418<br />
|-<br />
|<tt>02</tt><br />
| Number of stack items for input 0 (2)<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 419<br />
|-<br />
|<tt>48</tt><br />
| Size of stack item 0 (72)<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 420<br />
|-<br />
|<tt>304...ab01</tt><br />
| Stack item 0, signature<br />
| 72<br />
| Witness (1x)<br />
| 72<br />
| 492<br />
|-<br />
|<tt>21</tt><br />
| Size of stack item 1 (33)<br />
| 1<br />
| Witness (1x)<br />
| 1<br />
| 493<br />
|-<br />
|<tt>03..ac</tt><br />
| Stack item 1, pubkey<br />
| 33<br />
| Witness (1x)<br />
| 33<br />
| 526<br />
|-<br />
|<tt>00000000</tt><br />
| Locktime (0)<br />
| 4<br />
| Non-witness (4x)<br />
| 16<br />
| 542<br />
|}<br />
<br />
The transaction's real size on disk and over the network is 218 bytes, which is the size in bytes of the whole transaction expressed above in hexadecimal. The weight is always greater than the real size, in this case 542 weight units. The size in vbytes would be 135.5.<br />
<br />
== References ==<br />
<br />
<references /><br />
<br />
[[Category:Technical]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=67419User:Geremia2020-03-28T02:06:01Z<p>Geremia: "usury" links to Summa Theologica II-II q. 78; fixed De Emptione link</p>
<hr />
<div>==About Me==<br />
I am a freelance translator and Linux developer.<br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://isidore.co/calibre/browse/book/3320 Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://youtu.be/u_j04HaR9Ak?t=17m54s The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://isidore.co/calibre/browse/book/5291 ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[https://isidore.co/aquinas/summa/SS/SS057.html#SSQ57A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [https://isidore.co/aquinas/Emptio.htm his short-work on buying and selling time]</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://isidore.co/calibre/browse/book/3313 the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury]; but is worse than [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78OUTP1 usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://bitcoin.org/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F54C34861AB6663<br><br />
<b>Join [https://www.kraken.com/ Kraken]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Protocol_specification&diff=65856Protocol specification2018-11-06T16:10:47Z<p>Geremia: added "#Block_Headers"</p>
<hr />
<div>#REDIRECT [[Protocol documentation#Block_Headers]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Talk:Getblocktemplate&diff=65828Talk:Getblocktemplate2018-10-28T00:11:49Z<p>Geremia: Created page with "== Updating Getblocktemplate#How_to_build_coinbase_transaction for segwit == Doesn't Getblocktemplate#How_to_build_coinbase_transaction need updating in light of [htt..."</p>
<hr />
<div>== Updating [[Getblocktemplate#How_to_build_coinbase_transaction]] for segwit ==<br />
<br />
Doesn't [[Getblocktemplate#How_to_build_coinbase_transaction]] need updating in light of [https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki#hashes BIP 144]? —[[User:Geremia|Geremia]] ([[User talk:Geremia|talk]]) 00:11, 28 October 2018 (UTC)</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Mastering_Bitcoin&diff=65066Mastering Bitcoin2018-03-13T16:51:29Z<p>Geremia: /* See Also */ removed O'Reilly's dead link for the book</p>
<hr />
<div>'''''Mastering Bitcoin''''' by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] is [http://chimera.labs.oreilly.com/books/1234000001802/index.html a freely-available book] on Bitcoin by O'Reilly publishers, published in 2015.<br />
<br />
Mastering Bitcoin copies significant portions of this wiki<ref>https://github.com/aantonop/bitcoinbook/blob/develop/appdx-scriptops.asciidoc</ref><ref>https://en.bitcoin.it/wiki/Script</ref> and promotes practices that may lead to theft and deanonymization.<br />
[[Category:Educational]]<br />
{{italic}}<br />
==See Also==<br />
[https://bitcoin.org/en/developer-documentation Bitcoin.org Developer Documentation]<br />
*''Mastering Bitcoin'' from O'Reilly (DRM-free book; May 2015 edition):<br />
**[https://isidore.co/calibre/get/epub/5328 EPUB format]<br />
**[https://isidore.co/calibre/get/pdf/5328 PDF format]<br />
*[https://isidore.co/calibre#panel=book_details&book_id=6316 ''Mastering Bitcoin: Programming the Open Blockchain'' from O'Reilly] ([https://isidore.co/calibre/get/epub/6316 DRM-free EPUB]; June 2017, 2<sup>nd</sup> edition)<br />
*[https://github.com/aantonop/bitcoinbook GitHub page]<br />
*[https://www.bitcoinbook.info/ author's book page]<br />
<br />
==References==<br />
<br />
<references/></div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Mastering_Bitcoin&diff=65062Mastering Bitcoin2018-03-12T01:38:04Z<p>Geremia: /* See Also */ updated URLs</p>
<hr />
<div>'''''Mastering Bitcoin''''' by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] is [http://chimera.labs.oreilly.com/books/1234000001802/index.html a freely-available book] on Bitcoin by O'Reilly publishers, published in 2015.<br />
<br />
Mastering Bitcoin copies significant portions of this wiki<ref>https://github.com/aantonop/bitcoinbook/blob/develop/appdx-scriptops.asciidoc</ref><ref>https://en.bitcoin.it/wiki/Script</ref> and promotes practices that may lead to theft and deanonymization.<br />
[[Category:Educational]]<br />
{{italic}}<br />
==See Also==<br />
[https://bitcoin.org/en/developer-documentation Bitcoin.org Developer Documentation]<br />
*[http://chimera.labs.oreilly.com/books/1234000001802/index.html ''Mastering Bitcoin'' from O'Reilly] (DRM-free book; May 2015 edition)<br />
**[https://isidore.co/calibre/get/epub/5328 EPUB format]<br />
**[https://isidore.co/calibre/get/pdf/5328 PDF format]<br />
*[https://isidore.co/calibre#panel=book_details&book_id=6316 ''Mastering Bitcoin: Programming the Open Blockchain'' from O'Reilly] ([https://isidore.co/calibre/get/epub/6316 DRM-free EPUB]; June 2017, 2<sup>nd</sup> edition)<br />
*[https://github.com/aantonop/bitcoinbook GitHub page]<br />
*[https://www.bitcoinbook.info/ author's book page]<br />
<br />
==References==<br />
<br />
<references/></div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=64325User:Geremia2017-11-30T15:58:57Z<p>Geremia: updated more links</p>
<hr />
<div>==About Me==<br />
I am a freelance translator and Linux developer.<br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://isidore.co/calibre/browse/book/3320 Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://youtu.be/u_j04HaR9Ak?t=17m54s The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://isidore.co/calibre/browse/book/5291 ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [https://isidore.co/aquinas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[https://isidore.co/aquinas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [https://isidore.co/aquinas/thomas/Emptio.htm his short-work on buying and selling time]</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://isidore.co/calibre/browse/book/3313 the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://bitcoin.org/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F54C34861AB6663<br><br />
<b>Join [https://www.kraken.com/ Kraken]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=64324User:Geremia2017-11-30T15:57:58Z<p>Geremia: removed outdated info</p>
<hr />
<div>==About Me==<br />
I am a freelance translator and Linux developer.<br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://isidore.co/calibre/browse/book/3320 Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://youtu.be/u_j04HaR9Ak?t=17m54s The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://isidore.co/calibre/browse/book/5291 ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://isidore.co/calibre/browse/book/3313 the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://bitcoin.org/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F54C34861AB6663<br><br />
<b>Join [https://www.kraken.com/ Kraken]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=64323User:Geremia2017-11-30T15:57:13Z<p>Geremia: updated links</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://isidore.co/calibre/browse/book/3320 Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://youtu.be/u_j04HaR9Ak?t=17m54s The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://isidore.co/calibre/browse/book/5291 ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://isidore.co/calibre/browse/book/3313 the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://bitcoin.org/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F54C34861AB6663<br><br />
<b>Join [https://www.kraken.com/ Kraken]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Controlled_supply&diff=64190Controlled supply2017-11-10T20:58:23Z<p>Geremia: </p>
<hr />
<div><blockquote>A fixed money supply, or a supply altered only in accord with objective and calculable criteria, is a necessary condition to a meaningful just price of money.<ref>[https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] p. 220 by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960); cf. John Horvat II [https://isidore.co/calibre/browse/book/5155 <i>Return to Order</i>] ch. 37 "The Backing of Money"</ref><br />
<p align="right">—[https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960)</p></blockquote><br />
<br />
In a centralized economy, currency is issued by a central bank at a rate that is supposed to match the growth of the amount of goods that are exchanged so that these goods can be traded with stable prices. The <br />
[[wikipedia:monetary base|monetary base]] is controlled by a central bank. In the United States, the [[wikipedia:Federal Reserve System|Fed]] increases the monetary base by issuing currency, increasing the amount banks have on reserve, and more recently, printing money electronically in a process called [[wikipedia:Quantitative Easing|Quantitative Easing]].<br />
<br />
In a fully decentralized monetary system, there is no central authority that regulates the monetary base. Instead, currency is created by the nodes of a peer-to-peer network. The Bitcoin generation algorithm defines, in advance, how currency will be created and at what rate. Any currency that is generated by a malicious user that does not follow the rules will be rejected by the network and thus is worthless.<br />
<br />
==Currency with Finite Supply==<br />
[[Image:Controlled supply-block reward halving.png|160px|thumb|right| Block reward halving]]<br />
[[Image:Controlled supply-supply over block height.png|160px|thumb|right| Controlled supply]]<br />
Bitcoins are created each time a user discovers a new [[block]]. <br />
The rate of block creation is adjusted every 2016 blocks to aim for a constant two week adjustment period (equivalent to 6 per hour.) The number of bitcoins generated per block is set to decrease geometrically, with a 50% reduction every 210,000 blocks, or approximately four years. The result is that the number of bitcoins in existence is not expected to exceed 21 million.<ref>[http://www.bitcointalk.org/index.php?topic=3366.msg47522#msg47522 21 million cap]</ref> Speculated justifications for the unintuitive value "21 million" are that it matches a 4-year reward halving schedule; or the ultimate total number of Satoshis that will be mined is close to the maximum capacity of a 64-bit floating point number. Satoshi has never really justified or explained many of these constants.<br />
<br />
[[File:ControlledSupply.png]]<br />
<br />
This decreasing-supply algorithm was chosen because it approximates the rate at which commodities like gold are mined. Users who use their computers to perform calculations to try and discover a block are thus called [[Mining|''Miners'']].<br />
<br />
See also: https://bashco.github.io/<br />
<br />
==Projected Bitcoins Short Term ==<br />
This chart shows the number of bitcoins that will exist in the near future. The ''Year'' is a forecast and may be slightly off.<br />
{| class="wikitable"<br />
|-<br />
! Date reached!!Block!!Reward Era!! BTC/block!! Year (estimate)!! Start BTC!! BTC Added!! End BTC!! BTC Increase|| End BTC % of Limit<br />
|-<br />
|2009-01-03||0||1||50.00||2009||0||2625000||2625000||infinite||12.500%<br />
|-<br />
|2010-04-22||52500||1||50.00||2010||2625000||2625000||5250000||100.00%||25.000%<br />
|-<br />
|2011-01-28||105000||1||50.00||2011*||5250000||2625000||7875000||50.00%||37.500%<br />
|-<br />
|2011-12-14||157500||1||50.00||2012||7875000||2625000||10500000||33.33%||50.000%<br />
|-<br />
|[[Halving day 2012|2012-11-28]]||210000||2||25.00||2013||10500000||1312500||11812500||12.50%||56.250%<br />
|-<br />
|2013-10-09||262500||2||25.00||2014||11812500||1312500||13125000||11.11%||62.500%<br />
|-<br />
|2014-08-11||315000||2||25.00||2015||13125000||1312500||14437500||10.00%||68.750%<br />
|-<br />
|2015-07-29||367500||2||25.00||2016||14437500||1312500||15750000||9.09%||75.000%<br />
|-<br />
|2016-07-09||420000||3||12.50||2016||15750000||656250||16406250||4.17%||78.125%<br />
|-<br />
|2017-06-23||472500||3||12.50||2018||16406250||656250||17062500||4.00%||81.250%<br />
|-<br />
|||525000||3||12.50||2019||17062500||656250||17718750||3.85%||84.375%<br />
|-<br />
|||577500||3||12.50||2020||17718750||656250||18375000||3.70%||87.500%<br />
|-<br />
|||630000||4||6.25||2021||18375000||328125||18703125||1.79%||89.063%<br />
|-<br />
|||682500||4||6.25||2022||18703125||328125||19031250||1.75%||90.625%<br />
|-<br />
|||735000||4||6.25||2023||19031250||328125||19359375||1.72%||92.188%<br />
|-<br />
|||787500||4||6.25||2024||19359375||328125||19687500||1.69%||93.750%<br />
|}<br />
''* In Block 124724, user midnightmagic mined a solo block to himself which underpaid the reward by a single Satoshi and simultaneously destroyed the block's fees. This the the only known reduction in the total mined supply of Bitcoin. Therefore, from block 124724 onwards, all total supply estimates must technically be reduced by 1 Satoshi.<br />
<br />
==Projected Bitcoins Long Term ==<br />
[[Image:Controlled supply-timeline estimation.png|160px|thumb|right| Supply timeline estimation]]<br />
Because the number of bitcoins created each time a user discovers a new block - the block reward - is halved based on a fixed interval of blocks, and the time it takes on average to discover a block can vary based on [[mining]] power and the network [[difficulty]], the exact time when the block reward is halved can vary as well. Consequently, the time the last Bitcoin will be created will also vary, and is subject to speculation based on assumptions.<br />
<br />
If the mining power had remained constant since the first Bitcoin was mined, the last Bitcoin would have been mined somewhere near October 8th, 2140. Due to the mining power having increased overall over time, as of block 367,500 - assuming mining power remained constant from that block forward - the last Bitcoin will be mined on May 7th, 2140.<br />
<br />
As it is very difficult to predict how mining power will evolve into the future - i.e. whether technological progress will continue to make hardware faster or whether mining will hit a a technological wall; or whether or not faster methods of SHA2 calculation will be discovered - putting an exact date or even year on this event is difficult.<br />
<br />
The total number of bitcoins, as mentioned earlier, has an asymptote at 21 million, due to a technical limitation in the data structure of the blockchain - specifically the integer storage type of the [[Transaction#general_format_.28inside_a_block.29_of_each_output_of_a_transaction_-_Txout|transaction output]], this exact value would have been 20,999,999.9769 bitcoin. Should this technical limitation be adjusted by changing the width of the field, the total number will still only approach or be a maximum of 21 million.<br />
<br />
{| class="wikitable" style="text-align:right"<br />
|-<br />
! Block!!Reward Era!! BTC/block!! Start BTC!! BTC Added!! End BTC!! BTC Increase|| End BTC % of Limit<br />
|-<br />
| 0|| 1|| 50.00000000|| 0.00000000|| 10500000.00000000|| 10500000.00000000*|| infinite|| 50.00000006%<br />
|-<br />
| 210000|| 2|| 25.00000000|| 10500000.00000000|| 5250000.00000000|| 15750000.00000000|| 50.00000000%|| 75.00000008%<br />
|-<br />
| 420000|| 3|| 12.50000000|| 15750000.00000000|| 2625000.00000000|| 18375000.00000000|| 16.66666667%|| 87.50000010%<br />
|-<br />
| 630000|| 4|| 6.25000000|| 18375000.00000000|| 1312500.00000000|| 19687500.00000000|| 7.14285714%|| 93.75000010%<br />
|-<br />
| 840000|| 5|| 3.12500000|| 19687500.00000000|| 656250.00000000|| 20343750.00000000|| 3.33333333%|| 96.87500011%<br />
|-<br />
| 1050000|| 6|| 1.56250000|| 20343750.00000000|| 328125.00000000|| 20671875.00000000|| 1.61290323%|| 98.43750011%<br />
|-<br />
| 1260000|| 7|| 0.78125000|| 20671875.00000000|| 164062.50000000|| 20835937.50000000|| 0.79365079%|| 99.21875011%<br />
|-<br />
| 1470000|| 8|| 0.39062500|| 20835937.50000000|| 82031.25000000|| 20917968.75000000|| 0.39370079%|| 99.60937511%<br />
|-<br />
| 1680000|| 9|| 0.19531250|| 20917968.75000000|| 41015.62500000|| 20958984.37500000|| 0.19607843%|| 99.80468761%<br />
|-<br />
| 1890000|| 10|| 0.09765625|| 20958984.37500000|| 20507.81250000|| 20979492.18750000|| 0.09784736%|| 99.90234386%<br />
|-<br />
| 2100000|| 11|| 0.04882812|| 20979492.18750000|| 10253.90520000|| 20989746.09270000|| 0.04887585%|| 99.95117198%<br />
|-<br />
| 2310000|| 12|| 0.02441406|| 20989746.09270000|| 5126.95260000|| 20994873.04530000|| 0.02442599%|| 99.97558604%<br />
|-<br />
| 2520000|| 13|| 0.01220703|| 20994873.04530000|| 2563.47630000|| 20997436.52160000|| 0.01221001%|| 99.98779307%<br />
|-<br />
| 2730000|| 14|| 0.00610351|| 20997436.52160000|| 1281.73710000|| 20998718.25870000|| 0.00610426%|| 99.99389658%<br />
|-<br />
| 2940000|| 15|| 0.00305175|| 20998718.25870000|| 640.86750000|| 20999359.12620000|| 0.00305194%|| 99.99694833%<br />
|-<br />
| 3150000|| 16|| 0.00152587|| 20999359.12620000|| 320.43270000|| 20999679.55890000|| 0.00152592%|| 99.99847420%<br />
|-<br />
| 3360000|| 17|| 0.00076293|| 20999679.55890000|| 160.21530000|| 20999839.77420000|| 0.00076294%|| 99.99923713%<br />
|-<br />
| 3570000|| 18|| 0.00038146|| 20999839.77420000|| 80.10660000|| 20999919.88080000|| 0.00038146%|| 99.99961859%<br />
|-<br />
| 3780000|| 19|| 0.00019073|| 20999919.88080000|| 40.05330000|| 20999959.93410000|| 0.00019073%|| 99.99980932%<br />
|-<br />
| 3990000|| 20|| 0.00009536|| 20999959.93410000|| 20.02560000|| 20999979.95970000|| 0.00009536%|| 99.99990468%<br />
|-<br />
| 4200000|| 21|| 0.00004768|| 20999979.95970000|| 10.01280000|| 20999989.97250000|| 0.00004768%|| 99.99995236%<br />
|-<br />
| 4410000|| 22|| 0.00002384|| 20999989.97250000|| 5.00640000|| 20999994.97890000|| 0.00002384%|| 99.99997620%<br />
|-<br />
| 4620000|| 23|| 0.00001192|| 20999994.97890000|| 2.50320000|| 20999997.48210000|| 0.00001192%|| 99.99998812%<br />
|-<br />
| 4830000|| 24|| 0.00000596|| 20999997.48210000|| 1.25160000|| 20999998.73370000|| 0.00000596%|| 99.99999408%<br />
|-<br />
| 5040000|| 25|| 0.00000298|| 20999998.73370000|| 0.62580000|| 20999999.35950000|| 0.00000298%|| 99.99999706%<br />
|-<br />
| 5250000|| 26|| 0.00000149|| 20999999.35950000|| 0.31290000|| 20999999.67240000|| 0.00000149%|| 99.99999855%<br />
|-<br />
| 5460000|| 27|| 0.00000074|| 20999999.67240000|| 0.15540000|| 20999999.82780000|| 0.00000074%|| 99.99999929%<br />
|-<br />
| 5670000|| 28|| 0.00000037|| 20999999.82780000|| 0.07770000|| 20999999.90550000|| 0.00000037%|| 99.99999966%<br />
|-<br />
| 5880000|| 29|| 0.00000018|| 20999999.90550000|| 0.03780000|| 20999999.94330000|| 0.00000018%|| 99.99999984%<br />
|-<br />
| 6090000|| 30|| 0.00000009|| 20999999.94330000|| 0.01890000|| 20999999.96220000|| 0.00000009%|| 99.99999993%<br />
|-<br />
| 6300000|| 31|| 0.00000004|| 20999999.96220000|| 0.00840000|| 20999999.97060000|| 0.00000004%|| 99.99999997%<br />
|-<br />
| 6510000|| 32|| 0.00000002|| 20999999.97060000|| 0.00420000|| 20999999.97480000|| 0.00000002%|| 99.99999999%<br />
|-<br />
| 6720000|| 33|| 0.00000001|| 20999999.97480000|| 0.00210000|| 20999999.97690000|| 0.00000001%|| 100.00000000%<br />
|-<br />
| 6930000|| 34|| 0.00000000|| 20999999.97690000|| 0.00000000|| 20999999.97690000|| 0.00000000%|| 100.00000000%<br />
|}<br />
''Note: The number of bitcoins are presented in a floating point format. However, these values are based on the number of satoshi per block originally in integer format to prevent compounding error.''<br />
<br />
''* In block 124724, user midnightmagic solo mined a block which caused one less Satoshi to be created than would otherwise have come into existence. Therefore, all calculations from this block onwards must now, to be accurate, include this underpay in total Bitcoins in existence.''<br />
<br />
==What happens when all the bitcoins are mined?==<br />
<br />
The bitcoin inflation rate steadily trends downwards. At the time of writing, more than 3 out of every 4 bitcoins that will ever exist has already been mined, and the annual inflation rate is just 4%. The [[block]] reward given to miners is made up of newly-created bitcoins plus [[transaction fees]]. As inflation goes to zero miners will obtain an income only from transaction fees which will provide an incentive to keep mining to make transactions [[Irreversible Transactions|irreversible]].<br />
<br />
Due to deep technical reasons, [[Transaction_fees#The_market_for_block_space|block space is a scarce commodity]], getting a transaction mined can be seen as purchasing a portion of it. By analogy, on average every 10 minutes a fixed amount of land is created and no more, people wanting to make transactions bid for parcels of this land. The sale of this land is what supports the miners even in a zero-inflation regime. The price of this land is set by demand for transactions (because the supply is fixed and known) and the mining [[difficulty]] readjusts around this to keep the average interval at 10 minutes.<br />
<br />
==Spendable Supply==<br />
The theoretical total number of bitcoins, 21 million, should not be confused with the total spendable supply. The total spendable supply is always lower than the theoretical total supply, and is subject to accidental loss, willful destruction, and technical peculiarities.<br />
<br />
One way to see a part of the destruction of coin is by collecting a sum of all unspent transaction outputs, using a [[API reference (JSON-RPC)|Bitcoin RPC]] command <code>gettxoutsetinfo</code>. The ''total_amount'' value returned is the sum of all outputs that the client deems technically spendable but not currently spent. Note however that this does not take into account outputs that are exceedingly unlikely to be spent as is the case in loss and destruction via constructed addresses, for example.<br />
===Miner Underpay===<br />
<br />
The algorithm which decides whether a block is valid only checks to verify whether the total amount of the reward '''exceeds''' the reward plus available fees. Therefore it is possible for a miner to deliberately choose to underpay himself by any value: not only can this destroy the fees involved, but also the reward itself, which can prevent the total possible bitcoins that can come into existence from reaching its theoretical maximum. This is a form of underpay which the reference implementation recognises as impossible to spend. Some of the other types below are not recognised as officially destroying Bitcoins; it is possible for example to spend the 1BitcoinEaterAddressDontSendf59kuE if a corresponding private key is used (although this would imply that Bitcoin has been broken.)<br />
<br />
===Loss of bitcoin===<br />
Bitcoins may be lost if the conditions required to spend them are no longer known. For example, if you made a transaction to an [[address]] that requires a private key in order to spend those bitcoins further, had written that private key down on a piece of paper, but that piece of paper was lost. In this case, that bitcoin may also be considered lost, as the odds of randomly finding a matching private key are such that it is generally considered impossible.<br />
<br />
===Willful destruction of bitcoin===<br />
Bitcoins may also be willfully 'destroyed' - for example by attaching conditions that make it impossible to spend them.<br />
<br />
A common method is to send bitcoin to an address that was constructed and only made to pass validity checks, but for which no private key is actually known. An example of such an address is "1BitcoinEaterAddressDontSendf59kuE", where the last "f59kuE" is text to make the preceding constructed text pass validation. Finding a matching private key is, again, generally considered impossible. For an example of how difficult this would be, see [[Vanitygen#Use_of_vanitygen_to_try_to_attack_addresses|Vanitygen]].<br />
<br />
Another common method is to send bitcoin in a transaction where the conditions for spending are not just unfathomably unlikely, but literally impossible to meet. For example, a transaction that is made [[Script#Provably_Unspendable.2FPrunable_Outputs|provably unspendable using OP_RETURN]], or uses script operations that requires the user to prove that 1+1 equals 3.<br />
<br />
A lesser known method is to send bitcoin to an address based on private key that is outside the [[Private_key#Range_of_valid_ECDSA_private_keys|range of valid ECDSA private keys]]. For example, the address 16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM has a known matching private key of value 0 (zero), which is outside the valid range.<br />
<br />
===Technical peculiarities preventing spending of bitcoin===<br />
There are also technical peculiarities that prevent the spending of some bitcoin.<br />
<br />
The first {{btc}}50, included in the [[genesis block]], cannot be spent as its transaction is not in the global database.<br />
<br />
In older versions of the bitcoin reference code, a miner could make their coinbase transaction (block reward) have the exact same ID as used in a previous block<ref>https://github.com/bitcoin/bitcoin/issues/612</ref>. This effectively caused the previous block reward to become unspendable. Two known such cases<ref>{{cite tx|e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd81b84ee974b6585fb468|used in blocks 91722 and 91880}}</ref><ref>{{cite tx|d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599|used in blocks 91812 and 91842</ref> are left as special cases in the code<ref>https://github.com/bitcoin/bitcoin/commit/ab91bf39b7c11e9c86bb2043c24f0f377f1cf514</ref> as part of [[BIP 0030]] changes that fixed this issue. These transactions were {{btc}}50 each.<br />
<br />
==Money Supply==<br />
While the number of bitcoins in existence will never exceed 21 million, the [[wikipedia:money supply|money supply]] of bitcoins can exceed 21 million due to [[wikipedia:Fractional-reserve banking|Fractional-reserve banking]].<br />
<br />
==Deflation==<br />
<br />
Because the monetary base of bitcoins cannot be expanded, the currency would be subject to severe deflation if it becomes widely used. <br />
Keynesian economists argue that [[Deflationary spiral|deflation]] is bad for an economy because it incentivises individuals and businesses to save money rather than invest in businesses and create jobs. The [[wikipedia:Austrian school|Austrian school]] of thought counters this criticism, claiming that as deflation occurs in all stages of production, entrepreneurs who invest benefit from it. As a result, profit ratios tend to stay the same and only their magnitudes change. In other words, in a deflationary environment, goods and services decrease in price, but at the same time the cost for the production of these goods and services tend to decrease proportionally, effectively not affecting profits. Price deflation encourages an increase in hoarding &mdash; hence savings &mdash; which in turn tends to lower interest rates and increase the incentive for entrepreneurs to invest in projects of longer term.<br />
<br />
==See also==<br />
<br />
* [http://www.econlib.org/library/Columns/y2006/Friedmantranscript.html Milton Friedman interview], where he proposed to replace the central bank with a computer, and to fix the money supply growth at 4% annually<br />
* [[Deflationary spiral]]<br />
* [http://blockchain.info/charts/total-bitcoins Chart of total bitcoins in circulation]<br />
* [[Inflation]]<br />
* [[Prohibited changes]]<br />
<br />
==References==<br />
<references /><br />
<br />
[[Category:Economics]] [[Category:Technical]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Myths&diff=64182Myths2017-11-09T19:41:58Z<p>Geremia: /* Quantum computers would break Bitcoin's security */ added ref to https://arxiv.org/abs/1710.10377 arXiv:1710.10377 [quant-ph]</p>
<hr />
<div>Let's clear up some common Bitcoin misconceptions.<br />
<br />
== Bitcoin is just like all other digital currencies; nothing new ==<br />
<br />
Nearly all other digital currencies are centrally controlled. This means that:<br />
* They can be printed at the subjective whims of the controllers<br />
* They can be destroyed by attacking the central point of control<br />
* Arbitrary rules can be imposed upon their users by the controllers<br />
<br />
Being decentralized, Bitcoin solves all of these problems.<br />
<br />
== Bitcoins don't solve any problems that fiat currency and/or gold doesn't solve ==<br />
<br />
Unlike gold, bitcoins are:<br />
* Easy to transfer<br />
* Easy to secure<br />
* Easy to verify<br />
* Easy to granulate<br />
<br />
Unlike fiat currencies, bitcoins are:<br />
* Predictable and limited in [[Controlled_Currency_Supply|supply]]<br />
* Not controlled by a central authority (such as [http://en.wikipedia.org/wiki/Federal_Reserve The United States Federal Reserve])<br />
* Not debt-based<br />
<br />
Unlike electronic fiat currency systems, bitcoins are:<br />
* Potentially anonymous<br />
* Freeze-proof<br />
* Faster to transfer<br />
* Cheaper to transfer<br />
<br />
== Miners, developers or some other entity could change Bitcoin's properties to benefit themselves ==<br />
<br />
Bitcoin's properties cannot be illegitimately changed as long as most of bitcoin's [[economic majority|economy]] uses [[full node]] wallets. Transactions are irreversible and uncensorable as long as [[Majority_attack|no single coalition of miners has more than 50% hash power]] and the transactions have an [[Confirmation#How_Many_Confirmations_Is_Enough|appropriate number of confirmations]].<br />
<br />
Bitcoin requires certain properties to be enforced for it to be a good form of money, for example:<br />
<br />
# Nobody ever created money out of nothing (except for [[Mining|miners]], and only according to a [[Controlled supply|well-defined schedule]]).<br />
# Nobody ever spent coins without knowing their [[private key]].<br />
# Nobody spent the same coin twice<br />
# Nobody violated any of the other tricky rules that are needed to make the system work ([[difficulty]], [[proof of work]], DoS protection, ...).<br />
<br />
These rules ''define'' bitcoin. A [[full node]] is software that verifies the rules of bitcoin. Any transaction which breaks these rules is not a valid bitcoin transaction and would be rejected in the same way that a careful goldsmith rejects fool's gold.<br />
<br />
Full node wallets should be used by any intermediate bitcoin user or above and especially [[Why_Your_Business_Should_Use_a_Full_Node_to_Accept_Bitcoin|bitcoin businesses]]. Therefore anybody attempting to create bitcoins with invalid properties will find themselves being rejected by any trading partners. Note that lightweight wallets and web wallets do not have the low-trust benefits of full node wallets. Lightweight (SPV) wallets will blindly trust the miners, meaning if 51% of miners printed infinite coins or spent the same coin twice then lightweight wallet users would happily accept these fake bitcoins as payment. Web wallets blindly trust the web server which could display anything at all.<br />
<br />
[[Mining|Miners]] are required to choose between multiple ''valid'' transaction histories. A coalition of more than 50% of miner power is able to (at great expense to themselves) [[Majority_attack|rewrite transaction history]], so miner decentralization is necessary to keep transactions irreversible. Miners burn a lot of electrical power in the mining process so they must constantly be trading their bitcoin income in order to pay bills. This makes miners utterly dependent on the bitcoin economy at large and therefore gives them a strong incentive to mine ''valid'' bitcoin blocks that full nodes will accept as payment.<br />
<br />
Influential figures in the community (such as developers, politicians or investors) may try to use their influence to convince people to download and run modified full node software which changes bitcoin's properties in illegitimate ways. This is unlikely to succeed as long as counterarguments can freely spread through the media, internet forums and chatrooms. Many bitcoin users do not follow the bitcoin forums on a regular basis or even speak English. All appeals to run alternative software should be looked at critically for whether the individual agrees with the changes being proposed. Full node software should always be open source so any programmer can examine the changes for themselves. Because of the co-ordination problem, there is usually a strong incentive to stick with the status quo.<br />
<br />
See also: [[Full_node#Economic_strength]]<br />
See also this blog post: [http://nakamotoinstitute.org/mempool/who-controls-bitcoin/ Who Controls Bitcoin?]<br />
<br />
== Bitcoin is backed by processing power ==<br />
<br />
It is not correct to say that Bitcoin is "backed by" processing power. A currency being "backed" means that it is pegged to something else via a central party at a certain exchange rate yet you cannot exchange bitcoins for the computing power that was used to create them. Bitcoin is in this sense not backed by anything. It is a currency in its own right. Just as gold is not backed by anything, the same applies to Bitcoin. <br />
<br />
The Bitcoin currency is ''created'' via processing power, and the integrity of the block chain is ''protected'' by the existence of a network of powerful computing nodes from certain [[Weaknesses#Attacker_has_a_lot_of_computing_power|attacks]].<br />
<br />
== Bitcoins are worthless because they aren't backed by anything ==<br />
<br />
One could argue that gold isn't backed by anything either. Bitcoins have properties resulting from the system's design that allows them to be subjectively valued by individuals. This valuation is demonstrated when individuals freely exchange for or with bitcoins. Please refer to the [http://en.wikipedia.org/wiki/Subjective_theory_of_value Subjective Theory of Value].<br />
<br />
See also: the "[[#Bitcoin_is_backed_by_processing_power|Bitcoin is backed by processing power]]" myth.<br />
<br />
== The value of bitcoins are based on how much electricity and computing power it takes to mine them ==<br />
<br />
This statement is an attempt to apply to Bitcoin the [http://en.wikipedia.org/wiki/Labor_theory_of_value labor theory of value], which is generally accepted as false. Just because something takes X resources to create does not mean that the resulting product will be worth X. It can be worth more, or less, depending on the utility thereof to its users.<br />
<br />
In fact the causality is the reverse of that (this applies to the labor theory of value in general). The cost to mine bitcoins is based on how much they are worth. If bitcoins go up in value, more people will mine (because [[Mining|mining]] is profitable), thus [[difficulty]] will go up, thus the cost of mining will go up. The inverse happens if bitcoins go down in value. These effects balance out to cause mining to always cost an amount proportional to the value of bitcoins it produces<ref>[https://www.bitcoinmining.com Bitcoin Mining]</ref>.<br />
<br />
== Bitcoin has no intrinsic value (unlike some other things) ==<br />
<br />
This is simply not true. Each bitcoin gives the holder the ability to embed a large number of short in-transaction messages in a globally distributed and timestamped permanent data store, namely the bitcoin blockchain. There is no other similar datastore which is so widely distributed. There is a tradeoff between the exact number of messages and how quickly they can be embedded. But as of December 2013, it's fair to say that one bitcoin allows around 1000 such messages to be embedded, each within about 10 minutes of being sent, since a fee of 0.001 BTC is enough to get transactions confirmed quickly. This message embedding certainly has intrinsic value since it can be used to prove ownership of a document at a certain time, by including a one-way hash of that document in a transaction. Considering that electronic notarization services charge something like $10/document, this would give an intrinsic value of around $10,000 per bitcoin.<br />
<br />
While some other tangible commodities do have intrinsic value, that value is generally much less than its trading price. Consider for example that gold, if it were not used as an inflation-proof store of value, but rather only for its industrial uses, would certainly not be worth what it is today, since the industrial requirements for gold are far smaller than the available supply thereof.<br />
<br />
In any event, while historically intrinsic value, as well as other attributes like divisibility, fungibility, scarcity, durability, helped establish certain commodities as mediums of exchange, it is certainly not a prerequisite. While bitcoins are accused of lacking 'intrinsic value' in this sense, they make up for it in spades by possessing the other qualities necessary to make it a good medium of exchange, equal to or better than [http://en.wikipedia.org/wiki/Commodity_money commodity money].<br />
<br />
Another way to think about this is to consider the value of bitcoin the global network, rather than each bitcoin in isolation. The value of an individual telephone is derived from the network it is connected to. If there was no phone network, a telephone would be useless. Similarly the value of an individual bitcoin derives from the global network of bitcoin-enabled merchants, exchanges, wallets, etc... Just like a phone is necessary to transmit vocal information through the network, a bitcoin is necessary to transmit economic information through the network.<br />
<br />
Value is ultimately determined by what people are willing to trade for - by supply and demand.<br />
<br />
== Bitcoin is illegal because it's not legal tender ==<br />
In March 2013, the U.S. [http://en.wikipedia.org/wiki/Financial_Crimes_Enforcement_Network Financial Crimes Enforcement Network] issues a new set of guidelines on "de-centralized virtual currency", clearly targeting Bitcoin. Under the new guidelines, "a user of virtual currency is not a Money Services Businesses (MSB) under FinCEN's regulations and therefore is not subject to MSB registration, reporting, and record keeping regulations." <ref>[http://arstechnica.com/tech-policy/2013/03/us-regulator-bitcoin-exchanges-must-comply-with-money-laundering-laws/ US regulator: Bitcoin exchanges must comply with money-laundering laws | Ars Technica]</ref> [[Mining|Miners]], when mining bitcoins for their own personal use, aren't required to register as a MSB or Money Transmitter. <ref>[http://fincen.gov/news_room/rp/rulings/html/FIN-2014-R001.html Application of FinCEN’s Regulations to Virtual Currency Mining Operations | Fincen]</ref><br />
<br />
In general, there are a [http://en.wikipedia.org/wiki/Local_currency number of currencies] in existence that are not official government-backed currencies. A currency is, after all, nothing more than a convenient unit of account. While national laws may vary from country to country, and you should certainly check the laws of your jurisdiction, in general trading in any commodity, including digital currency like Bitcoin, [http://en.wikipedia.org/wiki/BerkShares BerkShares], game currencies like WoW gold, or Linden dollars, is not illegal.<br />
<br />
== Bitcoin is a form of domestic terrorism because it only harms the economic stability of the USA and its currency ==<br />
<br />
According to [http://en.wikipedia.org/wiki/Definitions_of_terrorism#United_States the definition of terrorism in the United States], you need to do violent activities to be considered a terrorist for legal purposes. Recent off-the-cuff remarks by politicians have no basis in law or fact.<br />
<br />
Also, Bitcoin isn't domestic to the US or any other country. It's a worldwide community, as can be seen in this [https://bitnodes.21.co/nodes/live-map/ map of Bitcoin nodes].<br />
<br />
== Bitcoin will only enable tax evaders which will lead to the eventual downfall of civilization ==<br />
<br />
Cash transactions offer an increased level of [[anonymity]], yet are still taxed successfully. It is up to you to follow the applicable tax laws in your home country, or face the consequences.<br />
<br />
While it may be easy to transfer bitcoins pseudonymously, ''spending'' them on tangibles is just as hard as spending any other kind of money anonymously. Tax evaders are often caught because their lifestyle and assets are inconsistent with their reported income, and not necessarily because government is able to follow their money.<br />
<br />
Finally, the Bitcoin [[blockchain]] is a permanent record of all transactions, meaning it can be mined for info at any time in the future making investigation, tracing of funds, etc much easier than with other forms of payment.<br />
<br />
== Bitcoins can be printed/minted by anyone and are therefore worthless ==<br />
<br />
Bitcoins are not printed/minted. Instead, [[Blocks]] are computed by miners and for their efforts they are awarded a specific amount of bitcoins and transaction fees paid by others. See [[Mining]] for more information on how this process works.<br />
<br />
== Bitcoins are worthless because they're based on unproven cryptography ==<br />
<br />
SHA256 and [[ECDSA]] which are used in Bitcoin are well-known industry standard algorithms. SHA256 is endorsed and used by the US Government and is standardized (FIPS180-3 Secure Hash Standard). If you believe that these algorithms are untrustworthy then you should not trust Bitcoin, credit card transactions or any type of electronic bank transfer. Bitcoin has a sound basis in well understood cryptography.<br />
<br />
== Early adopters are unfairly rewarded ==<br />
<br />
Early adopters are rewarded for taking the higher risk with their time and money. The capital invested in bitcoin at each stage of its life invigorated the community and helped the currency to reach subsequent milestones. Arguing that early adopters do not deserve to profit from this is akin to saying that early investors in a company, or people who buy stock at a company IPO (Initial Public Offering), are unfairly rewarded.<br />
<br />
This argument also depends on bitcoin early adopters using bitcoins to store rather than transfer value. The daily trade on the exchanges (as of Jan 2012) indicates that smaller transactions are becoming the norm, indicating trade rather than investment. In more pragmatic terms, "fairness" is an arbitrary concept that is improbable to be agreed upon by a large population. Establishing "fairness" is no goal of Bitcoin, as this would be impossible.<br />
<br />
Looking forwards, considering the amount of publicity bitcoin received as of April 2013, there can be no reasonable grounds for complaint for people who did not invest at that time, and then see the value (possibly) rising drastically higher.<br />
<br />
By starting to mine or acquire bitcoins today, you too can become an early adopter.<br />
<br />
== 21 million coins isn't enough; doesn't scale ==<br />
<br />
One Bitcoin is divisible down to eight decimal places. There are really 2,099,999,997,690,000 (just over 2 quadrillion) maximum possible atomic units in the bitcoin system.<br />
<br />
The value of "1 BTC" represents 100,000,000 of these. In other words, each bitcoin is divisible by up to 10<sup>8</sup>. <br />
<br />
As the value of the unit of 1 BTC grew too large to be useful for day to day transactions, people started dealing in smaller [[Units|units]], such as milli-bitcoins (mBTC) or micro-bitcoins (μBTC).<br />
<br />
== Bitcoins are stored in wallet files, just copy the wallet file to get more coins! ==<br />
<br />
No, your wallet contains your secret keys, giving you the rights to spend your bitcoins. Think of it like having bank details stored in a file. If you give your bank details (or bitcoin wallet) to someone else, that doesn't double the amount of money in your account. You can spend your money or they can spend your money, but not both.<br />
<br />
== Lost coins can't be replaced and this is bad ==<br />
<br />
Bitcoins are divisible to 0.00000001, so there being fewer bitcoins remaining is not a problem for the currency itself. If you lose your coins, indirectly all other coins are worth more due to the reduced supply. Consider it a donation to all other bitcoin users.<br />
<br />
A related question is: Why don't we have a mechanism to replace lost coins? The answer is that it is impossible to distinguish between a 'lost' coin and one that is simply sitting unused in someone's wallet. And for amounts that are provably destroyed or lost, there is no census that this is a bad thing and something that should be re-circulated.<br />
<br />
== It's a giant ponzi scheme ==<br />
In a [[Wikipedia:Ponzi_scheme|Ponzi Scheme]], the founders persuade investors that they’ll profit. Bitcoin does not make such a guarantee. There is no central entity, just individuals building an economy.<br />
<br />
A Ponzi scheme is a zero sum game. In a ponzi scheme, early adopters can only profit at the expense of late adopters, and the late adopters always lose. Bitcoin can have a win-win outcome. Earlier adopters profit from the rise in value as Bitcoin becomes better understood and in turn demanded by the public at large. All adopters benefit from the usefulness of a reliable and widely-accepted decentralized peer-to-peer currency.<ref name=Jeff_Tucker>cf. {{cite news | author-link = Wikipedia:Jeffrey_Tucker | url = http://libertarianstandard.com/2013/12/01/ponzi-logic-debunking-gary-north/ | title = Ponzi Logic: Debunking Gary North | last = Tucker | first = Jeffrey | date = 1 December 2013 | work = The Libertarian Standard | accessdate = 2015-04-11}}</ref><br />
<br />
It is also important to note that [[Satoshi Nakamoto]], creator of bitcoin, has never spent a bitcoin (other than giving them away when they were worthless) which we can verify by checking the blockchain.<br />
<br />
== Finite coins plus lost coins means deflationary spiral ==<br />
As deflationary forces may apply, economic factors such as hoarding are offset by human factors that may lessen the chances that a [[Deflationary spiral]] will occur.<br />
<br />
== Bitcoin can't work because there is no way to control inflation ==<br />
<br />
Inflation is simply a rise of prices over time, which is generally the result of the devaluing of a currency. This is a function of supply and demand. Given the fact that the supply of bitcoins is fixed at a certain amount, unlike fiat money, the only way for inflation to get out of control is for demand to disappear. Temporary inflation is possible with a rapid adoption of Fractional Reserve Banking but will stabilize once a substantial number of the 21 million "hard" bitcoins are stored as reserves by banks.<br />
<br />
Given the fact that Bitcoin is a distributed system of currency, if demand were to decrease to almost nothing, the currency would be doomed anyway.<br />
<br />
The key point here is that Bitcoin as a currency can't be inflated by any single person or entity, like a government, as there's no way to increase supply past a certain amount.<br />
<br />
Indeed, the most likely scenario, as Bitcoin becomes more popular and demand increases, is for the currency to increase in value, or deflate, until demand stabilizes.<br />
<br />
== The Bitcoin community consists of anarchist/conspiracy theorist/gold standard 'weenies' ==<br />
<br />
The members of the community vary in their ideological stances. While it may have been started by ideological enthusiasts, Bitcoin now speaks to a large number of regular pragmatic folk, who simply see its potential for reducing the costs and friction of global e-commerce.<br />
<br />
== Anyone with enough computing power can take over the network ==<br />
<br />
CONFIRMED, see [[Weaknesses]].<br />
<br />
That said, as the network grows, it becomes harder and harder for a single entity to do so. Already the Bitcoin network's computing power is quite ahead of the world's fastest supercomputers, together.<br />
<br />
What an attacker can do once the network is taken over is quite limited. Under no circumstances could an attacker create counterfeit coins, fake transactions, or take anybody else's money. An attacker's capabilities are limited to taking back their own money that they very recently spent, and preventing other people's transactions from receiving confirmations. Such an attack would be very costly in resources, and for such meager benefits there is little rational economic incentive to do such a thing.<br />
<br />
Furthermore, this attack scenario would only be feasible for as long as it was actively underway. As soon as the attack stopped, the network would resume normal operation.<br />
<br />
== Bitcoin violates governmental regulations ==<br />
<br />
There is no known governmental regulation which disallows the use of Bitcoin.<br />
<br />
See also: the "[[#Bitcoins_are_illegal_because_they.27re_not_legal_tender|Bitcoins are illegal because they're not legal tender]]" myth.<br />
<br />
== Fractional reserve banking is not possible ==<br />
<br />
It is possible. See the main article, [[Fractional Reserve Banking and Bitcoin]]<br />
<br />
== After 21 million coins are mined, no one will generate new blocks ==<br />
<br />
When operating costs can't be covered by the block creation bounty, which will happen some time before the total amount of BTC is reached, miners will earn some profit from [[transaction fees]]. However unlike the block reward, there is [http://bitcoin.stackexchange.com/questions/876/how-much-will-transaction-fees-eventually-be/895#895 no coupling between transaction fees and the need for security], so there is less of a guarantee that the amount of [[Mining|mining]] being performed will be sufficient to maintain the network's security.<br />
<br />
== Bitcoin has no built-in chargeback mechanism and this is bad ==<br />
<br />
Bitcoin base-layer transactions are [[Irreversible Transactions|final and irreversible by design]], but consumer protection can still built into bitcoin in other layers on top. The most practical way of doing this is [[Multisignature|multisig]] escrow. For example when trading over-the-counter, [[Secure_Trading#Use_an_Escrow_Service|using an escrow]] is essential protection.<br />
<br />
It's worth noting that virtually all successful consumer-facing bitcoin businesses do indeed already implement some kind of consumer protection; Routine escrow was used by Localbitcoins, Silk Road and the bitcoin ebay-site Bitmit. Others such as online bitcoin casinos rely on their long-standing reputation, while others such as Coinbase.com rely on the legal and regulatory system.<br />
<br />
The bitcoin method of routinely using escrow has benefits over competitors like credit cards. The security of credit cards is not very good which results in higher costs overall and the possibility of payments being reversed for months afterwards. By contrast when bitcoins have been released to the seller from escrow, they cannot be reversed as the coins are truely in the seller's possession. The requirement to use real-life names for credit cards and PayPal also excludes unbanked people and those from countries with less developed financial infrastructure. There are also downsides like bitcoin is not yet as widely accepted as credit cards and is not a front for providing lines of credit.<br />
<br />
== Quantum computers would break Bitcoin's security ==<br />
<br />
While ECDSA is indeed not secure under quantum computing, quantum computers don't yet exist and probably won't for a while.<br />
The DWAVE system often written about in the press is, even if all their claims are true, not a quantum computer of a kind that could be used for cryptography.<br />
Bitcoin's security, when used properly with a new address on each transaction, depends on more than just ECDSA: Cryptographic hashes are much stronger than ECDSA under QC.<br />
<br />
Bitcoin's security was designed to be upgraded in a forward compatible way and could be [https://en.wikipedia.org/wiki/Post-quantum_cryptography upgraded] if this were considered an imminent threat (cf. Aggarwal et al. 2017, "[https://arxiv.org/abs/1710.10377 Quantum attacks on Bitcoin, and how to protect against them]").<br />
<br />
See the [https://en.wikipedia.org/wiki/Quantum_computer#Potential implications of quantum computers on public key cryptography].<br />
<br />
The ''risk'' of quantum computers is also there for financial institutions, like banks, because they heavily rely on cryptography when doing transactions.<br />
<br />
== Bitcoin makes self-sufficient artificial intelligence possible ==<br />
[[StorJ]]<ref>[http://garzikrants.blogspot.com/2013/01/storj-and-bitcoin-autonomous-agents.html StorJ And Bitcoin Autonomous Agents]</ref>, a theorized autonomous agent which utilizes humans to build itself and issues autonomous payments for improvement work done, is not a conscious entity. Whatever AI is possible, is not going to be magically more possible simply because it could incentivize human behaviour with pseudonymous Bitcoin payments.<br />
<br />
== [[Mining|Bitcoin mining]] is a waste of energy and harmful for ecology ==<br />
No more so than the wastefulness of mining gold out of the ground, melting it down and shaping it into bars, and then putting it back underground again. Not to mention the building of big fancy buildings, the waste of energy printing and minting all the various fiat currencies, the transportation thereof in armored cars by no less than two security guards for each who could probably be doing something more productive, etc. <br />
<br />
As far as mediums of exchange go, Bitcoin is actually quite economical of resources, compared to others.<br />
<br />
'''Economic Argument 1'''<br />
<br />
[[Mining|Bitcoin mining]] is a highly competitive, dynamic, almost [http://en.wikipedia.org/wiki/Perfect_market perfect], market. Mining rigs can be set up and dismantled almost anywhere in the world with relative ease. Thus, market forces are constantly pushing mining activity to ''places'' and ''times'' where the marginal price of electricity is low or zero. These electricity products are cheap for a reason. Often, it’s because the electricity is difficult (and wasteful) to transport, difficult to store, or because there is low demand and high supply. Using electricity in this way is a lot less wasteful than simply plugging a mining rig into the mains indiscriminately. <br />
<br />
For example, Iceland produces an excess of cheap electricity from renewable sources, but it has no way of exporting electricity because of its remote location. It is conceivable that at some point in future Bitcoin mining will only be profitable in places like Iceland, and unprofitable in places like central Europe, where electricity comes mostly from nuclear and fossil sources. <br />
<br />
Market forces could even push mining into innovative solutions that have an effective electricity consumption of ''zero''. Mining always produces heat equivalent to the energy consumed - for example, 1000 watts of mining equipment produces the same amount of heat as a 1000 watt heating element used in an electric space heater, hot tub, water heater, or similar appliance. Someone already in a willing position to incur the cost of electricity for its heat value alone could run mining equipment specially designed to mine bitcoins while capturing and utilizing the heat produced, without incurring any energy costs beyond what they already intended to spend on heating.<br />
<br />
(Note that this is just an example; mining will not always produce heat equivalent to the energy consumed because some energy is inevitably released as electromagnetic radiation, among others.)<br />
<br />
'''Economic Argument 2'''<br />
<br />
When the environmental costs of mining are considered, they need to be weighed up against the benefits. If you question Bitcoin on the grounds that it consumes electricity, then you should also ask questions like this: Will Bitcoin promote economic growth by freeing up trade? Will this speed up the rate of technological innovation? Will this lead to faster development of green technologies? Will Bitcoin enable new, border crossing [http://en.wikipedia.org/wiki/Smart_grid smart grid] technologies? …<br />
<br />
Dismissal of Bitcoin because of its costs, while ignoring its benefits, is a dishonest argument. In fact, any environmental argument of this type is dishonest, not just pertaining to Bitcoin. Along similar lines, it could be argued that wind turbines are bad for the environment because making the steel structure consumes energy.<br />
<br />
'''Ratio of Capital Costs versus Electrical Costs'''<br />
<br />
The BFL Jalapeno hashes at 5.5 Gh/s using 30W. That device consumes about $40 per year in electricity (using U.S. residential average of about $0.15 per kWh.) But the device costs over $300 including shipping. Thus, just about a quarter of all costs over a two-year useful life goes to electricity. This compares to GPUs where more than 90% of costs over a two-year life went to electricity. Even more efficient designs can be expected in the future.<br />
<br />
== Shopkeepers can't seriously set prices in bitcoins because of the volatile exchange rate ==<br />
<br />
The assumption is that bitcoins must be sold immediately to cover operating expenses. If the shopkeeper's back-end expenses were transacted in bitcoins as well, then the exchange rate would be irrelevant. Larger adoption of Bitcoin would make prices [http://en.wikipedia.org/wiki/Sticky_%28economics%29 sticky]. Future volatility is expected to decrease, as the size and depth of the market grows. <br />
<br />
In the meantime, many merchants simply regularly pull the latest market rates from the exchanges and automatically update the prices on their websites. Also you might be able to buy a put option in order to sell at a fixed rate for a given amount of time. This would protect you from drops in price and simplify your operations for that time period.<br />
<br />
== Like Flooz and e-gold, bitcoins serve as opportunities for criminals and will be shut down ==<br />
<br />
* Visa, MasterCard, PayPal, and cash all serve as opportunities for criminals as well, but society keeps them around due to their recognized net benefit.<br />
* Hopefully Bitcoin will grow to the point where no single organization can disrupt the network, or would be better served by helping it.<br />
* Terrorists fly aircraft into buildings, but the governments have not yet abolished consumer air travel. Obviously the public good outweighs the possible bad in their opinion.<br />
* Criminal law differs between jurisdictions.<br />
<br />
== Bitcoins will be shut down by the government just like Liberty Dollars were ==<br />
<br />
Liberty Dollars started as a commercial venture to establish an alternative US currency, including physical banknotes and coins, backed by precious metals. This, in and of itself, is not illegal. They were prosecuted under counterfeiting laws because the silver coins allegedly resembled US currency.<br />
<br />
Bitcoins do not resemble the currency of the US or of any other nation in any way, shape, or form. The word "dollar" is not attached to them in any way. The "$" symbol is not used in any way.<br />
<br />
Bitcoins have no representational similarity whatsoever to US dollars. <br />
<br />
Of course, actually 'shutting down' Liberty Dollars was as easy as arresting the head of the company and seizing the offices and the precious metals used as backing. The decentralized Bitcoin, with no leader, no servers, no office, and no tangible asset backing, does not have the same vulnerability.<br />
<br />
== Bitcoin is not decentralized because the developers can dictate the software's behavior ==<br />
<br />
The Bitcoin protocol was originally defined by Bitcoin's inventor, [[Satoshi Nakamoto]], and this protocol has now been widely accepted as the standard by the community of miners and users. <br />
<br />
Though the developers of the original Bitcoin client still exert influence over the Bitcoin community, their power to arbitrarily modify the protocol is very limited. Since the release of Bitcoin v0.3, changes to the protocol have been minor and always in agreement with community consensus.<br />
<br />
Protocol modifications, such as increasing the block award from 25 to 50 BTC, are not compatible with clients already running in the network. If the developers were to release a new client that the majority of miners perceives as corrupt, or in violation of the project’s aims, that client would simply not catch on, and the few users who do try to use it would find that their transactions get rejected by the network.<br />
<br />
There are also other [[:Category:Clients|Bitcoin clients made by other developers]] that adhere to the Bitcoin protocol. As more developers create alternative clients, less power will lie with the developers of the original Bitcoin client. <br />
<br />
== Bitcoin is a pyramid scheme ==<br />
<br />
Bitcoin is nearly opposite of a [[Wikipedia:Pyramid_scheme|pyramid scheme]] in a mathematical sense. Because Bitcoins are algorithmically made scarce, no exponential benefit is derived from introducing new users to use of it. There is a quantitative benefit in having additional interest or demand, but this is in no way exponential.<ref name="Jeff_Tucker" /><br />
<br />
== Bitcoin was hacked ==<br />
<br />
In the history of Bitcoin, there has never been an attack on the [[block chain]] that resulted in stolen money from a confirmed output. Neither has there ever been a reported theft resulting directly from a vulnerability in the [[Original Bitcoin client|original Bitcoin client]], or a vulnerability in the protocol. Bitcoin is secured by standard cryptographic functions. These functions have been peer reviewed by cryptography experts and are considered unlikely to be breakable in the foreseeable future.<br />
<br />
It is safe to say that the currency itself has never been 'hacked'. However, several major ''websites'' using the currency have been hacked, often resulting in high profile Bitcoin heists. These heists are misreported in some media as hacks on Bitcoin itself. An analogy: Just because someone stole US dollars from a supermarket till, doesn’t mean that the US dollar as a currency has been 'hacked'.<br />
<br />
Most bitcoin thefts are the result of inadequate [[Securing your wallet|wallet security]]. In response to the wave of thefts in 2011 and 2012, the community has developed risk-mitigating measures such as [[Wallet_encryption|wallet encryption]], support for [[BIP_0011|multiple signatures]], [[How_to_set_up_a_secure_offline_savings_wallet|offline wallets]], [[Paper_wallet|paper wallets]], and [[Hardware_wallet|hardware wallets]]. As these measures gain adoption by merchants and users, the number of thefts drop.<br />
<br />
==References==<br />
<references/><br />
<br />
[[de:Mythen]]<br />
[[ru:Мифы о биткоине]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=63819User:Geremia2017-08-10T03:05:53Z<p>Geremia: </p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F54C34861AB6663<br><br />
<b>Join [https://www.kraken.com/ Kraken]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=63815User:Geremia2017-08-10T02:45:24Z<p>Geremia: corrected ToxID</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F54C34861AB6663<br><br />
<b>Join [https://www.coinbase.com/join Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Mastering_Bitcoin&diff=63577Mastering Bitcoin2017-07-05T01:51:31Z<p>Geremia: /* See Also */ added 2nd ed.</p>
<hr />
<div>'''''Mastering Bitcoin''''' by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] is [http://chimera.labs.oreilly.com/books/1234000001802/index.html a freely-available book] on Bitcoin by O'Reilly publishers, published in 2015.<br />
<br />
Mastering Bitcoin copies significant portions of this wiki<ref>https://github.com/aantonop/bitcoinbook/blob/develop/appdx-scriptops.asciidoc</ref><ref>https://en.bitcoin.it/wiki/Script</ref> and promotes practices that may lead to theft and deanonymization.<br />
[[Category:Educational]]<br />
{{italic}}<br />
==See Also==<br />
[https://bitcoin.org/en/developer-documentation Bitcoin.org Developer Documentation]<br />
*[http://chimera.labs.oreilly.com/books/1234000001802/index.html ''Mastering Bitcoin'' from O'Reilly] (DRM-free book; May 2015 edition)<br />
**[http://bookzz.org/dl/2477075/d6df47 EPUB format]<br />
**[http://bookzz.org/dl/2490752/49146c PDF format]<br />
*[https://isidore.co/calibre/browse/book/6316 ''Mastering Bitcoin: Programming the Open Blockchain'' from O'Reilly] (DRM-free EPUB; June 2017, 2<sup>nd</sup> edition)<br />
*[https://github.com/aantonop/bitcoinbook GitHub page]<br />
*[https://www.bitcoinbook.info/ author's book page]<br />
<br />
==References==<br />
<br />
<references/></div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=62586User:Geremia2017-05-13T17:20:40Z<p>Geremia: </p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=62494User:Geremia2017-04-06T21:38:06Z<p>Geremia: </p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [https://isidore.co/calibre/browse/book/5155 <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://isidore.co/calibre/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Talk:Bitcoin_symbol&diff=61902Talk:Bitcoin symbol2016-12-10T05:38:37Z<p>Geremia: /* Bitcoin's ISO 4217 numeric code? */</p>
<hr />
<div>== ϭ has relation to bitcoin ==<br />
<br />
<font style="font-size:1.5em;">ϭ</font> actually does have a visible relation to bitcoin, seeing as it is the lower-case russian B. :) {{unsigned|Nanotube|06:15, 2 January 2011}}<br />
<br />
== Pros and cons as different collums? ==<br />
<br />
I think it would be better if the pros and cons were in sepparate colums to make it easier to evaluate the proposals; what do you say? --[[User:TiagoTiago|TiagoTiago]] 15:23, 26 April 2011 (GMT)<br />
<br />
== Removal of section called Existing Unicode symbol ==<br />
<br />
Unless good reason are given, I would like to delete the section called "Existing Unicode symbol" [[User:Pander|Pander]] 12:04, 21 July 2011 (GMT)<br />
<br />
* I object because B⃦ is already more or less universally accepted (Bitcoin.org, Bitbills.com, Bitcoin Charts/Watch/OTC, etc) as the standard BTC symbol. Unicode isn't going to accept any new symbol for a niche currency, so anything new would be relegated to the PUA anyway. Let's stick to what works. In fact, even if Bitcoin were to get enough non-niche use, both "submissions" currently listed are basically just font variants of B⃦. --[[User:Luke-jr|Luke-jr]] 17:01, 21 July 2011 (GMT)<br />
* I think it would be a good idea to get our own symbol, but as B⃦ is already fairly universally accepted, it isn't a huge priority. I think the Existing Unicode symbol section should stay. I don't think though we should discard the two submissions based on them being stylized B⃦'s. I think they are sufficiently different from B⃦ for our purposes. [[User:Zellfaze|Zellfaze]] 15:37, 11 April 2012 (GMT)<br />
<br />
== Unit and subunit symbols ==<br />
The proposal is to use existing unicode symbols. My preference is to use the unicode \u243 html &#579; for bitcoin and the unicode \u289 html &#649; for microcoin where 1 bitcoin = 1,000,000.00 microcoins<br />
You can view the [[Units]] discussion<br />
What do you think?<br />
<br />
== Bitcoin's ISO 4217 numeric code? ==<br />
<br />
Bitcoin's proposed ISO 4217 alpha code is BTC or XTC, but does it have a proposed ISO 4217 numeric code?--[[User:Geremia|Geremia]] ([[User talk:Geremia|talk]]) 05:38, 10 December 2016 (UTC)</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Talk:Bitcoin_symbol&diff=61901Talk:Bitcoin symbol2016-12-10T05:38:20Z<p>Geremia: /* Bitcoin's ISO 4217 numeric code? */ new section</p>
<hr />
<div>== ϭ has relation to bitcoin ==<br />
<br />
<font style="font-size:1.5em;">ϭ</font> actually does have a visible relation to bitcoin, seeing as it is the lower-case russian B. :) {{unsigned|Nanotube|06:15, 2 January 2011}}<br />
<br />
== Pros and cons as different collums? ==<br />
<br />
I think it would be better if the pros and cons were in sepparate colums to make it easier to evaluate the proposals; what do you say? --[[User:TiagoTiago|TiagoTiago]] 15:23, 26 April 2011 (GMT)<br />
<br />
== Removal of section called Existing Unicode symbol ==<br />
<br />
Unless good reason are given, I would like to delete the section called "Existing Unicode symbol" [[User:Pander|Pander]] 12:04, 21 July 2011 (GMT)<br />
<br />
* I object because B⃦ is already more or less universally accepted (Bitcoin.org, Bitbills.com, Bitcoin Charts/Watch/OTC, etc) as the standard BTC symbol. Unicode isn't going to accept any new symbol for a niche currency, so anything new would be relegated to the PUA anyway. Let's stick to what works. In fact, even if Bitcoin were to get enough non-niche use, both "submissions" currently listed are basically just font variants of B⃦. --[[User:Luke-jr|Luke-jr]] 17:01, 21 July 2011 (GMT)<br />
* I think it would be a good idea to get our own symbol, but as B⃦ is already fairly universally accepted, it isn't a huge priority. I think the Existing Unicode symbol section should stay. I don't think though we should discard the two submissions based on them being stylized B⃦'s. I think they are sufficiently different from B⃦ for our purposes. [[User:Zellfaze|Zellfaze]] 15:37, 11 April 2012 (GMT)<br />
<br />
== Unit and subunit symbols ==<br />
The proposal is to use existing unicode symbols. My preference is to use the unicode \u243 html &#579; for bitcoin and the unicode \u289 html &#649; for microcoin where 1 bitcoin = 1,000,000.00 microcoins<br />
You can view the [[Units]] discussion<br />
What do you think?<br />
<br />
== Bitcoin's ISO 4217 numeric code? ==<br />
<br />
Bitcoin's proposed ISO 4217 alpha code is BTC or XTC, but does it have a proposed ISO 4217 numeric code?</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=60859User:Geremia2016-04-30T01:22:43Z<p>Geremia: /* My Economic Views */</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref>[http://sententiaedeo.blogspot.com/2016/04/capitalism-is-usury-ism.html Capitalism = Usury-ism].<blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=60858User:Geremia2016-04-30T00:58:14Z<p>Geremia: /* My Economic Views */</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref><blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=60857User:Geremia2016-04-30T00:55:17Z<p>Geremia: /* My Economic Views */</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https:/u//mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref><blockquote>To take usury for money lent is unjust in itself, because this '''[usury] is to sell what does not exist'''.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br><br>"The-borrower-paying-back-over-and-above-what-the-lender-lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=60856User:Geremia2016-04-30T00:53:23Z<p>Geremia: /* My Economic Views */ St. Thomas's definition of usury added to footnote</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https:/u//mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]<ref><blockquote>To take usury for money lent is unjust in itself, because this is to sell what does not exist.</blockquote>—St. Thomas Aquinas, [http://dhspriory.org/thomas/summa/SS/SS078.html#SSQ78A1THEP1 ''Summa Theologica'' II-II q. 78 a. 1 ("Whether it is a sin to take usury for money lent?")] c.<br>"The borrower paying back over and above what the lender lent" is not not something ontologically real that can be bought or sold; thus, usury means charging interest on non-recourse loans.</ref> at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=60792User:Geremia2016-04-16T01:39:00Z<p>Geremia: [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] → [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury]; but is worse than [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://zippycatholic.wordpress.com/2014/11/10/usury-faq-or-money-on-the-pill/ usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=60709User:Geremia2016-04-02T19:04:42Z<p>Geremia: /* My Economic Views */</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist and medieval mathematical physicist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury]; but is worse than [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=60698User:Geremia2016-03-31T18:47:50Z<p>Geremia: [http://dhspriory.org/thomas/Emptio.htm usury] → [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury]</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.; cf. [http://dhspriory.org/thomas/Emptio.htm his short-work on buying and selling time][</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury]; but is worse than [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [https://archive.org/stream/MN5034ucmf_1#page/n343/mode/2up usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Multi-signature&diff=60562Multi-signature2016-03-07T18:50:06Z<p>Geremia: 2 misspellings of "signature" corrected</p>
<hr />
<div>Multisignature (multisig) refers to requiring more than one key to authorize a Bitcoin [[transaction]].<br />
<br />
Consider the following scenario:<blockquote>Suppose I am working with a company that wants to accept Bitcoin for international trades.<br />
<br />
The company, for security reasons, would not want a single one of its employees to have access to the company BTC wallet's password. Any transaction would have to meet the approval of more than one employee.<br />
<br />
Is this possible already? If not, how could it be implemented with public-key cryptography?<ref>https://bitcointalk.org/index.php?topic=507297.msg5594085</ref></blockquote>Multisig is the the solution to this.<br />
<br />
==Implementations==<br />
Shamir's [https://en.wikipedia.org/wiki/Secret_sharing Secret Sharing] Scheme (ssss)<ref>https://point-at-infinity.org/ssss/</ref> is a general software implementation of multisig.<br />
<br />
Specific to Bitcoin, [[GreenAddress|GreenAddress.it]], for example, has 2-of-2 and 2-of-3 accounts (requiring at least two keys to authorize a transaction). [[Coinbase (business)|Coinbase]] also offers 2-of-3 and 3-of-5 multisig, which they call [https://support.coinbase.com/customer/portal/articles/1743782-what-is-the-multisig-vault- Vault].<br />
<br />
==Multisignature Transactions<ref>https://bitcoinarmory.com/faq/#q14</ref>==<br />
<blockquote>Standard transactions on the Bitcoin network could be called “single-signature transactions,” because transfers require only one signature — from the owner of the private key associated with the Bitcoin address. However, the Bitcoin network supports much more complicated transactions that require the signatures of multiple people before the funds can be transferred. These are often referred to as M-of-N transactions. The idea is that Bitcoins become “encumbered” by providing addresses of multiple parties, thus requiring cooperation of those parties in order to do anything with them. Here are some examples:<br />
<br />
1-of-2: Husband and wife petty cash account — the signature of either spouse is sufficient to spend the funds.<br />
<br />
2-of-2: Husband and wife savings account — both signatures are required to spend the funds, preventing one spouse from spending the money without the approval of the other<br />
<br />
2-of-2: One wallet is on your primary computer, the other on your smartphone — the funds cannot be spent without a signature from both devices. Thus, an attacker must gain access to both devices in order to steal your funds (much more difficult than one device)<br />
<br />
2-of-3: Parents’ savings account for child — the kid can spend the money with the approval of either parent, and money cannot be taken away from the child unless both parents agree<br />
<br />
2-of-3: A board of three directors maintaining funds for their organization — those funds cannot be spent unless any two of those directors agrees. Bigger multi-signature transactions are possible for bigger organizations, such as 3-of-5, 5-of-9, etc.<br />
<br />
2-of-3: Buyer-seller escrow: buyer commits money into a 2-of-3 transaction with the seller and a third-party arbitrator. If transaction goes smoothly, then both buyer and seller sign the transaction to forward the money to the seller. If something goes wrong, they can sign a transaction to refund the buyer. If they cannot agree, they both appeal to the third-party who will arbitrate and provide a second signature to the party that it deems deserves it.</blockquote><br />
<br />
==Multisignature Addresses==<br />
<blockquote>A [[Address#Multi-signature_addresses|multi-signature address]] is an address that is associated with more than one ECDSA private key. The simplest type is an m-of-n address - it is associated with n private keys, and sending bitcoins from this address requires signatures from at least m keys. A multi-signature transaction is one that sends funds from a multi-signature address.<ref>https://bitcoin.stackexchange.com/a/3729/4334</ref></blockquote><br />
===Creating a Multisignature Address===<br />
A 2of3 multisig address can be created by following these steps:<ref>https://bitcoin.stackexchange.com/a/10593/4334</ref><br />
<br />
<blockquote><ol><li>Gather (or generate) 3 bitcoin addresses, on whichever machines will be participating, using getnewaddress or getaccountaddress RPC commands (or copy and paste from the GUI).</li><br />
<li>Get their public keys using the <tt>validateaddress</tt> [[API_reference_%28JSON-RPC%29|RPC]] command 3 times.</li><br />
<li>Then create a 2-of-3 multisig address using addmultisigaddress; e.g.<blockquote><code>bitcoind addmultisigaddress 2 '["044322868cb17d64dcc22185ae2d4493111d73244c3668f8ac79ecc79c0ba8d30a6756d0fa20157 709af3281cc721c7f53321a8cabda29b77900b7e4fe0174b114","..second pubkey..","..third pubkey.."]'</code></blockquote></li></ol><tt>addmultisigaddress</tt> returns the multisignature address. Be a little careful, the public keys are raw hexadecimal and don't contain checksums like bitcoin addresses do. You can then send funds into that 2-of-3 transaction using the normal sendtoaddress/sendmany RPC commands, or the GUI (or anything that's been updated to recognize multisig addresses).<ref>https://bitcointalk.org/index.php?topic=82213.msg906833#msg906833</ref></blockquote><br />
<br />
==History of Multisignature==<br />
Multisignature has been used for thousands of years to protect the security of crypts holding the most precious relics of saints. The superior of a monastery would give monks only partial keys for gaining access to the precious relics. Thus, no single monk could gain access to and possibly steal the relics.<ref>[https://www.youtube.com/watch?v=YcmWQe29zro#t=10m27s Monks at Mt. Athos continue to use "hard" "multisignature" security today.]</ref><br />
<br />
==References==<br />
<references /><br />
<br />
* [https://bitcoinmagazine.com/11108/multisig-future-bitcoin/ How To Create A Bitcoin Multisig Wallet]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Multi-signature&diff=60561Multi-signature2016-03-07T18:49:04Z<p>Geremia: /* History of Multisignature */ corrected spelling</p>
<hr />
<div>Multisigniture (multisig) refers to requiring more than one key to authorize a Bitcoin [[transaction]].<br />
<br />
Consider the following scenario:<blockquote>Suppose I am working with a company that wants to accept Bitcoin for international trades.<br />
<br />
The company, for security reasons, would not want a single one of its employees to have access to the company BTC wallet's password. Any transaction would have to meet the approval of more than one employee.<br />
<br />
Is this possible already? If not, how could it be implemented with public-key cryptography?<ref>https://bitcointalk.org/index.php?topic=507297.msg5594085</ref></blockquote>Multisig is the the solution to this.<br />
<br />
==Implementations==<br />
Shamir's [https://en.wikipedia.org/wiki/Secret_sharing Secret Sharing] Scheme (ssss)<ref>https://point-at-infinity.org/ssss/</ref> is a general software implementation of multisig.<br />
<br />
Specific to Bitcoin, [[GreenAddress|GreenAddress.it]], for example, has 2-of-2 and 2-of-3 accounts (requiring at least two keys to authorize a transaction). [[Coinbase (business)|Coinbase]] also offers 2-of-3 and 3-of-5 multisig, which they call [https://support.coinbase.com/customer/portal/articles/1743782-what-is-the-multisig-vault- Vault].<br />
<br />
==Multisignature Transactions<ref>https://bitcoinarmory.com/faq/#q14</ref>==<br />
<blockquote>Standard transactions on the Bitcoin network could be called “single-signature transactions,” because transfers require only one signature — from the owner of the private key associated with the Bitcoin address. However, the Bitcoin network supports much more complicated transactions that require the signatures of multiple people before the funds can be transferred. These are often referred to as M-of-N transactions. The idea is that Bitcoins become “encumbered” by providing addresses of multiple parties, thus requiring cooperation of those parties in order to do anything with them. Here are some examples:<br />
<br />
1-of-2: Husband and wife petty cash account — the signature of either spouse is sufficient to spend the funds.<br />
<br />
2-of-2: Husband and wife savings account — both signatures are required to spend the funds, preventing one spouse from spending the money without the approval of the other<br />
<br />
2-of-2: One wallet is on your primary computer, the other on your smartphone — the funds cannot be spent without a signature from both devices. Thus, an attacker must gain access to both devices in order to steal your funds (much more difficult than one device)<br />
<br />
2-of-3: Parents’ savings account for child — the kid can spend the money with the approval of either parent, and money cannot be taken away from the child unless both parents agree<br />
<br />
2-of-3: A board of three directors maintaining funds for their organization — those funds cannot be spent unless any two of those directors agrees. Bigger multi-signature transactions are possible for bigger organizations, such as 3-of-5, 5-of-9, etc.<br />
<br />
2-of-3: Buyer-seller escrow: buyer commits money into a 2-of-3 transaction with the seller and a third-party arbitrator. If transaction goes smoothly, then both buyer and seller sign the transaction to forward the money to the seller. If something goes wrong, they can sign a transaction to refund the buyer. If they cannot agree, they both appeal to the third-party who will arbitrate and provide a second signature to the party that it deems deserves it.</blockquote><br />
<br />
==Multisigniture Addresses==<br />
<blockquote>A [[Address#Multi-signature_addresses|multi-signature address]] is an address that is associated with more than one ECDSA private key. The simplest type is an m-of-n address - it is associated with n private keys, and sending bitcoins from this address requires signatures from at least m keys. A multi-signature transaction is one that sends funds from a multi-signature address.<ref>https://bitcoin.stackexchange.com/a/3729/4334</ref></blockquote><br />
===Creating a Multisigniture Address===<br />
A 2of3 multisig address can be created by following these steps:<ref>https://bitcoin.stackexchange.com/a/10593/4334</ref><br />
<br />
<blockquote><ol><li>Gather (or generate) 3 bitcoin addresses, on whichever machines will be participating, using getnewaddress or getaccountaddress RPC commands (or copy and paste from the GUI).</li><br />
<li>Get their public keys using the <tt>validateaddress</tt> [[API_reference_%28JSON-RPC%29|RPC]] command 3 times.</li><br />
<li>Then create a 2-of-3 multisig address using addmultisigaddress; e.g.<blockquote><code>bitcoind addmultisigaddress 2 '["044322868cb17d64dcc22185ae2d4493111d73244c3668f8ac79ecc79c0ba8d30a6756d0fa20157 709af3281cc721c7f53321a8cabda29b77900b7e4fe0174b114","..second pubkey..","..third pubkey.."]'</code></blockquote></li></ol><tt>addmultisigaddress</tt> returns the multisignature address. Be a little careful, the public keys are raw hexadecimal and don't contain checksums like bitcoin addresses do. You can then send funds into that 2-of-3 transaction using the normal sendtoaddress/sendmany RPC commands, or the GUI (or anything that's been updated to recognize multisig addresses).<ref>https://bitcointalk.org/index.php?topic=82213.msg906833#msg906833</ref></blockquote><br />
<br />
==History of Multisignature==<br />
Multisignature has been used for thousands of years to protect the security of crypts holding the most precious relics of saints. The superior of a monastery would give monks only partial keys for gaining access to the precious relics. Thus, no single monk could gain access to and possibly steal the relics.<ref>[https://www.youtube.com/watch?v=YcmWQe29zro#t=10m27s Monks at Mt. Athos continue to use "hard" "multisignature" security today.]</ref><br />
<br />
==References==<br />
<references /><br />
<br />
* [https://bitcoinmagazine.com/11108/multisig-future-bitcoin/ How To Create A Bitcoin Multisig Wallet]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Multi-signature&diff=60560Multi-signature2016-03-07T17:05:47Z<p>Geremia: /* History of Multisigniture */ citation to monks at Mt. Athos</p>
<hr />
<div>Multisigniture (multisig) refers to requiring more than one key to authorize a Bitcoin [[transaction]].<br />
<br />
Consider the following scenario:<blockquote>Suppose I am working with a company that wants to accept Bitcoin for international trades.<br />
<br />
The company, for security reasons, would not want a single one of its employees to have access to the company BTC wallet's password. Any transaction would have to meet the approval of more than one employee.<br />
<br />
Is this possible already? If not, how could it be implemented with public-key cryptography?<ref>https://bitcointalk.org/index.php?topic=507297.msg5594085</ref></blockquote>Multisig is the the solution to this.<br />
<br />
==Implementations==<br />
Shamir's [https://en.wikipedia.org/wiki/Secret_sharing Secret Sharing] Scheme (ssss)<ref>https://point-at-infinity.org/ssss/</ref> is a general software implementation of multisig.<br />
<br />
Specific to Bitcoin, [[GreenAddress|GreenAddress.it]], for example, has 2-of-2 and 2-of-3 accounts (requiring at least two keys to authorize a transaction). [[Coinbase (business)|Coinbase]] also offers 2-of-3 and 3-of-5 multisig, which they call [https://support.coinbase.com/customer/portal/articles/1743782-what-is-the-multisig-vault- Vault].<br />
<br />
==Multisignature Transactions<ref>https://bitcoinarmory.com/faq/#q14</ref>==<br />
<blockquote>Standard transactions on the Bitcoin network could be called “single-signature transactions,” because transfers require only one signature — from the owner of the private key associated with the Bitcoin address. However, the Bitcoin network supports much more complicated transactions that require the signatures of multiple people before the funds can be transferred. These are often referred to as M-of-N transactions. The idea is that Bitcoins become “encumbered” by providing addresses of multiple parties, thus requiring cooperation of those parties in order to do anything with them. Here are some examples:<br />
<br />
1-of-2: Husband and wife petty cash account — the signature of either spouse is sufficient to spend the funds.<br />
<br />
2-of-2: Husband and wife savings account — both signatures are required to spend the funds, preventing one spouse from spending the money without the approval of the other<br />
<br />
2-of-2: One wallet is on your primary computer, the other on your smartphone — the funds cannot be spent without a signature from both devices. Thus, an attacker must gain access to both devices in order to steal your funds (much more difficult than one device)<br />
<br />
2-of-3: Parents’ savings account for child — the kid can spend the money with the approval of either parent, and money cannot be taken away from the child unless both parents agree<br />
<br />
2-of-3: A board of three directors maintaining funds for their organization — those funds cannot be spent unless any two of those directors agrees. Bigger multi-signature transactions are possible for bigger organizations, such as 3-of-5, 5-of-9, etc.<br />
<br />
2-of-3: Buyer-seller escrow: buyer commits money into a 2-of-3 transaction with the seller and a third-party arbitrator. If transaction goes smoothly, then both buyer and seller sign the transaction to forward the money to the seller. If something goes wrong, they can sign a transaction to refund the buyer. If they cannot agree, they both appeal to the third-party who will arbitrate and provide a second signature to the party that it deems deserves it.</blockquote><br />
<br />
==Multisigniture Addresses==<br />
<blockquote>A [[Address#Multi-signature_addresses|multi-signature address]] is an address that is associated with more than one ECDSA private key. The simplest type is an m-of-n address - it is associated with n private keys, and sending bitcoins from this address requires signatures from at least m keys. A multi-signature transaction is one that sends funds from a multi-signature address.<ref>https://bitcoin.stackexchange.com/a/3729/4334</ref></blockquote><br />
===Creating a Multisigniture Address===<br />
A 2of3 multisig address can be created by following these steps:<ref>https://bitcoin.stackexchange.com/a/10593/4334</ref><br />
<br />
<blockquote><ol><li>Gather (or generate) 3 bitcoin addresses, on whichever machines will be participating, using getnewaddress or getaccountaddress RPC commands (or copy and paste from the GUI).</li><br />
<li>Get their public keys using the <tt>validateaddress</tt> [[API_reference_%28JSON-RPC%29|RPC]] command 3 times.</li><br />
<li>Then create a 2-of-3 multisig address using addmultisigaddress; e.g.<blockquote><code>bitcoind addmultisigaddress 2 '["044322868cb17d64dcc22185ae2d4493111d73244c3668f8ac79ecc79c0ba8d30a6756d0fa20157 709af3281cc721c7f53321a8cabda29b77900b7e4fe0174b114","..second pubkey..","..third pubkey.."]'</code></blockquote></li></ol><tt>addmultisigaddress</tt> returns the multisignature address. Be a little careful, the public keys are raw hexadecimal and don't contain checksums like bitcoin addresses do. You can then send funds into that 2-of-3 transaction using the normal sendtoaddress/sendmany RPC commands, or the GUI (or anything that's been updated to recognize multisig addresses).<ref>https://bitcointalk.org/index.php?topic=82213.msg906833#msg906833</ref></blockquote><br />
<br />
==History of Multisigniture==<br />
Multisigniture has been used for thousands of years to protect the security of crypts holding the most precious relics of saints. The superior of a monastery would give monks only partial "keys" for gaining access to the precious relics. Thus, no single monk could gain access to and possibly steal the precious relics.<ref>[https://www.youtube.com/watch?v=YcmWQe29zro#t=10m27s Monks at Mt. Athos continue to use "hard" "multisignature" security today.]</ref><br />
<br />
==References==<br />
<references /><br />
<br />
* [https://bitcoinmagazine.com/11108/multisig-future-bitcoin/ How To Create A Bitcoin Multisig Wallet]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Script&diff=60193Script2016-01-26T18:02:45Z<p>Geremia: /* External Links */ added links to Script simulators/debuggers</p>
<hr />
<div>Bitcoin uses a scripting system for [[transactions]]. [[Wikipedia:FORTH|Forth]]-like, Script is simple, stack-based, and processed from left to right. It is purposefully not Turing-complete, with no loops.<br />
<br />
A script is essentially a list of instructions recorded with each transaction that describe how the next person wanting to spend the Bitcoins being transferred can gain access to them. The script for a typical Bitcoin transfer to destination Bitcoin address D simply encumbers future spending of the bitcoins with two things: the spender must provide<br />
# a public key that, when hashed, yields destination address D embedded in the script, and<br />
# a signature to show evidence of the private key corresponding to the public key just provided.<br />
<br />
Scripting provides the flexibility to change the parameters of what's needed to spend transferred Bitcoins. For example, the scripting system could be used to require two private keys, or a combination of several, or even no keys at all.<br />
<br />
A transaction is valid if nothing in the combined script triggers failure and the top stack item is true (non-zero). The party who originally ''sent'' the Bitcoins now being spent, dictates the script operations that will occur ''last'' in order to release them for use in another transaction. The party wanting to spend them must provide the input(s) to the previously recorded script that results in those operations occurring last leaving behind true (non-zero).<br />
<br />
The stacks hold byte vectors.<br />
When used as numbers, byte vectors are interpreted as little-endian variable-length integers with the most significant bit determining the sign of the integer.<br />
Thus 0x81 represents -1.<br />
0x80 is another representation of zero (so called negative 0).<br />
Positive 0 is represented by a null-length vector.<br />
Byte vectors are interpreted as Booleans where False is represented by any representation of zero, and True is represented by any representation of non-zero.<br />
<br />
== Words ==<br />
This is a list of all Script words, also known as opcodes, commands, or functions.<br />
<br />
There are some words which existed in very early versions of Bitcoin but were removed out of a concern that the client might have a bug in their implementation. This fear was motivated by a bug found in OP_LSHIFT which could crash any Bitcoin node if exploited, and by other bugs in how Script worked which allowed anyone to spend anyone's bitcoins. The removed opcodes are sometimes said to be "disabled" opcodes, but this is something of a misnomer because there is ''absolutely no way'' for anyone using Bitcoin to use these opcodes (they simply ''do not exist anymore'' in the protocol), and there are also no solid plans to ever re-enable all of these opcodes. They are listed here only for historical interest.<br />
<br />
New opcodes can be added by means of a carefully designed and executed [[softfork]] using OP_NOP1-OP_NOP10.<br />
<br />
False is zero or negative zero (using any number of bytes) or an empty array, and True is anything else.<br />
<br />
=== Constants ===<br />
When talking about scripts, these value-pushing words are usually omitted.<br />
<br />
{| class="wikitable"<br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Input<br />
!Output<br />
!Description<br />
|-<br />
|OP_0, OP_FALSE<br />
|0<br />
|0x00<br />
|Nothing.<br />
|(empty value)<br />
|An empty array of bytes is pushed onto the stack. (This is not a no-op: an item is added to the stack.)<br />
|-<br />
|N/A<br />
|1-75<br />
|0x01-0x4b<br />
|(special)<br />
|data<br />
|The next ''opcode'' bytes is data to be pushed onto the stack<br />
|-<br />
|OP_PUSHDATA1<br />
|76<br />
|0x4c<br />
|(special)<br />
|data<br />
|The next byte contains the number of bytes to be pushed onto the stack.<br />
|-<br />
|OP_PUSHDATA2<br />
|77<br />
|0x4d<br />
|(special)<br />
|data<br />
|The next two bytes contain the number of bytes to be pushed onto the stack.<br />
|-<br />
|OP_PUSHDATA4<br />
|78<br />
|0x4e<br />
|(special)<br />
|data<br />
|The next four bytes contain the number of bytes to be pushed onto the stack.<br />
|-<br />
|OP_1NEGATE<br />
|79<br />
|0x4f<br />
|Nothing.<br />
| -1<br />
|The number -1 is pushed onto the stack.<br />
|-<br />
|OP_1, OP_TRUE<br />
|81<br />
|0x51<br />
|Nothing.<br />
|1<br />
|The number 1 is pushed onto the stack.<br />
|-<br />
|OP_2-OP_16<br />
|82-96<br />
|0x52-0x60<br />
|Nothing.<br />
|2-16<br />
|The number in the word name (2-16) is pushed onto the stack.<br />
|}<br />
<br />
=== Flow control ===<br />
<br />
{| class="wikitable"<br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Input<br />
!Output<br />
!Description<br />
|-<br />
|OP_NOP<br />
|97<br />
|0x61<br />
|Nothing<br />
|Nothing<br />
|Does nothing.<br />
|-<br />
|OP_IF<br />
|99<br />
|0x63<br />
| colspan="2"|<expression> if [statements] [else [statements]]* endif<br />
|If the top stack value is not 0, the statements are executed. The top stack value is removed.<br />
|-<br />
|OP_NOTIF<br />
|100<br />
|0x64<br />
| colspan="2"|<expression> if [statements] [else [statements]]* endif<br />
|If the top stack value is 0, the statements are executed. The top stack value is removed.<br />
|-<br />
|OP_ELSE<br />
|103<br />
|0x67<br />
| colspan="2"|<expression> if [statements] [else [statements]]* endif<br />
|If the preceding OP_IF or OP_NOTIF or OP_ELSE was not executed then these statements are and if the preceding OP_IF or OP_NOTIF or OP_ELSE was executed then these statements are not. <br />
|-<br />
|OP_ENDIF<br />
|104<br />
|0x68<br />
| colspan="2"|<expression> if [statements] [else [statements]]* endif<br />
|Ends an if/else block. All blocks must end, or the transaction is '''invalid'''. An OP_ENDIF without OP_IF earlier is also '''invalid'''.<br />
|-<br />
|OP_VERIFY<br />
|105<br />
|0x69<br />
|True / false<br />
|Nothing / ''fail''<br />
|'''Marks transaction as invalid''' if top stack value is not true.<br />
|-<br />
|[[OP_RETURN]]<br />
|106<br />
|0x6a<br />
|Nothing<br />
|''fail''<br />
|'''Marks transaction as invalid'''. A standard way of attaching extra data to transactions is to add a zero-value output with a scriptPubKey consisting of OP_RETURN followed by exactly one pushdata op. Such outputs are provably unspendable, reducing their cost to the network. Currently it is usually considered non-standard (though valid) for a transaction to have more than one OP_RETURN output or an OP_RETURN output with more than one pushdata op.<br />
|}<br />
<br />
=== Stack ===<br />
<br />
{| class="wikitable" <br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Input<br />
!Output<br />
!Description<br />
|-<br />
|OP_TOALTSTACK<br />
|107<br />
|0x6b<br />
|x1<br />
|(alt)x1<br />
|Puts the input onto the top of the alt stack. Removes it from the main stack.<br />
|-<br />
|OP_FROMALTSTACK<br />
|108<br />
|0x6c<br />
|(alt)x1<br />
|x1<br />
|Puts the input onto the top of the main stack. Removes it from the alt stack.<br />
|-<br />
|OP_IFDUP<br />
|115<br />
|0x73<br />
|x<br />
|x / x x<br />
|If the top stack value is not 0, duplicate it.<br />
|-<br />
|OP_DEPTH<br />
|116<br />
|0x74<br />
|Nothing<br />
|<Stack size><br />
|Puts the number of stack items onto the stack.<br />
|-<br />
|OP_DROP<br />
|117<br />
|0x75<br />
|x<br />
|Nothing<br />
|Removes the top stack item.<br />
|-<br />
|OP_DUP<br />
|118<br />
|0x76<br />
|x<br />
|x x<br />
|Duplicates the top stack item.<br />
|-<br />
|OP_NIP<br />
|119<br />
|0x77<br />
|x1 x2<br />
|x2<br />
|Removes the second-to-top stack item.<br />
|-<br />
|OP_OVER<br />
|120<br />
|0x78<br />
|x1 x2<br />
|x1 x2 x1<br />
|Copies the second-to-top stack item to the top.<br />
|-<br />
|OP_PICK<br />
|121<br />
|0x79<br />
|xn ... x2 x1 x0 <n><br />
|xn ... x2 x1 x0 xn<br />
|The item ''n'' back in the stack is copied to the top.<br />
|-<br />
|OP_ROLL<br />
|122<br />
|0x7a<br />
|xn ... x2 x1 x0 <n><br />
|... x2 x1 x0 xn<br />
|The item ''n'' back in the stack is moved to the top.<br />
|-<br />
|OP_ROT<br />
|123<br />
|0x7b<br />
|x1 x2 x3<br />
|x2 x3 x1<br />
|The top three items on the stack are rotated to the left.<br />
|-<br />
|OP_SWAP<br />
|124<br />
|0x7c<br />
|x1 x2<br />
|x2 x1<br />
|The top two items on the stack are swapped.<br />
|-<br />
|OP_TUCK<br />
|125<br />
|0x7d<br />
|x1 x2<br />
|x2 x1 x2<br />
|The item at the top of the stack is copied and inserted before the second-to-top item.<br />
|-<br />
|OP_2DROP<br />
|109<br />
|0x6d<br />
|x1 x2<br />
|Nothing<br />
|Removes the top two stack items.<br />
|-<br />
|OP_2DUP<br />
|110<br />
|0x6e<br />
|x1 x2<br />
|x1 x2 x1 x2<br />
|Duplicates the top two stack items.<br />
|-<br />
|OP_3DUP<br />
|111<br />
|0x6f<br />
|x1 x2 x3<br />
|x1 x2 x3 x1 x2 x3<br />
|Duplicates the top three stack items.<br />
|-<br />
|OP_2OVER<br />
|112<br />
|0x70<br />
|x1 x2 x3 x4<br />
|x1 x2 x3 x4 x1 x2<br />
|Copies the pair of items two spaces back in the stack to the front.<br />
|-<br />
|OP_2ROT<br />
|113<br />
|0x71<br />
|x1 x2 x3 x4 x5 x6<br />
|x3 x4 x5 x6 x1 x2<br />
|The fifth and sixth items back are moved to the top of the stack.<br />
|-<br />
|OP_2SWAP<br />
|114<br />
|0x72<br />
|x1 x2 x3 x4<br />
|x3 x4 x1 x2<br />
|Swaps the top two pairs of items.<br />
|}<br />
<br />
=== Splice ===<br />
<br />
If any opcode marked as disabled is present in a script, it must abort and fail.<br />
<br />
{| class="wikitable" <br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Input<br />
!Output<br />
!Description<br />
|-<br />
|OP_CAT<br />
|126<br />
|0x7e<br />
|x1 x2<br />
|out<br />
|style="background:#D97171;"|Concatenates two strings. ''disabled.''<br />
|-<br />
|OP_SUBSTR<br />
|127<br />
|0x7f<br />
|in begin size<br />
|out<br />
|style="background:#D97171;"|Returns a section of a string. ''disabled.''<br />
|-<br />
|OP_LEFT<br />
|128<br />
|0x80<br />
|in size<br />
|out<br />
|style="background:#D97171;"|Keeps only characters left of the specified point in a string. ''disabled.''<br />
|-<br />
|OP_RIGHT<br />
|129<br />
|0x81<br />
|in size<br />
|out<br />
|style="background:#D97171;"|Keeps only characters right of the specified point in a string. ''disabled.''<br />
|-<br />
|OP_SIZE<br />
|130<br />
|0x82<br />
|in<br />
|in size<br />
|Pushes the string length of the top element of the stack (without popping it).<br />
|}<br />
<br />
=== Bitwise logic ===<br />
<br />
If any opcode marked as disabled is present in a script, it must abort and fail.<br />
<br />
{| class="wikitable" <br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Input<br />
!Output<br />
!Description<br />
|-<br />
|OP_INVERT<br />
|131<br />
|0x83<br />
|in<br />
|out<br />
|style="background:#D97171;"|Flips all of the bits in the input. ''disabled.''<br />
|-<br />
|OP_AND<br />
|132<br />
|0x84<br />
|x1 x2<br />
|out<br />
|style="background:#D97171;"|Boolean ''and'' between each bit in the inputs. ''disabled.''<br />
|-<br />
|OP_OR<br />
|133<br />
|0x85<br />
|x1 x2<br />
|out<br />
|style="background:#D97171;"|Boolean ''or'' between each bit in the inputs. ''disabled.''<br />
|-<br />
|OP_XOR<br />
|134<br />
|0x86<br />
|x1 x2<br />
|out<br />
|style="background:#D97171;"|Boolean ''exclusive or'' between each bit in the inputs. ''disabled.''<br />
|-<br />
|OP_EQUAL<br />
|135<br />
|0x87<br />
|x1 x2<br />
|True / false<br />
|Returns 1 if the inputs are exactly equal, 0 otherwise.<br />
|-<br />
|OP_EQUALVERIFY<br />
|136<br />
|0x88<br />
|x1 x2<br />
|Nothing / ''fail''<br />
|Same as OP_EQUAL, but runs OP_VERIFY afterward.<br />
|}<br />
<br />
=== Arithmetic ===<br />
<br />
Note: Arithmetic inputs are limited to signed 32-bit integers, but may overflow their output.<br />
<br />
If any input value for any of these commands is longer than 4 bytes, the script must abort and fail. <br />
If any opcode marked as ''disabled'' is present in a script - it must also abort and fail.<br />
<br />
{| class="wikitable" <br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Input<br />
!Output<br />
!Description<br />
|-<br />
|OP_1ADD<br />
|139<br />
|0x8b<br />
|in<br />
|out<br />
|1 is added to the input.<br />
|-<br />
|OP_1SUB<br />
|140<br />
|0x8c<br />
|in<br />
|out<br />
|1 is subtracted from the input.<br />
|-<br />
|OP_2MUL<br />
|141<br />
|0x8d<br />
|in<br />
|out<br />
|style="background:#D97171;"|The input is multiplied by 2. ''disabled.''<br />
|-<br />
|OP_2DIV<br />
|142<br />
|0x8e<br />
|in<br />
|out<br />
|style="background:#D97171;"|The input is divided by 2. ''disabled.''<br />
|-<br />
|OP_NEGATE<br />
|143<br />
|0x8f<br />
|in<br />
|out<br />
|The sign of the input is flipped.<br />
|-<br />
|OP_ABS<br />
|144<br />
|0x90<br />
|in<br />
|out<br />
|The input is made positive.<br />
|-<br />
|OP_NOT<br />
|145<br />
|0x91<br />
|in<br />
|out<br />
|If the input is 0 or 1, it is flipped. Otherwise the output will be 0.<br />
|-<br />
|OP_0NOTEQUAL<br />
|146<br />
|0x92<br />
|in<br />
|out<br />
|Returns 0 if the input is 0. 1 otherwise.<br />
|-<br />
|OP_ADD<br />
|147<br />
|0x93<br />
|a b<br />
|out<br />
|a is added to b.<br />
|-<br />
|OP_SUB<br />
|148<br />
|0x94<br />
|a b<br />
|out<br />
|b is subtracted from a.<br />
|-<br />
|OP_MUL<br />
|149<br />
|0x95<br />
|a b<br />
|out<br />
|style="background:#D97171;"|a is multiplied by b. ''disabled.''<br />
|-<br />
|OP_DIV<br />
|150<br />
|0x96<br />
|a b<br />
|out<br />
|style="background:#D97171;"|a is divided by b. ''disabled.''<br />
|-<br />
|OP_MOD<br />
|151<br />
|0x97<br />
|a b<br />
|out<br />
|style="background:#D97171;"|Returns the remainder after dividing a by b. ''disabled.''<br />
|-<br />
|OP_LSHIFT<br />
|152<br />
|0x98<br />
|a b<br />
|out<br />
|style="background:#D97171;"|Shifts a left b bits, preserving sign. ''disabled.''<br />
|-<br />
|OP_RSHIFT<br />
|153<br />
|0x99<br />
|a b<br />
|out<br />
|style="background:#D97171;"|Shifts a right b bits, preserving sign. ''disabled.''<br />
|-<br />
|OP_BOOLAND<br />
|154<br />
|0x9a<br />
|a b<br />
|out<br />
|If both a and b are not 0, the output is 1. Otherwise 0.<br />
|-<br />
|OP_BOOLOR<br />
|155<br />
|0x9b<br />
|a b<br />
|out<br />
|If a or b is not 0, the output is 1. Otherwise 0.<br />
|-<br />
|OP_NUMEQUAL<br />
|156<br />
|0x9c<br />
|a b<br />
|out<br />
|Returns 1 if the numbers are equal, 0 otherwise.<br />
|-<br />
|OP_NUMEQUALVERIFY<br />
|157<br />
|0x9d<br />
|a b<br />
|Nothing / ''fail''<br />
|Same as OP_NUMEQUAL, but runs OP_VERIFY afterward.<br />
|-<br />
|OP_NUMNOTEQUAL<br />
|158<br />
|0x9e<br />
|a b<br />
|out<br />
|Returns 1 if the numbers are not equal, 0 otherwise.<br />
|-<br />
|OP_LESSTHAN<br />
|159<br />
|0x9f<br />
|a b<br />
|out<br />
|Returns 1 if a is less than b, 0 otherwise.<br />
|-<br />
|OP_GREATERTHAN<br />
|160<br />
|0xa0<br />
|a b<br />
|out<br />
|Returns 1 if a is greater than b, 0 otherwise.<br />
|-<br />
|OP_LESSTHANOREQUAL<br />
|161<br />
|0xa1<br />
|a b<br />
|out<br />
|Returns 1 if a is less than or equal to b, 0 otherwise.<br />
|-<br />
|OP_GREATERTHANOREQUAL<br />
|162<br />
|0xa2<br />
|a b<br />
|out<br />
|Returns 1 if a is greater than or equal to b, 0 otherwise.<br />
|-<br />
|OP_MIN<br />
|163<br />
|0xa3<br />
|a b<br />
|out<br />
|Returns the smaller of a and b.<br />
|-<br />
|OP_MAX<br />
|164<br />
|0xa4<br />
|a b<br />
|out<br />
|Returns the larger of a and b.<br />
|-<br />
|OP_WITHIN<br />
|165<br />
|0xa5<br />
|x min max<br />
|out<br />
|Returns 1 if x is within the specified range (left-inclusive), 0 otherwise.<br />
|}<br />
<br />
=== Crypto ===<br />
<br />
{| class="wikitable" <br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Input<br />
!Output<br />
!Description<br />
|-<br />
|OP_RIPEMD160<br />
|166<br />
|0xa6<br />
|in<br />
|hash<br />
|The input is hashed using RIPEMD-160.<br />
|-<br />
|OP_SHA1<br />
|167<br />
|0xa7<br />
|in<br />
|hash<br />
|The input is hashed using SHA-1.<br />
|-<br />
|OP_SHA256<br />
|168<br />
|0xa8<br />
|in<br />
|hash<br />
|The input is hashed using SHA-256.<br />
|-<br />
|OP_HASH160<br />
|169<br />
|0xa9<br />
|in<br />
|hash<br />
|The input is hashed twice: first with SHA-256 and then with RIPEMD-160.<br />
|-<br />
|OP_HASH256<br />
|170<br />
|0xaa<br />
|in<br />
|hash<br />
|The input is hashed two times with SHA-256.<br />
|-<br />
|OP_CODESEPARATOR<br />
|171<br />
|0xab<br />
|Nothing<br />
|Nothing<br />
|All of the signature checking words will only match signatures to the data after the most recently-executed OP_CODESEPARATOR.<br />
|-<br />
|[[OP_CHECKSIG]]<br />
|172<br />
|0xac<br />
|sig pubkey<br />
|True / false<br />
|The entire transaction's outputs, inputs, and script (from the most recently-executed OP_CODESEPARATOR to the end) are hashed. The signature used by OP_CHECKSIG must be a valid signature for this hash and public key. If it is, 1 is returned, 0 otherwise.<br />
|-<br />
|OP_CHECKSIGVERIFY<br />
|173<br />
|0xad<br />
|sig pubkey<br />
|Nothing / ''fail''<br />
|Same as OP_CHECKSIG, but OP_VERIFY is executed afterward.<br />
|-<br />
|OP_CHECKMULTISIG<br />
|174<br />
|0xae<br />
|x sig1 sig2 ... <number of signatures> pub1 pub2 <number of public keys><br />
|True / False<br />
|Compares the first signature against each public key until it finds an ECDSA match. Starting with the subsequent public key, it compares the second signature against each remaining public key until it finds an ECDSA match. The process is repeated until all signatures have been checked or not enough public keys remain to produce a successful result. All signatures need to match a public key. Because public keys are not checked again if they fail any signature comparison, signatures must be placed in the scriptSig using the same order as their corresponding public keys were placed in the scriptPubKey or redeemScript. If all signatures are valid, 1 is returned, 0 otherwise. Due to a bug, one extra unused value is removed from the stack.<br />
|-<br />
|OP_CHECKMULTISIGVERIFY<br />
|175<br />
|0xaf<br />
|x sig1 sig2 ... <number of signatures> pub1 pub2 ... <number of public keys><br />
|Nothing / ''fail''<br />
|Same as OP_CHECKMULTISIG, but OP_VERIFY is executed afterward.<br />
|}<br />
<br />
=== Locktime ===<br />
{| class="wikitable" <br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Input<br />
!Output<br />
!Description<br />
|-<br />
|OP_CHECKLOCKTIMEVERIFY (previously OP_NOP2)<br />
|177<br />
|0xb1<br />
|Nothing<br />
|Nothing / ''fail''<br />
|'''Marks transaction as invalid''' if the top stack item is greater than the transaction's nLockTime field, otherwise script evaluation continues as though an OP_NOP was executed. Transaction is also invalid if 1. the stack is empty; or 2. the top stack item is negative; or 3. the top stack item is greater than or equal to 500000000 while the transaction's nLockTime field is less than 500000000, or vice versa; or 4. the input's nSequence field is equal to 0xffffffff. The precise semantics are described in [[BIP 0065]]<br />
|}<br />
<br />
===Pseudo-words===<br />
These words are used internally for assisting with transaction matching. They are invalid if used in actual scripts.<br />
{| class="wikitable" <br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!Description<br />
|-<br />
|OP_PUBKEYHASH<br />
|253<br />
|0xfd<br />
|Represents a public key hashed with OP_HASH160.<br />
|-<br />
|OP_PUBKEY<br />
|254<br />
|0xfe<br />
|Represents a public key compatible with OP_CHECKSIG.<br />
|-<br />
|OP_INVALIDOPCODE<br />
|255<br />
|0xff<br />
|Matches any opcode that is not yet assigned.<br />
|}<br />
<br />
=== Reserved words ===<br />
Any opcode not assigned is also reserved. Using an unassigned opcode makes the transaction '''invalid'''.<br />
<br />
{| class="wikitable" <br />
|-<br />
!Word<br />
!Opcode<br />
!Hex<br />
!When used...<br />
|-<br />
|OP_RESERVED<br />
|80<br />
|0x50<br />
|'''Transaction is invalid''' unless occuring in an unexecuted OP_IF branch<br />
|-<br />
|OP_VER<br />
|98<br />
|0x62<br />
|'''Transaction is invalid''' unless occuring in an unexecuted OP_IF branch<br />
|-<br />
|OP_VERIF<br />
|101<br />
|0x65<br />
|'''Transaction is invalid even when occuring in an unexecuted OP_IF branch'''<br />
|-<br />
|OP_VERNOTIF<br />
|102<br />
|0x66<br />
|'''Transaction is invalid even when occuring in an unexecuted OP_IF branch'''<br />
|-<br />
|OP_RESERVED1<br />
|137<br />
|0x89<br />
|'''Transaction is invalid''' unless occuring in an unexecuted OP_IF branch<br />
|-<br />
|OP_RESERVED2<br />
|138<br />
|0x8a<br />
|'''Transaction is invalid''' unless occuring in an unexecuted OP_IF branch<br />
|-<br />
|OP_NOP1, OP_NOP3-OP_NOP10<br />
|176, 178-185<br />
|0xb0, 0xb2-0xb9<br />
|The word is ignored. Does not mark transaction as invalid.<br />
|}<br />
<br />
== Scripts ==<br />
This is a list of interesting scripts. Keep in mind that all constants actually use the data-pushing commands above. Note that there is a small number of standard script forms that are relayed from node to node; non-standard scripts are accepted if they are in a block, but nodes will not relay them.<br />
<br />
=== Standard Transaction to Bitcoin address (pay-to-pubkey-hash) ===<br />
<br />
scriptPubKey: OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG<br />
scriptSig: <sig> <pubKey><br />
<br />
To demonstrate how scripts look on the wire, here is a raw scriptPubKey:<br />
<pre> 76 A9 14<br />
OP_DUP OP_HASH160 Bytes to push<br />
<br />
89 AB CD EF AB BA AB BA AB BA AB BA AB BA AB BA AB BA AB BA 88 AC<br />
Data to push OP_EQUALVERIFY OP_CHECKSIG</pre><br />
<br />
Note: scriptSig is in the input of the spending transaction and scriptPubKey is in the output of the previously unspent i.e. "available" transaction.<br />
<br />
Here is how each word is processed:<br />
{| class="wikitable" <br />
|-<br />
! Stack <br />
! Script <br />
! Description <br />
|-<br />
|Empty.<br />
| <sig> <pubKey> OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG <br />
| scriptSig and scriptPubKey are combined.<br />
|-<br />
|<sig> <pubKey><br />
| OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG <br />
| Constants are added to the stack.<br />
|-<br />
|<sig> <pubKey> <pubKey><br />
| OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG <br />
| Top stack item is duplicated.<br />
|-<br />
|<sig> <pubKey> <pubHashA><br />
|<pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG<br />
| Top stack item is hashed.<br />
|-<br />
|<sig> <pubKey> <pubHashA> <pubKeyHash><br />
|OP_EQUALVERIFY OP_CHECKSIG<br />
| Constant added.<br />
|-<br />
|<sig> <pubKey><br />
|OP_CHECKSIG<br />
| Equality is checked between the top two stack items.<br />
|-<br />
|true<br />
|Empty.<br />
|Signature is checked for top two stack items.<br />
|}<br />
<br />
=== Obsolete pay-to-pubkey transaction ===<br />
<br />
OP_CHECKSIG is used directly without first hashing the public key.<br />
This was used by early versions of Bitcoin where people paid directly to IP addresses, before Bitcoin addresses were introduced.<br />
scriptPubKeys of this transaction form are still recognized as payments to user by Bitcoin Core.<br />
The disadvantage of this transaction form is that the whole public key needs to be known in advance, implying longer payment addresses, and that it provides less protection in the event of a break in the ECDSA signature algorithm.<br />
<br />
scriptPubKey: <pubKey> OP_CHECKSIG<br />
scriptSig: <sig><br />
<br />
Checking process:<br />
{| class="wikitable" <br />
|-<br />
! Stack <br />
! Script <br />
! Description <br />
|-<br />
|Empty.<br />
|<sig> <pubKey> OP_CHECKSIG<br />
|scriptSig and scriptPubKey are combined.<br />
|-<br />
|<sig> <pubKey><br />
| OP_CHECKSIG<br />
|Constants are added to the stack.<br />
|-<br />
|true<br />
|Empty.<br />
|Signature is checked for top two stack items.<br />
|}<br />
<br />
=== Provably Unspendable/Prunable Outputs ===<br />
<br />
The standard way to mark a transaction as provably unspendable is with a scriptPubKey of the following form:<br />
<br />
scriptPubKey: OP_RETURN {zero or more ops}<br />
<br />
OP_RETURN immediately marks the script as invalid, guaranteeing that no scriptSig exists that could possibly spend that output. Thus the output can be immediately pruned from the UTXO set even if it has not been spent. [http://blockexplorer.com/tx/eb31ca1a4cbd97c2770983164d7560d2d03276ae1aee26f12d7c2c6424252f29 eb31ca1a4cbd97c2770983164d7560d2d03276ae1aee26f12d7c2c6424252f29] is an example: it has a single output of zero value, thus giving the full 0.125BTC fee to the miner who mined the transaction without adding an entry to the UTXO set. You can also use OP_RETURN to add data to a transaction without the data ever appearing in the UTXO set, as seen in 1a2e22a717d626fc5db363582007c46924ae6b28319f07cb1b907776bd8293fc; [[P2Pool]] does this with the share chain hash txout in the coinbase of blocks it creates.<br />
<br />
=== Anyone-Can-Spend Outputs ===<br />
<br />
Conversely a transaction can be made spendable by anyone at all:<br />
<br />
scriptPubKey: (empty)<br />
scriptSig: OP_TRUE<br />
<br />
With some software changes such transactions can be used as a way to donate funds to miners in addition to transaction fees: any miner who mines such a transaction can also include an additional one after it sending the funds to an address they control. This mechanism may be used in the future for [[fidelity bonds]] to sacrifice funds in a provable way.<br />
<br />
Anyone-Can-Spend outputs are currently considered non-standard, and are not relayed on the P2P network.<br />
<br />
=== Transaction puzzle ===<br />
<br />
Transaction a4bfa8ab6435ae5f25dae9d89e4eb67dfa94283ca751f393c1ddc5a837bbc31b is an interesting puzzle.<br />
<br />
scriptPubKey: OP_HASH256 6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000 OP_EQUAL<br />
scriptSig: <data><br />
<br />
To spend the transaction you need to come up with some data such that hashing the data twice results in the given hash.<br />
<br />
{| class="wikitable" <br />
|-<br />
! Stack <br />
! Script <br />
! Description <br />
|-<br />
|Empty.<br />
|<data> OP_HASH256 <given_hash> OP_EQUAL<br />
|<br />
|-<br />
|<data><br />
|OP_HASH256 <given_hash> OP_EQUAL<br />
|scriptSig added to the stack.<br />
|-<br />
|<data_hash><br />
|<given_hash> OP_EQUAL<br />
|The data is hashed.<br />
|-<br />
|<data_hash> <given_hash><br />
|OP_EQUAL<br />
|The given hash is pushed to the stack.<br />
|-<br />
|true<br />
|Empty.<br />
|The hashes are compared, leaving true on the stack.<br />
|}<br />
<br />
This transaction was successfully spent by 09f691b2263260e71f363d1db51ff3100d285956a40cc0e4f8c8c2c4a80559b1. The required data happened to be the [[Genesis block]], and the given hash was the genesis block hash. Note that while transactions like this are fun, they are not secure, because they do not contain any signatures and thus any transaction attempting to spend them can be replaced with a different transaction sending the funds somewhere else.<br />
<br />
==See Also==<br />
<br />
* [[Transactions]]<br />
* [[Contracts]]<br />
<br />
== External Links ==<br />
*[https://www.cs.princeton.edu/~tongbinw/bitcoinIDE/build/editor.html Bitcoin IDE]: Bitcoin Script for dummies<br />
*[https://webbtc.com/script Bitcoin Debug Script Execution]<br />
*[http://www.crmarsh.com/script-playground/ Script Playground] — convert Script to JavaScript<br />
<sup>(cf. "[http://bitcoin.stackexchange.com/q/42576/4334 Online Bitcoin Script simulator or debugger?]")</sup><br />
<br />
[[Category:Technical]]<br />
[[Category:Vocabulary]]<br />
<br />
{{Bitcoin Core documentation}}</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Category:Freelancers&diff=59987Category:Freelancers2016-01-14T19:24:14Z<p>Geremia: /* See Also */ http://coinster.info/local is a dead link. Changed it to: https://coinmap.org . Added CryptoGrind, too</p>
<hr />
<div>Freelance workers are those who are self-employed or who offer their services on a part-time or temporary contract basis. This category is used for freelancers who accept bitcoins as payment.<br />
==See Also==<br />
<br />
* Freelancer resumes can be posted on [http://coinality.com/resumes Coinality]<br />
* [[XBTFreelancer]] A bitcoin freelancers site - get paid bitcoin for doing freelance jobs<br />
* [https://www.cryptogrind.com/ CryptoGrind] Bitcoin freelance platform<br />
* [[BTCworkers]] Freelancer board that deals only in bitcoin and has payment escrow<br />
* [[Bitcoiners]] job board and freelancer directory<br />
* [[:Category:For Hire|For Hire]] all employment and for-hire services<br />
* [[Cashila]] Request bitcoin or fiat payments to your online wallet<br />
* [http://bitcointalk.org/index.php?board=52.0 Services category] on BitcoinTalk forum<br />
* [https://coinmap.org CoinMap] database of businesses accepting bitcoin<br />
<br />
[[Category:For Hire]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=59986User:Geremia2016-01-14T19:11:47Z<p>Geremia: </p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=59985User:Geremia2016-01-14T19:10:28Z<p>Geremia: </p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Software Development]][[Category:Freelancers-Freelancers-Sysadmin]][[Category:Freelancers-Technical Support]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=59984User:Geremia2016-01-14T19:07:49Z<p>Geremia: § added, among other things</p>
<hr />
<div>==About Me==<br />
I am a freelance translator<ref>Italian, Spanish, French, and Latin into English</ref> and Linux<ref>I can write Qt software.</ref> developer.<ref>Please see [https://careers.stackoverflow.com/cv/employer/347174 my Careers StackOverflow CV] and the URLs linked therein.</ref><br />
<br />
==My Economic Views==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Watch both videos [https://www.weusecoins.com/ here]. The first is a general intro to Bitcoin, and the second discusses that the financial aspect of Bitcoin is just the tip of the iceberg; the [[blockchain]] concept is far more innovative.<br />
*[https://www.coindesk.com/information/ CoinDesk's Beginner's Guide to Bitcoin] is a good collection of resources.<br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
*Introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]][[Category:Freelancers-Translation]][[Category:Freelancers-Technical Support]]<br />
[[Category:Freelancers-Software Development]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=59983User:Geremia2016-01-14T18:57:39Z<p>Geremia: /* About Me */</p>
<hr />
<div>==About Me==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [http://garrigou.us.to/browse/book/5277 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Excellent introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=59982User:Geremia2016-01-14T18:56:09Z<p>Geremia: added Category:Freelancers</p>
<hr />
<div>==About Me==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://www.scribd.com/doc/138347161/Bernard-W-Dempsey-1903-1960-Interest-and-Usury-With-an-Introduction-by-Joseph-a-Schumpeter-1948 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Excellent introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺<br />
[[Category:Freelancers]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Multi-signature&diff=59815Multi-signature2016-01-05T01:26:27Z<p>Geremia: added excellent description of all the possibilities of multisig transactions from https://bitcoinarmory.com/faq/#q14</p>
<hr />
<div>Multisigniture (multisig) refers to requiring more than one key to authorize a Bitcoin [[transaction]].<br />
<br />
Consider the following scenario:<blockquote>Suppose I am working with a company that wants to accept Bitcoin for international trades.<br />
<br />
The company, for security reasons, would not want a single one of its employees to have access to the company BTC wallet's password. Any transaction would have to meet the approval of more than one employee.<br />
<br />
Is this possible already? If not, how could it be implemented with public-key cryptography?<ref>https://bitcointalk.org/index.php?topic=507297.msg5594085</ref></blockquote>Multisig is the the solution to this.<br />
<br />
==Implementations==<br />
Shamir's [https://en.wikipedia.org/wiki/Secret_sharing Secret Sharing] Scheme (ssss)<ref>https://point-at-infinity.org/ssss/</ref> is a general software implementation of multisig.<br />
<br />
Specific to Bitcoin, [[GreenAddress|GreenAddress.it]], for example, has 2-of-2 and 2-of-3 accounts (requiring at least two keys to authorize a transaction). [[Coinbase (business)|Coinbase]] also offers 2-of-3 and 3-of-5 multisig, which they call [https://support.coinbase.com/customer/portal/articles/1743782-what-is-the-multisig-vault- Vault].<br />
<br />
==Multisignature Transactions<ref>https://bitcoinarmory.com/faq/#q14</ref>==<br />
<blockquote>Standard transactions on the Bitcoin network could be called “single-signature transactions,” because transfers require only one signature — from the owner of the private key associated with the Bitcoin address. However, the Bitcoin network supports much more complicated transactions that require the signatures of multiple people before the funds can be transferred. These are often referred to as M-of-N transactions. The idea is that Bitcoins become “encumbered” by providing addresses of multiple parties, thus requiring cooperation of those parties in order to do anything with them. Here are some examples:<br />
<br />
1-of-2: Husband and wife petty cash account — the signature of either spouse is sufficient to spend the funds.<br />
<br />
2-of-2: Husband and wife savings account — both signatures are required to spend the funds, preventing one spouse from spending the money without the approval of the other<br />
<br />
2-of-2: One wallet is on your primary computer, the other on your smartphone — the funds cannot be spent without a signature from both devices. Thus, an attacker must gain access to both devices in order to steal your funds (much more difficult than one device)<br />
<br />
2-of-3: Parents’ savings account for child — the kid can spend the money with the approval of either parent, and money cannot be taken away from the child unless both parents agree<br />
<br />
2-of-3: A board of three directors maintaining funds for their organization — those funds cannot be spent unless any two of those directors agrees. Bigger multi-signature transactions are possible for bigger organizations, such as 3-of-5, 5-of-9, etc.<br />
<br />
2-of-3: Buyer-seller escrow: buyer commits money into a 2-of-3 transaction with the seller and a third-party arbitrator. If transaction goes smoothly, then both buyer and seller sign the transaction to forward the money to the seller. If something goes wrong, they can sign a transaction to refund the buyer. If they cannot agree, they both appeal to the third-party who will arbitrate and provide a second signature to the party that it deems deserves it.</blockquote><br />
<br />
==Multisigniture Addresses==<br />
<blockquote>A [[Address#Multi-signature_addresses|multi-signature address]] is an address that is associated with more than one ECDSA private key. The simplest type is an m-of-n address - it is associated with n private keys, and sending bitcoins from this address requires signatures from at least m keys. A multi-signature transaction is one that sends funds from a multi-signature address.<ref>https://bitcoin.stackexchange.com/a/3729/4334</ref></blockquote><br />
===Creating a Multisigniture Address===<br />
A 2of3 multisig address can be created by following these steps:<ref>https://bitcoin.stackexchange.com/a/10593/4334</ref><br />
<br />
<blockquote><ol><li>Gather (or generate) 3 bitcoin addresses, on whichever machines will be participating, using getnewaddress or getaccountaddress RPC commands (or copy and paste from the GUI).</li><br />
<li>Get their public keys using the <tt>validateaddress</tt> [[API_reference_%28JSON-RPC%29|RPC]] command 3 times.</li><br />
<li>Then create a 2-of-3 multisig address using addmultisigaddress; e.g.<blockquote><code>bitcoind addmultisigaddress 2 '["044322868cb17d64dcc22185ae2d4493111d73244c3668f8ac79ecc79c0ba8d30a6756d0fa20157 709af3281cc721c7f53321a8cabda29b77900b7e4fe0174b114","..second pubkey..","..third pubkey.."]'</code></blockquote></li></ol><tt>addmultisigaddress</tt> returns the multisignature address. Be a little careful, the public keys are raw hexadecimal and don't contain checksums like bitcoin addresses do. You can then send funds into that 2-of-3 transaction using the normal sendtoaddress/sendmany RPC commands, or the GUI (or anything that's been updated to recognize multisig addresses).<ref>https://bitcointalk.org/index.php?topic=82213.msg906833#msg906833</ref></blockquote><br />
<br />
==History of Multisigniture==<br />
Multisigniture has been used for thousands of years to protect the security of crypts holding precious relics of saints. The superior of a monastery would give monks only partial "keys" for gaining access to the precious relics; the monks would not know they only held a partial key. Thus, no single monk could gain access to and possibly steal the precious relics.<br />
<br />
==References==<br />
<references /><br />
<br />
* [https://bitcoinmagazine.com/11108/multisig-future-bitcoin/ How To Create A Bitcoin Multisig Wallet]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=59646User:Geremia2015-12-18T16:45:47Z<p>Geremia: added [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase join link]</p>
<hr />
<div>==About Me==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://www.scribd.com/doc/138347161/Bernard-W-Dempsey-1903-1960-Interest-and-Usury-With-an-Introduction-by-Joseph-a-Schumpeter-1948 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Excellent introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>Join [https://www.coinbase.com/join/567389685cf24154420006b2 Coinbase]</b><br />
<br />
God bless Bitcoin. ☺</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=59620User:Geremia2015-12-16T03:33:33Z<p>Geremia: added my [https://tox.chat/ Tox] ID</p>
<hr />
<div>==About Me==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://www.scribd.com/doc/138347161/Bernard-W-Dempsey-1903-1960-Interest-and-Usury-With-an-Introduction-by-Joseph-a-Schumpeter-1948 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.circle.com/ <b>Circle</b>] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Excellent introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
[https://tox.chat/ Tox] ID: 65C3E8810738AD9D175234808FCB317A1103632903436203D45411AE97C03F547D390A76B3CF<br><br />
<b>[https://www.circle.com/ Join Circle.]</b><br />
<br />
God bless Bitcoin. ☺</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Meetups&diff=59619Meetups2015-12-16T03:16:32Z<p>Geremia: added Blockchain Tech, Phoenix, AZ, meetup</p>
<hr />
<div>Don't add everyone who's going in the "Who?" column, just prominent Bitcoin members and organizers. Also see [http://bitcoin.meetup.com bitcoin.meetup.com]. Also see [[Conferences]].<br />
<br />
Keep an eye on the [http://bitcointalk.org/index.php?board=86.0 Meetups] forum board on BitcoinTalk for announcements.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Group<br />
! When?<br />
! Where?<br />
! Who?<br />
! Other Notes<br />
|-<br />
| [http://www.meetup.com/Bitcoin-in-San-Diego/ Bitcoin in San Diego]<br />
| Bi-Monthly meetups, weekly workshops<br />
| San Diego, CA, United States<br />
| Local and international participants - guest speakers welcome.<br />
| Presentations and workshops, discussion & trade.<br />
|-<br />
| [http://www.meetup.com/Tucson-Bitcoin-Marketplace/ Bitcoin in Tucson]<br />
| short-notice meetups<br />
| Tucson, AZ, United States<br />
| everyone welcome<br />
| breakfast, Bitcoin basics, presentations, cryptocurrencies, blockchains, and economics<br />
|-<br />
| [http://www.meetup.com/blockchaintech/ Blockchain Tech in Phoenix]<br />
| regular and short-notice meetups<br />
| Phoenix, AZ, United States<br />
| everyone welcome<br />
| hack-a-thons and anything directly or indirectly related to blockchain technology!<br />
|-<br />
| [http://bitcoinembassy.ca Bitcoin Embassy]<br />
| Monthly meetups, weekly workshops<br />
| Montreal, QC, Canada<br />
| Local and international participants - guest speakers welcome. Come and visit our hackerspace, startup incubator and soon, Bitcoin store.<br />
| Presentations and workshops, discussion & trade. [http://eepurl.com/GRzAf Register to our mailing list] to receive event invitations. We also post on [https://bitcointalk.org/index.php?board=86.0 BitcoinTalk Meetups], [http://bitcoinembassy.eventbrite.ca/ EventBrite], [https://www.facebook.com/bitcoinembassy Facebook Bitcoin Embassy page], [https://plus.google.com/u/0/100266464273886488866 Google +], etc.<br />
|-<br />
|-<br />
| [http://www.meetup.com/San-Antonio-Bitcoin/ San Antonio Meetup]<br />
| Every Thursday at 7:00 PM<br />
| San Antonio, Texas<br />
Currently at [https://www.google.com/maps/place/17711+Interstate+10+Frontage+Rd,+The+Rim,+San+Antonio,+TX+78257/@29.609714,-98.59871,17z/data=!3m1!4b1!4m2!3m1!1s0x865c6423ecd5d047:0xaa94c89b14a98fc0 Tiago's]<br />
| Miners, entrepreneurs, traders and anyone looking to learn more about Bitcoin and other Cryptocurrencies are welcome.<br />
| [https://bitcointalk.org/index.php?topic=727155.0 Bitcointalk thread]<br />
|-<br />
|-<br />
| [http://www.meetup.com/BitcoinCT/ BitcoinCT Meetup]<br />
| Monthly Meetups<br />
| Stamford, CT<br />
| The Connecticut Bitcoin Meetup brings together Bitcoin users in Connecticut. This meetup is suitable for everyone from Bitcoin newbies to experienced Bitcoiners. You can attend meetups simply to learn more about Bitcoin or to make business connections for entrepreneurs, miners and developers. | We welcome everyone to our meetups even if you're not currently a Bitcoin user, but simply want to find out more about this amazing e-currency. <br />
|-<br />
|-<br />
| [https://bitcash.cz/forum/ Bitcash.cz]<br />
| Ocasionally<br />
| Prague, Brno, Ostrava<br />
| Meetup for Czech and Slovak bitcoin pioneers. <br />
| Discuss and trade with Bitcoin. Events posted also on our [https://www.facebook.com/Bitcash.cz Facebook] profile.<br />
|-<br />
|-<br />
| [http://www.meetup.com/Sydney-Bitcoin-Users-Group/ BitcoinSYD]<br />
| Every Wednesday @ 1800<br />
| [https://goo.gl/maps/okdSm The SG], Downstairs, 32 York St. Look for the guy in the Red Cap.<br />
| Local, National and International peeps looking to Talk and Trade Bitcoin<br />
| We also post our meetups on Reddit and [https://www.facebook.com/pages/Bitcoin-Sydney-Australia/457681220943285 Facebook]<br />
|-<br />
|-<br />
| [https://bitcointalk.org/index.php?topic=27191.0;all Bitcoin Stammtisch]<br />
| each first Thursday of the month<br />
| [http://www.room77.de/ Room 77], Gräfestr. 77, Berlin-Kreuzberg<br />
| Anyone interested in Bitcoin: technically, economically, socially or philosophically.<br />
| If questions contact andreas(at)schildbach.de (founder).<br />
|-<br />
|-<br />
| [http://www.meetup.com/bitcoins/ Bitcoin NYC]<br />
| monthly<br />
| [http://www.xcubicle.com/ xCubicle Hackerspace - New York, NY]<br />
| Any and all Bitcoin aficionados. <br />
|<br />
|-<br />
|-<br />
| [https://en.bitcoin.it/wiki/Bitcoin_Wednesday Bitcoin Wednesday Amsterdam]<br />
| First Wednesday of the Month<br />
| Dutch Bitcoin Users Group of the Netherlands - The country's longest continuously running Bitcoin event.<br />
| [http://www.meetup.com/BitcoinWednesday/ Sign Up - Amsterdam, The Netherlands]<br />
| Open to anyone interested in Bitcoin. Organized by [https://www.PikaPay.com PikaPay.com] @PikaPay or hello-AT-PikaPay.com<br />
|-<br />
|-<br />
| [http://hitspace.org/ HIT Space - Hack it Together]<br />
| monthly<br />
| [http://hitspace.org/where-we-are/ HIT Space - Porto, Portugal]<br />
| Hackerspace members and anyone who want to join us<br />
| send us an email geral[at]hitspace.org<br />
|-<br />
|-<br />
| [http://bitcoin-austria.at Bitcoin Austria]<br />
| monthly - check the [http://bitcoin-austria.at wiki] or subscribe to the [http://lists.bitcoin-austria.at/listinfo/bitcoin mailinglist]<br />
| [https://metalab.at/wiki/Lage Metalab], Vienna hacker space, Rathausstraße 6, 1010 Wien<br />
| Everybody interested in Bitcoin <br />
| <br />
|-<br />
| [http://brmlab.cz brmlab, prague hackerspace]<br />
| 14th Nov 2011<br />
28th Nov 2011<br />
([http://brmlab.cz/event/bitcoin_seminar])<br />
| [http://brmlab.cz/place Brmlab, Bubenska 1]<br />
| brmlab crew, slush, genjix<br />
| <br />
|-<br />
| [http://www.facebook.com/groups/175596065827848/ Bitcoin Boston]<br />
| Every Friday at 4:30 and bi-weekly on Saturday or Sunday ([http://www.facebook.com/groups/175596065827848/ See Facebook page])<br />
| Starbucks in Kendall Square (Ames St & Broadway) and bi-weekly at Starbucks in Harvard Square<br />
| Anyone is welcome!<br />
| Our bi-weekly meetings have been somewhat sporadic but we aim to gain some regularity.<br />
|-<br />
| [http://www.meetup.com/Milwaukee-Area-Bitcoin-Meetup/ Milwaukee Area Bitcoin Meetup]<br />
| Every other Thursday at 6:00pm<br />
| 17025 West Rogers Drive, New Berlin WI<br />
| Open to anyone interested in Bitcoin<br />
| [https://www.facebook.com/groups/BTCMKE Milwaukee Area Bitcoin Meetup Facebook]<br />
|-<br />
| [http://www.meetup.com/bitcoin New York Bitcoin Users]<br />
| 6:00 PM, 3rd Sunday of every month ([http://www.meetup.com/bitcoin/events/past past meetings])<br />
| OnlyOneTV Studios - 290 Fifth Ave New York, NY<br />
| Bruce Wagner (Organizer) and others<br />
| <br />
|-<br />
|-<br />
| [http://www.meetup.com/bitcoin New York Bitcoin Users]<br />
| 6:00 PM, every Wednesday of every month ([http://www.meetup.com/bitcoin/events/past past meetings])<br />
| Just Sweet Dessert House - 83 Third Ave New York, NY<br />
| Yifu Guo (Organizer) and crew<br />
| hosted by Bitsyncom, the people behind [[Bitnavigator]], walk-ins welcome;<br />
|-<br />
|[http://www.meetup.com/MichiganBitcoinMeetup Michigan Bitcoin Meetup]<br />
|<br />
|<br />
|Kinnard Hockenhull (Organizer)<br />
|Sponsored by [[BitBox]]<br />
|-<br />
| [http://www.meetup.com/PhillyBitcoin Philadelphia Bitcoin User Group]<br />
| TBD<br />
| TBD<br />
| Brian Cohen (Organizer) and others<br />
|<br />
|-<br />
| [http://www.meetup.com/BitcoinDC Washington, DC Bitcoin Users]<br />
| 7:00 PM, 1st Monday of every month ([http://www.meetup.com/BitcoinDC/#past past meetings])<br />
| Northside Social, 3211 Wilson Blvd Arlington, VA<br />
| [[User:Dduane|Darrell Duane]] (Organizer) and others<br />
|<br />
|-<br />
| [http://www.meetup.com/Silicon-Valley-Bitcoin-Users Silicon Valley Bitcoin Users]<br />
| 7:00 PM, Tuesday, June 14, 2011 ([http://www.meetup.com/Silicon-Valley-Bitcoin-Users/events/past past meetings])<br />
| 140B S Whisman Road Mountain View, CA <br />
| Brian Mcqueen and others<br />
|<br />
|-<br />
| [http://www.meetup.com/BitcoinChicago Chicago]<br />
| No regular schedule yet ([http://www.meetup.com/BitcoinChicago/events/past past meetings])<br />
| Sunnyvale Art Gallery Cafe, 251 W El Camino Real Sunnyvale, CA<br />
| Igor<br />
|<br />
|-<br />
| [http://www.meetup.com/denver-bitcoin Denver]<br />
| First meeting June 4th, 2011 ([http://www.meetup.com/denver-bitcoin/events/past past meetings])<br />
| Gypsy House Cafe - 1279 Marion St Denver, CO<br />
| bearbones<br />
|<br />
|-<br />
| [http://www.meetup.com/SF-Bitcoin-Devs/ SF Bitcoin Devs]<br />
| About twice a month ([http://www.meetup.com/SF-Bitcoin-Devs/#past past meetings])<br />
| San Francisco, CA<br />
| <br />
| This meetup has a strong technical/engineering focus ([https://www.youtube.com/channel/UCREs0ConyCR2sEFf-DrLRMw see videos of past presentations])<br />
|-<br />
| [http://www.meetup.com/San-Francisco-Bitcoin-Social/ San Francisco Bitcoin Social]<br />
| Every second Thursday and last Tuesday of the month ([http://www.meetup.com/San-Francisco-Bitcoin-Social/#past past meetings])<br />
| San Francisco, CA<br />
| <br />
| More general (less technical) meetup for cryptocurrency aficionados<br />
|-<br />
| [http://www.meetup.com/Los-Angeles-Digital-Currency-Innovators-Group Los Angeles Digital Currency Innovators]<br />
| Thursday July 7th, 2011, 7 PM<br />
| (mt)/Media Temple, Culver City, CA<br />
| [[User:sgornick|Stephen Gornick]] (Interim organizer) and others<br />
| Seeking meetup coordinator<br />
|-<br />
| [http://CryptoParty.vegas/ Las Vegas Crypto Party]<br />
| 1st Thursday 7pm. [http://BitcoinsInVegas.com Weekly Wednesday lunch mobs]<br />
| CoinBus.com, 64 N Pecos, Henderson, NV 89052<br />
| Julian Tosh / Tuxavant<br />
|<br />
|-<br />
| [https://www.facebook.com/groups/195492163844669/ Free State Bitcoin Consortium]<br />
| Every Saturday, at 6:30 PM<br />
| Strange Brew Tavern, Manchester, NH<br />
| ben-abuya (organizer)<br />
| Weekly<br />
|-<br />
| [https://www.facebook.com/groups/195492163844669/ Twin Cities Users]<br />
| Friday, June 10, 2011, 6:30 PM<br />
| Joule - 1200 Washington Ave S Minneapolis, MN<br />
| Mac Manson<br />
|<br />
|-<br />
| [http://www.meetup.com/Portland-Bitcoin-Meetup-Users Portland Bitcoin Users Meetup Group]<br />
| forming<br />
| <br />
| Steven Wagner<br />
|<br />
|-<br />
| [http://www.meetup.com/Bitcoin-Orlando Bitcoin Orlando]<br />
| ([http://www.meetup.com/Bitcoin-Orlando#past past meetings])<br />
| Frank & Steins 150 S. Magnolia Ave, Orlando, FL<br />
| Antonio Gallippi<br />
|<br />
|-<br />
| [http://www.meetup.com/Bitcoin-Enthusiasts/ Bitcoin Tampa]<br />
| Monthly meetings<br />
| Matt Branton -- [https://www.coinlock.com/ Coinlock.com] founder<br />
|<br />
|-<br />
| [http://www.hive13.org/?p=310 Hive13 Hackerspace]<br />
| Bitcoin Exchange, Every Tuesday, 7:30 PM<br />
| Hive13 - 2929 Spring Grove Avenue, Cincinnati, OH<br />
| <br />
|<br />
|-<br />
| [https://www.facebook.com/bitcoinaus Bitcoin Australia]: Melbourne <br />
| [https://www.facebook.com/events/345430765511234/ Wednesday, 23 May 2012, 18:45]<br />
| Melbourne CBD(TBA)<br />
| Facebook, IRC, Bitcointalk Forum...<br />
|<br />
|-<br />
| [[Bitcoin Wiki:Tokyo meetup|Tokyo]]<br />
| Every Thursday<br />
| Shibuya, Roppongi<br />
| Roger Ver (Organizer) and others<br />
| Locations change, check the meetup page<br />
|-<br />
| [http://meetup.com/Bitcoin-Canada Vancouver Canada]<br />
| ([http://www.meetup.com/Bitcoin-Canada/#past past meetings])<br />
| The Brickhouse - 730 Main St.<br />
| humble (and others)<br />
|<br />
|-<br />
| [https://plus.google.com/u/0/communities/113055238568417913658 Zurich / Geneva Switzerland]<br />
| Twice a month<br />
| Kennedy's Irish Pub, Zurich; Lord Nelson Pub, Geneva<br />
| Stefan Thomas (WeUseCoins), Mike Hearn (BitcoinJ), bitdragon, Luzius (Wuala), more ... <br />
|<br />
|-<br />
| Seattle Bitcoin Meetup<br />
| [http://www.meetup.com/SeattleBitCoin/ Semi-regularly].<br />
| [http://maps.google.com/maps?q=cafe+solstice&daddr=4116+University+Way,+Seattle,+WA+98105-6214&hl=en&ll=47.657424,-122.31313&spn=0.007328,0.01929&gl=us&view=map&geocode=CRT9Bdg7zX3vFdcx1wIdWqa1-CFcJ9qrr9CcEQ&t=h&z=16 Solstice Cafe, 2pm]<br />
| [https://bitcointalk.org/index.php?action=profile;u=36217 indolering]<br />
|<br />
|-<br />
| [https://bitcointalk.org/index.php?topic=135723.0 Munich Germany]<br />
| First wednesday of the month, 6:00PM<br />
| [http://www.openstreetmap.org/?minlon=11.5800867080688&minlat=48.1336479187012&maxlon=11.5804319381714&maxlat=48.1338386535645 Nero Pizza], Rumfordstrasse 34, 80469 München<br />
| Bitcoin-users from Munich and around<br />
| [http://www.meetup.com/Bitcoin-Munchen/ @meetup.com]<br />
|-<br />
| [http://www.meetup.com/bitcoin-il/ Israel Bitcoin Meetup Group]<br />
| Occasional<br />
| TBD<br />
| Meni Rosenfeld<br />
|<br />
|-<br />
| [http://www.meetup.com/Dallas-Bitcoin-User-Meetup/ Dallas Bitcoin Meetup Group]<br />
| Biweekly on Saturdays, 6:00PM<br />
| [http://freemandallas.com/ The Free Man Cajun Cafe]<br />
| Justus Ranvier (organizer)<br />
|<br />
|-<br />
| [https://en.bitcoin.it/wiki/Cafe Café Bitcoin Sevilla]<br />
| <br />
| Seville, Spain<br />
| Randy Brito (rdymac / btcven), Eduardo (bitcoin.com.es), Jorge and Alfredo<br />
| http://cafebitcoin.com<br />
|-<br />
| [http://www.meetup.com/BitcoinSingapore/ Bitcoin Singapore Meetup]<br />
| <br />
| Singapore<br />
| Monthly<br />
| [https://www.facebook.com/pages/Bitcoin-Singapore/431452580303555 Bitcoin Singapore Facebook Page]<br />
|-<br />
| [http://www.meetup.com/Lehigh-Valley-Bitcoin-Meetup/ Lehigh Valley (Allentown/Bethlehem PA) Bitcoin]<br />
| <br />
| Westgate Subway; Schoenersville Rd; Bethlehem<br />
| Jim Hoff (organizer)<br />
| http://www.meetup.com/Lehigh-Valley-Bitcoin-Meetup/<br />
|-<br />
| [http://www.meetup.com/LetsUseBitcoin/ Lets Use Bitcoin]<br />
| Monthly<br />
| The Netherlands<br />
| Local and international participants<br />
| Using Bitcoin and having fun! Sponsored by [[Blocktrail]]<br />
|-<br />
|}<br />
<br />
==See Also==<br />
<br />
* [http://hackerspaces.org/wiki/List_of_Hacker_Spaces List of Hacker Spaces]<br />
* [http://bitimap.net Bitimap.net - Find local meetups (up-to-date)]<br />
<br />
[[Category:Local]]<br />
[[Category:Meetups]]<br />
<br />
<br />
[[de:Treffen]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=API_reference_(JSON-RPC)&diff=59310API reference (JSON-RPC)2015-11-09T13:32:09Z<p>Geremia: /* C */</p>
<hr />
<div>== Controlling Bitcoin ==<br />
<br />
Run ''bitcoind'' or ''bitcoin-qt -server''. You can control it via the command-line bitcoin-cli utility or by [http://json-rpc.org/wiki/specification HTTP JSON-RPC] commands.<br />
<br />
You must create a bitcoin.conf configuration file setting an rpcuser and rpcpassword; see [[Running Bitcoin]] for details.<br />
<br />
Now run:<br />
$ ./bitcoind -daemon<br />
bitcoin server starting<br />
$ ./bitcoin-cli -rpcwait help<br />
# shows the help text<br />
<br />
A [[Original Bitcoin client/API Calls list|list of RPC calls]] will be shown.<br />
<br />
$ ./bitcoin-cli getbalance<br />
2000.00000<br />
<br />
If you are learning the API, it is a very good idea to use the test network (run bitcoind -testnet and bitcoin-cli -testnet).<br />
<br />
== JSON-RPC ==<br />
<br />
Running Bitcoin with the -server argument (or running bitcoind) tells it to function as a [http://json-rpc.org/wiki/specification HTTP JSON-RPC] server, but <br />
[http://en.wikipedia.org/wiki/Basic_access_authentication Basic access authentication] must be used when communicating with it, and, for security, by default, the server only accepts connections from other processes on the same machine. If your HTTP or JSON library requires you to specify which 'realm' is authenticated, use 'jsonrpc'.<br />
<br />
Bitcoin supports SSL (https) JSON-RPC connections beginning with version 0.3.14. See the [[Enabling SSL on original client daemon|rpcssl wiki page]] for setup instructions and a list of all bitcoin.conf configuration options.<br />
<br />
Allowing arbitrary machines to access the JSON-RPC port (using the rpcallowip [[Running_Bitcoin|configuration option]]) is dangerous and '''strongly discouraged'''-- access should be strictly limited to trusted machines.<br />
<br />
To access the server you should find a [http://json-rpc.org/wiki/implementations suitable library] for your language.<br />
<br />
== Proper money handling ==<br />
<br />
See the [[Proper Money Handling (JSON-RPC)|proper money handling page]] for notes on avoiding rounding errors when handling bitcoin values.<br />
<br />
== Python ==<br />
<br />
[http://json-rpc.org/wiki/python-json-rpc python-jsonrpc] is the official JSON-RPC implementation for Python.<br />
It automatically generates Python methods for RPC calls.<br />
However, due to its design for supporting old versions of Python, it is also rather inefficient.<br />
[[User:jgarzik|jgarzik]] has forked it as [https://github.com/jgarzik/python-bitcoinrpc Python-BitcoinRPC] and optimized it for current versions.<br />
Generally, this version is recommended.<br />
<br />
While BitcoinRPC lacks a few obscure features from jsonrpc, software using only the ServiceProxy class can be written the same to work with either version the user might choose to install:<br />
<br />
<source lang="python"><br />
from jsonrpc import ServiceProxy<br />
<br />
access = ServiceProxy("http://user:password@127.0.0.1:8332")<br />
access.getinfo()<br />
access.listreceivedbyaddress(6)<br />
#access.sendtoaddress("11yEmxiMso2RsFVfBcCa616npBvGgxiBX", 10)<br />
</source><br />
<br />
The latest version of python-bitcoinrpc has a new syntax.<br />
<source lang="python"><br />
from bitcoinrpc.authproxy import AuthServiceProxy<br />
</source><br />
<br />
== Ruby ==<br />
<br />
<source lang="ruby"><br />
require 'net/http'<br />
require 'uri'<br />
require 'json'<br />
<br />
class BitcoinRPC<br />
def initialize(service_url)<br />
@uri = URI.parse(service_url)<br />
end<br />
<br />
def method_missing(name, *args)<br />
post_body = { 'method' => name, 'params' => args, 'id' => 'jsonrpc' }.to_json<br />
resp = JSON.parse( http_post_request(post_body) )<br />
raise JSONRPCError, resp['error'] if resp['error']<br />
resp['result']<br />
end<br />
<br />
def http_post_request(post_body)<br />
http = Net::HTTP.new(@uri.host, @uri.port)<br />
request = Net::HTTP::Post.new(@uri.request_uri)<br />
request.basic_auth @uri.user, @uri.password<br />
request.content_type = 'application/json'<br />
request.body = post_body<br />
http.request(request).body<br />
end<br />
<br />
class JSONRPCError < RuntimeError; end<br />
end<br />
<br />
if $0 == __FILE__<br />
h = BitcoinRPC.new('http://user:password@127.0.0.1:8332')<br />
p h.getbalance<br />
p h.getinfo<br />
p h.getnewaddress<br />
p h.dumpprivkey( h.getnewaddress )<br />
# also see: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list<br />
end<br />
</source><br />
<br />
== Erlang ==<br />
Get the rebar dependency from https://github.com/edescourtis/ebitcoind . By default the client will use the configuration in <code>$HOME/.bitcoin/bitcoin.conf</code> or you can instead specify a URI like this:<br />
<source lang="erlang">ebitcoind:start_link(<<"http://user:password@localhost:8332/">>).</source><br />
<br />
Here is a usage example:<br />
<source lang="erlang"><br />
1> {ok,Pid} = ebitcoind:start_link().<br />
{ok,<0.177.0>}<br />
2> ebitcoind:getbalance(Pid).<br />
8437.02478294<br />
3> ebitcoind:getinfo(Pid).<br />
{ok, #{<<"balance">> => 8437.02478294,<br />
<<"blocks">> => 260404,<br />
<<"connections">> => 8,<br />
<<"difficulty">> => 148819199.80509263,<br />
<<"errors">> => <<>>,<br />
<<"keypoololdest">> => 1420307921,<br />
<<"keypoolsize">> => 102,<br />
<<"paytxfee">> => 0.0,<br />
<<"protocolversion">> => 70002,<br />
<<"proxy">> => <<>>,<br />
<<"relayfee">> => 1.0e-5,<br />
<<"testnet">> => false,<br />
<<"timeoffset">> => -3,<br />
<<"version">> => 90300,<br />
<<"walletversion">> => 60000}}<br />
4> ebitcoind:setgenerate(Pid,true).<br />
{ok, null}<br />
5> ebitcoind:getblocktemplate(Pid, #{}). <br />
{ok,#{<<"bits">> => <<"181b0dca">>,<br />
<<"coinbaseaux">> => #{<<"flags">> => <<"062f503253482f">>},<br />
<<"coinbasevalue">> => 2518690558,<br />
<<"curtime">> => 1420421249,<br />
<<"height">> => 337533,<br />
<<"mintime">> => 1420416332,<br />
<<"mutable">> => [<<"time">>,<<"transactions">>,<<"prevblock">>],<br />
<<"noncerange">> => <<"00000000ffffffff">>,<br />
<<"previousblockhash">> => <<"000000000000000017ce0a0d328bf84cc597785844393e899e9a971a81679a5f">>,<br />
<<"sigoplimit">> => 20000,<br />
<<"sizelimit">> => 1000000,<br />
<<"target">> => <<"00000000000000001b0dca00000000000000000000000000000000000000"...>>,<br />
<<"transactions">> => [#{<<"data">> => <<"01000000049b47ce225d29bff7c18b7df7d7df4693523a52"...>>,<br />
<<"depends">> => [],<br />
<<"fee">> => 0,<br />
<<"hash">> => <<"6d0d76e1f27b3a6f7325923710dcdb4107c9"...>>,<br />
<<"sigops">> => 1},<br />
...<br />
</source><br />
<br />
== PHP ==<br />
<br />
The [http://jsonrpcphp.org/ JSON-RPC PHP] library also makes it very easy to connect to Bitcoin. For example:<br />
<br />
<source lang="php"><br />
require_once 'jsonRPCClient.php';<br />
<br />
$bitcoin = new jsonRPCClient('http://user:password@127.0.0.1:8332/');<br />
<br />
echo "<pre>\n";<br />
print_r($bitcoin->getinfo()); echo "\n";<br />
echo "Received: ".$bitcoin->getreceivedbylabel("Your Address")."\n";<br />
echo "</pre>";<br />
</source><br />
<br />
'''Note:''' The jsonRPCClient library uses fopen() and will throw an exception saying "Unable to connect" if it receives a 404 or 500 error from bitcoind. This prevents you from being able to see error messages generated by bitcoind (as they are sent with status 404 or 500). The [https://github.com/aceat64/EasyBitcoin-PHP EasyBitcoin-PHP library] is similar in function to JSON-RPC PHP but does not have this issue.<br />
<br />
== Java ==<br />
<br />
The easiest way to tell Java to use HTTP Basic authentication is to set a default Authenticator:<br />
<br />
<source lang="java"><br />
final String rpcuser ="...";<br />
final String rpcpassword ="...";<br />
<br />
Authenticator.setDefault(new Authenticator() {<br />
protected PasswordAuthentication getPasswordAuthentication() {<br />
return new PasswordAuthentication (rpcuser, rpcpassword.toCharArray());<br />
}<br />
});<br />
</source><br />
<br />
Once that is done, [http://json-rpc.org/wiki/implementations any JSON-RPC library for Java] (or ordinary URL POSTs) may be used to communicate with the Bitcoin server.<br />
<br />
Instead of writing your own implementation, consider using one of the existing wrappers like [https://github.com/johannbarbie/BitcoindClient4J BitcoindClient4J], [https://github.com/priiduneemre/btcd-cli4j btcd-cli4j] or [[Bitcoin-JSON-RPC-Client|Bitcoin-JSON-RPC-Client]] instead.<br />
<br />
== Perl ==<br />
<br />
The JSON::RPC package from CPAN can be used to communicate with Bitcoin. You must set the client's credentials; for example:<br />
<br />
<source lang="perl"><br />
use JSON::RPC::Client;<br />
use Data::Dumper;<br />
<br />
my $client = new JSON::RPC::Client;<br />
<br />
$client->ua->credentials(<br />
'localhost:8332', 'jsonrpc', 'user' => 'password' # REPLACE WITH YOUR bitcoin.conf rpcuser/rpcpassword<br />
);<br />
<br />
my $uri = 'http://localhost:8332/';<br />
my $obj = {<br />
method => 'getinfo',<br />
params => [],<br />
};<br />
<br />
my $res = $client->call( $uri, $obj );<br />
<br />
if ($res){<br />
if ($res->is_error) { print "Error : ", $res->error_message; }<br />
else { print Dumper($res->result); }<br />
} else {<br />
print $client->status_line;<br />
}<br />
</source><br />
<br />
== Go ==<br />
<br />
The [https://github.com/btcsuite/btcrpcclient btcrpcclient package] can be used to communicate with Bitcoin. You must provide credentials to match the client you are communicating with.<br />
<br />
<source lang="go"><br />
package main<br />
<br />
import (<br />
"github.com/btcsuite/btcd/chaincfg"<br />
"github.com/btcsuite/btcrpcclient"<br />
"github.com/btcsuite/btcutil"<br />
"log"<br />
)<br />
<br />
func main() {<br />
// create new client instance<br />
client, err := btcrpcclient.New(&btcrpcclient.ConnConfig{<br />
HTTPPostMode: true,<br />
DisableTLS: true,<br />
Host: "127.0.0.1:8332",<br />
User: "rpcUsername",<br />
Pass: "rpcPassword",<br />
}, nil)<br />
if err != nil {<br />
log.Fatalf("error creating new btc client: %v", err)<br />
}<br />
<br />
// list accounts<br />
accounts, err := client.ListAccounts()<br />
if err != nil {<br />
log.Fatalf("error listing accounts: %v", err)<br />
}<br />
// iterate over accounts (map[string]btcutil.Amount) and write to stdout<br />
for label, amount := range accounts {<br />
log.Printf("%s: %s", label, amount)<br />
}<br />
<br />
// prepare a sendMany transaction<br />
receiver1, err := btcutil.DecodeAddress("1someAddressThatIsActuallyReal", &chaincfg.MainNetParams)<br />
if err != nil {<br />
log.Fatalf("address receiver1 seems to be invalid: %v", err)<br />
}<br />
receiver2, err := btcutil.DecodeAddress("1anotherAddressThatsPrettyReal", &chaincfg.MainNetParams)<br />
if err != nil {<br />
log.Fatalf("address receiver2 seems to be invalid: %v", err)<br />
}<br />
receivers := map[btcutil.Address]btcutil.Amount{<br />
receiver1: 42, // 42 satoshi<br />
receiver2: 100, // 100 satoshi<br />
}<br />
<br />
// create and send the sendMany tx<br />
txSha, err := client.SendMany("some-account-label-from-which-to-send", receivers)<br />
if err != nil {<br />
log.Fatalf("error sendMany: %v", err)<br />
}<br />
log.Printf("sendMany completed! tx sha is: %s", txSha.String())<br />
}<br />
</source><br />
<br />
== .NET (C#) ==<br />
The communication with the RPC service can be achieved using the standard http request/response objects.<br />
A library for serializing and deserializing Json will make your life a lot easier:<br />
<br />
Json.NET ( http://james.newtonking.com/json ) is a high performance JSON package for .NET. It is also available via NuGet from the package manager console ( Install-Package Newtonsoft.Json ).<br />
<br />
The following example uses Json.NET:<br />
<br />
<source lang="csharp"><br />
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://localhost.:8332");<br />
webRequest.Credentials = new NetworkCredential("user", "pwd");<br />
/// important, otherwise the service can't desirialse your request properly<br />
webRequest.ContentType = "application/json-rpc";<br />
webRequest.Method = "POST";<br />
<br />
JObject joe = new JObject();<br />
joe.Add(new JProperty("jsonrpc", "1.0"));<br />
joe.Add(new JProperty("id", "1"));<br />
joe.Add(new JProperty("method", Method));<br />
// params is a collection values which the method requires..<br />
if (Params.Keys.Count == 0)<br />
{<br />
joe.Add(new JProperty("params", new JArray()));<br />
}<br />
else<br />
{<br />
JArray props = new JArray();<br />
// add the props in the reverse order!<br />
for (int i = Params.Keys.Count - 1; i >= 0; i--)<br />
{<br />
.... // add the params<br />
}<br />
joe.Add(new JProperty("params", props));<br />
}<br />
<br />
// serialize json for the request<br />
string s = JsonConvert.SerializeObject(joe);<br />
byte[] byteArray = Encoding.UTF8.GetBytes(s);<br />
webRequest.ContentLength = byteArray.Length;<br />
Stream dataStream = webRequest.GetRequestStream();<br />
dataStream.Write(byteArray, 0, byteArray.Length);<br />
dataStream.Close();<br />
<br />
<br />
WebResponse webResponse = webRequest.GetResponse();<br />
<br />
... // deserialze the response<br />
</source><br />
<br />
There is also a wrapper for Json.NET called Bitnet (https://sourceforge.net/projects/bitnet)<br />
implementing Bitcoin API in more convenient way:<br />
<br />
<source lang="csharp"><br />
BitnetClient bc = new BitnetClient("http://127.0.0.1:8332");<br />
bc.Credentials = new NetworkCredential("user", "pass");<br />
<br />
var p = bc.GetDifficulty();<br />
Console.WriteLine("Difficulty:" + p.ToString());<br />
<br />
var inf = bc.GetInfo();<br />
Console.WriteLine("Balance:" + inf["balance"]);<br />
</source><br />
<br />
A more complete library and wrapper for Bitcoin (also for Litecoin and all Bitcoin clones) is [https://github.com/GeorgeKimionis/BitcoinLib BitcoinLib] (https://github.com/GeorgeKimionis/BitcoinLib) which is also available via [https://www.nuget.org/packages/BitcoinLib/ NuGet] from the package manager console (Install-Package BitcoinLib). <br />
<br />
Querying the daemon with [https://github.com/GeorgeKimionis/BitcoinLib BitcoinLib] is as simple as:<br />
<br />
<source lang="csharp"><br />
IBitcoinService bitcoinService = new BitcoinService();<br />
<br />
double networkDifficulty = bitcoinService.GetDifficulty();<br />
decimal myBalance = bitcoinService.GetBalance();<br />
</source><br />
<br />
== Node.js ==<br />
<br />
* [https://github.com/freewil/node-bitcoin node-bitcoin] (npm: bitcoin) <br />
<br />
Example using node-bitcoin:<br />
<br />
<source lang="javascript"><br />
var bitcoin = require('bitcoin');<br />
var client = new bitcoin.Client({<br />
host: 'localhost',<br />
port: 8332,<br />
user: 'user',<br />
pass: 'pass'<br />
});<br />
<br />
client.getDifficulty(function(err, difficulty) {<br />
if (err) {<br />
return console.error(err);<br />
}<br />
<br />
console.log('Difficulty: ' + difficulty);<br />
});<br />
</source><br />
<br />
Example using Kapitalize:<br />
<br />
<source lang='javascript'><br />
var client = require('kapitalize')()<br />
<br />
client.auth('user', 'password')<br />
<br />
client<br />
.getInfo()<br />
.getDifficulty(function(err, difficulty) {<br />
console.log('Dificulty: ', difficulty)<br />
})<br />
</source><br />
<br />
== Command line (cURL) ==<br />
<br />
You can also send commands and see results using [http://curl.haxx.se/ cURL] or some other command-line HTTP-fetching utility; for example:<br />
<br />
<source lang="bash"><br />
curl --user user --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' <br />
-H 'content-type: text/plain;' http://127.0.0.1:8332/<br />
</source><br />
<br />
You will be prompted for your rpcpassword, and then will see something like:<br />
<br />
<source lang="javascript"><br />
{"result":{"balance":0.000000000000000,"blocks":59952,"connections":48,"proxy":"","generate":false,<br />
"genproclimit":-1,"difficulty":16.61907875185736},"error":null,"id":"curltest"}<br />
</source><br />
<br />
== Clojure ==<br />
<br />
[https://github.com/aviad/clj-btc clj-btc] is a Clojure wrapper for the bitcoin API.<br />
<br />
<source lang="clojure"><br />
user=> (require '[clj-btc.core :as btc])<br />
nil<br />
user=> (btc/getinfo)<br />
{"timeoffset" 0, "protocolversion" 70001, "blocks" 111908, "errors" "",<br />
"testnet" true, "proxy" "", "connections" 4, "version" 80500,<br />
"keypoololdest" 1380388750, "paytxfee" 0E-8M,<br />
"difficulty" 4642.44443532M, "keypoolsize" 101, "balance" 0E-8M,<br />
"walletversion" 60000}<br />
</source><br />
<br />
== C ==<br />
The C API for processing JSON is [https://jansson.readthedocs.org/en/latest/ Jansson]. C applications like [https://github.com/bitcoin/libblkmaker libblkmaker] use [[API_reference_(JSON-RPC)#Command_line_.28cURL.29|cURL]] for making the calls and Jansson for interpreting the JSON that cURL fetches.<br />
<br />
For example basic usage (which can be easily modified for Bitcoin RPC), see the Jansson example [https://jansson.readthedocs.org/en/latest/_downloads/github_commits.c github_commits.c] and [https://jansson.readthedocs.org/en/latest/tutorial.html#the-github-repo-commits-api the associated tutorial].<br />
<br />
The following does with libcurl what the [[API_reference_(JSON-RPC)#Command_line_.28cURL.29|cURL example above]] does:<source lang="c">#include <stdlib.h><br />
<br />
#include <curl/curl.h><br />
<br />
int main()<br />
{<br />
CURL *curl = curl_easy_init();<br />
struct curl_slist *headers = NULL;<br />
<br />
if (curl) {<br />
const char *data =<br />
"{\"jsonrpc\": \"1.0\", \"id\":\"curltest\", \"method\": \"getinfo\", \"params\": [] }";<br />
<br />
headers = curl_slist_append(headers, "content-type: text/plain;");<br />
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);<br />
<br />
curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:8332/");<br />
<br />
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long) strlen(data));<br />
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);<br />
<br />
curl_easy_setopt(curl, CURLOPT_USERPWD,<br />
"bitcoinrpcUSERNAME:bitcoinrpcPASSWORD");<br />
<br />
curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_TRY);<br />
<br />
curl_easy_perform(curl);<br />
}<br />
return 0;<br />
}<br />
</source>This output can be parsed with Jansson, ''à la'' the Jansson tutorial linked to above.<br />
<br />
(source: [https://bitcoin.stackexchange.com/a/41158/4334 Bitcoin StackExchange])<br />
<br />
== Qt/C++ ==<br />
<br />
[https://bitbucket.org/devonit/qjsonrpc/overview QJsonRpc] is a Qt/C++ implementation of the JSON-RPC protocol. It integrates nicely with Qt, leveraging Qt's meta object system in order to provide services over the JSON-RPC protocol. QJsonRpc is licensed under the LGPLv2.1.<br />
<br />
<source lang="cpp"><br />
/*<br />
* Copyright (C) 2012-2013 Matt Broadstone<br />
* Contact: http://bitbucket.org/devonit/qjsonrpc<br />
*<br />
* This file is part of the QJsonRpc Library.<br />
*<br />
* This library is free software; you can redistribute it and/or<br />
* modify it under the terms of the GNU Lesser General Public<br />
* License as published by the Free Software Foundation; either<br />
* version 2.1 of the License, or (at your option) any later version.<br />
*<br />
* This library is distributed in the hope that it will be useful,<br />
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br />
* Lesser General Public License for more details.<br />
*/<br />
#include <QCoreApplication><br />
#include <QAuthenticator><br />
#include <QStringList><br />
#include <QDebug><br />
<br />
#include "qjsonrpchttpclient.h"<br />
<br />
class HttpClient : public QJsonRpcHttpClient<br />
{<br />
Q_OBJECT<br />
public:<br />
HttpClient(const QString &endpoint, QObject *parent = 0)<br />
: QJsonRpcHttpClient(endpoint, parent)<br />
{<br />
// defaults added for my local test server<br />
m_username = "bitcoinrpc";<br />
m_password = "232fb3276bbb7437d265298ea48bdc46";<br />
}<br />
<br />
void setUsername(const QString &username) {<br />
m_username = username;<br />
}<br />
<br />
void setPassword(const QString &password) {<br />
m_password = password;<br />
}<br />
<br />
private Q_SLOTS:<br />
virtual void handleAuthenticationRequired(QNetworkReply *reply, QAuthenticator * authenticator)<br />
{<br />
Q_UNUSED(reply)<br />
authenticator->setUser(m_username);<br />
authenticator->setPassword(m_password);<br />
}<br />
<br />
private:<br />
QString m_username;<br />
QString m_password;<br />
<br />
};<br />
<br />
int main(int argc, char **argv)<br />
{<br />
QCoreApplication app(argc, argv);<br />
if (app.arguments().size() < 2) {<br />
qDebug() << "usage: " << argv[0] << "[-u username] [-p password] <command> <arguments>";<br />
return -1;<br />
}<br />
<br />
HttpClient client("http://127.0.0.1:8332");<br />
if (app.arguments().contains("-u")) {<br />
int idx = app.arguments().indexOf("-u");<br />
app.arguments().removeAt(idx);<br />
client.setUsername(app.arguments().takeAt(idx));<br />
}<br />
<br />
if (app.arguments().contains("-p")) {<br />
int idx = app.arguments().indexOf("-p");<br />
app.arguments().removeAt(idx);<br />
client.setPassword(app.arguments().takeAt(idx));<br />
}<br />
<br />
QJsonRpcMessage message = QJsonRpcMessage::createRequest(app.arguments().at(1));<br />
QJsonRpcMessage response = client.sendMessageBlocking(message);<br />
if (response.type() == QJsonRpcMessage::Error) {<br />
qDebug() << response.errorData();<br />
return -1;<br />
}<br />
<br />
qDebug() << response.toJson();<br />
}<br />
</source><br />
<br />
== See Also==<br />
<br />
* [[Original_Bitcoin_client/API_Calls_list|API calls list]]<br />
* [[Running Bitcoin]]<br />
* [[Lazy API]]<br />
* [[PHP developer intro]]<br />
* [[Raw_Transactions|Raw Transactions API]]<br />
* [https://gourl.io/bitcoin-payment-gateway-api.html GoUrl Bitcoin PHP Payment API]<br />
* [http://blockchain.info/api/json_rpc_api Web Based JSON RPC interface.]<br />
<br />
[[Category:Technical]]<br />
[[Category:Developer]]<br />
[[zh-cn:API_reference_(JSON-RPC)]]<br />
<br />
{{Bitcoin Core documentation}}</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=API_reference_(JSON-RPC)&diff=59250API reference (JSON-RPC)2015-11-02T13:17:42Z<p>Geremia: /* C */ added source</p>
<hr />
<div>== Controlling Bitcoin ==<br />
<br />
Run ''bitcoind'' or ''bitcoin-qt -server''. You can control it via the command-line bitcoin-cli utility or by [http://json-rpc.org/wiki/specification HTTP JSON-RPC] commands.<br />
<br />
You must create a bitcoin.conf configuration file setting an rpcuser and rpcpassword; see [[Running Bitcoin]] for details.<br />
<br />
Now run:<br />
$ ./bitcoind -daemon<br />
bitcoin server starting<br />
$ ./bitcoin-cli -rpcwait help<br />
# shows the help text<br />
<br />
A [[Original Bitcoin client/API Calls list|list of RPC calls]] will be shown.<br />
<br />
$ ./bitcoin-cli getbalance<br />
2000.00000<br />
<br />
If you are learning the API, it is a very good idea to use the test network (run bitcoind -testnet and bitcoin-cli -testnet).<br />
<br />
== JSON-RPC ==<br />
<br />
Running Bitcoin with the -server argument (or running bitcoind) tells it to function as a [http://json-rpc.org/wiki/specification HTTP JSON-RPC] server, but <br />
[http://en.wikipedia.org/wiki/Basic_access_authentication Basic access authentication] must be used when communicating with it, and, for security, by default, the server only accepts connections from other processes on the same machine. If your HTTP or JSON library requires you to specify which 'realm' is authenticated, use 'jsonrpc'.<br />
<br />
Bitcoin supports SSL (https) JSON-RPC connections beginning with version 0.3.14. See the [[Enabling SSL on original client daemon|rpcssl wiki page]] for setup instructions and a list of all bitcoin.conf configuration options.<br />
<br />
Allowing arbitrary machines to access the JSON-RPC port (using the rpcallowip [[Running_Bitcoin|configuration option]]) is dangerous and '''strongly discouraged'''-- access should be strictly limited to trusted machines.<br />
<br />
To access the server you should find a [http://json-rpc.org/wiki/implementations suitable library] for your language.<br />
<br />
== Proper money handling ==<br />
<br />
See the [[Proper Money Handling (JSON-RPC)|proper money handling page]] for notes on avoiding rounding errors when handling bitcoin values.<br />
<br />
== Python ==<br />
<br />
[http://json-rpc.org/wiki/python-json-rpc python-jsonrpc] is the official JSON-RPC implementation for Python.<br />
It automatically generates Python methods for RPC calls.<br />
However, due to its design for supporting old versions of Python, it is also rather inefficient.<br />
[[User:jgarzik|jgarzik]] has forked it as [https://github.com/jgarzik/python-bitcoinrpc Python-BitcoinRPC] and optimized it for current versions.<br />
Generally, this version is recommended.<br />
<br />
While BitcoinRPC lacks a few obscure features from jsonrpc, software using only the ServiceProxy class can be written the same to work with either version the user might choose to install:<br />
<br />
<source lang="python"><br />
from jsonrpc import ServiceProxy<br />
<br />
access = ServiceProxy("http://user:password@127.0.0.1:8332")<br />
access.getinfo()<br />
access.listreceivedbyaddress(6)<br />
#access.sendtoaddress("11yEmxiMso2RsFVfBcCa616npBvGgxiBX", 10)<br />
</source><br />
<br />
The latest version of python-bitcoinrpc has a new syntax.<br />
<source lang="python"><br />
from bitcoinrpc.authproxy import AuthServiceProxy<br />
</source><br />
<br />
== Ruby ==<br />
<br />
<source lang="ruby"><br />
require 'net/http'<br />
require 'uri'<br />
require 'json'<br />
<br />
class BitcoinRPC<br />
def initialize(service_url)<br />
@uri = URI.parse(service_url)<br />
end<br />
<br />
def method_missing(name, *args)<br />
post_body = { 'method' => name, 'params' => args, 'id' => 'jsonrpc' }.to_json<br />
resp = JSON.parse( http_post_request(post_body) )<br />
raise JSONRPCError, resp['error'] if resp['error']<br />
resp['result']<br />
end<br />
<br />
def http_post_request(post_body)<br />
http = Net::HTTP.new(@uri.host, @uri.port)<br />
request = Net::HTTP::Post.new(@uri.request_uri)<br />
request.basic_auth @uri.user, @uri.password<br />
request.content_type = 'application/json'<br />
request.body = post_body<br />
http.request(request).body<br />
end<br />
<br />
class JSONRPCError < RuntimeError; end<br />
end<br />
<br />
if $0 == __FILE__<br />
h = BitcoinRPC.new('http://user:password@127.0.0.1:8332')<br />
p h.getbalance<br />
p h.getinfo<br />
p h.getnewaddress<br />
p h.dumpprivkey( h.getnewaddress )<br />
# also see: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list<br />
end<br />
</source><br />
<br />
== Erlang ==<br />
Get the rebar dependency from https://github.com/edescourtis/ebitcoind . By default the client will use the configuration in <code>$HOME/.bitcoin/bitcoin.conf</code> or you can instead specify a URI like this:<br />
<source lang="erlang">ebitcoind:start_link(<<"http://user:password@localhost:8332/">>).</source><br />
<br />
Here is a usage example:<br />
<source lang="erlang"><br />
1> {ok,Pid} = ebitcoind:start_link().<br />
{ok,<0.177.0>}<br />
2> ebitcoind:getbalance(Pid).<br />
8437.02478294<br />
3> ebitcoind:getinfo(Pid).<br />
{ok, #{<<"balance">> => 8437.02478294,<br />
<<"blocks">> => 260404,<br />
<<"connections">> => 8,<br />
<<"difficulty">> => 148819199.80509263,<br />
<<"errors">> => <<>>,<br />
<<"keypoololdest">> => 1420307921,<br />
<<"keypoolsize">> => 102,<br />
<<"paytxfee">> => 0.0,<br />
<<"protocolversion">> => 70002,<br />
<<"proxy">> => <<>>,<br />
<<"relayfee">> => 1.0e-5,<br />
<<"testnet">> => false,<br />
<<"timeoffset">> => -3,<br />
<<"version">> => 90300,<br />
<<"walletversion">> => 60000}}<br />
4> ebitcoind:setgenerate(Pid,true).<br />
{ok, null}<br />
5> ebitcoind:getblocktemplate(Pid, #{}). <br />
{ok,#{<<"bits">> => <<"181b0dca">>,<br />
<<"coinbaseaux">> => #{<<"flags">> => <<"062f503253482f">>},<br />
<<"coinbasevalue">> => 2518690558,<br />
<<"curtime">> => 1420421249,<br />
<<"height">> => 337533,<br />
<<"mintime">> => 1420416332,<br />
<<"mutable">> => [<<"time">>,<<"transactions">>,<<"prevblock">>],<br />
<<"noncerange">> => <<"00000000ffffffff">>,<br />
<<"previousblockhash">> => <<"000000000000000017ce0a0d328bf84cc597785844393e899e9a971a81679a5f">>,<br />
<<"sigoplimit">> => 20000,<br />
<<"sizelimit">> => 1000000,<br />
<<"target">> => <<"00000000000000001b0dca00000000000000000000000000000000000000"...>>,<br />
<<"transactions">> => [#{<<"data">> => <<"01000000049b47ce225d29bff7c18b7df7d7df4693523a52"...>>,<br />
<<"depends">> => [],<br />
<<"fee">> => 0,<br />
<<"hash">> => <<"6d0d76e1f27b3a6f7325923710dcdb4107c9"...>>,<br />
<<"sigops">> => 1},<br />
...<br />
</source><br />
<br />
== PHP ==<br />
<br />
The [http://jsonrpcphp.org/ JSON-RPC PHP] library also makes it very easy to connect to Bitcoin. For example:<br />
<br />
<source lang="php"><br />
require_once 'jsonRPCClient.php';<br />
<br />
$bitcoin = new jsonRPCClient('http://user:password@127.0.0.1:8332/');<br />
<br />
echo "<pre>\n";<br />
print_r($bitcoin->getinfo()); echo "\n";<br />
echo "Received: ".$bitcoin->getreceivedbylabel("Your Address")."\n";<br />
echo "</pre>";<br />
</source><br />
<br />
'''Note:''' The jsonRPCClient library uses fopen() and will throw an exception saying "Unable to connect" if it receives a 404 or 500 error from bitcoind. This prevents you from being able to see error messages generated by bitcoind (as they are sent with status 404 or 500). The [https://github.com/aceat64/EasyBitcoin-PHP EasyBitcoin-PHP library] is similar in function to JSON-RPC PHP but does not have this issue.<br />
<br />
== Java ==<br />
<br />
The easiest way to tell Java to use HTTP Basic authentication is to set a default Authenticator:<br />
<br />
<source lang="java"><br />
final String rpcuser ="...";<br />
final String rpcpassword ="...";<br />
<br />
Authenticator.setDefault(new Authenticator() {<br />
protected PasswordAuthentication getPasswordAuthentication() {<br />
return new PasswordAuthentication (rpcuser, rpcpassword.toCharArray());<br />
}<br />
});<br />
</source><br />
<br />
Once that is done, [http://json-rpc.org/wiki/implementations any JSON-RPC library for Java] (or ordinary URL POSTs) may be used to communicate with the Bitcoin server.<br />
<br />
Instead of writing your own implementation, consider using one of the existing wrappers like [https://github.com/johannbarbie/BitcoindClient4J BitcoindClient4J], [https://github.com/priiduneemre/btcd-cli4j btcd-cli4j] or [[Bitcoin-JSON-RPC-Client|Bitcoin-JSON-RPC-Client]] instead.<br />
<br />
== Perl ==<br />
<br />
The JSON::RPC package from CPAN can be used to communicate with Bitcoin. You must set the client's credentials; for example:<br />
<br />
<source lang="perl"><br />
use JSON::RPC::Client;<br />
use Data::Dumper;<br />
<br />
my $client = new JSON::RPC::Client;<br />
<br />
$client->ua->credentials(<br />
'localhost:8332', 'jsonrpc', 'user' => 'password' # REPLACE WITH YOUR bitcoin.conf rpcuser/rpcpassword<br />
);<br />
<br />
my $uri = 'http://localhost:8332/';<br />
my $obj = {<br />
method => 'getinfo',<br />
params => [],<br />
};<br />
<br />
my $res = $client->call( $uri, $obj );<br />
<br />
if ($res){<br />
if ($res->is_error) { print "Error : ", $res->error_message; }<br />
else { print Dumper($res->result); }<br />
} else {<br />
print $client->status_line;<br />
}<br />
</source><br />
<br />
== Go ==<br />
<br />
The [https://github.com/btcsuite/btcrpcclient btcrpcclient package] can be used to communicate with Bitcoin. You must provide credentials to match the client you are communicating with.<br />
<br />
<source lang="go"><br />
package main<br />
<br />
import (<br />
"github.com/btcsuite/btcd/chaincfg"<br />
"github.com/btcsuite/btcrpcclient"<br />
"github.com/btcsuite/btcutil"<br />
"log"<br />
)<br />
<br />
func main() {<br />
// create new client instance<br />
client, err := btcrpcclient.New(&btcrpcclient.ConnConfig{<br />
HTTPPostMode: true,<br />
DisableTLS: true,<br />
Host: "127.0.0.1:8332",<br />
User: "rpcUsername",<br />
Pass: "rpcPassword",<br />
}, nil)<br />
if err != nil {<br />
log.Fatalf("error creating new btc client: %v", err)<br />
}<br />
<br />
// list accounts<br />
accounts, err := client.ListAccounts()<br />
if err != nil {<br />
log.Fatalf("error listing accounts: %v", err)<br />
}<br />
// iterate over accounts (map[string]btcutil.Amount) and write to stdout<br />
for label, amount := range accounts {<br />
log.Printf("%s: %s", label, amount)<br />
}<br />
<br />
// prepare a sendMany transaction<br />
receiver1, err := btcutil.DecodeAddress("1someAddressThatIsActuallyReal", &chaincfg.MainNetParams)<br />
if err != nil {<br />
log.Fatalf("address receiver1 seems to be invalid: %v", err)<br />
}<br />
receiver2, err := btcutil.DecodeAddress("1anotherAddressThatsPrettyReal", &chaincfg.MainNetParams)<br />
if err != nil {<br />
log.Fatalf("address receiver2 seems to be invalid: %v", err)<br />
}<br />
receivers := map[btcutil.Address]btcutil.Amount{<br />
receiver1: 42, // 42 satoshi<br />
receiver2: 100, // 100 satoshi<br />
}<br />
<br />
// create and send the sendMany tx<br />
txSha, err := client.SendMany("some-account-label-from-which-to-send", receivers)<br />
if err != nil {<br />
log.Fatalf("error sendMany: %v", err)<br />
}<br />
log.Printf("sendMany completed! tx sha is: %s", txSha.String())<br />
}<br />
</source><br />
<br />
== .NET (C#) ==<br />
The communication with the RPC service can be achieved using the standard http request/response objects.<br />
A library for serializing and deserializing Json will make your life a lot easier:<br />
<br />
Json.NET ( http://james.newtonking.com/json ) is a high performance JSON package for .NET. It is also available via NuGet from the package manager console ( Install-Package Newtonsoft.Json ).<br />
<br />
The following example uses Json.NET:<br />
<br />
<source lang="csharp"><br />
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://localhost.:8332");<br />
webRequest.Credentials = new NetworkCredential("user", "pwd");<br />
/// important, otherwise the service can't desirialse your request properly<br />
webRequest.ContentType = "application/json-rpc";<br />
webRequest.Method = "POST";<br />
<br />
JObject joe = new JObject();<br />
joe.Add(new JProperty("jsonrpc", "1.0"));<br />
joe.Add(new JProperty("id", "1"));<br />
joe.Add(new JProperty("method", Method));<br />
// params is a collection values which the method requires..<br />
if (Params.Keys.Count == 0)<br />
{<br />
joe.Add(new JProperty("params", new JArray()));<br />
}<br />
else<br />
{<br />
JArray props = new JArray();<br />
// add the props in the reverse order!<br />
for (int i = Params.Keys.Count - 1; i >= 0; i--)<br />
{<br />
.... // add the params<br />
}<br />
joe.Add(new JProperty("params", props));<br />
}<br />
<br />
// serialize json for the request<br />
string s = JsonConvert.SerializeObject(joe);<br />
byte[] byteArray = Encoding.UTF8.GetBytes(s);<br />
webRequest.ContentLength = byteArray.Length;<br />
Stream dataStream = webRequest.GetRequestStream();<br />
dataStream.Write(byteArray, 0, byteArray.Length);<br />
dataStream.Close();<br />
<br />
<br />
WebResponse webResponse = webRequest.GetResponse();<br />
<br />
... // deserialze the response<br />
</source><br />
<br />
There is also a wrapper for Json.NET called Bitnet (https://sourceforge.net/projects/bitnet)<br />
implementing Bitcoin API in more convenient way:<br />
<br />
<source lang="csharp"><br />
BitnetClient bc = new BitnetClient("http://127.0.0.1:8332");<br />
bc.Credentials = new NetworkCredential("user", "pass");<br />
<br />
var p = bc.GetDifficulty();<br />
Console.WriteLine("Difficulty:" + p.ToString());<br />
<br />
var inf = bc.GetInfo();<br />
Console.WriteLine("Balance:" + inf["balance"]);<br />
</source><br />
<br />
A more complete library and wrapper for Bitcoin (also for Litecoin and all Bitcoin clones) is [https://github.com/GeorgeKimionis/BitcoinLib BitcoinLib] (https://github.com/GeorgeKimionis/BitcoinLib) which is also available via [https://www.nuget.org/packages/BitcoinLib/ NuGet] from the package manager console (Install-Package BitcoinLib). <br />
<br />
Querying the daemon with [https://github.com/GeorgeKimionis/BitcoinLib BitcoinLib] is as simple as:<br />
<br />
<source lang="csharp"><br />
IBitcoinService bitcoinService = new BitcoinService();<br />
<br />
double networkDifficulty = bitcoinService.GetDifficulty();<br />
decimal myBalance = bitcoinService.GetBalance();<br />
</source><br />
<br />
== Node.js ==<br />
<br />
* [https://github.com/freewil/node-bitcoin node-bitcoin] (npm: bitcoin) <br />
<br />
Example using node-bitcoin:<br />
<br />
<source lang="javascript"><br />
var bitcoin = require('bitcoin');<br />
var client = new bitcoin.Client({<br />
host: 'localhost',<br />
port: 8332,<br />
user: 'user',<br />
pass: 'pass'<br />
});<br />
<br />
client.getDifficulty(function(err, difficulty) {<br />
if (err) {<br />
return console.error(err);<br />
}<br />
<br />
console.log('Difficulty: ' + difficulty);<br />
});<br />
</source><br />
<br />
Example using Kapitalize:<br />
<br />
<source lang='javascript'><br />
var client = require('kapitalize')()<br />
<br />
client.auth('user', 'password')<br />
<br />
client<br />
.getInfo()<br />
.getDifficulty(function(err, difficulty) {<br />
console.log('Dificulty: ', difficulty)<br />
})<br />
</source><br />
<br />
== Command line (cURL) ==<br />
<br />
You can also send commands and see results using [http://curl.haxx.se/ cURL] or some other command-line HTTP-fetching utility; for example:<br />
<br />
<source lang="bash"><br />
curl --user user --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' <br />
-H 'content-type: text/plain;' http://127.0.0.1:8332/<br />
</source><br />
<br />
You will be prompted for your rpcpassword, and then will see something like:<br />
<br />
<source lang="javascript"><br />
{"result":{"balance":0.000000000000000,"blocks":59952,"connections":48,"proxy":"","generate":false,<br />
"genproclimit":-1,"difficulty":16.61907875185736,"error":null,"id":"curltest"}<br />
</source><br />
<br />
== Clojure ==<br />
<br />
[https://github.com/aviad/clj-btc clj-btc] is a Clojure wrapper for the bitcoin API.<br />
<br />
<source lang="clojure"><br />
user=> (require '[clj-btc.core :as btc])<br />
nil<br />
user=> (btc/getinfo)<br />
{"timeoffset" 0, "protocolversion" 70001, "blocks" 111908, "errors" "",<br />
"testnet" true, "proxy" "", "connections" 4, "version" 80500,<br />
"keypoololdest" 1380388750, "paytxfee" 0E-8M,<br />
"difficulty" 4642.44443532M, "keypoolsize" 101, "balance" 0E-8M,<br />
"walletversion" 60000}<br />
</source><br />
<br />
== C ==<br />
The C API for processing JSON is [https://jansson.readthedocs.org/en/latest/ Jansson]. C applications like [https://github.com/bitcoin/libblkmaker libblkmaker] use [[API_reference_(JSON-RPC)#Command_line_.28cURL.29|cURL]] for making the calls and Jansson for interpreting the JSON that cURL fetches.<br />
<br />
For example basic usage (which can be easily modified for Bitcoin RPC), see the Jansson example [https://jansson.readthedocs.org/en/latest/_downloads/github_commits.c github_commits.c] and [https://jansson.readthedocs.org/en/latest/tutorial.html#the-github-repo-commits-api the associated tutorial].<br />
<br />
(source: [https://bitcoin.stackexchange.com/a/41158/4334 Bitcoin StackExchange])<br />
<br />
== Qt/C++ ==<br />
<br />
[https://bitbucket.org/devonit/qjsonrpc/overview QJsonRpc] is a Qt/C++ implementation of the JSON-RPC protocol. It integrates nicely with Qt, leveraging Qt's meta object system in order to provide services over the JSON-RPC protocol. QJsonRpc is licensed under the LGPLv2.1.<br />
<br />
<source lang="cpp"><br />
/*<br />
* Copyright (C) 2012-2013 Matt Broadstone<br />
* Contact: http://bitbucket.org/devonit/qjsonrpc<br />
*<br />
* This file is part of the QJsonRpc Library.<br />
*<br />
* This library is free software; you can redistribute it and/or<br />
* modify it under the terms of the GNU Lesser General Public<br />
* License as published by the Free Software Foundation; either<br />
* version 2.1 of the License, or (at your option) any later version.<br />
*<br />
* This library is distributed in the hope that it will be useful,<br />
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br />
* Lesser General Public License for more details.<br />
*/<br />
#include <QCoreApplication><br />
#include <QAuthenticator><br />
#include <QStringList><br />
#include <QDebug><br />
<br />
#include "qjsonrpchttpclient.h"<br />
<br />
class HttpClient : public QJsonRpcHttpClient<br />
{<br />
Q_OBJECT<br />
public:<br />
HttpClient(const QString &endpoint, QObject *parent = 0)<br />
: QJsonRpcHttpClient(endpoint, parent)<br />
{<br />
// defaults added for my local test server<br />
m_username = "bitcoinrpc";<br />
m_password = "232fb3276bbb7437d265298ea48bdc46";<br />
}<br />
<br />
void setUsername(const QString &username) {<br />
m_username = username;<br />
}<br />
<br />
void setPassword(const QString &password) {<br />
m_password = password;<br />
}<br />
<br />
private Q_SLOTS:<br />
virtual void handleAuthenticationRequired(QNetworkReply *reply, QAuthenticator * authenticator)<br />
{<br />
Q_UNUSED(reply)<br />
authenticator->setUser(m_username);<br />
authenticator->setPassword(m_password);<br />
}<br />
<br />
private:<br />
QString m_username;<br />
QString m_password;<br />
<br />
};<br />
<br />
int main(int argc, char **argv)<br />
{<br />
QCoreApplication app(argc, argv);<br />
if (app.arguments().size() < 2) {<br />
qDebug() << "usage: " << argv[0] << "[-u username] [-p password] <command> <arguments>";<br />
return -1;<br />
}<br />
<br />
HttpClient client("http://127.0.0.1:8332");<br />
if (app.arguments().contains("-u")) {<br />
int idx = app.arguments().indexOf("-u");<br />
app.arguments().removeAt(idx);<br />
client.setUsername(app.arguments().takeAt(idx));<br />
}<br />
<br />
if (app.arguments().contains("-p")) {<br />
int idx = app.arguments().indexOf("-p");<br />
app.arguments().removeAt(idx);<br />
client.setPassword(app.arguments().takeAt(idx));<br />
}<br />
<br />
QJsonRpcMessage message = QJsonRpcMessage::createRequest(app.arguments().at(1));<br />
QJsonRpcMessage response = client.sendMessageBlocking(message);<br />
if (response.type() == QJsonRpcMessage::Error) {<br />
qDebug() << response.errorData();<br />
return -1;<br />
}<br />
<br />
qDebug() << response.toJson();<br />
}<br />
</source><br />
<br />
== See Also==<br />
<br />
* [[Original_Bitcoin_client/API_Calls_list|API calls list]]<br />
* [[Running Bitcoin]]<br />
* [[Lazy API]]<br />
* [[PHP developer intro]]<br />
* [[Raw_Transactions|Raw Transactions API]]<br />
* [https://gourl.io/bitcoin-payment-gateway-api.html GoUrl Bitcoin PHP Payment API]<br />
* [http://blockchain.info/api/json_rpc_api Web Based JSON RPC interface.]<br />
<br />
[[Category:Technical]]<br />
[[Category:Developer]]<br />
[[zh-cn:API_reference_(JSON-RPC)]]<br />
<br />
{{Bitcoin Core documentation}}</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Getblocktemplate&diff=59249Getblocktemplate2015-11-02T13:16:45Z<p>Geremia: /* Using libblkmaker (C library) */ wikilinked Jansson JSON library</p>
<hr />
<div>getblocktemplate is the new decentralized Bitcoin mining protocol, openly developed by the Bitcoin community over mid 2012.<br />
It supercedes the old [[getwork]] mining protocol.<br />
<br />
{{TOC limit|3}}<br />
<br />
==Why change something that works?==<br />
<br />
===Decentralization===<br />
The original getwork mining protocol simply issues block headers for a miner to solve.<br />
The miner is kept in the dark as to what is actually in this block, and has no influence over it.<br />
In effect, the authority of the miner to decide which transactions are accepted, etc, is all transferred blindly to the pool operator.<br />
A corrupt (or compromised) pool operator could use the combined hash power of all the miners to execute double spend attacks or other similar attacks.<br />
<br />
getblocktemplate moves block creation to the miner, while giving pools a way to set down the rules for participation.<br />
While pools can do just as much as they could before by expressing it in these rules, miners can not be kept in the dark and are enabled to freely choose what they participate in mining.<br />
This improves the security of the Bitcoin network by making blocks decentralized again.<br />
<br />
===ASICs===<br />
The original getwork protocol only provides a single block header, which is sufficient for a total of about 4 GH of mining.<br />
With the "rollntime" extension, this can be extended to 4 GH *per second*, but even that is far from sufficient for the next generation of mining equipment (ASICs) which are capable of 1000 GH/s on the high end.<br />
<br />
By moving block creation to the miners, they are enabled to create as much work as they need locally, thus overcoming this limitation.<br />
<br />
===Scalability===<br />
Due to scalability problems, bitcoind's JSON-RPC stack has not been able to keep up with the hashrates needed for solo mining today.<br />
Since getblocktemplate drastically reduces the load required to a single request per new block on the network, direct solo mining on bitcoind is again possible.<br />
Poolservers likewise benefit from having to meet much lower demands of miners who can make their own blocks.<br />
<br />
===Extensible===<br />
The original getwork protocol was designed in a way that was very incompatible with extensions.<br />
As a result, as new functionality was needed, extensions were "hacked in" out-of-band using HTTP headers.<br />
getblocktemplate is designed from the start to be flexible for future extensions, and the [[BIP 0023|BIP 23]] specification already covers how the established getwork extensions can be implemented cleanly, regardless of transport protocol.<br />
<br />
==How to use it==<br />
===For miners===<br />
Mining software with GBT support:<br />
* [https://bitcointalk.org/?topic=78192.msg870395#msg870395 BFGMiner 2.8+]<br />
* [https://bitcointalk.org/?topic=28402.msg357369#msg357369 cgminer 2.9+]<br />
* [http://ufasoft.com/open/bitcoin/ Ufasoft Bitcoin Miner 0.39+]<br />
* [http://www.butterflylabs.com/drivers/ Butterfly Labs's EasyMiner]<br />
<br />
To take advantage of getblocktemplate, you also need a compatible pool:<br />
* [https://bitminter.com BitMinter]<br />
* [https://eclipsemc.com/ EclipseMC]<br />
* [http://eligius.st Eligius]<br />
* [https://pool.itzod.ru/ itzod.ru]<br />
* [http://polmine.pl PolMine]<br />
* Encourage your favourite pool(s) to support decentralized mining!<br />
<br />
===For pool operators===<br />
See also: [[Poolservers]]<br />
<br />
If you are implementing your own pool server, see the [[#Poolserver software|section for poolserver development]].<br />
<br />
===For developers===<br />
====Mining software====<br />
=====Using libblkmaker (C library)=====<br />
If your miner can include C libraries, you can harness [https://gitlab.com/bitcoin/libblkmaker libblkmaker] to do all the GBT interpretation for you:<br />
all your miner needs to do then is handle the networking (libblkmaker can prepare the JSON for you) and ask libblkmaker for data (block headers to search).<br />
Note that libblkmaker does not provide a SHA256 implementation, and your miner needs to provide one for it to work.<br />
libblkmaker currently only supports the [[API_reference_(JSON-RPC)#C|Jansson JSON library]], but was designed such that it can easily be ported to others;<br />
[[User:Luke-jr|Luke Dashjr]] is willing to do this porting to other JSON libraries free of charge on request.<br />
<br />
=====Using python-blkmaker=====<br />
If your miner is written in Python, you can harness [https://gitlab.com/bitcoin/python-blkmaker python-blkmaker], a native Python port of libblkmaker, to do all the GBT interpretation for you:<br />
all your miner needs to do then is handle the networking (python-blkmaker can prepare the JSON for you) and ask the blkmaker module for data (block headers to search).<br />
A short example Python script is included that finds a prepared share using CPU mining.<br />
<br />
=====From scratch=====<br />
======Miner requests block template======<br />
<br />
To start participating, the miner contacts the pool and requests an initial template:<br />
{"id": 0, "method": "getblocktemplate", "params": [{"capabilities": ["coinbasetxn", "workid", "coinbase/append"]}]}<br />
<br />
The server will respond with the full details needed to immediately begin mining blocks:<br />
{<br />
"error": null,<br />
"result": {<br />
"coinbasetxn": {<br />
"data": "0100000001000000000000000000000000000000000000000000000000000000<br />
0000000000ffffffff1302955d0f00456c6967697573005047dc66085fffffffff02fff1052a01<br />
0000001976a9144ebeb1cd26d6227635828d60d3e0ed7d0da248fb88ac01000000000000001976<br />
a9147c866aee1fa2f3b3d5effad576df3dbf1f07475588ac00000000"<br />
},<br />
"previousblockhash": "000000004d424dec1c660a68456b8271d09628a80cc62583e5904f5894a2483c",<br />
"transactions": [],<br />
"expires": 120,<br />
"target": "00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff",<br />
"longpollid": "some gibberish",<br />
"height": 23957,<br />
"version": 2,<br />
"curtime": 1346886758,<br />
"mutable": ["coinbase/append"],<br />
"bits": "ffff001d"<br />
},<br />
"id": 0<br />
}<br />
<br />
======How to build coinbase transaction======<br />
If the pool allows the "coinbase/append" mutation by including it in the "mutable" key, you can rebuild the coinbase transaction to append any data your miner wants, such as an extranonce - you can use as much space as you need so long as the coinbase data does not overflow the 100 byte hard limit.<br />
If the server does *not* allow "coinbase/append", or you don't care to change it, you can skip this step entirely :)<br />
<br />
The coinbase data always begins after exactly 42 bytes of the coinbase transaction.<br />
The 42nd byte (that is, the byte immediately before the data) is the length of the data.<br />
So when/if you want to add on to the coinbase data, simply insert it 42+DataLen bytes into the transaction, and increment the 42nd byte by the length of your inserted data.<br />
<br />
Python example:<br />
import binascii<br />
coinbase = binascii.a2b_hex(template['coinbasetxn']['data'])<br />
extradata = b'my block'<br />
# The following can be done better in both Python 2 and Python 3, but this way works with both<br />
origLen = ord(coinbase[41:42])<br />
newLen = origLen + len(extradata)<br />
coinbase = coinbase[0:41] + chr(newLen).encode('ascii') + coinbase[42:42 + origLen] + extradata + coinbase[42 + origLen:]<br />
<br />
======How to build merkle root======<br />
Collect your coinbase transaction (modified or not) at the front of the "transactions" list provided by the server.<br />
Apply a double-SHA256 hash to each transaction in the list.<br />
<br />
Now, as long as the list has more than 1 hash remaining, go through each pair and hash them together.<br />
That is, concatenate the first two, double-SHA256 that, repeat for the next two, and so on.<br />
If you encounter an odd pair (that is, the hash list ends with a single item and no pairing), concatenate it with itself and hash that.<br />
Continue to do that until there is only one hash left:<br />
that is your merkle root.<br />
<br />
Python example:<br />
import hashlib<br />
def dblsha(data):<br />
return hashlib.sha256(hashlib.sha256(data).digest()).digest()<br />
<br />
txnlist = [coinbase] + [binascii.a2b_hex(a['data']) for a in template['transactions']]<br />
merklehashes = [dblsha(t) for t in txnlist]<br />
while len(merklehashes) > 1:<br />
if len(merklehashes) % 2:<br />
merklehashes.append(merklehashes[-1])<br />
merklehashes = [dblsha(merklehashes[i] + merklehashes[i + 1]) for i in range(0, len(merklehashes), 2)]<br />
merkleroot = merklehashes[0]<br />
<br />
======How to build block header======<br />
Assemble the block header as laid out in the Bitcoin [[block hashing algorithm]], using the data provided in the block template along with your very own merkle root.<br />
Note that miners are expected to check the "version" number, and should not create blocks with versions they do not understand unless the server instructs them to do so with the "version/force" or "version/reduce" mutations - you don't need to support those, but if you don't support the version the server has provided, understand that the server may reject submissions if they don't meet some unknown future rules.<br />
As of this time, the current Bitcoin block version is 3.<br />
<br />
Python example:<br />
import struct<br />
blkheader = struct.pack('<I', template['version']) + \<br />
binascii.a2b_hex(template['previousblockhash']) + \<br />
merkleroot + \<br />
struct.pack('<I', template['curtime']) + \<br />
binascii.a2b_hex(template['bits']) + \<br />
b'NONC'<br />
<br />
======While you're mining======<br />
Since you're making all the blocks yourself, you really don't ever need to get another template... until it's invalid.<br />
Generally, it's a good idea to refresh more often anyway to get more transactions, but it's better to let the pool decide when to do that, since it knows what's changed in the meantime already.<br />
<br />
If your template included a "longpollid" key, you can queue a request for a new template to be executed as soon as the pool decides you should change.<br />
This is the same as any other template request, except that you include the "longpollid" parameter that the pool provided in your request.<br />
If there is already a new template, the pool might respond immediately, so be sure not to depend on a delay!<br />
<br />
So to amend the template request we used initially, now we use:<br />
{"id": 0, "method": "getblocktemplate", "params": [{<br />
"capabilities": ["coinbasetxn", "workid", "coinbase/append"],<br />
"longpollid": "some gibberish",<br />
}]}<br />
<br />
======Submitting shares======<br />
When miner find the job which meets requested difficulty, it can submit the block to the server as a share:<br />
{"id": 0, "method": "submitblock", "params": [<br />
"020000003c48a294584f90e58325c60ca82896d071826b45680a661cec4d424d00000000<br />
de6433d46c0c7f50d84a05aec77be0199176cdd47f77e344b6f50c84380fddba66dc47501d00ff<br />
ff0000010001010000000100000000000000000000000000000000000000000000000000000000<br />
00000000ffffffff1302955d0f00456c6967697573005047dc66085fffffffff02fff1052a0100<br />
00001976a9144ebeb1cd26d6227635828d60d3e0ed7d0da248fb88ac01000000000000001976a9<br />
147c866aee1fa2f3b3d5effad576df3dbf1f07475588ac00000000"<br />
]}<br />
<br />
To assemble the block data, simply concatenate your block header, number of transactions encoded in [[Protocol specification#Variable length integer|Bitcoin varint format]], followed by each of the transactions in your block (beginning with the coinbase).<br />
If the server has listed "submit/coinbase" in its "mutable" key, you may opt to omit the transactions after the coinbase.<br />
<br />
Python example:<br />
def varintEncode(n):<br />
if n < 0xfd:<br />
return struct.pack('<B', n)<br />
# NOTE: Technically, there are more encodings for numbers bigger than<br />
# 16-bit, but transaction counts can't be that high with version 2 Bitcoin<br />
# blocks<br />
return b'\xfd' + struct.pack('<H', n)<br />
blkdata = blkheader + varintEncode(len(txnlist)) + coinbase<br />
if 'submit/coinbase' not in template.get('mutable', ()):<br />
for txn in txnlist[1:]:<br />
blkdata += txn<br />
<br />
====Poolserver software====<br />
Recommended standards to start with (in order of importance):<br />
* [[BIP 0022|BIP 22 (non-optional sections)]]<br />
* [[BIP 0022#Optional: Long Polling|BIP 22 Long Polling]]<br />
* [[BIP 0023#Basic Pool Extensions|BIP 23 Basic Pool Extensions]]<br />
* [[BIP 0023#Mutations|BIP 23 Mutation "coinbase/append"]] (required for miner extranonce rolling)<br />
* [[BIP 0023#Submission Abbreviation|BIP 23 Submission Abbreviation "submit/coinbase"]]<br />
* [[BIP 0023#Mutations|BIP 23 Mutation "time/increment"]] (be sure to specify "maxtime" or "maxtimeoff"!)<br />
<br />
==Technical specifications==<br />
* [[BIP 0022|BIP 22: getblocktemplate - Fundamentals]]<br />
* [[BIP 0023|BIP 23: getblocktemplate - Pooled Mining]]<br />
<br />
==History==<br />
<br />
Getblocktemplate's origins trace back to forrestv's getmemorypool JSON-RPC method for bitcoind.<br />
He created it so that his pool ([[P2Pool]]) could piggy-back on bitcoind so as to avoid harming the Bitcoin network (up to this point, it mined only empty blocks that never confirmed transactions).<br />
Having been fighting with scalability problems in pushpool/bitcoind for months on his pool ([[Eligius]]), Luke-Jr set out to implement a fast pool server using getmemorypool to do its own block production (this became [[Eloipool]], this first open source makes-its-own-blocks poolserver).<br />
Other poolservers also implemented block creation using getmemorypool over the months following.<br />
<br />
At about the same time, interest in decentralizing pooled mining became a hot topic.<br />
While [[BitPenny]] had initially released its own decentralized mining proxy months prior, [[P2Pool]]'s implementation became rapidly popular.<br />
Anyone involved in Bitcoin mining protocols could see the need to move control of block creation back into the hands of the miners.<br />
Unfortunately, both [[BitPenny]] and [[P2Pool]] had used very pool-specific proprietary protocols to implement their decentralization.<br />
On the other hand, getmemorypool was *almost* a perfect fit for the task - it just lacked support for the now-ubiquitous pooled mining extensions that had developed around the getwork protocol over time.<br />
<br />
In February of 2012, Luke implemented and [https://bitcointalk.org/?topic=23768.msg774497#msg774497 deployed] a first draft of getmemorypool mining support in [[Eloipool]] (and on [[Eligius]]) along with a proof-of-concept getwork proxy (now known as gmp-proxy), adding revisions as needed to function as a general-purpose decentralized mining protocol.<br />
After he had confirmed it was working, he documented and proposed it on the [[Bitcoin development mailing list]] for review on February 28th, where discussion began on what was missing and what needed to be changed or clarified.<br />
During the following few months, a number of others, both developers and testers, provided constructive criticism and suggestions, which were integrated into the standard.<br />
Luke also actively encouraged participation in the development of the standard among pool operators and poolserver authors, especially as it became necessary to move forward into the ASIC "mining generation".<br />
Eventually, it was decided it would be best to rename it to the more appropriate "getblocktemplate" name and drop backward compatibility with getmemorypool for simplicity.<br />
The standard was split into two pieces and the technical specification can be found in [[BIP 0022|BIP 22]] and [[BIP 0023|BIP 23]].<br />
<br />
==See also==<br />
* [https://bitcointalk.org/?topic=108854 BitcoinTalk forum thread]<br />
* [[BIP 0022|BIP 22: getblocktemplate - Fundamentals]] (technical)<br />
* [[BIP 0023|BIP 23: getblocktemplate - Pooled Mining]] (technical)<br />
{{lowercase}}<br />
{{Bitcoin Core documentation}}</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=API_reference_(JSON-RPC)&diff=59248API reference (JSON-RPC)2015-11-02T13:15:16Z<p>Geremia: /* C */ new section</p>
<hr />
<div>== Controlling Bitcoin ==<br />
<br />
Run ''bitcoind'' or ''bitcoin-qt -server''. You can control it via the command-line bitcoin-cli utility or by [http://json-rpc.org/wiki/specification HTTP JSON-RPC] commands.<br />
<br />
You must create a bitcoin.conf configuration file setting an rpcuser and rpcpassword; see [[Running Bitcoin]] for details.<br />
<br />
Now run:<br />
$ ./bitcoind -daemon<br />
bitcoin server starting<br />
$ ./bitcoin-cli -rpcwait help<br />
# shows the help text<br />
<br />
A [[Original Bitcoin client/API Calls list|list of RPC calls]] will be shown.<br />
<br />
$ ./bitcoin-cli getbalance<br />
2000.00000<br />
<br />
If you are learning the API, it is a very good idea to use the test network (run bitcoind -testnet and bitcoin-cli -testnet).<br />
<br />
== JSON-RPC ==<br />
<br />
Running Bitcoin with the -server argument (or running bitcoind) tells it to function as a [http://json-rpc.org/wiki/specification HTTP JSON-RPC] server, but <br />
[http://en.wikipedia.org/wiki/Basic_access_authentication Basic access authentication] must be used when communicating with it, and, for security, by default, the server only accepts connections from other processes on the same machine. If your HTTP or JSON library requires you to specify which 'realm' is authenticated, use 'jsonrpc'.<br />
<br />
Bitcoin supports SSL (https) JSON-RPC connections beginning with version 0.3.14. See the [[Enabling SSL on original client daemon|rpcssl wiki page]] for setup instructions and a list of all bitcoin.conf configuration options.<br />
<br />
Allowing arbitrary machines to access the JSON-RPC port (using the rpcallowip [[Running_Bitcoin|configuration option]]) is dangerous and '''strongly discouraged'''-- access should be strictly limited to trusted machines.<br />
<br />
To access the server you should find a [http://json-rpc.org/wiki/implementations suitable library] for your language.<br />
<br />
== Proper money handling ==<br />
<br />
See the [[Proper Money Handling (JSON-RPC)|proper money handling page]] for notes on avoiding rounding errors when handling bitcoin values.<br />
<br />
== Python ==<br />
<br />
[http://json-rpc.org/wiki/python-json-rpc python-jsonrpc] is the official JSON-RPC implementation for Python.<br />
It automatically generates Python methods for RPC calls.<br />
However, due to its design for supporting old versions of Python, it is also rather inefficient.<br />
[[User:jgarzik|jgarzik]] has forked it as [https://github.com/jgarzik/python-bitcoinrpc Python-BitcoinRPC] and optimized it for current versions.<br />
Generally, this version is recommended.<br />
<br />
While BitcoinRPC lacks a few obscure features from jsonrpc, software using only the ServiceProxy class can be written the same to work with either version the user might choose to install:<br />
<br />
<source lang="python"><br />
from jsonrpc import ServiceProxy<br />
<br />
access = ServiceProxy("http://user:password@127.0.0.1:8332")<br />
access.getinfo()<br />
access.listreceivedbyaddress(6)<br />
#access.sendtoaddress("11yEmxiMso2RsFVfBcCa616npBvGgxiBX", 10)<br />
</source><br />
<br />
The latest version of python-bitcoinrpc has a new syntax.<br />
<source lang="python"><br />
from bitcoinrpc.authproxy import AuthServiceProxy<br />
</source><br />
<br />
== Ruby ==<br />
<br />
<source lang="ruby"><br />
require 'net/http'<br />
require 'uri'<br />
require 'json'<br />
<br />
class BitcoinRPC<br />
def initialize(service_url)<br />
@uri = URI.parse(service_url)<br />
end<br />
<br />
def method_missing(name, *args)<br />
post_body = { 'method' => name, 'params' => args, 'id' => 'jsonrpc' }.to_json<br />
resp = JSON.parse( http_post_request(post_body) )<br />
raise JSONRPCError, resp['error'] if resp['error']<br />
resp['result']<br />
end<br />
<br />
def http_post_request(post_body)<br />
http = Net::HTTP.new(@uri.host, @uri.port)<br />
request = Net::HTTP::Post.new(@uri.request_uri)<br />
request.basic_auth @uri.user, @uri.password<br />
request.content_type = 'application/json'<br />
request.body = post_body<br />
http.request(request).body<br />
end<br />
<br />
class JSONRPCError < RuntimeError; end<br />
end<br />
<br />
if $0 == __FILE__<br />
h = BitcoinRPC.new('http://user:password@127.0.0.1:8332')<br />
p h.getbalance<br />
p h.getinfo<br />
p h.getnewaddress<br />
p h.dumpprivkey( h.getnewaddress )<br />
# also see: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list<br />
end<br />
</source><br />
<br />
== Erlang ==<br />
Get the rebar dependency from https://github.com/edescourtis/ebitcoind . By default the client will use the configuration in <code>$HOME/.bitcoin/bitcoin.conf</code> or you can instead specify a URI like this:<br />
<source lang="erlang">ebitcoind:start_link(<<"http://user:password@localhost:8332/">>).</source><br />
<br />
Here is a usage example:<br />
<source lang="erlang"><br />
1> {ok,Pid} = ebitcoind:start_link().<br />
{ok,<0.177.0>}<br />
2> ebitcoind:getbalance(Pid).<br />
8437.02478294<br />
3> ebitcoind:getinfo(Pid).<br />
{ok, #{<<"balance">> => 8437.02478294,<br />
<<"blocks">> => 260404,<br />
<<"connections">> => 8,<br />
<<"difficulty">> => 148819199.80509263,<br />
<<"errors">> => <<>>,<br />
<<"keypoololdest">> => 1420307921,<br />
<<"keypoolsize">> => 102,<br />
<<"paytxfee">> => 0.0,<br />
<<"protocolversion">> => 70002,<br />
<<"proxy">> => <<>>,<br />
<<"relayfee">> => 1.0e-5,<br />
<<"testnet">> => false,<br />
<<"timeoffset">> => -3,<br />
<<"version">> => 90300,<br />
<<"walletversion">> => 60000}}<br />
4> ebitcoind:setgenerate(Pid,true).<br />
{ok, null}<br />
5> ebitcoind:getblocktemplate(Pid, #{}). <br />
{ok,#{<<"bits">> => <<"181b0dca">>,<br />
<<"coinbaseaux">> => #{<<"flags">> => <<"062f503253482f">>},<br />
<<"coinbasevalue">> => 2518690558,<br />
<<"curtime">> => 1420421249,<br />
<<"height">> => 337533,<br />
<<"mintime">> => 1420416332,<br />
<<"mutable">> => [<<"time">>,<<"transactions">>,<<"prevblock">>],<br />
<<"noncerange">> => <<"00000000ffffffff">>,<br />
<<"previousblockhash">> => <<"000000000000000017ce0a0d328bf84cc597785844393e899e9a971a81679a5f">>,<br />
<<"sigoplimit">> => 20000,<br />
<<"sizelimit">> => 1000000,<br />
<<"target">> => <<"00000000000000001b0dca00000000000000000000000000000000000000"...>>,<br />
<<"transactions">> => [#{<<"data">> => <<"01000000049b47ce225d29bff7c18b7df7d7df4693523a52"...>>,<br />
<<"depends">> => [],<br />
<<"fee">> => 0,<br />
<<"hash">> => <<"6d0d76e1f27b3a6f7325923710dcdb4107c9"...>>,<br />
<<"sigops">> => 1},<br />
...<br />
</source><br />
<br />
== PHP ==<br />
<br />
The [http://jsonrpcphp.org/ JSON-RPC PHP] library also makes it very easy to connect to Bitcoin. For example:<br />
<br />
<source lang="php"><br />
require_once 'jsonRPCClient.php';<br />
<br />
$bitcoin = new jsonRPCClient('http://user:password@127.0.0.1:8332/');<br />
<br />
echo "<pre>\n";<br />
print_r($bitcoin->getinfo()); echo "\n";<br />
echo "Received: ".$bitcoin->getreceivedbylabel("Your Address")."\n";<br />
echo "</pre>";<br />
</source><br />
<br />
'''Note:''' The jsonRPCClient library uses fopen() and will throw an exception saying "Unable to connect" if it receives a 404 or 500 error from bitcoind. This prevents you from being able to see error messages generated by bitcoind (as they are sent with status 404 or 500). The [https://github.com/aceat64/EasyBitcoin-PHP EasyBitcoin-PHP library] is similar in function to JSON-RPC PHP but does not have this issue.<br />
<br />
== Java ==<br />
<br />
The easiest way to tell Java to use HTTP Basic authentication is to set a default Authenticator:<br />
<br />
<source lang="java"><br />
final String rpcuser ="...";<br />
final String rpcpassword ="...";<br />
<br />
Authenticator.setDefault(new Authenticator() {<br />
protected PasswordAuthentication getPasswordAuthentication() {<br />
return new PasswordAuthentication (rpcuser, rpcpassword.toCharArray());<br />
}<br />
});<br />
</source><br />
<br />
Once that is done, [http://json-rpc.org/wiki/implementations any JSON-RPC library for Java] (or ordinary URL POSTs) may be used to communicate with the Bitcoin server.<br />
<br />
Instead of writing your own implementation, consider using one of the existing wrappers like [https://github.com/johannbarbie/BitcoindClient4J BitcoindClient4J], [https://github.com/priiduneemre/btcd-cli4j btcd-cli4j] or [[Bitcoin-JSON-RPC-Client|Bitcoin-JSON-RPC-Client]] instead.<br />
<br />
== Perl ==<br />
<br />
The JSON::RPC package from CPAN can be used to communicate with Bitcoin. You must set the client's credentials; for example:<br />
<br />
<source lang="perl"><br />
use JSON::RPC::Client;<br />
use Data::Dumper;<br />
<br />
my $client = new JSON::RPC::Client;<br />
<br />
$client->ua->credentials(<br />
'localhost:8332', 'jsonrpc', 'user' => 'password' # REPLACE WITH YOUR bitcoin.conf rpcuser/rpcpassword<br />
);<br />
<br />
my $uri = 'http://localhost:8332/';<br />
my $obj = {<br />
method => 'getinfo',<br />
params => [],<br />
};<br />
<br />
my $res = $client->call( $uri, $obj );<br />
<br />
if ($res){<br />
if ($res->is_error) { print "Error : ", $res->error_message; }<br />
else { print Dumper($res->result); }<br />
} else {<br />
print $client->status_line;<br />
}<br />
</source><br />
<br />
== Go ==<br />
<br />
The [https://github.com/btcsuite/btcrpcclient btcrpcclient package] can be used to communicate with Bitcoin. You must provide credentials to match the client you are communicating with.<br />
<br />
<source lang="go"><br />
package main<br />
<br />
import (<br />
"github.com/btcsuite/btcd/chaincfg"<br />
"github.com/btcsuite/btcrpcclient"<br />
"github.com/btcsuite/btcutil"<br />
"log"<br />
)<br />
<br />
func main() {<br />
// create new client instance<br />
client, err := btcrpcclient.New(&btcrpcclient.ConnConfig{<br />
HTTPPostMode: true,<br />
DisableTLS: true,<br />
Host: "127.0.0.1:8332",<br />
User: "rpcUsername",<br />
Pass: "rpcPassword",<br />
}, nil)<br />
if err != nil {<br />
log.Fatalf("error creating new btc client: %v", err)<br />
}<br />
<br />
// list accounts<br />
accounts, err := client.ListAccounts()<br />
if err != nil {<br />
log.Fatalf("error listing accounts: %v", err)<br />
}<br />
// iterate over accounts (map[string]btcutil.Amount) and write to stdout<br />
for label, amount := range accounts {<br />
log.Printf("%s: %s", label, amount)<br />
}<br />
<br />
// prepare a sendMany transaction<br />
receiver1, err := btcutil.DecodeAddress("1someAddressThatIsActuallyReal", &chaincfg.MainNetParams)<br />
if err != nil {<br />
log.Fatalf("address receiver1 seems to be invalid: %v", err)<br />
}<br />
receiver2, err := btcutil.DecodeAddress("1anotherAddressThatsPrettyReal", &chaincfg.MainNetParams)<br />
if err != nil {<br />
log.Fatalf("address receiver2 seems to be invalid: %v", err)<br />
}<br />
receivers := map[btcutil.Address]btcutil.Amount{<br />
receiver1: 42, // 42 satoshi<br />
receiver2: 100, // 100 satoshi<br />
}<br />
<br />
// create and send the sendMany tx<br />
txSha, err := client.SendMany("some-account-label-from-which-to-send", receivers)<br />
if err != nil {<br />
log.Fatalf("error sendMany: %v", err)<br />
}<br />
log.Printf("sendMany completed! tx sha is: %s", txSha.String())<br />
}<br />
</source><br />
<br />
== .NET (C#) ==<br />
The communication with the RPC service can be achieved using the standard http request/response objects.<br />
A library for serializing and deserializing Json will make your life a lot easier:<br />
<br />
Json.NET ( http://james.newtonking.com/json ) is a high performance JSON package for .NET. It is also available via NuGet from the package manager console ( Install-Package Newtonsoft.Json ).<br />
<br />
The following example uses Json.NET:<br />
<br />
<source lang="csharp"><br />
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://localhost.:8332");<br />
webRequest.Credentials = new NetworkCredential("user", "pwd");<br />
/// important, otherwise the service can't desirialse your request properly<br />
webRequest.ContentType = "application/json-rpc";<br />
webRequest.Method = "POST";<br />
<br />
JObject joe = new JObject();<br />
joe.Add(new JProperty("jsonrpc", "1.0"));<br />
joe.Add(new JProperty("id", "1"));<br />
joe.Add(new JProperty("method", Method));<br />
// params is a collection values which the method requires..<br />
if (Params.Keys.Count == 0)<br />
{<br />
joe.Add(new JProperty("params", new JArray()));<br />
}<br />
else<br />
{<br />
JArray props = new JArray();<br />
// add the props in the reverse order!<br />
for (int i = Params.Keys.Count - 1; i >= 0; i--)<br />
{<br />
.... // add the params<br />
}<br />
joe.Add(new JProperty("params", props));<br />
}<br />
<br />
// serialize json for the request<br />
string s = JsonConvert.SerializeObject(joe);<br />
byte[] byteArray = Encoding.UTF8.GetBytes(s);<br />
webRequest.ContentLength = byteArray.Length;<br />
Stream dataStream = webRequest.GetRequestStream();<br />
dataStream.Write(byteArray, 0, byteArray.Length);<br />
dataStream.Close();<br />
<br />
<br />
WebResponse webResponse = webRequest.GetResponse();<br />
<br />
... // deserialze the response<br />
</source><br />
<br />
There is also a wrapper for Json.NET called Bitnet (https://sourceforge.net/projects/bitnet)<br />
implementing Bitcoin API in more convenient way:<br />
<br />
<source lang="csharp"><br />
BitnetClient bc = new BitnetClient("http://127.0.0.1:8332");<br />
bc.Credentials = new NetworkCredential("user", "pass");<br />
<br />
var p = bc.GetDifficulty();<br />
Console.WriteLine("Difficulty:" + p.ToString());<br />
<br />
var inf = bc.GetInfo();<br />
Console.WriteLine("Balance:" + inf["balance"]);<br />
</source><br />
<br />
A more complete library and wrapper for Bitcoin (also for Litecoin and all Bitcoin clones) is [https://github.com/GeorgeKimionis/BitcoinLib BitcoinLib] (https://github.com/GeorgeKimionis/BitcoinLib) which is also available via [https://www.nuget.org/packages/BitcoinLib/ NuGet] from the package manager console (Install-Package BitcoinLib). <br />
<br />
Querying the daemon with [https://github.com/GeorgeKimionis/BitcoinLib BitcoinLib] is as simple as:<br />
<br />
<source lang="csharp"><br />
IBitcoinService bitcoinService = new BitcoinService();<br />
<br />
double networkDifficulty = bitcoinService.GetDifficulty();<br />
decimal myBalance = bitcoinService.GetBalance();<br />
</source><br />
<br />
== Node.js ==<br />
<br />
* [https://github.com/freewil/node-bitcoin node-bitcoin] (npm: bitcoin) <br />
<br />
Example using node-bitcoin:<br />
<br />
<source lang="javascript"><br />
var bitcoin = require('bitcoin');<br />
var client = new bitcoin.Client({<br />
host: 'localhost',<br />
port: 8332,<br />
user: 'user',<br />
pass: 'pass'<br />
});<br />
<br />
client.getDifficulty(function(err, difficulty) {<br />
if (err) {<br />
return console.error(err);<br />
}<br />
<br />
console.log('Difficulty: ' + difficulty);<br />
});<br />
</source><br />
<br />
Example using Kapitalize:<br />
<br />
<source lang='javascript'><br />
var client = require('kapitalize')()<br />
<br />
client.auth('user', 'password')<br />
<br />
client<br />
.getInfo()<br />
.getDifficulty(function(err, difficulty) {<br />
console.log('Dificulty: ', difficulty)<br />
})<br />
</source><br />
<br />
== Command line (cURL) ==<br />
<br />
You can also send commands and see results using [http://curl.haxx.se/ cURL] or some other command-line HTTP-fetching utility; for example:<br />
<br />
<source lang="bash"><br />
curl --user user --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' <br />
-H 'content-type: text/plain;' http://127.0.0.1:8332/<br />
</source><br />
<br />
You will be prompted for your rpcpassword, and then will see something like:<br />
<br />
<source lang="javascript"><br />
{"result":{"balance":0.000000000000000,"blocks":59952,"connections":48,"proxy":"","generate":false,<br />
"genproclimit":-1,"difficulty":16.61907875185736,"error":null,"id":"curltest"}<br />
</source><br />
<br />
== Clojure ==<br />
<br />
[https://github.com/aviad/clj-btc clj-btc] is a Clojure wrapper for the bitcoin API.<br />
<br />
<source lang="clojure"><br />
user=> (require '[clj-btc.core :as btc])<br />
nil<br />
user=> (btc/getinfo)<br />
{"timeoffset" 0, "protocolversion" 70001, "blocks" 111908, "errors" "",<br />
"testnet" true, "proxy" "", "connections" 4, "version" 80500,<br />
"keypoololdest" 1380388750, "paytxfee" 0E-8M,<br />
"difficulty" 4642.44443532M, "keypoolsize" 101, "balance" 0E-8M,<br />
"walletversion" 60000}<br />
</source><br />
<br />
== C ==<br />
The C API for processing JSON is [https://jansson.readthedocs.org/en/latest/ Jansson]. C applications like [https://github.com/bitcoin/libblkmaker libblkmaker] use [[API_reference_(JSON-RPC)#Command_line_.28cURL.29|cURL]] for making the calls and Jansson for interpreting the JSON that cURL fetches.<br />
<br />
For example basic usage (which can be easily modified for Bitcoin RPC), see the Jansson example [https://jansson.readthedocs.org/en/latest/_downloads/github_commits.c github_commits.c] and [https://jansson.readthedocs.org/en/latest/tutorial.html#the-github-repo-commits-api the associated tutorial].<br />
<br />
== Qt/C++ ==<br />
<br />
[https://bitbucket.org/devonit/qjsonrpc/overview QJsonRpc] is a Qt/C++ implementation of the JSON-RPC protocol. It integrates nicely with Qt, leveraging Qt's meta object system in order to provide services over the JSON-RPC protocol. QJsonRpc is licensed under the LGPLv2.1.<br />
<br />
<source lang="cpp"><br />
/*<br />
* Copyright (C) 2012-2013 Matt Broadstone<br />
* Contact: http://bitbucket.org/devonit/qjsonrpc<br />
*<br />
* This file is part of the QJsonRpc Library.<br />
*<br />
* This library is free software; you can redistribute it and/or<br />
* modify it under the terms of the GNU Lesser General Public<br />
* License as published by the Free Software Foundation; either<br />
* version 2.1 of the License, or (at your option) any later version.<br />
*<br />
* This library is distributed in the hope that it will be useful,<br />
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br />
* Lesser General Public License for more details.<br />
*/<br />
#include <QCoreApplication><br />
#include <QAuthenticator><br />
#include <QStringList><br />
#include <QDebug><br />
<br />
#include "qjsonrpchttpclient.h"<br />
<br />
class HttpClient : public QJsonRpcHttpClient<br />
{<br />
Q_OBJECT<br />
public:<br />
HttpClient(const QString &endpoint, QObject *parent = 0)<br />
: QJsonRpcHttpClient(endpoint, parent)<br />
{<br />
// defaults added for my local test server<br />
m_username = "bitcoinrpc";<br />
m_password = "232fb3276bbb7437d265298ea48bdc46";<br />
}<br />
<br />
void setUsername(const QString &username) {<br />
m_username = username;<br />
}<br />
<br />
void setPassword(const QString &password) {<br />
m_password = password;<br />
}<br />
<br />
private Q_SLOTS:<br />
virtual void handleAuthenticationRequired(QNetworkReply *reply, QAuthenticator * authenticator)<br />
{<br />
Q_UNUSED(reply)<br />
authenticator->setUser(m_username);<br />
authenticator->setPassword(m_password);<br />
}<br />
<br />
private:<br />
QString m_username;<br />
QString m_password;<br />
<br />
};<br />
<br />
int main(int argc, char **argv)<br />
{<br />
QCoreApplication app(argc, argv);<br />
if (app.arguments().size() < 2) {<br />
qDebug() << "usage: " << argv[0] << "[-u username] [-p password] <command> <arguments>";<br />
return -1;<br />
}<br />
<br />
HttpClient client("http://127.0.0.1:8332");<br />
if (app.arguments().contains("-u")) {<br />
int idx = app.arguments().indexOf("-u");<br />
app.arguments().removeAt(idx);<br />
client.setUsername(app.arguments().takeAt(idx));<br />
}<br />
<br />
if (app.arguments().contains("-p")) {<br />
int idx = app.arguments().indexOf("-p");<br />
app.arguments().removeAt(idx);<br />
client.setPassword(app.arguments().takeAt(idx));<br />
}<br />
<br />
QJsonRpcMessage message = QJsonRpcMessage::createRequest(app.arguments().at(1));<br />
QJsonRpcMessage response = client.sendMessageBlocking(message);<br />
if (response.type() == QJsonRpcMessage::Error) {<br />
qDebug() << response.errorData();<br />
return -1;<br />
}<br />
<br />
qDebug() << response.toJson();<br />
}<br />
</source><br />
<br />
== See Also==<br />
<br />
* [[Original_Bitcoin_client/API_Calls_list|API calls list]]<br />
* [[Running Bitcoin]]<br />
* [[Lazy API]]<br />
* [[PHP developer intro]]<br />
* [[Raw_Transactions|Raw Transactions API]]<br />
* [https://gourl.io/bitcoin-payment-gateway-api.html GoUrl Bitcoin PHP Payment API]<br />
* [http://blockchain.info/api/json_rpc_api Web Based JSON RPC interface.]<br />
<br />
[[Category:Technical]]<br />
[[Category:Developer]]<br />
[[zh-cn:API_reference_(JSON-RPC)]]<br />
<br />
{{Bitcoin Core documentation}}</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Protocol_documentation&diff=59200Protocol documentation2015-10-26T11:51:41Z<p>Geremia: /* Block Headers */ added "cf. Block hashing algorithm"</p>
<hr />
<div>This page ''describes'' the behavior of the [[Original Bitcoin client|reference client]]. The Bitcoin protocol is specified by the behavior of the reference client, not by this page. In particular, while this page is quite complete in describing the network protocol, it does not attempt to list all of the rules for block or transaction validity.<br />
<br />
Type names used in this documentation are from the C99 standard.<br />
<br />
For protocol used in mining, see [[getblocktemplate]].<br />
<br />
==Common standards==<br />
<br />
=== Hashes ===<br />
<br />
Usually, when a hash is computed within bitcoin, it is computed twice. Most of the time [http://en.wikipedia.org/wiki/SHA-2 SHA-256] hashes are used, however [http://en.wikipedia.org/wiki/RIPEMD RIPEMD-160] is also used when a shorter hash is desirable (for example when creating a bitcoin address).<br />
<br />
Example of double-SHA-256 encoding of string "hello":<br />
<br />
hello<br />
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 (first round of sha-256)<br />
9595c9df90075148eb06860365df33584b75bff782a510c6cd4883a419833d50 (second round of sha-256)<br />
<br />
For bitcoin addresses (RIPEMD-160) this would give:<br />
<br />
hello<br />
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 (first round is sha-256)<br />
b6a9c8c230722b7c748331a8b450f05566dc7d0f (with ripemd-160)<br />
<br />
=== Merkle Trees ===<br />
<br />
Merkle trees are binary trees of hashes. Merkle trees in bitcoin use a '''double''' SHA-256, the SHA-256 hash of the SHA-256 hash of something.<br />
<br />
If, when forming a row in the tree (other than the root of the tree), it would have an odd number of elements, the final double-hash is duplicated to ensure that the row has an even number of hashes.<br />
<br />
First form the bottom row of the tree with the ordered double-SHA-256 hashes of the byte streams of the transactions in the block.<br />
<br />
Then the row above it consists of half that number of hashes. Each entry is the double-SHA-256 of the 64-byte concatenation of the corresponding two hashes below it in the tree.<br />
<br />
This procedure repeats recursively until we reach a row consisting of just a single double-hash. This is the '''Merkle root''' of the tree.<br />
<br />
For example, imagine a block with three transactions ''a'', ''b'' and ''c''. The Merkle tree is: <br />
<br />
d1 = dhash(a)<br />
d2 = dhash(b)<br />
d3 = dhash(c)<br />
d4 = dhash(c) # a, b, c are 3. that's an odd number, so we take the c twice<br />
<br />
d5 = dhash(d1 concat d2)<br />
d6 = dhash(d3 concat d4)<br />
<br />
d7 = dhash(d5 concat d6)<br />
<br />
where<br />
<br />
dhash(a) = sha256(sha256(a))<br />
<br />
''d7'' is the Merkle root of the 3 transactions in this block.<br />
<br />
Note: Hashes in Merkle Tree displayed in the [[Block Explorer]] are of little-endian notation. For some implementations and [http://www.fileformat.info/tool/hash.htm calculations], the bits need to be reversed before they are hashed, and again after the hashing operation.<br />
<br />
=== Signatures ===<br />
<br />
Bitcoin uses [http://en.wikipedia.org/wiki/Elliptic_curve_cryptography Elliptic Curve] [http://en.wikipedia.org/wiki/Digital_Signature_Algorithm Digital Signature Algorithm] ([http://en.wikipedia.org/wiki/Elliptic_Curve_DSA ECDSA]) to sign transactions. <br />
<br />
For [[ECDSA]] the secp256k1 curve from http://www.secg.org/collateral/sec2_final.pdf is used.<br />
<br />
Public keys (in scripts) are given as 04 <x> <y> where ''x'' and ''y'' are 32 byte big-endian integers representing the coordinates of a point on the curve or in compressed form given as <sign> <x> where <sign> is 0x02 if ''y'' is even and 0x03 if ''y'' is odd.<br />
<br />
Signatures use [http://en.wikipedia.org/wiki/Distinguished_Encoding_Rules DER encoding] to pack the ''r'' and ''s'' components into a single byte stream (this is also what OpenSSL produces by default).<br />
<br />
=== Transaction Verification ===<br />
Transactions are cryptographically signed records that reassign ownership of Bitcoins to new addresses. Transactions have ''inputs'' - records which reference the funds from other previous transactions - and ''outputs'' - records which determine the new owner of the transferred Bitcoins, and which will be referenced as inputs in future transactions as those funds are respent.<br />
<br />
Each ''input'' must have a cryptographic digital signature that unlocks the funds from the prior transaction. Only the person possessing the appropriate [[private key]] is able to create a satisfactory signature; this in effect ensures that funds can only be spent by their owners.<br />
<br />
Each ''output'' determines which Bitcoin address (or other criteria, see [[Script]]) is the recipient of the funds.<br />
<br />
In a transaction, the sum of all inputs must be equal to or greater than the sum of all outputs. If the inputs exceed the outputs, the difference is considered a [[transaction fee]], and is redeemable by whoever first includes the transaction into the block chain.<br />
<br />
A special kind of transaction, called a [[coinbase transaction]], has no inputs. It is created by [[miners]], and there is one coinbase transaction per block. Because each block comes with a reward of newly created Bitcoins (e.g. 50 BTC for the first 210,000 blocks), the first transaction of a block is, with few exceptions, the transaction that grants those coins to their recipient (the miner). In addition to the newly created Bitcoins, the coinbase transaction is also used for assigning the recipient of any transaction fees that were paid within the other transactions being included in the same block. The coinbase transaction can assign the entire reward to a single Bitcoin address, or split it in portions among multiple addresses, just like any other transaction. Coinbase transactions always contain outputs totalling the sum of the block reward plus all transaction fees collected from the other transactions in the same block.<br />
<br />
The [[coinbase transaction]] in block zero cannot be spent. This is due to a quirk of the reference client implementation that would open the potential for a block chain fork if some nodes accepted the spend and others did not<ref>[http://bitcointalk.org/index.php?topic=119645.msg1288552#msg1288552 Block 0 Network Fork]</ref>.<br />
<br />
Most Bitcoin outputs encumber the newly transferred coins with a single ECDSA private key. The actual record saved with inputs and outputs isn't necessarily a key, but a ''script''. Bitcoin uses an interpreted scripting system to determine whether an output's criteria have been satisfied, with which more complex operations are possible, such as outputs that require two ECDSA signatures, or two-of-three-signature schemes. An output that references a single Bitcoin address is a ''typical'' output; an output actually contains this information in the form of a script that requires a single ECDSA signature (see [[OP_CHECKSIG]]). The output script specifies what must be provided to unlock the funds later, and when the time comes in the future to spend the transaction in another input, that input must provide all of the thing(s) that satisfy the requirements defined by the original output script.<br />
<br />
=== Addresses ===<br />
<br />
A bitcoin address is in fact the hash of a ECDSA public key, computed this way:<br />
<br />
Version = 1 byte of 0 (zero); on the test network, this is 1 byte of 111<br />
Key hash = Version concatenated with RIPEMD-160(SHA-256(public key))<br />
Checksum = 1st 4 bytes of SHA-256(SHA-256(Key hash))<br />
Bitcoin Address = Base58Encode(Key hash concatenated with Checksum)<br />
<br />
The Base58 encoding used is home made, and has some differences. Especially, leading zeroes are kept as single zeroes when conversion happens.<br />
<br />
== Common structures ==<br />
<br />
Almost all integers are encoded in little endian. Only IP or port number are encoded big endian.<br />
<br />
=== Message structure ===<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || magic || uint32_t || Magic value indicating message origin network, and used to seek to next message when stream state is unknown<br />
|-<br />
| 12 || command || char[12] || ASCII string identifying the packet content, NULL padded (non-NULL padding results in packet rejected)<br />
|-<br />
| 4 || length || uint32_t || Length of payload in number of bytes<br />
|-<br />
| 4 || checksum || uint32_t || First 4 bytes of sha256(sha256(payload))<br />
|-<br />
| ? || payload || uchar[] || The actual data<br />
|}<br />
<br />
<br />
Known magic values:<br />
<br />
{|class="wikitable"<br />
! Network !! Magic value !! Sent over wire as<br />
|-<br />
| main || 0xD9B4BEF9 || F9 BE B4 D9<br />
|-<br />
| testnet || 0xDAB5BFFA || FA BF B5 DA<br />
|-<br />
| testnet3 || 0x0709110B || 0B 11 09 07<br />
|-<br />
| namecoin || 0xFEB4BEF9 || F9 BE B4 FE<br />
|}<br />
<br />
=== Variable length integer ===<br />
<br />
Integer can be encoded depending on the represented value to save space.<br />
Variable length integers always precede an array/vector of a type of data that may vary in length.<br />
Longer numbers are encoded in little endian.<br />
<br />
{|class="wikitable"<br />
! Value !! Storage length !! Format<br />
|-<br />
| < 0xFD || 1 || uint8_t<br />
|-<br />
| <= 0xFFFF || 3 || 0xFD followed by the length as uint16_t<br />
|-<br />
| <= 0xFFFF FFFF || 5 || 0xFE followed by the length as uint32_t<br />
|-<br />
| - || 9 || 0xFF followed by the length as uint64_t<br />
|}<br />
<br />
If you're reading the Satoshi client code (BitcoinQT) it refers to this encoding as a "CompactSize". Modern BitcoinQT also has the CVarInt class which implements an even more compact integer for the purpose of local storage (which is incompatible with "CompactSize" described here). CVarInt is not a part of the protocol.<br />
<br />
=== Variable length string ===<br />
<br />
Variable length string can be stored using a variable length integer followed by the string itself.<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| ? || length || [[Protocol_documentation#Variable_length_integer|var_int]] || Length of the string<br />
|-<br />
| ? || string || char[] || The string itself (can be empty)<br />
|}<br />
<br />
=== Network address ===<br />
<br />
When a network address is needed somewhere, this structure is used. Network addresses are not prefixed with a timestamp in the version message.<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || time || uint32 || the Time (version >= 31402). '''Not present in version message.'''<br />
|-<br />
| 8 || services || uint64_t || same service(s) listed in [[#version|version]]<br />
|-<br />
| 16 || IPv6/4 || char[16] || IPv6 address. Network byte order. The original client only supported IPv4 and only read the last 4 bytes to get the IPv4 address. However, the IPv4 address is written into the message as a 16 byte [http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses IPv4-mapped IPv6 address]<br />
(12 bytes ''00 00 00 00 00 00 00 00 00 00 FF FF'', followed by the 4 bytes of the IPv4 address).<br />
|-<br />
| 2 || port || uint16_t || port number, network byte order<br />
|}<br />
<br />
Hexdump example of Network address structure<br />
<br />
<pre><br />
0000 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br />
0010 00 00 FF FF 0A 00 00 01 20 8D ........ .<br />
<br />
Network address:<br />
01 00 00 00 00 00 00 00 - 1 (NODE_NETWORK: see services listed under version command)<br />
00 00 00 00 00 00 00 00 00 00 FF FF 0A 00 00 01 - IPv6: ::ffff:a00:1 or IPv4: 10.0.0.1<br />
20 8D - Port 8333<br />
</pre><br />
<br />
=== Inventory Vectors ===<br />
<br />
Inventory vectors are used for notifying other nodes about objects they have or data which is being requested.<br />
<br />
Inventory vectors consist of the following data format:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || type || uint32_t || Identifies the object type linked to this inventory<br />
|-<br />
| 32 || hash || char[32] || Hash of the object<br />
|}<br />
<br />
<br />
The object type is currently defined as one of the following possibilities:<br />
<br />
{|class="wikitable"<br />
! Value !! Name !! Description<br />
|-<br />
| 0 || ERROR || Any data of with this number may be ignored<br />
|-<br />
| 1 || MSG_TX || Hash is related to a transaction<br />
|-<br />
| 2 || MSG_BLOCK || Hash is related to a data block<br />
|-<br />
| 3 || MSG_FILTERED_BLOCK || Hash of a block header; identical to MSG_BLOCK. When used in a getdata message, this indicates the reply should be a merkleblock message rather than a block message; this only works if a bloom filter has been set.<br />
|}<br />
<br />
Other Data Type values are considered reserved for future implementations.<br />
<br />
=== Block Headers ===<br />
<br />
Block headers are sent in a headers packet in response to a getheaders message.<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || version || int32_t || Block version information (note, this is signed)<br />
|-<br />
| 32 || prev_block || char[32] || The hash value of the previous block this particular block references<br />
|-<br />
| 32 || merkle_root || char[32] || The reference to a Merkle tree collection which is a hash of all transactions related to this block<br />
|-<br />
| 4 || timestamp || uint32_t || A timestamp recording when this block was created (Will overflow in 2106<ref>https://en.wikipedia.org/wiki/Unix_time#Notable_events_in_Unix_time</ref>)<br />
|-<br />
| 4 || bits || uint32_t || The calculated difficulty target being used for this block<br />
|-<br />
| 4 || nonce || uint32_t || The nonce used to generate this block… to allow variations of the header and compute different hashes<br />
|-<br />
| 1 || txn_count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of transaction entries, this value is always 0<br />
|}<br />
<br />
cf. [[Block hashing algorithm]]<br />
<br />
== Message types ==<br />
<br />
=== version ===<br />
<br />
When a node creates an outgoing connection, it will immediately [[Version Handshake|advertise]] its version. The remote node will respond with its version. No further communication is possible until both peers have exchanged their version.<br />
<br />
Payload:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || version || int32_t || Identifies protocol version being used by the node<br />
|-<br />
| 8 || services || uint64_t || bitfield of features to be enabled for this connection<br />
|-<br />
| 8 || timestamp || int64_t || standard UNIX timestamp in seconds<br />
|-<br />
| 26 || addr_recv || [[#Network address|net_addr]] || The network address of the node receiving this message<br />
|-<br />
|colspan="4"| Fields below require version ≥ 106<br />
|-<br />
| 26 || addr_from || [[#Network address|net_addr]] || The network address of the node emitting this message<br />
|-<br />
| 8 || nonce || uint64_t || Node random nonce, randomly generated every time a version packet is sent. This nonce is used to detect connections to self.<br />
|-<br />
| ? || user_agent || [[#Variable length string|var_str]] || [https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki User Agent] (0x00 if string is 0 bytes long)<br />
|-<br />
| 4 || start_height || int32_t || The last block received by the emitting node<br />
|-<br />
|colspan="4"| Fields below require version ≥ 70001<br />
|-<br />
| 1 || relay || bool || Whether the remote peer should announce relayed transactions or not, see [https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki BIP 0037]<br />
|}<br />
<br />
A "verack" packet shall be sent if the version packet was accepted.<br />
<br />
The following services are currently assigned:<br />
<br />
{|class="wikitable"<br />
! Value !! Name !! Description<br />
|-<br />
| 1 || NODE_NETWORK || This node can be asked for full blocks instead of just headers.<br />
|}<br />
<br />
Hexdump example of version message (OBSOLETE EXAMPLE: This example lacks a checksum and user-agent):<br />
<pre><br />
0000 F9 BE B4 D9 76 65 72 73 69 6F 6E 00 00 00 00 00 ....version.....<br />
0010 55 00 00 00 9C 7C 00 00 01 00 00 00 00 00 00 00 U....|..........<br />
0020 E6 15 10 4D 00 00 00 00 01 00 00 00 00 00 00 00 ...M............<br />
0030 00 00 00 00 00 00 00 00 00 00 FF FF 0A 00 00 01 ................<br />
0040 20 8D 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br />
0050 00 00 00 00 FF FF 0A 00 00 02 20 8D DD 9D 20 2C .......... ... ,<br />
0060 3A B4 57 13 00 55 81 01 00 :.W..U...<br />
<br />
Message header:<br />
F9 BE B4 D9 - Main network magic bytes<br />
76 65 72 73 69 6F 6E 00 00 00 00 00 - "version" command<br />
55 00 00 00 - Payload is 85 bytes long<br />
- No checksum in version message until 20 February 2012. See https://bitcointalk.org/index.php?topic=55852.0<br />
Version message:<br />
9C 7C 00 00 - 31900 (version 0.3.19)<br />
01 00 00 00 00 00 00 00 - 1 (NODE_NETWORK services)<br />
E6 15 10 4D 00 00 00 00 - Mon Dec 20 21:50:14 EST 2010<br />
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 0A 00 00 01 20 8D - Recipient address info - see Network Address<br />
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 0A 00 00 02 20 8D - Sender address info - see Network Address<br />
DD 9D 20 2C 3A B4 57 13 - Node random unique ID<br />
00 - "" sub-version string (string is 0 bytes long)<br />
55 81 01 00 - Last block sending node has is block #98645<br />
</pre><br />
<br />
And here's a modern (60002) protocol version client advertising itself to a local peer...<br />
<br />
Newer protocol includes the checksum now, this is from a mainline (satoshi) client during <br />
an outgoing connection to another local client, notice that it does not fill out the <br />
address information at all when the source or destination is "unroutable".<br />
<br />
<pre><br />
<br />
0000 f9 be b4 d9 76 65 72 73 69 6f 6e 00 00 00 00 00 ....version.....<br />
0010 64 00 00 00 35 8d 49 32 62 ea 00 00 01 00 00 00 d...5.I2b.......<br />
0020 00 00 00 00 11 b2 d0 50 00 00 00 00 01 00 00 00 .......P........<br />
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ................<br />
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br />
0050 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 ................<br />
0060 3b 2e b3 5d 8c e6 17 65 0f 2f 53 61 74 6f 73 68 ;..]...e./Satosh<br />
0070 69 3a 30 2e 37 2e 32 2f c0 3e 03 00 i:0.7.2/.>..<br />
<br />
Message Header:<br />
F9 BE B4 D9 - Main network magic bytes<br />
76 65 72 73 69 6F 6E 00 00 00 00 00 - "version" command<br />
64 00 00 00 - Payload is 100 bytes long<br />
3B 64 8D 5A - payload checksum<br />
<br />
Version message:<br />
62 EA 00 00 - 60002 (protocol version 60002)<br />
01 00 00 00 00 00 00 00 - 1 (NODE_NETWORK services)<br />
11 B2 D0 50 00 00 00 00 - Tue Dec 18 10:12:33 PST 2012<br />
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 - Recipient address info - see Network Address<br />
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 - Sender address info - see Network Address<br />
3B 2E B3 5D 8C E6 17 65 - Node ID<br />
0F 2F 53 61 74 6F 73 68 69 3A 30 2E 37 2E 32 2F - "/Satoshi:0.7.2/" sub-version string (string is 15 bytes long)<br />
C0 3E 03 00 - Last block sending node has is block #212672<br />
</pre><br />
<br />
=== verack ===<br />
<br />
The ''verack'' message is sent in reply to ''[[#version|version]]''. This message consists of only a [[#Message structure|message header]] with the command string "verack".<br />
<br />
Hexdump of the verack message:<br />
<br />
<pre><br />
0000 F9 BE B4 D9 76 65 72 61 63 6B 00 00 00 00 00 00 ....verack......<br />
0010 00 00 00 00 5D F6 E0 E2 ........<br />
<br />
Message header:<br />
F9 BE B4 D9 - Main network magic bytes<br />
76 65 72 61 63 6B 00 00 00 00 00 00 - "verack" command<br />
00 00 00 00 - Payload is 0 bytes long<br />
5D F6 E0 E2 - Checksum<br />
</pre><br />
<br />
=== addr ===<br />
<br />
Provide information on known nodes of the network. Non-advertised nodes should be forgotten after typically 3 hours<br />
<br />
Payload:<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 1+ || count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of address entries (max: 1000)<br />
|-<br />
| 30x? || addr_list || (uint32_t + [[#Network address|net_addr]])[] || Address of other nodes on the network. version < 209 will only read the first one. The uint32_t is a timestamp (see note below).<br />
|}<br />
<br />
'''Note''': Starting version 31402, addresses are prefixed with a timestamp. If no timestamp is present, the addresses should not be relayed to other peers, unless it is indeed confirmed they are up.<br />
<br />
Hexdump example of ''addr'' message:<br />
<pre><br />
0000 F9 BE B4 D9 61 64 64 72 00 00 00 00 00 00 00 00 ....addr........<br />
0010 1F 00 00 00 ED 52 39 9B 01 E2 15 10 4D 01 00 00 .....R9.....M...<br />
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ................<br />
0030 FF 0A 00 00 01 20 8D ..... .<br />
<br />
Message Header:<br />
F9 BE B4 D9 - Main network magic bytes<br />
61 64 64 72 00 00 00 00 00 00 00 00 - "addr"<br />
1F 00 00 00 - payload is 31 bytes long<br />
ED 52 39 9B - checksum of payload<br />
<br />
Payload:<br />
01 - 1 address in this message<br />
<br />
Address:<br />
E2 15 10 4D - Mon Dec 20 21:50:10 EST 2010 (only when version is >= 31402)<br />
01 00 00 00 00 00 00 00 - 1 (NODE_NETWORK service - see version message)<br />
00 00 00 00 00 00 00 00 00 00 FF FF 0A 00 00 01 - IPv4: 10.0.0.1, IPv6: ::ffff:10.0.0.1 (IPv4-mapped IPv6 address)<br />
20 8D - port 8333<br />
</pre><br />
<br />
=== inv ===<br />
<br />
Allows a node to advertise its knowledge of one or more objects. It can be received unsolicited, or in reply to ''getblocks''.<br />
<br />
Payload (maximum 50,000 entries, which is just over 1.8 megabytes):<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| ? || count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of inventory entries<br />
|-<br />
| 36x? || inventory || [[Protocol specification#Inventory Vectors|inv_vect]][] || Inventory vectors<br />
|}<br />
<br />
=== getdata ===<br />
<br />
getdata is used in response to inv, to retrieve the content of a specific object, and is usually sent after receiving an ''inv'' packet, after filtering known elements. It can be used to retrieve transactions, but only if they are in the memory pool or relay set - arbitrary access to transactions in the chain is not allowed to avoid having clients start to depend on nodes having full transaction indexes (which modern nodes do not).<br />
<br />
Payload (maximum 50,000 entries, which is just over 1.8 megabytes):<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| ? || count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of inventory entries<br />
|-<br />
| 36x? || inventory || [[Protocol specification#Inventory Vectors|inv_vect]][] || Inventory vectors<br />
|}<br />
<br />
=== notfound ===<br />
<br />
notfound is a response to a getdata, sent if any requested data items could not be relayed, for example, because the requested transaction was not in the memory pool or relay set.<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| ? || count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of inventory entries<br />
|-<br />
| 36x? || inventory || [[Protocol specification#Inventory Vectors|inv_vect]][] || Inventory vectors<br />
|}<br />
<br />
=== getblocks ===<br />
<br />
Return an ''inv'' packet containing the list of blocks starting right after the last known hash in the block locator object, up to hash_stop or 500 blocks, whichever comes first. <br />
<br />
The locator hashes are processed by a node in the order as they appear in the message. If a block hash is found in the node's main chain, the list of its children is returned back via the ''inv'' message and the remaining locators are ignored, no matter if the requested limit was reached, or not.<br />
<br />
To receive the next blocks hashes, one needs to issue getblocks again with a new block locator object. Keep in mind that some clients may provide blocks which are invalid if the block locator object contains a hash on the invalid branch.<br />
<br />
Payload:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || version || uint32_t || the protocol version<br />
|-<br />
| 1+ || hash count || [[Protocol_documentation#Variable_length_integer|var_int]] || number of block locator hash entries<br />
|-<br />
| 32+ || block locator hashes || char[32] || block locator object; newest back to genesis block (dense to start, but then sparse)<br />
|-<br />
| 32 || hash_stop || char[32] || hash of the last desired block; set to zero to get as many blocks as possible (500)<br />
|}<br />
<br />
To create the block locator hashes, keep pushing hashes until you go back to the genesis block. After pushing 10 hashes back, the step backwards doubles every loop:<br />
<br />
<pre><br />
// From libbitcoin which is under AGPL<br />
std::vector<size_t> block_locator_indices(int top_depth)<br />
{<br />
// Start at max_depth<br />
std::vector<size_t> indices;<br />
// Push last 10 indices first<br />
size_t step = 1, start = 0;<br />
for (int i = top_depth; i > 0; i -= step, ++start)<br />
{<br />
if (start >= 10)<br />
step *= 2;<br />
indices.push_back(i);<br />
}<br />
indices.push_back(0);<br />
return indices;<br />
}<br />
</pre><br />
<br />
Note that it is allowed to send in fewer known hashes down to a minimum of just one hash. However, the purpose of the block locator object is to detect a wrong branch in the caller's main chain. If the peer detects that you are off the main chain, it will send in block hashes which are earlier than your last known block. So if you just send in your last known hash and it is off the main chain, the peer starts over at block #1.<br />
<br />
=== getheaders ===<br />
<br />
Return a ''headers'' packet containing the headers of blocks starting right after the last known hash in the block locator object, up to hash_stop or 2000 blocks, whichever comes first. To receive the next block headers, one needs to issue getheaders again with a new block locator object. The ''getheaders'' command is used by thin clients to quickly download the block chain where the contents of the transactions would be irrelevant (because they are not ours). Keep in mind that some clients may provide headers of blocks which are invalid if the block locator object contains a hash on the invalid branch.<br />
<br />
Payload:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || version || uint32_t || the protocol version<br />
|-<br />
| 1+ || hash count || [[Protocol_documentation#Variable_length_integer|var_int]] || number of block locator hash entries<br />
|-<br />
| 32+ || block locator hashes || char[32] || block locator object; newest back to genesis block (dense to start, but then sparse)<br />
|-<br />
| 32 || hash_stop || char[32] || hash of the last desired block header; set to zero to get as many blocks as possible (2000)<br />
|}<br />
<br />
For the block locator object in this packet, the same rules apply as for the [[Protocol_documentation#getblocks|getblocks]] packet.<br />
<br />
=== tx ===<br />
<br />
''tx'' describes a bitcoin transaction, in reply to ''[[#getdata|getdata]]''<br />
<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || version || uint32_t || Transaction data format version<br />
|-<br />
| 1+ || tx_in count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of Transaction inputs<br />
|-<br />
| 41+ || tx_in || tx_in[] || A list of 1 or more transaction inputs or sources for coins<br />
|-<br />
| 1+ || tx_out count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of Transaction outputs<br />
|-<br />
| 9+ || tx_out || tx_out[] || A list of 1 or more transaction outputs or destinations for coins<br />
|-<br />
| 4 || lock_time || uint32_t || The block number or timestamp at which this transaction is locked:<br />
{|class="wikitable"<br />
! Value !! Description<br />
|-<br />
| 0 || Not locked<br />
|-<br />
| < 500000000 || Block number at which this transaction is locked<br />
|-<br />
| >= 500000000 || UNIX timestamp at which this transaction is locked<br />
|}<br />
If all TxIn inputs have final (0xffffffff) sequence numbers then lock_time is irrelevant. Otherwise, the transaction may not be added to a block until after lock_time (see [[NLockTime]]).<br />
<br />
|}<br />
<br />
TxIn consists of the following fields:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 36 || previous_output || outpoint || The previous output transaction reference, as an OutPoint structure<br />
|-<br />
| 1+ || script length || [[Protocol_documentation#Variable_length_integer|var_int]] || The length of the signature script<br />
|-<br />
| ? || signature script || uchar[] || Computational Script for confirming transaction authorization<br />
|-<br />
| 4 || [http://bitcoin.stackexchange.com/q/2025/323 sequence] || uint32_t || Transaction version as defined by the sender. Intended for "replacement" of transactions when information is updated before inclusion into a block.<br />
|}<br />
<br />
The OutPoint structure consists of the following fields:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 32 || hash || char[32] || The hash of the referenced transaction.<br />
|-<br />
| 4 || index || uint32_t || The index of the specific output in the transaction. The first output is 0, etc.<br />
|}<br />
<br />
The Script structure consists of a series of pieces of information and operations related to the value of the transaction.<br />
<br />
(Structure to be expanded in the future… see script.h and script.cpp and [[Script]] for more information)<br />
<br />
The TxOut structure consists of the following fields:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 8 || value || int64_t || Transaction Value<br />
|-<br />
| 1+ || pk_script length || [[Protocol_documentation#Variable_length_integer|var_int]] || Length of the pk_script<br />
|-<br />
| ? || pk_script || uchar[] || Usually contains the public key as a Bitcoin script setting up conditions to claim this output.<br />
|}<br />
<br />
Example ''tx'' message:<br />
<pre><br />
000000 F9 BE B4 D9 74 78 00 00 00 00 00 00 00 00 00 00 ....tx..........<br />
000010 02 01 00 00 E2 93 CD BE 01 00 00 00 01 6D BD DB .............m..<br />
000020 08 5B 1D 8A F7 51 84 F0 BC 01 FA D5 8D 12 66 E9 .[...Q........f.<br />
000030 B6 3B 50 88 19 90 E4 B4 0D 6A EE 36 29 00 00 00 .;P......j.6)...<br />
000040 00 8B 48 30 45 02 21 00 F3 58 1E 19 72 AE 8A C7 ..H0E.!..X..r...<br />
000050 C7 36 7A 7A 25 3B C1 13 52 23 AD B9 A4 68 BB 3A .6zz%;..R#...h.:<br />
000060 59 23 3F 45 BC 57 83 80 02 20 59 AF 01 CA 17 D0 Y#?E.W... Y.....<br />
000070 0E 41 83 7A 1D 58 E9 7A A3 1B AE 58 4E DE C2 8D .A.z.X.z...XN...<br />
000080 35 BD 96 92 36 90 91 3B AE 9A 01 41 04 9C 02 BF 5...6..;...A....<br />
000090 C9 7E F2 36 CE 6D 8F E5 D9 40 13 C7 21 E9 15 98 .~.6.m...@..!...<br />
0000A0 2A CD 2B 12 B6 5D 9B 7D 59 E2 0A 84 20 05 F8 FC *.+..].}Y... ...<br />
0000B0 4E 02 53 2E 87 3D 37 B9 6F 09 D6 D4 51 1A DA 8F N.S..=7.o...Q...<br />
0000C0 14 04 2F 46 61 4A 4C 70 C0 F1 4B EF F5 FF FF FF ../FaJLp..K.....<br />
0000D0 FF 02 40 4B 4C 00 00 00 00 00 19 76 A9 14 1A A0 ..@KL......v....<br />
0000E0 CD 1C BE A6 E7 45 8A 7A BA D5 12 A9 D9 EA 1A FB .....E.z........<br />
0000F0 22 5E 88 AC 80 FA E9 C7 00 00 00 00 19 76 A9 14 "^...........v..<br />
000100 0E AB 5B EA 43 6A 04 84 CF AB 12 48 5E FD A0 B7 ..[.Cj.....H^...<br />
000110 8B 4E CC 52 88 AC 00 00 00 00 .N.R......<br />
<br />
<br />
Message header:<br />
F9 BE B4 D9 - main network magic bytes<br />
74 78 00 00 00 00 00 00 00 00 00 00 - "tx" command<br />
02 01 00 00 - payload is 258 bytes long<br />
E2 93 CD BE - checksum of payload<br />
<br />
Transaction:<br />
01 00 00 00 - version<br />
<br />
Inputs:<br />
01 - number of transaction inputs<br />
<br />
Input 1:<br />
6D BD DB 08 5B 1D 8A F7 51 84 F0 BC 01 FA D5 8D - previous output (outpoint)<br />
12 66 E9 B6 3B 50 88 19 90 E4 B4 0D 6A EE 36 29<br />
00 00 00 00<br />
<br />
8B - script is 139 bytes long<br />
<br />
48 30 45 02 21 00 F3 58 1E 19 72 AE 8A C7 C7 36 - signature script (scriptSig)<br />
7A 7A 25 3B C1 13 52 23 AD B9 A4 68 BB 3A 59 23<br />
3F 45 BC 57 83 80 02 20 59 AF 01 CA 17 D0 0E 41<br />
83 7A 1D 58 E9 7A A3 1B AE 58 4E DE C2 8D 35 BD<br />
96 92 36 90 91 3B AE 9A 01 41 04 9C 02 BF C9 7E<br />
F2 36 CE 6D 8F E5 D9 40 13 C7 21 E9 15 98 2A CD<br />
2B 12 B6 5D 9B 7D 59 E2 0A 84 20 05 F8 FC 4E 02<br />
53 2E 87 3D 37 B9 6F 09 D6 D4 51 1A DA 8F 14 04<br />
2F 46 61 4A 4C 70 C0 F1 4B EF F5<br />
<br />
FF FF FF FF - sequence<br />
<br />
Outputs:<br />
02 - 2 Output Transactions<br />
<br />
Output 1:<br />
40 4B 4C 00 00 00 00 00 - 0.05 BTC (5000000)<br />
19 - pk_script is 25 bytes long<br />
<br />
76 A9 14 1A A0 CD 1C BE A6 E7 45 8A 7A BA D5 12 - pk_script<br />
A9 D9 EA 1A FB 22 5E 88 AC<br />
<br />
Output 2:<br />
80 FA E9 C7 00 00 00 00 - 33.54 BTC (3354000000)<br />
19 - pk_script is 25 bytes long<br />
<br />
76 A9 14 0E AB 5B EA 43 6A 04 84 CF AB 12 48 5E - pk_script<br />
FD A0 B7 8B 4E CC 52 88 AC<br />
<br />
Locktime:<br />
00 00 00 00 - lock time<br />
</pre><br />
<br />
=== block ===<br />
<br />
The '''block''' message is sent in response to a getdata message which requests transaction information from a block hash.<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || version || int32_t || Block version information (note, this is signed)<br />
|-<br />
| 32 || prev_block || char[32] || The hash value of the previous block this particular block references<br />
|-<br />
| 32 || merkle_root || char[32] || The reference to a Merkle tree collection which is a hash of all transactions related to this block<br />
|-<br />
| 4 || timestamp || uint32_t || A Unix timestamp recording when this block was created (Currently limited to dates before the year 2106!)<br />
|-<br />
| 4 || bits || uint32_t || The calculated [[Difficulty|difficulty target]] being used for this block<br />
|-<br />
| 4 || nonce || uint32_t || The nonce used to generate this block… to allow variations of the header and compute different hashes<br />
|-<br />
| ? || txn_count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of transaction entries<br />
|-<br />
| ? || txns || tx[] || Block transactions, in format of "tx" command<br />
|}<br />
<br />
The SHA256 hash that identifies each block (and which must have a run of 0 bits) is calculated from the first 6 fields of this structure (version, prev_block, merkle_root, timestamp, bits, nonce, and standard SHA256 padding, making two 64-byte chunks in all) and ''not'' from the complete block. To calculate the hash, only two chunks need to be processed by the SHA256 algorithm. Since the ''nonce'' field is in the second chunk, the first chunk stays constant during mining and therefore only the second chunk needs to be processed. However, a Bitcoin hash is the hash of the hash, so two SHA256 rounds are needed for each mining iteration.<br />
See [[Block hashing algorithm]] for details and an example.<br />
<br />
=== headers ===<br />
<br />
The ''headers'' packet returns block headers in response to a ''getheaders'' packet. <br />
<br />
Payload:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| ? || count || [[Protocol_documentation#Variable_length_integer|var_int]] || Number of block headers<br />
|-<br />
| 81x? || headers || [[Protocol_documentation#Block_Headers|block_header]][] || [[Protocol_documentation#Block_Headers|Block headers]]<br />
|}<br />
<br />
Note that the block headers in this packet include a transaction count (a var_int, so there can be more than 81 bytes per header) as opposed to the block headers which are sent to miners.<br />
<br />
=== getaddr ===<br />
<br />
The getaddr message sends a request to a node asking for information about known active peers to help with finding potential nodes in the network. The response to receiving this message is to transmit one or more addr messages with one or more peers from a database of known active peers. The typical presumption is that a node is likely to be active if it has been sending a message within the last three hours.<br />
<br />
No additional data is transmitted with this message.<br />
<br />
=== mempool ===<br />
<br />
The mempool message sends a request to a node asking for information about transactions it has verified but which have not yet confirmed. The response to receiving this message is an inv message containing the transaction hashes for all the transactions in the node's mempool.<br />
<br />
No additional data is transmitted with this message.<br />
<br />
It is specified in [https://github.com/bitcoin/bips/blob/master/bip-0035.mediawiki BIP 35]. Since [https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki BIP 37], if a [[Protocol_documentation#filterload.2C_filteradd.2C_filterclear.2C_merkleblock|bloom filter]] is loaded, only transactions matching the filter are replied.<br />
<br />
=== checkorder ===<br />
<br />
This message was used for [[IP Transactions]]. As IP transactions have been deprecated, it is no longer used.<br />
<br />
=== submitorder ===<br />
<br />
This message was used for [[IP Transactions]]. As IP transactions have been deprecated, it is no longer used.<br />
<br />
=== reply ===<br />
<br />
This message was used for [[IP Transactions]]. As IP transactions have been deprecated, it is no longer used.<br />
<br />
=== ping ===<br />
<br />
The ''ping'' message is sent primarily to confirm that the TCP/IP connection is still valid. An error in transmission is presumed to be a closed connection and the address is removed as a current peer.<br />
<br />
Payload:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 8 || nonce || uint64_t || random nonce<br />
|}<br />
<br />
=== pong ===<br />
<br />
The ''pong'' message is sent in response to a ''ping'' message. In modern protocol versions, a ''pong'' response is generated using a nonce included in the ping.<br />
<br />
Payload:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 8 || nonce || uint64_t || nonce from ping<br />
|}<br />
<br />
<br />
=== reject===<br />
<br />
The ''reject'' message is sent when messages are rejected.<br />
<br />
Payload:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 1+ || message || var_str || type of message rejected<br />
|-<br />
| 1 || ccode || char || code relating to rejected message<br />
|-<br />
| 1+ || reason || var_str || text version of reason for rejection<br />
|-<br />
| 0+ || data || char || Optional extra data provided by some errors. Currently, all errors which provide this field fill it with the TXID or block header hash of the object being rejected, so the field is 32 bytes.<br />
|}<br />
<br />
CCodes<br />
<br />
{|class="wikitable"<br />
! Value !! Name !! Description<br />
|-<br />
| 0x01 || REJECT_MALFORMED|| <br />
|-<br />
| 0x10 || REJECT_INVALID ||<br />
|-<br />
| 0x11 || REJECT_OBSOLETE ||<br />
|-<br />
| 0x12 || REJECT_DUPLICATE ||<br />
|-<br />
| 0x40 || REJECT_NONSTANDARD ||<br />
|-<br />
| 0x41 || REJECT_DUST ||<br />
|-<br />
| 0x42 || REJECT_INSUFFICIENTFEE ||<br />
|-<br />
| 0x43 || REJECT_CHECKPOINT ||<br />
|}<br />
<br />
=== filterload, filteradd, filterclear, merkleblock ===<br />
<br />
These messages are related to Bloom filtering of connections and are defined in [https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki BIP 0037].<br />
<br />
<br />
The <code>filterload</code> command is defined as follows:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| ? || filter || uint8_t[] || The filter itself is simply a bit field of arbitrary byte-aligned size. The maximum size is 36,000 bytes.<br />
|-<br />
| 4 || nHashFuncs || uint32_t || The number of hash functions to use in this filter. The maximum value allowed in this field is 50.<br />
|-<br />
| 4 || nTweak || uint32_t || A random value to add to the seed value in the hash function used by the bloom filter.<br />
|-<br />
| 1 || nFlags || uint8_t || A set of flags that control how matched items are added to the filter.<br />
|}<br />
<br />
See below for a description of the Bloom filter algorithm and how to select nHashFuncs and filter size for a desired false positive rate.<br />
<br />
Upon receiving a <code>filterload</code> command, the remote peer will immediately restrict the broadcast transactions it announces (in inv packets) to transactions matching the filter, where the matching algorithm is specified below. The flags control the update behaviour of the matching algorithm.<br />
<br />
The <code>filteradd</code> command is defined as follows:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| ? || data || uint8_t[] || The data element to add to the current filter.<br />
|}<br />
<br />
The data field must be smaller than or equal to 520 bytes in size (the maximum size of any potentially matched object).<br />
<br />
The given data element will be added to the Bloom filter. A filter must have been previously provided using <code>filterload</code>. This command is useful if a new key or script is added to a clients wallet whilst it has connections to the network open, it avoids the need to re-calculate and send an entirely new filter to every peer (though doing so is usually advisable to maintain anonymity).<br />
<br />
The <code>filterclear</code> command has no arguments at all.<br />
<br />
After a filter has been set, nodes don't merely stop announcing non-matching transactions, they can also serve filtered blocks. A filtered block is defined by the <code>merkleblock</code> message and is defined like this:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || version || uint32_t || Block version information, based upon the software version creating this block<br />
|-<br />
| 32 || prev_block || char[32] || The hash value of the previous block this particular block references<br />
|-<br />
| 32 || merkle_root || char[32] || The reference to a Merkle tree collection which is a hash of all transactions related to this block<br />
|-<br />
| 4 || timestamp || uint32_t || A timestamp recording when this block was created (Limited to 2106!)<br />
|-<br />
| 4 || bits || uint32_t || The calculated difficulty target being used for this block<br />
|-<br />
| 4 || nonce || uint32_t || The nonce used to generate this block… to allow variations of the header and compute different hashes<br />
|-<br />
| 4 || total_transactions || uint32_t || Number of transactions in the block (including unmatched ones)<br />
|-<br />
| ? || hashes || uint256[] || hashes in depth-first order (including standard varint size prefix)<br />
|-<br />
| ? || flags || byte[] || flag bits, packed per 8 in a byte, least significant bit first (including standard varint size prefix)<br />
|}<br />
<br />
=== alert ===<br />
<br />
An '''alert''' is sent between nodes to send a general notification message throughout the network. If the alert can be confirmed with the signature as having come from the core development group of the Bitcoin software, the message is suggested to be displayed for end-users. Attempts to perform transactions, particularly automated transactions through the client, are suggested to be halted. The text in the Message string should be relayed to log files and any user interfaces.<br />
<br />
Alert format:<br />
<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| ? || payload || uchar[] || Serialized alert payload<br />
|-<br />
| ? || signature || uchar[] || An ECDSA signature of the message<br />
|}<br />
<br />
The developers of Satoshi's client use this public key for signing alerts:<br />
04fc9702847840aaf195de8442ebecedf5b095cdbb9bc716bda9110971b28a49e0ead8564ff0db22209e0374782c093bb899692d524e9d6a6956e7c5ecbcd68284<br />
(hash) 1AGRxqDa5WjUKBwHB9XYEjmkv1ucoUUy1s<br />
<br />
The payload is serialized into a uchar[] to ensure that versions using incompatible alert formats can still relay alerts among one another. The current alert payload format is:<br />
{|class="wikitable"<br />
! Field Size !! Description !! Data type !! Comments<br />
|-<br />
| 4 || Version || int32_t || Alert format version<br />
|-<br />
| 8 || RelayUntil || int64_t || The timestamp beyond which nodes should stop relaying this alert<br />
|-<br />
| 8 || Expiration || int64_t || The timestamp beyond which this alert is no longer in effect and should be ignored<br />
|-<br />
| 4 || ID || int32_t || A unique ID number for this alert<br />
|-<br />
| 4 || Cancel || int32_t || All alerts with an ID number less than or equal to this number should be cancelled: deleted and not accepted in the future<br />
|-<br />
| ? || setCancel || set<int32_t> || All alert IDs contained in this set should be cancelled as above<br />
|-<br />
| 4 || MinVer || int32_t || This alert only applies to versions greater than or equal to this version. Other versions should still relay it.<br />
|-<br />
| 4 || MaxVer || int32_t || This alert only applies to versions less than or equal to this version. Other versions should still relay it.<br />
|-<br />
| ? || setSubVer || set<string> || If this set contains any elements, then only nodes that have their subVer contained in this set are affected by the alert. Other versions should still relay it.<br />
|-<br />
| 4 || Priority || int32_t || Relative priority compared to other alerts<br />
|-<br />
| ? || Comment || string || A comment on the alert that is not displayed<br />
|-<br />
| ? || StatusBar || string || The alert message that is displayed to the user<br />
|-<br />
| ? || Reserved || string || Reserved<br />
|}<br />
<br />
Note: '''set<''type''>''' in the table above is a [[#Variable length integer | variable length integer]] followed by the number of fields of the given ''type'' (either int32_t or [[#Variable length string | variable length string]])<br />
<br />
Sample alert (no message header):<br />
73010000003766404f00000000b305434f00000000f2030000f1030000001027000048ee0000<br />
0064000000004653656520626974636f696e2e6f72672f666562323020696620796f75206861<br />
76652074726f75626c6520636f6e6e656374696e672061667465722032302046656272756172<br />
79004730450221008389df45f0703f39ec8c1cc42c13810ffcae14995bb648340219e353b63b<br />
53eb022009ec65e1c1aaeec1fd334c6b684bde2b3f573060d5b70c3a46723326e4e8a4f1<br />
<br />
Version: 1<br />
RelayUntil: 1329620535<br />
Expiration: 1329792435<br />
ID: 1010<br />
Cancel: 1009<br />
setCancel: <empty><br />
MinVer: 10000<br />
MaxVer: 61000<br />
setSubVer: <empty><br />
Priority: 100<br />
Comment: <empty><br />
StatusBar: "See bitcoin.org/feb20 if you have trouble connecting after 20 February"<br />
Reserved: <empty><br />
<br />
== Scripting ==<br />
<br />
See [[script]].<br />
<br />
==See Also==<br />
<br />
* [[Network]]<br />
* [[Protocol rules]]<br />
* [[Hardfork Wishlist]]<br />
* [https://bitcoin.org/en/developer-documentation Developer Documentation on bitcoin.org]<br />
* Bitcoin dissectors for Wireshark: https://github.com/lbotsch/wireshark-bitcoin https://github.com/op-sig/bitcoin-wireshark-dissector<br />
<br />
==References==<br />
<references /><br />
<br />
[[zh-cn:协议说明]]<br />
[[Category:Technical]]<br />
[[Category:Developer]]<br />
<br />
{{Bitcoin Core documentation}}</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=Block_chain&diff=59166Block chain2015-10-21T23:33:34Z<p>Geremia: /* See Also */ added [http://bitcoinproperly.org/ The real value of bitcoin and crypto currency technology - The Blockchain explained]</p>
<hr />
<div>[[File:blockchain.png|thumb|Blocks in the main chain (black) are the longest series of blocks that go from the genesis block (green) to the current block. Purple blocks are blocks that are not in the longest chain and therefore not used.]]<br />
<br />
A '''block chain''' is a transaction database shared by all [[Node|nodes]] participating in a system based on the Bitcoin protocol. A full copy of a currency's block chain contains every [[transaction]] ever executed in the currency. With this information, one can find out how much value belonged to each [[address]] at any point in history.<br />
<br />
Every [[Blocks|block]] contains a [[hash]] of the previous block. This has the effect of creating a chain of blocks from the [[genesis block]] to the current block. Each block is guaranteed to come after the previous block chronologically because the previous block's hash would otherwise not be known. Each block is also computationally impractical to modify once it has been in the chain for a while because every block after it would also have to be regenerated. These properties are what make [[double-spending]] of bitcoins very difficult. The block chain is the main innovation of Bitcoin.<br />
<br />
Honest generators only build onto a block (by referencing it in blocks they create) if it is the latest block in the longest valid chain. "Length" is calculated as total combined difficulty of that chain, not number of blocks, though this distinction is only important in the context of a few potential attacks. A chain is valid if all of the blocks and transactions within it are valid, and only if it starts with the genesis block.<br />
<br />
For any block on the chain, there is only one path to the genesis block. Coming from the genesis block, however, there can be forks. One-block forks are created from time to time when two blocks are created just a few seconds apart. When that happens, generating nodes build onto whichever one of the blocks they received first. Whichever block ends up being included in the next block becomes part of the main chain because that chain is longer. More serious forks have occurred after fixing bugs that required backward-incompatible changes.<br />
<br />
Blocks in shorter chains (or invalid chains) are not used for anything. When the bitcoin client switches to another, longer chain, all valid transactions of the blocks inside the shorter chain are re-added to the pool of queued transactions and will be included in another block. The reward for the blocks on the shorter chain will not be present in the longest chain, so they will be practically lost, which is why a network-enforced 100-block maturation time for generations exists.<br />
<br />
These blocks on the shorter chains are often called "orphan" blocks. This is because the generation transactions do not have a parent block in the longest chain, so these generation transactions show up as orphan in the listtransactions RPC call. Several pools have misinterpreted these messages and started calling their blocks "orphans". In reality, these blocks have a parent block, and might even have children.<br />
<br />
Because a block can only reference one previous block, it is impossible for two forked chains to merge.<br />
<br />
It's possible to use the block chain algorithm for non-financial purposes: see [[Alternative chain]].<br />
<br />
The block chain is broadcast to all nodes on the networking using a flood protocol: see [[Block chain download]].<br />
<br />
[[Category:Technical]]<br />
[[Category:Vocabulary]]<br />
<br />
==See Also==<br />
*[http://bitcoinproperly.org/ The real value of bitcoin and crypto currency technology - The Blockchain explained]<br />
<br />
* [https://bitcoinchain.com BitcoinChain.com] - Bitcoin Live Platform that provides Block Explorer Service<br />
* [[BlockChain.info]] - Utility site and [[EWallet]] provider of similar name<br />
* [[BlockTrail.com]] - Advanced API and Block Explorer for Bitcoin<br />
* [[Coinprism.info]] - Web based blockchain explorer for bitcoin and colored coin<br />
* [[Biteasy|Biteasy.com]] - Web based blockchain explorer<br />
* [http://www.blockr.io Blockr.io] - Web based blockchain explorer<br />
* [https://bchain.info bchain.info] - Block Explorer for Bitcoin<br />
[[ru:цепочка блоков]]</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=58310User:Geremia2015-08-17T00:28:04Z<p>Geremia: /* About Me */</p>
<hr />
<div>==About Me==<br />
My economic views are [[Fractional Reserve Banking and Bitcoin|anti-Fractional Reserve Banking]]<ref>I am not an Austrian economist, although "Austrian Economics" is based, in part, on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> and anti-[http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://www.scribd.com/doc/138347161/Bernard-W-Dempsey-1903-1960-Interest-and-Usury-With-an-Introduction-by-Joseph-a-Schumpeter-1948 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.circle.com/ <b>Circle</b>] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Excellent introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
<b>[https://www.circle.com/ Join Circle.]</b><br />
<br />
God bless Bitcoin. ☺</div>Geremiahttps://tests.bitcoin.it/w/index.php?title=User:Geremia&diff=58309User:Geremia2015-08-16T23:28:52Z<p>Geremia: </p>
<hr />
<div>==About Me==<br />
My economic views are similar to that of an [[Fractional Reserve Banking and Bitcoin|Austrian economist]],<ref>"Austrian Economics" is based on the Catholic economics developed by the Spanish Scholastics of the [https://mises.org/library/school-salamanca Salamanca School]. See Prof. Jesús Huerta de Soto's lecture "[https://mises.org/library/spanish-scholastics The Spanish Scholastics]," [http://www.jesushuertadesoto.com/articles/articles-in-english/juan-de-mariana-and-the-spanish-scholastics/ his article], and book [https://mises.org/library/money-bank-credit-and-economic-cycles ''Money, Bank Credit, & Economic Cycles''].</ref> with the caveat that I am against [http://dhspriory.org/thomas/Emptio.htm usury] at all levels of an economy. I realize that, although there is more to sound currency than the logistics of the currency itself, Bitcoin will help citizens of the world free themselves from the slavery of [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]] and [http://dhspriory.org/thomas/Emptio.htm usury] and rekindle in them the sense of justice, which [http://www.encyclopedia.com/topic/Saint_Thomas_Aquinas.aspx#1 St. Thomas Aquinas] defines as the "rendering to each one his right."<ref>[http://dhspriory.org/thomas/summa/SS/SS058.html#SSQ58A1THEP1 <i>Summa Theologica</i> II-II q. 57 a. 1] c.</ref><br />
<br />
* My favorite economics book: [http://www.returntoorder.org <i><b>Return to Order</b></i>] by John Horvat II<br>(cf. his article "[http://www.returntoorder.org/2014/02/problem-local-currencies/ The Problem with Local Currencies]," whose comments mention Bitcoin)<br />
<br />
* My favorite economist: [http://www.encyclopedia.com/topic/Nicole_Oresme.aspx Bishop <b>Nicole Oresme</b>] (1320-1382). He wrote, in [https://mises.org/library/nicholas-oresme-and-first-monetary-treatise the first monetary treatise], that inflation caused by tampering with money's value, as in [[Fractional Reserve Banking and Bitcoin|fractional reserve banking]], is worse than [http://dhspriory.org/thomas/Emptio.htm usury]:<blockquote>The usurer has lent his money to one who takes it of his own free will, and can then enjoy the use of it and relieve his own necessity with it, and what he repays in excess of the principal is determined by free contract between the parties. But a prince, by unnecessary change in the coinage, plainly takes the money of his subjects against their will, because he forbids the older money to pass current, though it is better, and anyone would prefer it to the bad; and then unnecessarily and without any possible advantage to his subjects, he will give them back worse money. . . . In so far then as he receives more money than he gives, against and beyond the natural use of money, such gain is equivalent to [http://dhspriory.org/thomas/Emptio.htm usury]; but is worse than [http://dhspriory.org/thomas/Emptio.htm usury] because it is less voluntary and more against the will of his subjects, incapable of profiting them, and utterly unnecessary. And since the usurer’s interest is not so excessive, or so generally injurious to the many, as this impost, levied tyrannically and fraudulently, against the interest and against the will of the whole community, I doubt whether it should not rather be termed robbery with violence or fraudulent extortion.</blockquote>Bitcoin is immune to this problem because of its [[Controlled supply|controlled money supply]].<br />
<br />
*I am opposed to [http://dhspriory.org/thomas/Emptio.htm usury], [http://distributistreview.com/mag/2012/01/is-usury-still-a-sin/ which is still a sin]. The past decades have seen an exponential increase in the number of "quick money" shops throughout the United States. This is contrary to justice and detrimental to the economy; this is the only part of an economy that must be regulated.<br>Pope Benedict XIV's encyclical [http://www.papalencyclicals.net/Ben14/b14vixpe.htm <i>Vix Pervenit</i>] gives the reasons why:<blockquote>The nature of the sin called usury has its proper place and origin in a loan contract… [which] demands, by its very nature, that one return to another only as much as he has received. The sin rests on the fact that sometimes the creditor desires more than he has given…, but any gain which exceeds the amount he gave is illicit and usurious.</blockquote><blockquote>One cannot condone the sin of usury by arguing that the gain is not great or excessive, but rather moderate or small; neither can it be condoned by arguing that the borrower is rich; nor even by arguing that the money borrowed is not left idle, but is spent usefully…<ref>http://www.papalencyclicals.net/Ben14/b14vixpe.htm</ref></blockquote><sup>(See also: [http://cuapress.cua.edu/books/viewbook.cfm?book=XMCU <i>Church and the Usurers: Unprofitable Lending for the Modern Economy</i>] by [http://en.gloria.tv/?media=444192 Dr. Brian McCall] or [https://www.scribd.com/doc/138347161/Bernard-W-Dempsey-1903-1960-Interest-and-Usury-With-an-Introduction-by-Joseph-a-Schumpeter-1948 <i>Interest and Usury</i>] by [https://www.jstor.org/stable/29769582 Fr. Bernard W. Dempsey, S.J.] (1903-1960).)</sup><br>Bitcoin is, by design, [[Myths#Bitcoin_has_no_built-in_chargeback_mechanism.2C_and_this_isn.27t_good|unable to perform chargebacks]] or [https://bitcoin.stackexchange.com/a/37853/4334 force collection of interest on loans], thus making [http://dhspriory.org/thomas/Emptio.htm usury] within the [[blockchain]] impossible.<br />
<br />
I'm also [https://bitcointalk.org/index.php?action=profile;u=101169 available on BitcoinTalk.org] and [https://bitcoin.stackexchange.com/users/4334/geremia Bitcoin StackExchange].<br />
<br />
==About Bitcoin==<br />
Bitcoin is the future. The technology behind it (esp. the [[blockchain]] concept) is very ingenious, and it's revolutionizing finance and even democracies (some countries are even considering using blockchain-based voting, where everyone can verify his vote is counted and there can be no fraud without breaking the chain; the powers of cryptography! cf. "[[Alternative chain]]").<br />
<br />
[https://www.circle.com/ <b>Circle</b>] is the easiest way to convert between USD and BTC. Of the [[Wallet|many Bitcoin wallets to choose from]], I prefer the [[Bitcoin Core|<b>Bitcoin-Qt / Core</b> wallet]] for desktop computers and [[GreenAddress|<b>GreenAddress</b> wallet]] for mobile devices.<br />
<br />
[[P2Pool]] is my preferred [[mining]] [[pooled mining|pool]], followed by [[Eligius|Eligius pool]]. [[BFGMiner]] is my favorite mining software.<br />
<br />
==Learning More==<br />
*Excellent introduction to Bitcoin by cryptographer [[Zulfikar Ramzan]]: <b>[[Bitcoin Video Series (Khan Academy)]]</b><br />
*<i>The</i> best, free book on Bitcoin: <b><i>[[Mastering Bitcoin]]</i></b> by [[Wikipedia:Andreas Antonopoulos|Andreas M. Antonopoulos]] <sup>([https://www.youtube.com/watch?v=KW_wYvZ1eZg who says] "Bitcoin is not currency; it's the internet of money!")</sup><br />
<br />
<br><hr><br />
===References===<br />
<references /><br />
<br />
<br><hr><br />
<b>BTC tip jar</b>: 1FyW7qCuuh1zAudAwa9sEEvjdaS4XE11n8<br><br />
<b>[https://www.circle.com/ Join Circle.]</b><br />
<br />
God bless Bitcoin. ☺</div>Geremia