Is there a Bitcoin bank, which gives interest on my deposit? Is there any Bitcoin bank I can place my Bitcoins in that will give me a decent interest rate. It should be at least 1% for it to be worth it.

Please Take Note: Flexcoin has been hacked and is no longer operating.

Original Post shown below:

Right now, the closest thing you can find to a bank is Flexcoin. If you keep your money there, you will receive a variable interest (they call it discount for legal matters) every month. They also have a user defined cold storage service available for those who want to keep their funds offline.

Here is how it works. Every time you withdraw money from Flexcoin, you pay a fee:

  Fees:

  Flexcoin to Flexcoin = FREE
  Bitcoin to Flexcoin = FREE
  Flexcoin to Bitcoin = 0.01 BTC or one half of one percent of the transaction amount (whichever is greater)
  Cold Storage Transaction Fee (outbound) = 0.02 BTC or one percent of the transaction amount (whichever is greater)
  Cold Storage Transaction Fee (inbound) = 0.01 BTC or one half of one percent of the transaction amount (whichever is greater)

This fee is used to pay miner fees and keep the service running. The rest of it is distributed among clients:

  Discount Payout:

  70% of the fees collected are disbursed to the account holders as
  discount payments on any fees already paid or any potential future
  fees, based on the following formula…

  (your account balance / total balance of all flexcoin accounts) *
  ((all fees collected – miner fees) * 0.7)

Here are two bitcointalk threads about the discount payments for the first two months.

As a final note, I would like to say that I personally think that this kind of service is not very useful right now because the Bitcoin price is too unstable. For example, yesterday the price dropped 15%. Any interest you might earn becomes irrelevant in this scenario.

coinlenders.com

filling 30 chars with blank blank blank...


What is the reasoning for Grin's high inflation rate? According to an interview with Yeastplume on What Bitcoin Did, Grin is going to have a flat reward schedule of 60 grin per block at one minute blocks. This translates to an annual inflation of 100% in the second year, 50% in the third year, 33% in the fourth year and so forth.
For comparison, many countries target around 2% inflation, which Grin will only achieve in its 51st year of operation. Even given that actual inflation of fiat currencies may be higher, Grin's high inflation seems to make it unattractive to store value in Grin for many years to come.

Has the Grin team elaborated their reasoning for choosing a reward schedule with such a high inflation?

See this page of the wiki for a brief set of reasons:
https://github.com/mimblewimble/docs/wiki/Monetary-Policy

Calling it "high" is a misunderstanding. An inflation rate of 60 Grincoin/block forever is EXACTLY THE SAME as an inflation rate of 600,000 Grincoin/block forever. Why? Because the number of units of currency don't matter. What matters is the percentage rate of inflation.

Creating new coins at a constant number per block tends toward a 0% inflation rate over time. See this graph: https://plot.ly/~Bobby_Digital/1/#plot

And I'm sure we can agree that a near-0% inflation rate isn't "high".


Unable to open Backup binary file Linux I recently reinstalled Linux mint; I backed up my wallet, and I am unable to import the backup created from the original wallet (Qt version 4.8.6.) to the newly installed wallet(Qt version 4.8.6.) I have just installed. When I try and open up the backup (binary file) using Bitcoin-QT a textbox appears with the message:

  Payment request file can not be read or processed! This can be caused by an invalid payment request file.

Can anyone help with this please? Or, just point me in the right direction.

To restore a backed up wallet.dat file, you need to replace it manually.

Just overwrite the one in your data directory (see https://en.bitcoin.it/wiki/Data_directory to find it for your platform).

Opening the file with Bitcoin-Qt means you're trying to process a payment request; it's not for opening a wallet.

You can try the command in your shell: bitcoin-qt -rescan  It will rescan the block chain for missing wallet transactions.


Integrating Bitcoin payment methods to a UK Opencart store? I really want to integrate Bitcoin into my girlfriend's web store, but have found that they are either too expensive per transaction for international payments (bips.me - $7.50), have a huge minimum withdrawal threshold for international bank accounts (bitpay - $1,000) or simply don't work with international bank accounts at all (coinbase)

Is there any payment module I've overlooked that will work with Opencart, and will pay in £GBP to a UK bank account?

Thanks

Have you considered https://spectrocoin.com/en/merchant/integration/plugins.html there is also live technical support if needed.

Did you look at https://cryptopay.me/merchant/tools ?

There are several ways to add payment to your site, adding a bitcoin button, hosted pages or iframe. Adding GBP funds and withdrawing BTC is free, I tried these, and the exchange rate is not the worst either.


How does a node find a transaction in the blockchain? If a (light) SPV client asks a full node for the Merkle branch containing a specific transaction (or the value of an address), how does the full node find this transaction (or the UTXOs) in the blockchain?
Does the full node scan linearly through the entire blockchain or is there a faster way to link transactions and blocks?

You can read the bip37 specification for all of the gritty details.

  how does the full node find this transaction (or the UTXOs) in the blockchain?

The client builds a filter which contains what they're interested in, be it output script (addresses), public keys, or TXID. They then send this to the node they are connected to. When they request data for a particular block the node filters it to only contain things which match the clients bloom filter, and sends it to them. To find all of their unspent UTXO, they request every single block in the chain in turn and look for things that could be theirs. As you mostly worked out, this does involve for every client the node loading 80GB of blocks from disk and performing extremely expensive filtering operations on them.

Modern nodes recognise how terrible of an idea this is, and allow users to disable the functionality completely due to the massive load and denial of service risk involved. With specially crafted transactions, a remote peer with a single command of less than 50 bytes can cause a node to load a 1MB block from disk, hash it over a million times, and then return nothing.

Usually, the light client asks "is this transaction in this block" not "which block is this transaction in". The latter can be done without too much trouble if there's a txindex (transaction index), which is something bitcoind has an option for.


Blocks are usually sent using BIP152. This transmits blocks using an 80 byte header, 6 bytes per transation, plus the coinbase transaction.  To give a concrete example block 000000000000000000117f0033fd8cff18a9fa4601da7f93e6eb3e084caab586 took 16244 bytes to transmit.

If sending to a peer that doesn't already know the transactions (or not supporting BIP152) the node sends the raw block, which is half the size of the hex.  In the case of that block the raw block is 1,125,118 bytes long.

This bitcoind JSON-RPC function attempts to submit a new block to the network:

https://bitcoincore.org/en/doc/0.16.0/rpc/mining/submitblock/


Recovering My BitCoin Core Account/Wallet My name is Patrick and I need assistance recovering my account.  My brother sent me some bitcoin to my bitcoin core wallet.  I am unable to access this due to my laptop becoming infected with a virus and needing to be restored.  I have my wallet ID where the transaction took place, but I do not know how to access my bitcoin core wallet.  (My original laptop hard drive was fully corrupt and replaced.) I would be extremely grateful for any assistance in recovering my bitcoin core wallet.

Sincerely,
Patrick Moore

Access to wallets can be recovered by means of a recovery phrase, private key (string or QR code) or backup file (in this case a copy of wallet.dat).

If you have none of these you will not be able to prove ownership of the wallet and will not have access to the funds.

You will have to use your recovery phrase ,when you open your bitcoin wallet they gave you a recovery phrase set , that is as low as 12 phrases that you should have stored on some place in order to recover your wallet in case something happens ,if you did not back up your wallet it will be difficult to recover it.


Why is the reward decreasing while the difficulty of mining is increasing? I was wondering why Bitcoin has been designed in a way that rewards are decreasing while the difficulty of mining is increasing.

To me this is counter-intuitive and leads to the situation when miners from the early era were able to gain substantially more coins for doing substantially less work. Isn't that unfair?

Early adopters or miners make more profit. One could call this unfair, but that's life. Why does it need to be fair?

The reward is decreasing because the total amount if bitcoins is limited of time and the idea is that the incentive for mining should shift over time from the reward bitcoins gained when creating a block (aka. the coinbase transaction) to the transaction fees of the transaction included in that block.

To bump price to the ROOF.

Count yourself, each day, each one get less and less bitcoins. Now 1BTC is a 1,000$.

One year ago, every miner was able get 1BTC so fast, easy, with ordinary GPU, from week to month, it does not matter.

Now you need a special device. Probably, next year you throw it in a landfill.
And price of 1BTC would be so big, cause nowhere you can get it, but buy for $.

And by coincidence, it is optimal periods. Infrastructure around BTC already great, it grow exponentially, like difficulty. By last year, infrastructure, like exchanges, wallets, like coinbase, shops, appear in 10x more than previous 4 years.

Looks like this year - 2014 is a year of bitcoin's infrastructure, everywhere will appear shops, wallets, etc. In 2015 label of Bitcoin will be near Twitter's label, Facebook's label on every billboard on every corner.

2013 - is a year of ASICs.


Lost Bitcoins purchased in 2011 I purchased some bitcoins in 2011 from Dialcoin  - I have an email I sent to them asking where the coins I purchased went (very naive at the time) - I've since sold the PC (which was also mining) to a friend (back in 2012)

Is there any way I can find the coins ?

I cannot remember the wallet I was using + had a piece of paper which I think I threw away a the time.

Please help.
David.

If I understand correctly, you not only do not know your private key anymore (and probably never knew), you also do not even know the BTC address where your Bitcoins are?

I'm afraid I have to say that under these circumstances it is as if you never had any Bitcoins. I lost some exactly this way as you describe and actually also had purchased them in 2011.

No chance. Best thing you can do is to forget about them and not to burden your mind with the loss.

Get access to the computer and run a disk scanner utility over the hard drive to see if there are any recoverable files. If there are there's a small possibility the wallet.dat or something similar is still there? Otherwise find the piece of paper. I recall doing something similar using OS forensics. There is anecdotal evidence that data must be overwritten 20 times in order for the data to be completely gone - you'd probably need some high end computer skills to recover the data in that instance though.


Which is best for mining bitcoin? I am wanting to buy a hardware for mining bitcoin and namecoin using Bitminter. But then Genesis Mining offer online cloud mining. I want to know if it's better to buy a hardware for mining bitcoin or use cloud mining?

If you don't already agree with the above answers and understand why they are true, I recommend strongly rethinking the idea of mining. Before investing a single cent into mining, please invest in yourself, and your comprehension of btc first.

If you're mining simply for the enjoyment of learning about this fascinating technology than I recommend mining yourself, and taking it very slowly. By this I mean to acquire an insignificant amount of hashing power (such as an ASIC thumb drive or similar) to get your feet wet, one that will not burn your house down or set your finances on fire.

Bitcoin mining is a deeply complex field and for the uninitiated its a surefire way to burn up.

Mining bitcoins with your own hardware is good alternative for profit . But its only possible if u have more than one machine. Also you are asking about genesis cloud mining.  As per my information, Near about all cloud mining sites are getting scam.

So my advice  if u want to make profit, you can do bitcoin trading better than mining. It will make much more profit .


Why is the value field 8 bytes in transaction output when it can be achieved with 7 bytes? Bitcoin uses a 8 bytes value field in the transaction output. However, the total supply of bitcoin is capped at 21M. Theoretically, even if all the 21M bitcoins are transferred to a single address, the output, after converting to satoshis, can be effectively represented with 7 bytes of data. This means, we are adding at least 2 bytes of redundant data (one for the spend address and other for change address) for every transaction stored in the blockchain. Is there a particular reason why a size of 8 bytes was chosen or was this a design flaw that was overlooked by Satoshi? Is it possible to bring a change to this via a soft-fork or does changing this require a hard-fork?

Is there a particular reason why a size of 8 bytes was chosen

Probably not.

In the original Bitcoin source code, many of the primitives used in data structures were simply the in-memory representations of those primitives. For integers, this is a 32 bit (4 byte) little endian integer. However 32 bits is not enough to represent all of the satoshis that exist in Bitcoin. The next primitive that can be used is a long, aka a 64 bit integer. Since this was just serialized as it is represented in memory, the amounts end up being 64 bit little endian values.

  Is it possible to bring a change to this via a soft-fork or does changing this require a hard-fork?

The serialiation format used for computing the weight and hashes can only be changed via a hard fork.

However you can transmit a transaction using whatever serialization you want so long as that format contains all of the necessary information to construct the serialization necessary for computing weight and hash. This would not require any fork because it is not a consensus change.

Yes, transaction format has unused bytes. One other example is encoding utxo index in four bytes. Nobody cares. We can not change the format without hard-fork. And we do not want to do it. Live with it.


What effect will the halt of the use of cpu-gpu miners have in the difficulty? Do u have an estimate about what will happen when more powerful machines make the simple gpu use unaffordable?

This would practically mean that significant part of the mining will halt. You think that the new machines' impact on difficulty will be reduced by this or this phenomenon will be not an important factor?

It won't matter. The difficulty will rise until the most efficient miners can't make a significant profit. What inefficient miners do has no effect because their actions are balanced out by efficient miners.

Essentially, take the most efficient mining setup widely available and compute the difficulty at which it just breaks even. Market forces will, over time, push the difficulty to be a bit less than that. If the difficulty is more than that, efficient miners will leave, reducing the difficulty. If the difficulty is less than that, efficient miners will enter, raising it.

Unfortunately because difficulty corrections, AND miner responsiveness are laggy - miners are slow to re-enter the market especially if their previous generation kit is marginal for any length of time - the network can become overloaded with slow transactions, that then depresses the value of the currency, further exacerbating the problem of low profitability.
It’s like a traffic jam, full of board car drivers fiddling with their radios and neglecting to keep the flow moving. Unfortunately the difficulty factor is not responsive enough to hashrate slowdowns and so it’s like a demented traffic cop in the middle lane trying to push the traffic speeds.
Auto-switching pool miners help ease the traffic jam by diverting miner resources to other more profitable currencies (lanes), but unfortunately this is only in response to market price, not price vs difficulty. This is especially problematic on pools in which “luck” plays a part in the reward system.


Receiving payments in Bitcoin for RESTful API calls I'm familiar with different options to receive payments in Bitcoin (Blockchain.info, BitPay, Coinbase, Stripe). But how would one devise a solution to have users pay whenever they call some RESTful API endpoints? First thing that came up my mind is the following:

Have user send some initial amount in Bitcoin when they register for API usage on website via solutions mentioned above integrated on website.
Then just deduct from their state of Bitcoin for each API call they make.

But is maybe there a solution/standard, where someone wouldn't have to make an account to first transfer Bitcoin and could somehow specify in API call how many Bitcoins to transfer? When I think about it logically, this doesn't seem to be possible as you can't couple together a transfer request with API call, I mean how would you even authorize payment from your personal wallet to the specified address and how much to transfer?

There is one: https://github.com/Overtorment/Cashier-BTC/

Disclaimer: coded by me.


Why is Enjoy Sochi a malicious spam attack I recently read the following thing on reddit:

  The two transactions for .00000001 BTC are a malicious spam attack.
  They were sent without fees, which means that if you wallet doesn't
  allow you to choose specific outputs your balance is tied up until
  those transactions confirm.

Surely this is a spam (although I can not understand what is advertised), but I can not understand how is it a malicious attack. What exactly can be achieved by this attack?

The transactions will likely never be included in a block, as they do not meet the defacto bitcoin transactions rules for transactions sent without a fee, detailed here:

  A transaction may be safely sent without fees if these conditions are
  met:

  It is smaller than 1,000 bytes.

  All outputs are 0.01 BTC or larger.

  Its priority is large enough (see the Technical Info section below)

  *Copied from https://en.bitcoin.it/wiki/Transaction_fees#Sending*

Since the transactions fail to meet the criteria to be included in a block for free (which is already getting rare), the transaction will likely be rejected on most/all mining pools, though may be rebroadcast by the sender or the receiver. The transactions may remain unconfirmed for a long time, unless the sender double spends his inputs, nullifying the transactions.

The attack is similar to a ddos on the bitcoin network, as the transactions propagate through the nodes which accept and relay the transactions. This does not cause issues with the '7 transactions per second rule' as the transactions will likely not get into a block, but may cause latency if enough of these transactions are broadcast.

It's more of a pester than a malicious attack.

I got them appearing (unconfirmed) in my Blochchain wallet again today. I assume it is something to do with the database repair.


Is there any address monitoring application with support for multiple cryptocurrencies? This would be beneficial for all long-term investors who have many different cryptocurrencies in their portfolio and don't usually perform any transactions. Simply just to check whether your money are still there. No need to login into all your wallets, entering passwords etc. With support for many different cryptocurrencies.

I have just decided to develop such an application for my own use (it is open source, you can check it here - Cryptocheck ), but maybe there is already a good solution for this.

The best option for monitoring your accounts without logging into your wallets is to use block explorers. Blockchain data is public and block explorers are made to explore this public data: blocks, transactions, accounts, account balances.
Here are a few:

Bitcoin, Litecoin, Dogecoin:
https://live.blockcypher.com/

Ether, ERC20 tokens:
https://etherscan.io/

WAVES, Waves assets:
https://wavesexplorer.com/

ZCash:
https://explorer.zcha.in/

Most of these block explorers also have API solutions.
I have created a playlist showing how to use the zChain ZCash block explorer API here: Zchain ZCash block explorer API - INTRO

I've been using Cryptocurrency Alerting for monitoring my bitcoin and ethereum wallets. Cryptocheck seems pretty useful though.


Is it possible for there to be a virus in the blockchain? can a blockchain ever get a 'virus', that continually replicates itself, continues paying for gas (if on the ethereum network) and survives/self-replicates through the blockchain, similar to viruses on a PC?

I don't think it is possible in the way you are describing it.

Even if there was a smart contract which replicates itself and pays transactions and stuff. The thing is, a smart contract cannot act by itself. There has to be a user who initiates the actions. Then the smart contract could send a few transactions, but only within the block where the user started the actions of the smart contract. And as far as I know are smart contracts not able to pay gascosts, so the user itself has to pay for it.

Transactions which send other transactions are executed within the same block. So every action only lasts for one block and the initiating user would have to start the contract over and over again. Additionally there is a limit of executed gas within a block. So the smart contract could only send a few transactions before the block is full and will cancel all further transaction calls.

Besides this initiation issue, I cannot imagine a way how a smart contract could harm people by itself. Only if some other users would send money there, these funds might be lost. But it would be obviously stupid to do so.

Good Question.

To avoid such circumstance Consensus mechanisms are used to find faulty nodes as some blockchains are permission-less and anyone can participate.And their is no guarantee that every participant is valid one.For simple nodes faults RAFT consensus mechanism can be used.For nodes which is acting maliciously Byzantine Fault Tolerance mechanism can be used to remove the faulty node from the network.


What changes did segwit do to minimum transaction fee? If I understand this correctly, at the beginning, the minimum fee was 0, than it was .0001. Now, I can see that you can enter some really small amounts as fee for the transaction, however, with current congestion, I'll have to wait forever to find out if a transaction with 1 satoshi fee will be actually included into the blockchain.

Can anyone clarify.

Is it true that SegWit has significantly decreased the minimum fee that must be paid for the transaction to be included by miners in the block?

As you point out, paid fees result from two phenomena:

Full nodes on the network enforce a minimum feerate for relay, which in recent history has been 1 satoshi per byte.
Miners sort unconfirmed transactions by fee per byte, and include the highest ones first in blocks (whose size is limited to 1000000), as this maximizes their income. This results in a fee market where transactions pay according to supply and demand for space in blocks.

This means that while 1 sat/byte is the minimum to be relayed, it's not enough to actually get into a block, and as a result this minimum has become mostly irrelevant.

SegWit did not change these processes. There is still a minimum feerate of 1 satoshi per byte, and there is still a fee market.

What did change is the definition of size of a transaction. In SegWit, a significant portion of the transaction data is moved to the "witness", whose size only counts at a rate of 0.25. So for example a 200-byte non-SegWit transaction would be counted for the full 200 bytes, and 5000 of them would fit in a 1M block. If this were an equivalent SegWit transaction, maybe 120 out of those 200 bytes would be in the witness, resulting in an effective size of 80 + 120*0.25 = 110. Now 9090 such transactions fit in a block. The result of this new rule is that the optimal selection policy for miners also means looking at fee per byte, where bytes refer to this modified definition that discounts witnesses.

TL;DR: SegWit makes transactions cheaper by discounting portions of the data.

In general, this depends on demand and offer. As expected, most miners will try to include transactions with the highest fees, so if your fee is significantly smaller than most of the others, chances are your transaction will never be confirmed. The specific price varies according to this rule, and it has no minimum requirements.

If you are trying to look for information in order to pick the lowest tx fee that fits your average confirmation time requirement, take a look at this website.


How can I sell bitcoins and transfer the funds to my bank account? A friend of mine gave me two bitcoins which I now want to sell. I don't understand the process which would enable me send the funds generated to my bank account.

Although you can find a more comprehensive list here on the Bitcoin Wiki, some of the most popular exchanges in the community are:

Coinbase - https://coinbase.com
Bitstamp - https://www.bitstamp.net

You can exchange your bitcoins for US dollars on these websites and have them funded to your bank account.

You can Google for "bitcoin to paypal exchange" which would carry the funds to your Paypal account and then you can again carry the funds to your bank account easily. That's the best way.

I use this way myself, it's easy as well as secure.


Won't ASIC miners eventually break SHA-256 encryption? I might be confused as to how Bitcoin works, but as far as I can tell, ASIC miners are getting better every year and faster at cracking SHA-256 encryption.  Won't this cause the eventual complete obsolescence of SHA-256 encryption entirely, much faster than previously estimated?

Another way to look at it is to take a look at a recent block that was mined, for example, block 388368.  Looking at this block on blockchain.info, you can see that the hash for this block is:

0000000000000000021ff110a589e44f56979254a204557311204f803910fdfa

It took roughly 10 minutes for all of the miners (doing a combined 700,000,000 giga-hashes per second) to find the above hash which has enough leading zeroes (17) to meet the difficulty requirement of the network at that time.  Since the remaining digits after the first 17 leading zeroes could have been anything, there are 16^47 (i.e.16^(64-17)) possible hashes that could have been found which would have satisfied the difficulty requirement (which is 3.92 * 10^56), yet it took all of the mining power of the entire bitcoin network ~10 minutes to find just one hash that met the requirement.

To crack a hash, you need not just the first 17 digits to match the given hash, but all 64 of the digits to match.  So, extrapolating from the above, it would take 10 * 3.92 * 10^56 minutes to crack a SHA256 hash using all of the mining power of the entire bitcoin network.  That's a long time.

The odds you calculate should be those of stealing the private key, not calculating it. The latter is the fools’ method, while the former happens every day with key loggers.


What does Litecoin offer over Bitcoin? Litecoin is different from Bitcoin in the following ways, however none of them are particularly useful and on the contrary are only less worthy.

84 million vs 21 millions: since Bitcoin is divisible upto atleast nine decimals and also micro BTC can be used for dealing with low amounts
Faster blocks, 2.5 minutes vs 10 minutes average: six confirmations of Bitcoin are not equivalent of six confirmations of Litecoin, so Litecoin payments are usually confirmed after many more confirmations. It also wastes mining power because in Litecoin, most of the time miners may start work with non-best blocks.
scrypt vs SHA-256: since scrypt can be relatively efficiently run on CPU/GPU, it means botnets can easily control a lot of hashing power. Also, scrypt is relatively less analyzed and used than SHA-256, so it may not be more secure than SHA-256.

Technically, Bitcoin does what Litecoin does in an equal or better way. Also, Bitcoin testnet can be used to experiment with new features.

Why do we need Litecoin that actually has monetary value (around USD2.7 per LTC now)? Is it just promoted by a group of people who missed the Bitcoin get-rich boat?

Bitcoin is a novel concept and early adopters rightly earn their rewards for the risk they have taken.

Well, Litecoin's main aim is to make mining easier for the common man.

The problem with pure SHA-256 mining is that it is not very hard to design hardware that can perform mining at an astonishing speed. We can see this with the currently very much ongoing rise of the ASIC mining industry.

Since scrypt is more complex when it comes to hardware - scrypt not only requires many processor cycles, but also requires intensive memory use - it is harder to design hardware specifically for scrypt mining.

The result of this is that Litecoin mining will be profitable for the average joe for a longer period of time than Bitcoin mining did, when it would be adopted just as fast. Since it does not, the arrival of dedicated scrypt mining hardware will be even more deferred, to the benefit of the miners.

Besides this, I have to agree with you that the other differences between Litecoin and Bitcoin are only minor. Total currency is really not that important since both are very divisible. And faster confirmations are not required either, most Bitcoin transactions are considered valid upon first notice, since it is hard to perform a double-spend attack. (Note that you should better require a transaction to have a fee included when you want to consider it confirmed upon first notice.)
Also, after one confirmation, pretty much all transactions can be considered final.

The community of users determine a vitrual currency's value.  Many people are well aware of Bitcoin now... But they missed the boat.  And its limited number will likely keep values high and a little less stable, resulting in the common man being less interested in the concept or its risk.

On the other hand, there's DOGECOIN.  Highly popular, rapidly growing Just released three weeks ago, super cheap, easy to mine, and it has the potential to mine 100 BILLION coins compared to Bitcoin's 21 million.  The number of people that can be involved in Dogecoin (who are aware of vitrual currencies and don't want to miss the boat again), now have another chance.  DOGECOIN'S huge number of coins will mean it will be affordable for a long time - maybe forever - but it also means there are enough coins to supply all world users without having to deal with infinitely smaller percentages of one coin.

Since values are what a currency's community gives it - consider the fact that Dogecoin's community will be much greater numbers AND more world saturation.  Now that's a community, and THAT will be sustaining value - more stable value - which will likely never get to the peak that Bitcoin did, but in my humble opinion, will more likely be the currency of choice for the long term (ultimately resulting in what could be a higher value than Bitcoin).

Lastly, it has something that no other currency has - a likeable "personality".  Go see for yourself.


How to recover my Copay wallet using the 12 word seed phrase I'm new to Bitcoin/Copay. I decided to signup at coinbase deposited $80. I read you needed a wallet. I decided on copay. Transferred the funds to my wallet. Everything processed smoothly and my copay wallet showed $76. I then went to the merchant and tried to pay. A spend password popped up. i couldn't remember the password. I may have mixed it up with my coinbase password instead.

I then did a little digging online and read that I could delete copay from my Android phone and reinstall it using the 12 word phrase to by pass/reset spending password. I did that. Now if I restore using only the phrase it creates a "Personal Wallet" with no funds in it.

If I try and restore wallet with 12 word phrase and try and guess the recovery phrase password (Under Advanced Options) I get an error saying
"Could not access the wallet at the server
Please Check
The password of the recovery phrase (if Set)
The derivation path
The wallet service URL
Is there any way I can recover my wallet/funds I do know the 12 word phrase. and I thought that would have all I would have needed.

Thanks for any help fixing this.

Are you using the Import option when you try to recover the wallet?

This issue looks similar to what you're experiencing: https://github.com/bitpay/copay/issues/7399

I think coinbase cannot not recover it for you but you can ask them.

The paraphrase you copied might be incorrect.

As long as you save all the required informations then there should be a way to recover it.


Difficulty Adjustment Compairson Thinking about different difficulty adjustments for protecting new coins against attacks from big miners. 2017 when BCH forked from BTC, BCH added the EDA (emergency difficulty adjustment) and updated later to DAA ( difficulty adjustment algorythm ). Another approach of protecting the blockchain is DigiShield, the difficulty adjustment that is used by Dogecoin.
What is the difference between DigiShiel and the DAA of BCH ?
Wich difficulty adjustment is better and why ?

Just because someone has made something and given it a name doesn't mean that it isn't utter garbage.  Don't trust any review or analysis from anyone that can't give you clear and well reasoned list of criteria that it is necessary and sufficient for a difficulty update algorithm to achieve.

Some of the fad options that altcoins blindly copy don't even achieve the basic property of achieving the target block interval when hashrate is constant.

Instead they seem to obsess about falling back to the nominal rate when hashrate suddenly spikes, ignoring that slow blocks are a safe failure mode and completely failing to consider the security side effects of their decision. We've seen at least a few hyped difficulty update changes lead to actual attacks, not just theoretical weaknesses.

I have no doubt that its possible to make something that is pareto-superior to bitcoin's non-overlapping rectangular window, but I am equally sure that essentially all the other things you see hyped fail to do so. This is unsurprising because instead of starting with a meta-analysis to understand what properties are useful, they all seem to have been created by changing things and analyzing only one or two properties (or not even analyzing things at all).

Keep in mind the primary purpose of most technical changes in most altcoins is to create marketing bulletpoints that can be used to convince unsophisticated speculators to pay for the altcoin.  This marketing requires a lot of hype-- far in-excess of whatever hyper a theoretical 'perfect' difficulty update would deserve-- but not a lot of substance.

They used this simulator decide on a DAA for Bitcoin Cash. Although DigiShield is not a part of the DAA collection of it, a review of it can be found here and here.


Why do we often see 2 blocks mined within a few seconds of each other? This seems to happen far more frequently than one would expect from a Poisson distribution with a ~10 minute mean. Am I just bad at statistics or is something else going on?

is something else going on?

Maybe.

AFAIK Mining nodes don't synchronize time. Timestamps in blocks are not accurate. You cannot tell the elapsed time between two blocks by looking at timestamps in those blocks.

this may happened when the two consecutive blocks belongs to the same miner and the second block is normally empty.
460564 AntPool 0 minutes

460533 AntPool 4 minutes

460501 BTC.TOP 6 minutes (460502 BTCC full block right after)

460445 AntPool 1 minutes

460432 F2Pool 0 minutes

460308 GoGreenLight 3 minutes

460281 AntPool 3 minutes

460238 AntPool 1 minutes

460218 1Hash 10 minutes

459932 AntPool 1 minutes

https://criptomonedaseico.com/en/news-en/proof-of-nothing-why-bitcoin-miner-propagate-empty-blocks/


Are there any resources for creating your own coin? I have some experiments I want to do for creating my own coin. I've seen stuff like coingen.io but I want to do it myself. I also will be messing with other things like the hashing algorithm. Are there any resources out there that gives a bit of guidance through this process? The best I've got so far is taking the dogecoin(or any other altcoin) first commit and comparing to the litecoin source. But this didn't produce very good results for me

I recently heard of www.coingen.io which enables to create your own crypto currency within minutes for minimum fee. (For minimum fee regarding the the you will be spending creating your own coin c. 50 USD)

I would like also to inform you that if you are seeing any investment/profit potential that we already have more than 100 so called altcoins which are all almost the same with minumum differences.

If you are a bit programming skilled the complete guide is on bitcointalk forum.

Commit this code on GitHub

You can create your own digital coin with www.bitclone.net platform. I have recently launched this project and currently looking for people to try it.


90% confidence interval for mining a block? I did some math and found that the 90% confidence interval for bitcoin blocks is that the block will take less than 1381.6 seconds. I used the calculation ln(10)*600 with 10 being used because a 90% confidence interval means one in ten blocks are expected to fall outside of this range. Could this be considered a 90% confidence interval?
Note: this could change if the difficulty is expected to rise or drop. If block time is 576 seconds, for example, it becomes a 91% confidence interval. In practice this changes a lot once the difficulty adjustment has passed.

Bitcoin blocks are mined according to a Poisson process with a mean of 10 minutes (600 seconds) if you assume constant network hash rate. The difficulty of mining blocks gets adjusted every 2016 blocks to address this variability.
Interarrival times of a Poisson process are exponentially distributed.
The 95th quantile of an exponential distribution with a parameter of 1/600 is 1797.4
The 5th quantile of an exponential distribution with a parameter of 1/600 is 30.8.
90 percent of the time an observation from an exponential distribution will fall in the interval of (30.8,1797.4) seconds
The median time is 415.9 seconds.

Ln doesn't make sense, you need to use gamma distribution. On https://keisan.casio.com/exec/system/1180573218 with 0.95, 2, 10 I get 47 minutes.


Multibit Classic Wallet broken - Ballence unspendable I loaded in my multibit classic wallet the other day, into a fresh install with the intent of migrating it to multibit HD, however when i tried to spend some of this bitcoin, the transactions never chose to confirm. In fact blockchain.info shows them as pruned from database. It seems this has corrupted my wallet in some way as it shows my spendable balance as $0 when this is wrong, it's ~$130. How can i clear these bugged transactions and spend the rest of my coin? I don't care even if i have to loose the bugged transactions. I have tried resetting the blockchain transactions in multibit, and it's done me no good what so ever. This was all 3 days ago. I would try using bitcoin core to see if that would remove the fault except i don't really want to tie up 122 GB of space over this.

How can i fix/remove/ignore these transactions to spend the rest of my unaffected bitcoin? Or has the damn thing just wasted all my money?

I had the same problem.
But it is not directly the fault of the wallet.
The wallet sends the transaction with the standard miners fee, not that high.
So miners won't focus on your transaction, because of the low miner fee. This has becoming a more frequent problem since Bitcoin is becoming so big.

But there is a solution!
Try this website ViaBTC

I recommend reading there service statement first.
Than just insert your transaction ID fill in the captcha and press submit.


The getbalance command shows an empty balance I sent bitcoins to an address and blockcypher says the transaction is done but as I try to learn the balance using  bitcoin-cli -testnet getbalance <address>, the address hasn't received yet. So why can't the address receive bitcoins even now?

I really don't know why I can't get bitcoins.

Obviously, as blockcypher says I sent some bitcoins to the address from other my address and blockcypher says that the transactions were confirmed.

You can query the balance only of address you own.

  I sent bitcoins to an address and blockcypher says the transaction has
  done but as I try to know the balance using bitcoin-cli -testnet getbalance the address, the address hasn't received yet.So why
  couldn't the address receive bitcoins or couldn't I send ?

The getbalance RPC method(and related bitcoin-cli command) accept two arguments, first is a string and it isn't an address, it's an account name, second is a confirmation coint To get the balance of whole wallet use:

bitcoin-cli -testnet getbalance

Or use getreceivedbyaddress:

bitcoin-cli -testnet getreceivedbyaddress 'the address' 0

make sure you are passing the account name as first parameter. If no account name is passed it will show you the balance of all the address in that wallet


Create addresses in bulk; and check balance I am new to Bitcoin; our company wants to use bitcoin for payments.

We need to create a address for each transaction. so we need to create many public address.

First, I need to generate many public and private key-pairs. This is going to be very hard to do in a secure way!

I read another question that said with hierarchical deterministic wallets we can do something like creating one key-pair and generate many public address from it (means one private key can have many public key).

So if it really do!: Do we need to keep all of public keys or just can use private key for transaction bitcoins or checking balanced? or the other public keys are child key and i should keep the first mother public key?

Can someone else see how much bitcoin we have earned?

just with child-address?
if she/he get the master public key, can they check our balance?

We want to use Lazy_API and show user an address to use it for transaction and after that check it with blockchain.info json api or blockexplorer, if transaction done after number of confirmation we proceed invoice and they can access to what they want.

Something else: some mobile wallet(like Breadwallet.com for iOS) said that they change public address after current get received bitcoins! Does they create new key-pairs or just do something like above?

As you found out already; private and public keys are not necessarily paired 1-to-1. In fact, using the original Bitcoin client you can just run the getnewaddress to generate a new address belonging to your wallet, which is controlled by only one private key.


Why does it take 15 minutes for my Bitcoin client to start? I use Ubuntu 11.10 and have recently installed the standard Bitcoin client 0.40. But the GUI only appear around 15 minutes after started. My machine is an AMD64 Athlon 4600x2 with 6GB RAM. Is this normal? (I don't think so) Any idea?

I can't be sure why your client specifically took 15 minutes to start. But I have benchmarked the client's startup process. Most of the time is spent validating the database to ensure the client has a sensible view of the hash chain.

It is "fast verified" up to the most recent checkpoint and then "slow verified" to the current block. Fast verification entails checking only that the header is valid. Slow verification is a much more complete verification that can only be done at about 20 blocks per second on hardware like yours. (Upgrading the client will help, since newer version of the client will have more recent checkpoints.)

If you passed the -rescan option, the client will check every transaction in every block to see if it relates to any account in your wallet. That will add some time to the client's startup time.

When you run the Bitcoin client for the very first time, it will take several hours to sync up to the network. The downside of a decentralized system is that you cannot trust anything and must check everything yourself. This literally requires you to fully verify every Bitcoin transaction that has ever taken place. I've seen that take 9 hours on Pentium 4 class computers with 100Mbps Internet connections. (Though I think it should be a bit faster now, thanks to bugfixes in the client.)

I've been evaluating some bitcoin clients and my nastiest one; bitcoin-qt on a ten year old single-core 32-bit intel with 512MB RAM has been struggling all week and it has still only got to 22GB of 34GB of the blockchain loaded.

This morning after it crashed, the next restart required "rescan" which took an hour before it could resume downloading the full blockchain.

I've had much better luck with Electrum (bitcoin wallet application; without the whole blockchain) which works fine on both the 512MB singlecore and on the 1024MB quadcore raspberryPi.  That starts up in 1 to 2 minutes.


How relevant is the Chinese Great Firewall in the blocksize debate? Mike Hearn said the following:

  The reason the true limit seems to be 700 kilobytes instead of the theoretical 1000 is that sometimes miners produce blocks smaller than allowed and even empty blocks, despite that there are lots of transactions waiting to confirm — this seems to be most frequently caused by interference from the Chinese “Great Firewall” censorship system.

Also, he mentioned on another occasion that the bandwidth through the GFW, is only about 50 KB/s, sometimes less. In the best scenario you can get 3 MB/s, according to Scaling Bitcoin Conference.

Mike put lots of accusations towards the Chinese regarding blockchain development, but how much of that is true and if there's some solution, what will be the solution?

Yes, data has shown, that GFW has effects on packet propagation, but not much. The major cause of delay is distance. As you can see here, the median propagation time is comparable for various locations.Complete details can be seen here.

Interestingly, this issue highlights that more than the effect of GFW, it is the effect of large blocks propagation delay & rather serves as a case for even smaller blocks, which Mike was against.

Possible solutions:

O(1) block propagation : "If memory pools were perfectly synchronized and all miners had exactly the same policy for choosing which transactions to include in their blocks and in what order to include them, then miners could just announce new blocks as the fixed 80-byte block header and the coinbase transaction; there would be no need to include any transaction data at all, it could be reconstructed from their peers' memory pools."
Blocktorrent : "a leech(node) will begin to upload chunks of data as soon as it gets them and confirms both PoW and hash/data integrity instead of waiting for a fully copy with full verification."
A miner backbone network : "a hub-and-spoke network, which consists of servers set up in eight well-connected Internet traffic hubs: New York, Seattle, Amsterdam, Beijing, Tokyo, Singapore, Hong Kong and Novosibirsk (located in central Russia). Additionally, the relay network uses a fairly basic compression algorithm. Any Bitcoin node can connect to the nearest hub on Corallo's relay network, and send and receive transactions and blocks to and from other connected nodes."
Cache transaction validation : memoization of transaction validation
Surprisingly enough, blocks smaller than 1 mb!

A duplex payment channel abstraction
Lightning Network

on top of bitcoin would enable off-chain transactions & be like the visa protocol over the fiat layer.

Stratum Mining : The miner in china delegates the block header creation to a server outside china. Probably, the best short-term solution.

Seems the Chinese government could with DPI definitely decide to block Bitcoin network if they wanted with the Great Firewall Source: Anonymster


i have 0.10096 mbtc (0.00010096 BTC) in my btc wallet but when ever i try to send bitcoins it always says your balance is low to pay the fee kindly tell me how much fee is charged over 0.1 mbtc as i have this much amount and i want to send it but it always shows this balance is too low to pay charges.

The fees you may pay for a transaction do not depend on the amount to be transferred, but to the transaction size. Transaction size highly depends on the number of inputs and outputs, as well as the type of those.

For example, a normal Pay-to-PubKey-Hash (P2PKH) transaction with a simple input, lets say with the exact amount you referred to (0.00010096 BTC), will pay less fees than a transaction with the same amount but 2+ inputs.

Can it be that you have such amount of bitcoins spread in really small amount transactions?

In preferences you can choose payment urgent normal economy. The fee is bigger if urgent is selected.


Importaddress taking a long time to run / does not work When I try to run importaddress using the core client it takes a long time to execute, over 10 minutes, even though I have supplied a "false" argument for rescanning. For example:

bitcoin-cli importaddress "32jdC23ABv86M2ptiqMzFzCaufBtE2NCdN" false

When I run this, it takes so long to compute that it times out with "unable to connect to server error". If it is not rescanning, what is it doing? Why is it taking so long just to add an address to the wallet?

(note that adding a label field makes no difference, it still hangs)

Use Bitcoin Core 0.14 (or higher) and the new importmulti RPC call.

importaddress does always a complete rescan (back to the genesis block) which can take serval hours. Very inefficient if you import multiple addresses.

where importmulti can import multiple keys/addresses at once only requiring a single rescan.
You can also set the according address birthday timestamp to avoid rescanning the complete chain from the genesis block.


Why is two hours the maximum acceptable offset for Bitcoin blocks? As far as I understand, Bitcoin transactions include a timestamp, but the only requirement is that they don't differ for more than two hours.

But why two hours? For computers that are constantly synced via NTP, two hours seem like a very big difference. I would expect that a difference of 10 minutes should be enough.

Or, if this is about time zones and summer time, shouldn't they be using UTC time?

Transactions don't have a timestamp. Blocks have a timestamp. The difference is important, because the block timestamp on some of the blocks changes the difficulty.

  Why is the maximum difference two hours?

It's not particularly important to have very accurate timestamps. Timestamps have two uses:

Difficulty retargeting
Calculating progress of synchronization. If the blockchain started in 2009, and the last block you saw was made in 2012, then you're about halfway done.

  Or, if this is about time zones and summer time, shouldn't they be using UTC time?

They do. Of course, not all systems are set up correctly. For example, imagine a system that doesn't use NTP. The user doesn't know how to set up DST correctly, so they move their computer's clock forward/backward an hour every spring/fall.

In short: the security of bitcoin-transaction relies on blocks being decrypted in order to confirm made transactions. This should never ever take longer than 2 hours, as block-decrypting difficulty adjusts itself to values, where longer than 2 hours or shorter than 10 minutes are, if at all, hardly possible.


BTC missing after strange negative transaction four years ago I've bought 1 BTC, made wallet.dat file and stored in the cloud. Now I wanted to check balance and after syncing on Bitcoin Core found negative transaction with no address.

I did not make second transaction. It has no address. What it is? What the second negative transaction means? Why strange icon? Here's second transaction ID 4837f44e4169f287ca6802c45ceab2dfef36ab7d8ecaa0eaebfa59ea6c76e17b

I have 2 public keys. I've tried to dumpprivkey. After obtaining private keys I've tried to import to one local Bitcoin service (spectrocoin) but after 24 hours nothing changed.

Does it mean that I've lost BTC? Is there anything else I can do? Thank you for your help.

It looks like, using just the 17nu address here:

https://longhorn.bullpay.com/?gateway=2&data=17nu7oViEtGCYaYwrKKVGyrs7jkcNwpVf2

Only 2 transactions occurred. This transaction:

https://longhorn.bullpay.com/?gateway=2&data=fae9171eea55eb69cbe73f8a23003f9267b71e5a7292d2bcd7b396a58aa82827

Resulted in the UTXO for 1 BTC to 17nu.

That UTXO was then used in this one:

https://longhorn.bullpay.com/?gateway=2&data=4837f44e4169f287ca6802c45ceab2dfef36ab7d8ecaa0eaebfa59ea6c76e17b

But it was combined with other transaction unrelated to the wallet. I'd say your wallet was compromised. Your transactions got bundled in with other UTXO's elsewhere not related to your wallet.

The address it was sent to:

https://longhorn.bullpay.com/?gateway=2&data=1NqJgMT4eLPycaD2i7T7xzbd9F9fycWE9u

had a flurry of activity on 5/6/14 within a 2 hour time period. In some cases with massive bundling of UTXO's. 34 inputs, 56 inputs. The transactions moving BTC from that wallet out left it with a zero balance.

Almost all of this funnels into address 17gH1u6VJwhVD9cWR59jfeinLMzag2GZ43:

https://longhorn.bullpay.com/?gateway=2&data=17gH1u6VJwhVD9cWR59jfeinLMzag2GZ43&grid-page=1

Which processed 17,990 transactions between March 2014 thru October 2014. The entire wallet was left empty with 120,347 BTC passing through it.

Either this address is used to launder BTC or simple as a convergence point for distribution. Either way this address is tied to a number of google search results in people getting hacked. Eg: https://bitcointalk.org/index.php?topic=754624.0;all

Final answer. You were hacked in some way.

Note: I added all the text in here to show how i traced his BTC from his address to an address known for hacking. This was to demonstrate how i came to the conclusion it was a hack and not an anomaly, software error, bug or something other.

Stored in the CLOUD? Someone accessed your "cloud" years ago and stole your coins...


Paper backup of Core descriptor wallet As I understand it, using dumpwallet for a non-descriptor wallet in Core will give you the wallet seed in WIF format. This seed can then be used with sethdseed in a new wallet, thereby recovering the original wallet. So in effect, one can make a paper backup of a Core wallet.
But with descriptor wallets, dumpwallet does not work.
Is there a way to make a paper backup of a Bitcoin Core descriptor wallet?

There is currently no way to make such a backup of a Bitcoin Core descriptor wallet. There are open PRs that will allow you to export the descriptors stored in the wallet, however these have not been merged yet.

when you create the wallet, you will be shown the seed used. that is when you write the seed down.


How do I see what version of bitcoin core my wallet uses I use the multibit wallet which I understand doesn't download the whole bitcoin core i.e. the entire block chain, but it must use the bitcoin core protocol right? So how do I see which version of the protocol my wallet is using?

In the Multibit data directory, there is a file called log/multibit.log. When you connect to a peer, it will write something like this to the log:

20:01:26.124 [bitcoinj user thread] DEBUG o.m.c.b.BitcoinPeerEventListener - Connected to peer:
client version: 70002
local services: 1
time:           1424228484
my addr:        [xx.xx.xx.xx]:51127
their addr:     [xx.xx.xx.xx]:8333
sub version:    /Satoshi:0.10.0/
best height:    343977
delay tx relay: true

The 'sub version' field contains the version in a human readable format. The 'client version' field contains a machine-readable protocol version.

You can find this out on the command line with:

$ bitcoin-cli getinfo

This will give you an output like this:

{
    "version" : 90400,
    "protocolversion" : 70002,
    "walletversion" : 60000,
    "balance" : 0.62950000,
    "blocks" : 323377,
    "timeoffset" : -5,
    "connections" : 9,
    "proxy" : "",
    "difficulty" : 1.00000000,
    "testnet" : true,
    "keypoololdest" : 1412131069,
    "keypoolsize" : 101,
    "paytxfee" : 0.00000000,
    "relayfee" : 0.00001000,
    "errors" : ""
}

Version is the actual bitcoin core version and probably what you're looking for.


Why do non-SegWit clients send witness data in the first place? If SegWit leaves out witness data for backwards-compatibility, thus witness data isn't so important apparently, then why do clients even send that data in in the first place?

Aren't they making their transactions unnecessarily bigger and thus more expensive?

Non-segwit clients do not send witness data. They do not know what witness data is and would not know how to interpret it.

However, I think you are asking about the scriptSigs, which contain largely the same data as witnesses. ScriptSigs are actually scripts, but since the only standard scriptSigs push data to the stack, the same behavior can be done by segwit with the witness data. Non-segwit clients must transmit scriptSigs (and the scriptSigs of segwit output spends are empty) because they are part of the data that is hashed for the transaction id. Furthermore, non-segwit clients must be able to verify non-segwit transactions; they shouldn't just blindly trust that the transaction is valid. So the scriptSigs provide the information necessary for them to verify those transactions.

Attila Szeremi-The witness data isn't "discarded" so much as "stored outside of the block". This is so that the LN payment channel can malleate the witness data as they need to in order to justify higher fees, arbitrarily renegotiate the terms of your agreement without your consent, re-order your txs to put you in the hole, and have you owing the bank, or other legacy financial service provider whose processing your txs, steal your Bitcoin and give you IOUs to spend.... You know, all of the fun, and abusive practices that caused you to look for another means to tx monetary value.

If this sounds far-fetched, consider. Normally the witness data is locked up in an encrypted block of hashes. In order to malleate the witness data, you have to get the block ahead of the rest of the chain, decrypt it, change the witness data, and re-broadcast the changed block back out to the network and get it included instead of the "true" block. With the witness data stored outside of the block, (I don't think it is encrypted...not sure) you just have to be the only recipient of the block before it's included in the chain. If you were a company that was performing Lightning Network services, all of the txs only happen in your payment channel before you broadcast them to the blockchain. This would allow you a lot longer than 10 minutes to do whatever you wanted with your customers funds until whenever you decided to close your payment channels. Considering we can now do "Atomic Swaps", it's conceivable that the coins you are sold/paid/given won't actually be Bitcoin. You may give them Bitcoin, but they will be binding some other IOUcoin to the keys they issue you.


How to get paid providing full node services? I run a full node.  I would like to get paid for the services I provide.  How can I go about getting that to happen?

Presently, you cannot.

According to BitNodes, as of this writing there are over 5000 full nodes on the network, all of them providing this service for free.  This certainly seems to be sufficient for everyone who wants to use it.  So nobody is going to pay you money for a service they can have for free.  The effective market value of your services is zero.

It is possible that someday, as the cost of running a full node rises, there may not be enough people running free full nodes to satisfy the demand.  In that case, the market value of this service may increase above zero, and you might be able to get people to pay to use your node.  Note that if this happens, you'll probably also have to pay other nodes for the privilege of sharing their data with your customers, and getting them to help distribute data from your customers.  But at this point, this is pure speculation.

you have the solution running your own code and application doing all the work
1. have a bitcoin wallet to generate each customer it's payment address
2. flush the address on the payment screen for each customer
3. check the blockchain to see if the address received the transaction
4. wait for confirmations

or, connect to bitcoin payment service provider (like paypal for money)


What is the total value of XRPs or the market cap of Ripple? On bitstamp today, $1 = 225XRP. That makes 100 billion XRPs worth $450 million.

Ripple's a payment system that can't be used to buy anything yet and it's transaction credits are worth half a billion.

Am I missing something here? Why is the price so high?

Edit: The price doubled since I asked this question. Now total ripples are worth almost a billion.

Edit2: Ripple people: you can down vote this questions all you want. It's a perfectly valid question.

Keep a few things in mind. Not all 80 billion XRP that OpenCoin is supposed to give away is already in people's hands. Also, the founders that kept 20 billion will probably not be likely to sell a big part of it. For this reason, the total amount of XRP in circulation is many times lower than 100 billion.

Beside that, it is true that the total market cap can be valued at 100 billion * 0.0044.. USD/XRP = ± 450 billion USD. But that number does not make too much sense because the price will drop very fast when people sell big numbers of XRP. The reason that the price has this (relatively high) value is because most people are not likely to sell their XRP and everyone wants to buy a little bit of them to experiment or to keep as an early investment.

The main reason why people buy XRP now is because they believe that Ripple has potential to become big some day. And possibly for development and testing purposes.

According to Ripplexrpprice.org and coinmarketcap.com today's market cap is $15,013,462,946. Many big institutions and banks are doing partnership's with ripple for low cost cross-border payments.

I can say that Ripple's market cap which is on today is cheaper to buy because in the future it will be more expensive.


How long would it take a large computer to crack a private key? I am doing a presentation on Bitcoins and I was looking for some calculations to make people feel safe about the private key encryption.  Please first answer, how long in bytes the private key is, then how many combinations of numbers it will contain, and then what is the fastest computer or network of supercomputers and how long it would take to crack a private key using that computer.  I think the result would be very educational based on my own calculations.  Thank you.

how long in bytes the private key is

32 bytes, or 256 bits

  then how many combinations of numbers it will contain

There are 2^256 different private keys.  That's a little larger than a 1 followed by 77 zeroes.

  what is the fastest computer or network of supercomputers

At its peak around August 2011, the Bitcoin network was checking 15 trillion sha256 hashes per second.  (See http://bitcoin.sipa.be/)

  how long it would take to crack a private key using that computer

If we assume it takes the same time to run an ECDSA operation as it takes to check an sha256 hash (it takes much longer), and we use an optimisation that allows us to only need 2^128 ECDSA operations, then the time needed can be calculated:

>>> pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25 / 1e9 / 1e9
0.6537992112229596

It's 0.65 billion billion years.

That's a very conservative estimate for the time taken to break one single Bitcoin address.

Edit: it was pointed out that computers tend to get exponentially faster over time, according to Moore's Law.  Assuming computing speed doubles every year (Moore's law says 2 years, but we'll err on the side of caution), then in 59 years it'll only take 1.13 years. So your coins are safe for the next 60 years without a change to the algorithms used to protect the blockchain. However, I would expect the algorithms to be changed long before it's feasible to break the protection they provide.

The only realistic risk would be quantum computing.

Or the discovery of a bug or flaw in the BTC software algorithms. Then cracking could be a matter of seconds, depending on the type of the flaw.


How is it possible that webservers with deterministic wallets can produce public keys without knowing the underlying private key? I came across this quote on bitcoin.it: BIP_0032

  elliptic curve mathematics permit schemes where one can calculate the
  public keys without revealing the private keys. This permits for
  example a webshop business to let its webserver generate fresh
  addresses (public key hashes) for each order or for each customer,
  without giving the webserver access to the corresponding private keys
  (which are required for spending the received funds).

This lead me to read more about some custom wallet implementations, namely pycoin. After looking through the code, I still can't understand how it is possible to generate public keys without giving the server access to the private key.

What i understand of this bip is that it uses a deterministic wallet (or a wallet that only needs the seed key to regenerate key pairs). An example of a deterministic wallet is electrum and also brain waller. These two services i know electrum more than brain wallet. Basically, what electrum does is gives you a 128bit root key in the form of a series of words.From this root key any public key can be hashed out. Part of the ease of refreshing these "old/lost" public keys is because you can not generate more public keys than have already been determined (deterministic) by the length of your seed.
How it works is described by Gmaxwell on bitcoin talk

https://bitcointalk.org/index.php?topic=19137.0
Introduction on what has been discussed on IRC

  I've discussed this enough on IRC that I thought I ought to put it someplace more lasting.

  Bitcoin really ought to offer and default to using deterministic wallets.   The additional security of the current pre-generated ones is fairly small considering how most people use bitcoin and the liability of harm due to insufficient backups and increased pressure to keep a single wallet online is enormous.

  What is a deterministic wallet?  It's a wallet which you can backup once and it stays backed up forever because all future addresses are determined in advance. It can also be stripped down to a very small size which could be easily backed up on paper (e.g. with a QR code). This is in contrast to the current non-determinstic wallets where the keys are random but are precomputed ahead so that you're safe only if you backup at least every 100 get addresses or sends, and which grow large and harder to backup on paper over time.

  I've found the backup behavior of the current wallets fairly difficulty to get even moderately technical people to understand. The current system provides enough safety to encourage complacency but not enough to make complacency acceptable.  The positive side of a non-determistic wallet is that it becomes "unstolen" over time but people are frequently reusing addresses and attackers will not act slowly regardless.

So the tl;dr, its hard to back up a current wallet.dat file  because there are way too many private root keys made (as infinite as can be). So the author proposed that a deterministic wallet can only make a certain number of keys because there is one set private key or seed. This deterministic wallet is possible because keys are all hashed the same way (they all use the same root, or base. Or same parent)

  There are two types of deterministic wallet I'd like to discuss. I'll call them type-1 and type-2.

  Type-1 is the most obvious kind:

  The wallet stores a large random seed  S (which can be encrypted if the user uses wallet encryption)

  Privatekey(type,n) is then simply set to H(n|S|type)  where H is an acceptable secure hash function and type can be set to different values for change addresses vs displayed addresses (so this distinction is preserved even if new wallet metadata is lost).

  The system would generate some (maybe 1000 of each type) addresses ahead of the furthest it has observed on the network but only bother to store the addresses. The keys can be regenerated as needed.

Tl;dr there are two known way discussed by gmaxwell to make sure you can keep a finite, and easily detected address.
Type 1 is where your long seed ( example: dhrhdjidgMdudyemrbyrkandurkur). it is the only base used to hash out keys. since (afaik)bitcoin naturally was built to only use each set of seed keys a few times for change wallets only, those extra associated and generated keys/seeds are only kept locally within the wallet.dat file that is on that local bitcoin instance. Dynamically the original client will assign an incoming address or if its a change address and soon start over again with a new seed.

Type 1 uses a long set of numbers/letters Which are all generated from that seed (dhrhdjidgMdudyemrbyrkandurkur). This seed will always be hashed with the same function (lets for ease say sha). This hash function can only generate a finite amount of keys (i believe this is because your seed key is not infinity characters long, the potential number addresses are limited to the key length of the seed ).
So for as long as both dynamic wallet clients are coded to  hash/check the key the same way, they will always find the addresses through process elimination. Which is not too hard. it will hash to find if any coins are available at those addresses. If the address was never used, that address is ignored and left to use later.
 (its like entering a vault with a key code and stored right on the floor is every last bitcoin you own. Those bitcoins are assorted in to plain old boxes. Since it is your vault, its tiny, and private you have only these number of boxes on the floor, they were premade boxes.
Where as you neighbors keeps creating a new vault for a new set of boxes. It sounds a little silly for them to create so many vaults with different entrance codes, and so many boxes that are never used. But thats how bitcoin works. It makes a vault and in that vault are boxes empty and ready to be filled with coins or anything left over.
It makes it harder though for a thief to break in because he needs to open every last and sort through these boxes.
 But anyway you take The seed (your valts keycode) and decrypt it(enter the vault password). That key It always tells you what boxes of bitcoin are in the vault (so say that  your vault password is JOESVAULT) well you know that there are only so many boxes that can fit inside that vault, and you know the name of each box (address) in there too. So, you can look in those boxes without having to guess which vault it is in. Since you only have one vault, you can eventually guess the names of the boxes in there. And thats because each box name(address) is derived from the vault key(seed)

  Type-2 is a bit less obvious and understanding it requires you to know about a property of ECC keys, roughly:

  A_public_key = A_private_key*point

  Which means you can do:

  B_public_key = A_public_key+B_secret*point
  and have a new key which has a private key:
  B_private_key = A_private_key+B_secret

  So a type2 wallet stores:
  Master_private_key
  A large Random_seed S.

  and keys are given by

  Privatekey(type,n) = Master_private_key + H(n|S|type)

  which works just like a type-1, the advantage of the type-2 is that you can separately secure the Master_private_key, but still generate new addresses with
  Publickey(type,n) = Master_public_key + H(n|S|type)*point

  This means that a e-commerce site could have the front end webserver with access to the public key and S, and someone who hacked the server could violate the confidentiality of the addresses in use (because he could enumerate all past and future addresses based on an infrequently changed public key) but couldn't actually steal any of they money sent to the addresses because he would have no access to the private keys.

  This could also be used to allow getaddress to work in the client without having to provide a key (access to the TXN data in the wallet means that access to the wallet, even with private key encryption, screws your confidentiality)  which would avoid the problem of backups being endangered due to address depletion from hitting getaddress a lot between entering in the key.

Type two:
So this is like running a bank,you have one vault that is enormous. In side of this bank vault are lock boxes. Since the banker knows the  bitcoins needs to go in to the vault(in his big master key wallet which is finite as well), he now knows there are only so many lock boxes inside. But, because you as the receiving hot wallet holder only have the key to the individual lock box("public" key) you wouldn't be able to get it out (that sucks you're stuck there to rot and get arrested).
 The vault keycode (the master key) is needed to get out of the vault with money and only the head banker knows what that code it is. However because you know that the lock box goes in to that bank, you use that lock box(once again the lock box is the server receiving the coins). your banker assigns you that lockbox and you use that lock box for all your addresses and funds. and put all your coins in to little  pockets(each address you own is a pocket inside this lock box) every thing is safe sound and secure.
These bank lock boxes are kinda magical though, as i said you can walk in to the vault at any time, you can walk through this vaults walls to put the lock box in the vault. But if someone else steals your lock box key (woopse, i forgot the key in my purse and now my purse was stolen!) they can get your lock box(your receiving server private key) and can sort around in to your lock box, but they don't have the key code to exit the vault with the lock box. So even though a "private" key exists on the remote hot wallet (lock box key you left in your purse) the banker wont give your attacker entry in to the vault because he does not recognize the attacker as the person who the lock box belongs to. So, unless the attacker gets the bankers vault password, they cant get your keycode... BUT remember the bankers keycode works on your lock box. As well as anyone else's. so if the bankers keycode (master key/master seed) is discovered its game over.

So basically you are putting your lock box in a valult. The vault and the lock box each only have finite space. But they both have different keys. As long as your bankers master key is not stolen. no one can really get your money (almost like a two step auth). But rhe banker always knows the keys to his lock boxes even if you forget.

Its kinda inceptionish/matrixy "box in a box", two finger print min, two keys to launch a nuke.... That kinda thing. But not...

Anyway, that is how i understand it. Please let me know if I'm right, wrong, not understandable or what not. I would rather edit an answer than make another

Thanks for your support and kindness. Thanks in advance for the respect of not flaming me

What is probably happening is that the web server is really generating both parts of the pair (public and private) but is immediately discarding the private part without storing it anywhere on the server. Since no private keys are stored on the server (perhaps not even on any computer connected to a network) any attack will not result in private keys being compromised.

However since the the wallet is deterministic, another computer that is offline (not connected to a network) can generate the identical sequence of key pairs. That offline computer is used to actually store the private keys.

Periodically the offline computer could be used to "sweep" all the receiving addresses to consolidate the funds in a single address (also offline) to simplify things. This is done by well known offline transaction generation procedures.


Bitcon transaction verify I'm trying to understand verifying Bitcoin transaction but I can't find this part anywhere. Summary, the process before forming blocks. My questions is:

1) When I send transaction, who validates it ? Here I think, who can check and found that I haven't got enough money in my wallet. Example; I send 100 BTC but I have only 50.
The problem is bigger because in my prior transactions, refund come back on "new" wallet and who can trace all my wallet to sum how much I have in that situation. I don't speak here on double spending. I understand that part.

2) Can one transaction go by mistake in two blocks, and who prevents this ?

1) When i send transaction who validate it ? Here I think, who can check and found that I haven't got enough money in my wallet. Example; I send 100 BTC but I have only 50.

All full nodes validate every single block and transaction they receive. Once a node validates each block and transaction, the block or transaction is forwarded to the nodes that it is connected.

A number of things are checked to ensure that a transaction is legitimate. One of the things checked is the sum of the outputs being spent (i.e. the inputs) is greater than or equal to the sum of the outputs being created. It does this by looking up the outputs that are being spent. Presumably the transactions that those outputs were a part of has already been validated and the node remembers that it determined that transaction to be valid. So when it sees your invalid transaction, it will immediately see that the sum of the outputs being created is greater than the sum of the outputs being spent, which means it is invalid. Your transaction will then be marked invalid and rejected.

  2) Can one transaction go by mistake in two blocks, and who prevent this ?

No, a transaction cannot go in two blocks. This is prevented by full nodes which validate every single block and transaction they receive.

Miners check your transaction for balance of: UTXO (unspent transaction outputs), fees and how much you send. If it is OK, TX goes to new block.


Are there already several ways to do "smart contracts" with cryptocurrencies? I have heard a lot of "buzz" about Ethereum, but apparently its 1.0 version won't be released for a while yet.

I have heard a lot of talk about "smart contracts" from people who admire Szabo, but I haven't seen many implementations.

I notice that Ripple lists "contracts" under "future" features, which seems to imply that they are not ready for use yet.

https://ripple.com/wiki/Main_Page

The one implementation I have seen is at :

http://erights.org/

Are there any other, more popular ways to implement "smart contracts" that are already in use?

Thanks

There is Orisi.org - you can read the whitepaper here Orisi.org/distributed oracles whitepaper, and run an example Timelock contract here.

The differences between distributed oracles/Orisi and Ethereum are:

Orisi works on top of Bitcoin, so there are no other currencies inbetween
oracles can reference external inputs, so you can create a contract that finalizes based on weather/currency prices, or even mechanical turk
it's available today
on the other hand, it has a different trust mechanism than Ethereum - oracles are supposed to be run by trusted independent parties. So, instead of proof of work, you have a proof of identity.

You can also read this blogpost by one of the bitcoin core devs: bit-thereum. It explains why m of n oracles might be a good solution for contracts.

I think that multi signature can be used to implement smart contracts, meaning that 2 or more signatures are needed to confirm the transaction for it to go through. E.g. a signature from the buyer and seller. I am not very sure but it's probably worth reading.


What is the current actual cost of mining 1BTC? Bitcoin is going down right now. It's about 500USD/BTC. I wonder what is mental support price for miners under which they would prefer to buy btc instead of mining it? That would be more or less mining cost. So what is the current actual cost of mining 1BTC?

You can use a mining calculator to compare the available hardware's output, then add fixed cost (hardware) and variable cost (the cost of manpower, power, replacements, maintenance, etc).

I am assuming you mean ASIC mining cost, as GPU mining has not been profitable for bitcoin for quite some time. I found a site which keeps track of ASIC deployment and also provides a mining calculator: http://minr.info/

Generally miners do a lot of work to find places with cheap power, you can find kWh rates here: http://en.wikipedia.org/wiki/Electricity_pricing#Price_comparison

Even though this may seem unrelated, miners can also use GPU or Scrypt ASICs to generate alternate coins (and then convert them to bitcoin), which may be cheaper than generating/buying bitcoins. You can find a lot of information about various algorithms and a mining calculator for many alternative algorithms here: http://www.coinwarz.com/cryptocurrency

Beyond all of this, it is worth noting that bitcoins can be generated by any computer capable of doing such calculations, and that there are at least some people who do not pay for the power that they consume, and sometimes not even the hardware (such as college students and hackers, respectively). Therefore the price of mining a bitcoin can be next to nothing or actually nothing for some people who do not play fairly, and who will mine full-force at virtually any price.

The actual cost varies necessarily due to a number of factors. It's actual cost is subjective as it is interminably subject to change as a result of aforementioned factors.

Electricity is free in some parts of Africa. Liquid nitrogen cooling techniques compounded by walls of ice miles deep in northern and southern poles are not open to anyone,  much less blogged about conclusively. The best mining equipment will be open source public discourse eventually,  maybe. . .  But that is not the case today.

^^^if you have ever looked at the A. S. I. C. Mining manufacturing concerns,  you will see a profoundly disturbing justification for the above skepticism; they all "pretest" their machines for months beyond their "preorder" slated release date.  Preposterous,  that the pre-orders be postdated months after the promise,  and even then, just a few lucky would-be miners actually receive equipment as advertised. (see Butterfly labs)

When the terrible miners finally rolled their first batch out,  they could only be overclocked by the best in the world to put up 1.6Ths. (seen Teraminer)

(see what I mean)


How to complete install of bitcoin-0.17.1 on linux (fedora 29) So I downloaded and unzipped bitcoin core. I now have bitcoin-0.17.1 sitting in my home directory . What next? How do I install and run this? (Obviously I am a newb, help much appreciated.)

After extraction files from the tar ball you have to install the contents of its bin subdirectory into the /usr/local/bin directory using the the install command. The install command is part of the GNU coreutils available on nearly every Linux distribution, and the /usr/local/bin directory is a standard location for self-installed executables (you may edit the commands below to use a different location).

If you use sudo to run commands as root, use the following command line:

sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.14.2/bin/*

If you use su to run commands as root, use the following command line:

su -c 'install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.14.2/bin/*'

See reference here

You can then just run bitcoin-qt to startup the GUI

Are you attempting to compile from source or downloaded the linux executables? It is not clear from your original question.

If you downloaded the executables package the first answer references an old version of bitcoin - you'll have to change the references to 0.17.1 (not noob friendly). You can also just cd into the

bitcoin-0.17.1/bin

directory and run

bitcoin-qt

or move it wherever you want.

https://www.ringingliberty.com

has a repo and bitcoin packages for Fedora as Fedora does not provide packages directly if you are just looking to run the desktop client.

If you are compiling from source there are other dependencies that must be installed (boost, etc) first.

Beware the bitcoin client (whether gui or server) will consume 221 GiB of storage for the full blockchain as of today and take from days up to a week to sync initially. Research "pruned node" to reduce this to as little as 3.5 GiB.


How can I pick up the blockchain download where it left off on another computer using an EHD? I started downloading the Bitcoin blockchain via my MacBook Pro onto my 1TB external hard drive. I want to use my iMac to finish the download. I plugged my EHD into my iMac and checked to blocks folder and it contained the previous transaction I downloaded (86GB). The wallet.dat, peers.dat, chainstate, banlist.dat and fee_estimates.dat files. I opened Bitcoin Core and moved the directory to the blocks folder where the previous transaction I downloaded are. I followed the steps to start the sync. I expected the blockchain to recognize the blocks and start where it left off on my MacBook but it started from the beginning. Any ideas on how to pick up where I left off?

Even if you transfer all the data from a fully synced client, the bitcoin client still needs to validate those blocks. It will still take a while, but should be quicker than downloading all the data and verifying.

ANSWER IS NOT ACCURATE.
EDIT: If you copy the chainstate, there shouldn't be any work the receiving system should perform anymore - the software wouldn't even know it was moved. It's possible the wrong directory was used.


Does halving ever end? Every certain number of blocks the reward is cut in half, for example from 50 to 25 BTC.  Will this halving continue indefinitely, so the reward never gets to zero?

It will, one day, reach 0, which mean mining wont be possible anymore (or it wont just be worth it). and by 0, I mean it could be 0.000001.

But if you look at it in a mathematical way, it should never end. Try that with a calculator, the number becomes really small.

The Bitcoin network is made so there will be a limited number of coins available and they have to be generated at a predictable rate, thats also why there is a difficulty on the mining


How to display Recipient Address, Change Address & Transaction Amount I have made A software in which i can Signed Transaction (From Electrum Un-Signed Transaction HEX), i just want to display the following thing to USER in Readable Mode :
1. Recipient Address
2. Change Address
3. Transaction Amount

How can i show this to USER to readable form so that user verify the Transaction before going broadcast.

Thanks,
Amish Sharma

Just go to BTC explorer any search in google
example:
https://www.blockchain.com/explorer
type your wallet adress or transaction ID
And check.


Multibit password incorrect - what else can cause this? I have my balance cash display on my Multibit account at left top of my account which was my last transaction. But to send it out to another bitcoin account, it keeps telling me that "The wallet password is incorrect." I am fully sure, I have never changed my password and I have tried the directory given but I couldn't get it done, even none of my old transactions are showing up again. Do password regenerate itself to give new one or is my account file corrupt?

Because I know that I run some program into my computer recently i.e. photoshop program, could
that be the cause? But I never tampered with bitcoin file - that is what I just can't figure out
here. Please help. I am using MultiBit version 0.5.18 in Windows 7 Ultimate please help. Or
is there anything else for me to try that I have not done?

It could be a problem with the Multibit app.

Did you export before the private keys ?

If yes, You may import your keys at blockchain.info (just paste the .key data to import form)


Is it cryptographically possible to have aggregate signature schemes that can improve privacy in UTXO consolidation? My understanding of Schnorr signatures, Taproot and Graftroot and how they improve privacy in smart contracts / multi-sig is by allowing users to aggregate signatures so the individual signatures and keys are not visible but summed in the aggregate key / sig.

Are there any cryptographic protocols that allow the summing of UTXO inputs? So for example multiple inputs in a transaction were summed to one aggregate input and then signed with the sum of the input private keys?

Is it possible to improve privacy of UTXO consolidation?

Yes, I believe that the accumulator constructions as described here are a good candidate. The same idea applied to Bitcoin is implemented by Tadge Dryja here


Why can't my bitcoin-qt sync with network? For the last 32 hours my bitcoin-qt has been unable to sync with the network even with my firewall and VPN switched off. Any ideas what else to check? Using Windows 7 SP1 x64 and have rebooted the machine. Internet connection is fine, plenty of space for the blockchain.

Please have a look at the debug window. Does it show peers? In addition, look at the debug.log file, it might show specific problem information.

you need to just wait, its 6GB of data and can take anywhere from several minutes to several hours, there have even been reports of it taking days.  Its because of the size of the hard drive, the speed of the computer, the speed of the internet connection etc.

Cheers


Accidentally sent Bitcoin Cash to Bitcoin address held by a third party I made an exchange on Changelly to exchange my Bitcoins to Bitcoin Cash. These Bitcoin Cash would later be sent to my address. Unfortunately, I did not check twice and had the Bitcoin Cash sent to my Bitcoin address and not Bitcoin Cash address.

Is there a way for me to reclaim these Bitcoin Cash? They are on a Bitcoin Cash address, just not mine. I checked the address and it only holds my Bitcoin Cash, which means it probably does not exist as an address. Is there a way for me to custom create the address and claim them or how do I get them back?

This is the process of how it went

As BTC in Blockchain.info
Transferred to Bitcoin Cash via Changelly
Transferring done, Bitcoin Cash supposed to be sent to my Bitcoin Cash address, to my Bitcoin.com Wallet but after accidentally having written my Bitcoin address and NOT my Bitcoin Cash address, the Bitcoin Cash is now with that address. I can see the cash at the other address but don't know how to get it back.

Help would be much appreciated. Thanks!

You'll have to negotiate with your service provider whether they can help you.

Whoever holds the private keys for your Bitcoin wallet should be theoretically able to generate a transaction that sends the BCH from the Bitcoin address to wherever you wanted them to go.

In practice this may be difficult or infeasible: To keep large quantities of Bitcoin secure, the private keys are often stored in hardware devices or otherwise hard to access. The service provider will likely at least need to manually intervene to help you.

If the Bitcoin address was SegWit (which I wouldn't expect in this case), it might be even more difficult to recover, as you'd need the help of a miner, additionally.

It is unfortunate, that the Bitcoin Cash developers used the same address format as Bitcoin, even after this problem was well-known and in the media recently with Litecoin switching to a new unique P2SH address format for this very reason. However, I've read that they are working on a new unique address format, so at least this should stop happening in the future.

Nope,impossible to get back,  effectively you sent them to another bitcoin cash address that less likely might be for  anyone or used..your coins are lost into the void on that address and you cannot have the keys to it, nor anybody can get them back
You can though see them on the BCH blockchain stuck there
Sorry to deliver the bad news


Can a bitcoin transaction hold an arbitrary string or strings for reference? I'm not too sure how I can expand on this.

Let's say that you want to tag the actual transaction with 'Rent' or 'Bill'.

Is there a field where I can insert a string for the other party? Note that this doesn't need to be hashed, it can be clear text.

No such support exists in the bitcoin protocol. Use a different receiving address for every transaction to uniquely identify them, if you do this correctly then no external labels are necessary.


Explain how CoinJoin enhances anonymity, in plain English? I just learned about CoinJoin, but I don't really understand all the jargon being thrown around. Can someone explain how this works where a 10-year-old can understand?

Alice wants to transfer 1 BTC from address A to address B

Bob wants to transfer 1 BTC from address C to address D

CoinJoin gives them a way to combine their transfers into a single transaction that has two inputs (A and C) and two outputs (B and D). Someone observing the blockchain no longer knows which one of the outputs is Alice's and which one is Bob's.

Because of some cryptographic magic behind the scenes, the participants of the shared transaction (there can be more than two of them) do not have to trust each other. Compared to traditional Bitcoin mixers, there is no possibility of coins being stolen. Also, CoinJoin transactions are compact and incur no additional fees (besides the usual transaction fees)

This is an example of a CoinJoin transaction: https://blockchain.info/tx/e4abb15310348edc606e597effc81697bfce4b6de7598347f17c2befd4febf3b

Blockchain.info has already implemented CoinJoin support (branded as Shared Coin) into their web wallet.

Here is a very extensive and relatively simple explanation of coinjoin.


Use of proof of work in bitcoin I am trying to understand what problem in bitcoin proof of work solves and came to this somewhat helpful quote:

  So, for instance, if a miner controls one percent of the computing
  power being used to validate Bitcoin transactions, then they have
  roughly a one percent chance of winning the competition. So provided a
  lot of computing power is being brought to bear on the competition, a
  dishonest miner is likely to have only a relatively small chance to
  corrupt the validation process, unless they expend a huge amount of
  computing resources.

Does this mean that proof of work prevents say double spending because of following reasons. Imagine attacker introduces 100000 rogue nodes in the network and their goal is to send false information about transaction validity - but since these nodes need to do proof of work, in total, when all 100000 nodes are doing proof of work this is too costly for attacker. Is that right? So because of this proof of work keeps attackers at bay.

Imagine attacker introduces 100000 rogue nodes in the network and their goal is to send false information about transaction validity ...

That's no possible. Every node validates blocks and transactions for itself. It doesn't matter what another node tries to represent - if the block is invalid, it's ignored by the receiving node.

Proof-of-work is unnecessary for determining block validity.

What proof-of-work does do is makes block generation expensive. Without it, nodes could generate blocks cheaply, rolling back transaction history by publishing replacements for previous blocks willy-nilly.

To rewrite a previous block, a node must not only rewrite the block its self, but all of its descendants. It must re-do all of the work that was previously done.

To re-iterate: nodes validate transactions and blocks for themselves. Proof-of-work doesn't convince nodes of block validity. It convinces them that a certain amount of work must have been performed to produce the block.

A node uses the cumulative proof-of-work when faced with a choice of two or more valid block chains. The one with the most proof-of-work is used to build the global transaction log.

As i see it, this proof of work is the same thing as captcha, which prevents miners from generating blocks too fast. The network (at least the official one named bitcoin) is self-regulating, so when blocks are generated too fast, each node independently rise the difficulty for blocks that it will consider as valid (this behavior is hardcoded). The double spending can happen even without any attackers (you and a boy from africa have generated block simultaniously and the majority of network "used" the africans block). This is why it's advised to wait around few days, even though the official blockchain shows your transaction has passed.


Is there a market for converting my foreign currency and coin into bitcoins? I'm a coin dealer and I have large ammounts of foreign coins (Euro, British Pounds, swiss francs, Japen Yen ect..  I was wondering if I could deposit those coins into my bitcoin account/wallet?

I think that perhaps you might misunderstand what bitcoin is. If you're looking for a way to sell your physical coins for bitcoin, there are ways to do that. Perhaps bitcoin-otc.com.

If however, you're looking for some way to virtually/digitally trade your physical coins then bitcoin won't help. Depending on what you're actually trying to do, Ripple.com may be the closest digital currency system to help you, see this topic on bitcointalk.org about how one person is leveraging his stash of pre-1964 US silver dimes on Ripple.

Just sell your coins on Bitmit (bitcoin ebay) for bitcoin.  I've used that site quite a lot, and think it's excellent.