Java mining solution I am a beginner in mining algorithms and I have a general question regarding the mining using Java language.

Does it make sense to use Java to develop for example ETHASH algorithm (or any other) and is it going to be as such effective as C ?

I already found that it is possible to do mining with Java and OpenCL, for example here : is there a Java or C# library for mining bitcoins?

But still, I am confused, is it going to be slower? Or Java just need to transfer data/code to GPU and then it works the same as native C code? Or am I missing something? How is it working under the hook?

Thanks in advance for any response or reference.

Java (Oracle and not JavaScript) is typically one of two competing paradigms for enterprise servers. The other is windows, assuming that Java is always paired with some enterprise version of Linux. So though you can completely use Java on windows servers without any loss of utility or performance, in the setting that you were to use Java you would just likely use Linux as windows has a competing programing paradigm known as c#. Also the comparison here is rough and not meant to be lliteral 1 to 1 map of c# to Java.

That said the primary reason for Java is complete hardware abstraction and portability of programs. A side effect of this is easier scalability. New server hardware can come online and completely and automatically join existing server hardware in running Java.

Java is probably one of the most high level software languages there are. In that you can deal with primarily abstract computational notions with out dealing with often repetitive and frankly independent aspects of everyday computers in their present formats. Additionally this could be why Java has some following in academia. You can study the abstract computational problems instead of some standard publication which may go out of date. In theory some Java software will never be outdated or obsolete if correctly written.

Java as a trade off does have significant overhead. When you say c or c++, that doesn't necessarily describe it's performance as to some extent that is just a standard which describes the syntax of the language. What you may actually be thinking of is what it compiles to. Depending it can be portable executable or .exe for example or it can be microcontroller arm machine binary or a list of Opcode's ready to be read off by the processor.

Java does specify the performance because it only compiles to one thing. That is a set of codes which the Java virtual machine executes (which in turn is executed by the stuff c would produce). This is how Java gets its portability. The JVM acts as a socket or adapter from one interface to another. Therefore one person need develop the JVM for the particular machine and that's it. You can see it's high priority for Java to improve performance of its JVM's. But even still for example in c and low to hardware, you can switch out costly trig functions to rough approximation by multiplication of a constant. In for loops etc calling trig functions this might be permissible in c while rendering a Java application utterly impossible.

Finally as to mining, Java key aspect is scalability. Software in Java can easily and very neatly be written to detect say new network additions and start scheduling work for them. So you can take any computer and as long as it has a JVM, it is now part of the pool simply by starting the same Java app that everyone else is running. I'm not sure you can get this aspect as easily with c. This is partly because windows has a different philosophy on hardware OEMs partly motivated by profits and a business environment, however you can see the good it has done in its own right by the excellent diversity of windows PC hardware while still typically retaining top performance to alternatives.

Again. Though Java allows enterprise to easily gain the server power they need and minimizing headaches. Sometimes the headaches are necessary to learn but sometimes it's not what's wanted.

In any case if you model the reduction in performance due to JVM overhead, you would have to compare that to longer down time or time in bringing up new hardware. If it took you a week to get a new minor up on say windows in c, and you could of had it up in 5 miinutes on Linux distribution with Java JVM you may be losing money short term. If the mining hardware had short life span that too could improve the cause for Java. It's some what to iot and using o.s. or not. You may get better performance with your custom servo controller but if a raspberry pi gets it up and running with Linux in 1 percent of the time, realistically after only a few projects testing prototypes you begin to devalue the bare bones solution.


The role of timestamp In Satoshi’s original paper, it is written that “we need timestamp to prevent double-spending”.

However, I think timestamp is unnecessary, because every block has a previous block hash and merkle tree root and these are enough to check if a transaction contained in a block is double-spending or not.

I think timestamp is just used to gurantee the current ‘difficulty target’, and I found posts here that it is even possible that a successor of a block can contain a timestamp which is earlier than that of the predecessor.

Am I correct? What’s actually the role of timestamp?

The timestamp is used primarily for establishing the difficulty. Without a timestamp, new nodes would not be able to determine the correct difficulty to be used for each 2016 block period as they wouldn't know how long it took to mine those blocks. So that everyone calculates the difficulty correctly, the block timestamps are used instead of real time.

This of course means that the difficulty can be manipulated by miners messing with the timestamp, but nodes do still check them against real time and will ignore blocks that are outside of a certain range of times based on its own internal clock time.

I do not know how other blockchain does it but in our case (stamping.io) the timestamp helps us so that all the nodes can obtain the same merkle tree, so that the same root hash can be achieved.


The problem is when you createrawtransaction it never gets transmitted/relayed to the network. If you look at the bitcoin wiki for the rawtransaction you can see:

createrawtransaction [{"txid":txid,"vout":n},...] {address:amount,...}
Create a transaction spending given inputs (array of objects containing transaction outputs to spend), sending to given address(es). Returns the hex-encoded transaction in a string. Note that the transaction's inputs are not signed, and it is not stored in the wallet or transmitted to the network.

same with signrawtransaction, it signs the create transacition that is stored in the leveldb or whatever db bitcoin uses but is not transmitted to the network.

Only when you issue the command sendrawtransaction does the signed transaction get transmitted to the peers.

Hope I answered your question!


What is the purpose of Bitcoin mining? Does Bitcoin mining serve any purpose other than rewarding the people with the best mining equipment?

It seems that free Bitcoins are given to whoever can mine the fastest.  Is that it, or is there any benefit brought about by mining?

The initial mining revenue was those who created the system and early adopters experimenting.

You have to remember at this time they were worth very little. many of those coins may have been deleted, sold or spent at a much lower value.

The risk to reward ratio was much larger, many thought they would not be worth anything. Your calling this money because millions of people have now given trust to the system. Back when it started currency from a game like World of Warcraft would have been considered more valuable.

The only reason people with "good computers" got coins is not because they had those computers, it is because less people were actively trying to accumulate bitcoin, making it easier for any computer to do so.

Nearly everyone who bought specialized mining hardware (whether it be GPUs, FPGAs and now ASICs) would have done better simply buying bitcoins with the money instead.  A few did get more than 1 bitcoin back per 1 bitcoin worth of investment in hardware -- it happen to end up such that those who speculated on the right mining hardware vendor that actually wasn't all that late in shipping happened to be the ones who earned more (in terms of XBT/bitcoin revenues) than the cost of hardware, electricity and operating costs.

Either way, Bitcoin solves a problem in how to have a decentralized system of money with no authority.  The problem you are describing, ... allocation of a resource equally, doesn't exist in nature.  Bitcoin is a protocol, with issuance modeled to be similar to what history has yielded as the leading natural form of money (gold).


How to decode private key from Android Bitcoin Wallet? I want to import my private key from the android's Bitcoin Wallet (the one created by Andreas Schildbach) but it can export it only in an encrypted way.

How do I decrypt the file so I can import the key to my Bitcoin Qt?

from: https://github.com/schildbach/bitcoin-wallet/tree/master/wallet

The backup file is encrypted using your chosen password. You can use OpenSSL to decrypt:

openssl enc -d -aes-256-cbc -a -in <filename>

I go a bit fancier:

set /p xin=
set xout="%xin%.txt"
openssl enc -d -aes-256-cbc -a -in "%XIN%" -out %XOUT%

But basically you want to name a file for the output and also the -k flag allows PASSWORD directly to be entered, like so:

openssl enc -d -aes-256-cbc -a -in "INFILE" -out "OUTFILE.txt" -k PASSWORD ,

where CAPS is the variable. Save above 3 lines or single openssl cmd into a *.bat (WinBatch file)


curl returns empty output when json-rpc I am not able to get JSON-RPC response via curl. It seems like is not accepting requests.

My bitcoin.conf

rpcuser=USER
rpcpassword=PASS
server=1
rpcport=9332

Running daemon

$ bitcoind -conf=~/.bitcoin/bitcoin.conf -daemon
Bitcoin server starting

Checking cli

$ bitcoin-cli -conf=~/.bitcoin/bitcoin.conf getinfo
{
  "version": 140200,
  "protocolversion": 70015,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 439348,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 254620187304.0614,
  "testnet": false,
  "keypoololdest": 1500029964,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

Testing curl

$ curl http://localhost:3333
curl: (7) Failed to connect to localhost port 3333: Connection refused

Of course, the port is wrong:

$ curl http://localhost:9332
JSONRPC server handles only POST requests

Making a post

$ curl http://localhost:8332 -H 'content-type:text/plain;' --data-binary ''

The output is always empty, doesn't matter if I add data or user,password. Is always empty:

$ curl http://localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://USER:PASS@localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://USER:PASS@localhost:9332 -H 'content-type:text/plain;' --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getinfo","params":[]}'
$ curl --user USER:PASS http://localhost:9332 -H 'content-type:text/plain;' --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getinfo","params":[]}'

Any ideas why is this happening? Don't know what else to try.

If you're on Amazon AWS try this:

setsebool -P httpd_can_network_connect 1

I had the same problem and it took me hours to figure out that the server was blocking connections. I thought it wasn't the problem because my AWS security group allowed it. But apparently the server was blocking it directly.

add this to bitcoin.conf

rpcallowip=0.0.0.0/0

allow all ip


How can I withdraw Litecoin from a paperwallet? How can I withdraw my Litecoin from a paperwallet?

I have tried to use blockchain.info but it seems like it is only bitcoin that I can withdraw with that.

I used the bitcoinpaperwallet.com webpage to make the wallet.

Thanks guys!

Both blockchain.info and bitcoinpaperwallet.com are for Bitcoin, you need a Litecoin wallet and then import your private key to that.

The most reliable way to have a Litecoin wallet is to download and run the official Litecoin Core client, although you can use web based wallets as well but as I have no experience using them I can only give you a search link.

With Litecoin Core you will have full ownership over your wallet and you will not be depending on the service availability of the website, but this also means you will need to backup your wallet as the wallet.dat will contain your coins.

Importing a private key in Litecoin Core is the same as with Bitcoin (based on this question):

click on 'help' in the menu bar (top right)
click on 'debug window'
select the 'console' tab type: walletpassphrase "passphrase here" 600 (only if you set up a passphrase to protect your wallet earlier (you should!))
type importprivkey [private key here]

You will have to wait the synchronization to finish to see your balance.

Go onto a credible website download the HTML then turn off your internet ensure the code is fine.

If browser has privacy turn it on then make your paper wallet print it out then put in fake data as well then clear you browser cache. Recommend you use a fresh browser on USB stick or something as well during this.

Next turn on your internet if you haven't already downloaded some wallet, do so.  Either Litecoin client or some credible wallet if not litecoin client be aware where you download also note their fees, privacy policy, credibility and EULA.

Next search how to import private keys into your specific wallet
for LiteCoin -- help - Debug
importprivkey "litecoinprivkey" ( "label" ) ( rescan )
importpubkey "pubkey" ( "label" rescan )

If your using going to use it continuously after you imported private key should be good to go. If it has extra security you should use it such as pin numbers, 2 part verification. If it's not large amounts at least a pin along with encryption. Your ready to use it for donating to charity or buying things know your countries laws or policy before doing so.

if you only want to put coins into your paper wallet and not spend them you should need only to generate a temporary software wallet put money in it then send it to your public address for your paper wallet.  So your paper wallet private key is never loaded into the wallet.


Unconfirmed transaction for nearly 3 months Sorry but I am fairly new to this. I have qt wallet and have done quite a few transactions, but around Xmas time I placed a few payments that didn't go through. After  checking the web, many said just to wait and the coins will come back. But as it's now been 3 months, is there anything else I can do? Please be basic as I'm not that experienced.

What you need to do is find the transaction i.d.
There you will see everything if there is no confirmations after 3 months its just well strange , I think you can look for more answers also in bitcoin forums there are alot of people that can help there nad they answer usually instantly


I would like a wallet that lets me export my private keys Multibit classic allows you to export private keys.  Apparently Multibit HD no longer allows this  (is it true?  I'm pretty sure).

I want a wallet that lets me export my private keys.  So I don't have to depend on any specific software program.

I'm not sure I trust Electrum doesn't it rely on it's own network of servers?  I don't want to rely on any specific servers.

Seems like the only way is to get Bitcoin-QT client and have the whole darn blockchain which I have to keep updated.

Does anyone have any suggestions.  I'm starting to think Multibit classic is the only one that can export private keys without needing the whole blockchain.

Try it with JAXX wallet, I think there you're getting your keys


What is the Merkle root? The Bitcoin wiki Vocabulary article explains why the Merkle root exists:

  Every transaction has a hash associated with it. In a block, all of
  the transaction hashes in the block are themselves hashed (sometimes
  several times -- the exact process is complex), and the result is the
  Merkle root. In other words, the Merkle root is the hash of all the
  hashes of all the transactions in the block. The Merkle root is
  included in the block header. With this scheme, it is possible to
  securely verify that a transaction has been accepted by the network
  (and get the number of confirmations) by downloading just the tiny
  block headers and Merkle tree -- downloading the entire block chain is
  unnecessary. This feature is currently not used in Bitcoin, but it
  will be in the future.

How can you check if a transaction has been verified only using Merkle roots? How does that mechanism work?

The idea (as I understand it) is that the Merkle tree allows for you to verify transactions as needed and not include the body of every transaction in the block header, while still providing a way to verify the entire blockchain (and therefore proof of work) on every transaction.

To understand this, first understand the concept of a tree. Consider an 8 transaction block. Imagine each of those 8 transactions at the base of a pyramid: these are called leaves. Put four "branches" on the second tier of the pyramid and draw two lines from each of them to the leaves so that each branch has two leaves attached to it. Now join those four branches to two branches on pyramid level 3 and up to one branch (what is called the root of the tree) on the top of the pyramid. (Our tree is growing upside down in this example.)

Now we can start to understand the hashing process. Hash the hashes of the "leaves" and include that as part of the 2nd level branches that those leaves are attached to (these are called child nodes and parent nodes). Now hash the hashes of those hashes and include that as part of the third level branches. And so on. (And if you had more than 8 transactions, all you need are more levels to the pyramid.)

So now you have a root node that effectively has a hash that verifies the integrity of all of the transactions. If one transaction is added/removed or changed it will change the hash of its parent. Which will change the hash of its parent, and so on, resulting in the root node's hash (which is the Merkle root) changing as well.

So how does this help us with potentially not having to have the entire blockchain? Because we could verify the transactions as needed. If we have a transaction that claims to have been from block #234133 we can get the transactions for that block, verify the Merkle tree, and know that the transaction is valid. We can do that without necessarily knowing all of the transactions from #234132 or #234134 because we know that the blocks are tamper proof.

Even better, if we know where it is in the Merkle tree and we know the hashes of the branches we don't even need all of the transactions from #234132. (There were 868 in that block.) We start with just our transaction and its sibling (if it has one) and calculate the hash of those two and verify that it matches the expected value. From that we can ask for the sibling branch of that and calculate the hash of that and verify it. And continue with this process, up the tree. Which only takes ten verifications for 868 transactions. (That's one of the great things about trees, they can hold a lot of values with only a relatively small number of layers.)

How do we know that the source of this data isn't lying to us about the hash values? Because a hash function is one-way, there is no way that a deceptive party could guess a value that would hash with our second-to-last value to create the Merkle root. (Which we know from our verified blockchain.) This reasoning holds further down the tree: there's no way to create a fake value that would hash to our expected value. Another way to think about it, is that even a single alteration of a transaction at the base of the tree, would result in a rippling change to all the hash values of nodes in its branch all the way up to the root's hash value.

In short, the Merkle tree creates a single value that proves the integrity of all of the transactions under it. Satoshi could have just included the hash of a big list of all of the transactions in the Bitcoin header. But if he had done that that would have required you to hash the entire list of transactions in order to verify its integrity. With this way, even if there are an extremely large number of transactions the work you need to do (and the number of hashes you need to request/download) in order to verify the integrity is only log(O).

[As always, feel free to edit this. This is primarily just inference on my part from looking at the spec.]

The Merkle Root, as I understand it, is basically a hash of many hashes (Good example here) - to create a Merkle Root you must start by taking a double SHA-256 hash of the byte streams of the transactions in the block. However, what this data is (the byte streams), what it looks like, and where it comes from remains a mystery to me.


Why is pruning not considered already at the moment? I understand that Bitcoin scales in several meanings (Scalability), and pruning is one important concept of it (SE Question). I also understand that a "Simplified Payment Verification" (SPV) needs to trust a lot the peer he is obtaining the block chain from.

A very conservative pruning (e.g. transactions older than six month and spent) wouldn't do much harm, especially when it would be only a configuration option for bitcoin-qt. That way the default is the full node, but it's easy to have a "small node".

But I don't see it coming anyhow soon. Is there a reason? Is it so important to have full nodes at the moment that the devs say "either you go for all or nothing"? Or is the development effort the bottleneck? IMHO a large network of non-SPV nodes is more important than a small network of full nodes.

Edit: Let's put it more concrete: Is there a major security issue of not having the complete transaction history of the world back to the genesis block?

Pruning is being considered, in fact, it was taken into account when designing the 0.8 database format. The unspent transaction outputs (which is the only essential piece of data necessary for validation) are already kept in a separate database, so technically removing old blocks is perfectly possible. It'll likely require some small changes to make sure the code doesn't break when block data that doesn't exist anymore is requested, but this is easy.

The reason it's not implemented is because of the effect on the network as a whole. If a large amount of nodes starts pruning old block data away, it will become harder for new nodes starting up to find the historic data to verify. This is not a problem as such - I expect enough copies will remain that this is not a true problem - but we need a discovery mechanism so nodes don't need to arbitrarily try peers until they happen to reach one that has the blocks they need. In fact, there's a discussion going on on the bitcoin-development mailing list about this right.

EDIT: Pruning was implemented in Bitcoin Core 0.11, and is fully functional since 0.12.

AFAIK, all the transaction outputs are purged from the database when they are spent. Not from the bock database, though, but it just does not make too much sense to remove it from the block database, since it would only worsen the node's performance.

And you cannot purge unspent outputs, now matter how old they are, for quite an obvious reasons.


Why was 21 million picked as the number of bitcoins to be created? Why did Satoshi pick 21 million as the number of bitcoins to be created? What is the significance of that number?

Here's a mathematical explanation:

Calculate the number of blocks per 4 year cycle:

6 blocks per hour
* 24 hours per day
* 365 days per year
* 4 years per cycle
= 210,240
~= 210,000

Sum all the block reward sizes:

50 + 25 + 12.5 + 6.25 + 3.125 + ... = 100

Multiply the two:

210,000 * 100 = 21 million.

Economically, because the currency is effectively infinitely divisible, then the precise amount doesn't matter, as long as the limit remains fixed.

Very simple answer:
The reward for Bitcoin Miners had been 50 Bitcoins per Block for the first 210,000 Blocks. For the next 210,000 blocks it is the half of 50 (=25).
Take the geometric series and you'll be getting the total amount of nearly 21 Million Bitcoins (nearly, because a geometric series converges to his boundary value, but never reaches it!).


Wrongly Transferred! If for some reason I made a wrong transfer to an unknown blockchain account, how do I know who is that belongs to?

In the first place I think it is unlikely a "wrong transfer" because the Blockchain address is not something you can make typo error. I am very suspicious how people can transfer my btc out without my authorization.

Many thanks for answers.

I made a wrong transfer to an unknown blockchain account, how do I know who is that belongs to?

In general you cannot readily find out who owns an address.

If the owner of the address is especially careless, a great deal of detective work may allow their identity to be discovered eventually. This is not a trivial process.

  I am very suspicious how people can transfer my btc out without my authorization.

They don't need your authorization, they only need to have once seen your private-keys. That gives them complete control for all time over any funds subsequently arriving at addresses associated with your private-keys.

As an example, many online-wallets (also called web-wallets or hosted-wallets) give control of your private keys to employees of the hosting service and to anyone who hacks that service. So any dishonest ex-employee might be able to empty your wallet. This sort of thing happens with depressing regularity.

First off, people can't steal your bitcoIN unless your address is compromised or used an unsafe online wallet.

If you sent the address, you will unlikely to know who it is but u can lookup the transaction for it


How to extract maximum value from a 51% attack If an attacker were to gain 51% of the network, they can essentially forge arbitrary transactions double spend. But that would quickly lead to a completely loss of trust in bitcoin. In fact, that would probably happen as soon as someone was suspected of having a majority.

What strategies could a majority-attacker use to extract maximum value? What could they do without detection?

If an attacker were to gain 51% of the network, they can essentially forge arbitrary transactions.

With control over a majority of hash rate (either directly, or by using something like selfish mining to incentivize other miners to follow your policies), you can only forge arbitrary transactions for SPV clients.

For full nodes, you can only change your own confirmed payments, or (if you go more than 100 blocks back) eliminate any transactions from the chain which descend from recent coinbase (generation) transactions.

  In fact, that [a completely loss of trust in Bitcoin] would probably happen as soon as someone was suspected of having a majority.

This contradicts history, as Ghash.io exceeded 51% in 2014.  This was controversial, but did not seem to affect Bitcoin's exchange rate at the time nor did pool miners immediately leave the Ghash.io pool.

  What strategies could a majority-attacker use to extract maximum value? What could they do without detection?

Again, I think we can look at history for a useful example.  Before Ghash.io obtained it's 51% majority, back when it had about 35%, it used double spends to steal about $100,000 USD worth of bitcoin from gambling site Betcoin Dice.

The attack seems to have worked like this:

The attacker placed an on-chain bet.
If they won, they worked to confirm that transaction.
If the lost, they worked to confirmed an alternative version of the transaction that returned the money to themselves.

This effectively meant that the attacker won significantly more often than they should have by Betcoin Dice's probability expectations.

Back to your question, this was obviously not undetectable because I'm linking to a BitcoinTalk post about it---but it was something that didn't disrupt anyone outside of Betcoin Dice's operators, and it worried such a small part of the community that Ghash.io was later allowed to control a majority of hash rate despite this prior behavior.

(Note: Ghash.io claimed that the attackers had compromised them, and that the attack was not initiated by them even though it used their resources.  I don't think it matters either way: I think it's an import historical example of the dangers of centralized mining.)

The attack above worked on unconfirmed transactions, which Betcoin Dice foolishly accepted at the time, but with a large share of hash rate, the attack can be reasonably attempted against even confirmed transactions.

An attacker with 35% of hash rate has a high chance of being able to reverse a single-confirmed transaction; plenty high enough to tip most gambling games in their favor enough to extract a large amount of value over repeated attempts.  And reversing a single-confirmation from time to time can be somewhat hard to detect because one-block accidental forks (orphans/stale blocks) happen moderately often.

Nakamoto's Bitcoin paper says a 30% attacker can succeed at reversing 5 blocks 17.7% of the time, which is still plenty enough to give a reasonable edge in many low-margin online gambling games---although a 5-block fork would stand out in the stale block data.

The other attack a 51% miner, or even a 30% selfish miner, can perform is making stale any blocks the miner doesn't like.  This can allow them to ultimately extend their 30% or greater control to 100%, ensuring they profitably receive all block subsidies and transaction fees.

A clever miner performing this strategy would make themselves look like multiple pools all below the danger threshold and would slowly put their competition out of business by not making too many blocks stale at once.

Alternatively, I've heard it proposed that they could help advocate changing the system in ways that would allow them to put other miners out of business much faster, such as by raising mining's fixed costs in way that they could easily bear as a large miner but which their smaller competition could not.

If I had 51% of the Mining Power, I would not confirm any double-spend or otherwise fraudulent transactions.  Rather, I would do honest mining (collecting all fees and rewards) with one minor twist:

Even with 51% of the CPU power, other miners would find blocks fairly regularly.  But I could keep my blocks "secret" and only publish them as needed when other miners publish competing blocks.   My blocks would have more miners working off of them, which invalidates the work of other miners and their chains.  During the time that I keep my blocks secret, my miners would have a substantial headstart on mining future blocks.

From the perspective of Bitcoin Users, the system would still be trustworthy, but virtually 100% ALL fees and rewards would go to me, and other miners would go out of business.

I'd control the fee-basis, and gradually increase mining-fees.  As long as I maintained 51% of mining power, I could even downsize my mining-pool and save on electricity costs, while collecting bigger fees.


Locked out of my bitcoin core wallet In 2013 I transferred 5,02 BTC to my Bitcoin Core wallet.
My Bitcoin version v0.8.1.0-g34d62a8-beta QT is version 4.8.4

After the transfer I locked the wallet with a password, wrote the password down and now, after 4 years I wanted to send the bitcoins out but it tells me my password is wrong.

I tried several solutions I found on the internet, none of them worked. Do you know a solution? I use both windows and Linuxmint. The wallet was on a Linuxmint computer installed on an USB-stick.

Actually if he has the password he can use brute Force attack and gain access to the wallet if that didn't slove the problem he should use bip39-standalone input his passphrase get the key and import to another wallet


Why do nodes trust other nodes to approve their transactions? I know that the blockchain technology works so well, because everybody has basically a copy of the last ledger.
Therefore, if a transaction happens, everybody inside the network has to "approve" the transaction to do it.
These other participants are then seen as trusted sources.
However, what makes them into trusted sources? Let's say there are only three participants, two make a transaction and one has to decide if the transaction is acceptable or not (does the clearing). What makes him a trusted source?
Are these thoughts right or where am I wrong?
I appreciate your replies!

I know that the blockchain technologie works so well, because
  everybody has basically a copy of the last ledger.

Yes, every full bitcoin node has a copy of the blockchain (aka ledger).

  Therefore, if a transaction happens, everybody inside the network has
  to "approve" the transaction to do it.

Correct, every transaction is propagated to all bitcoin nodes and it is validated by each one of them. Some of those nodes also do mining and they will include this transaction to a block. If they mine the block successfully (before any others mine their blocks successfully) they propagate their block to all the other bitcoin nodes which validate the block and all the transactions within. Thus, transactions are validated a second time.

  These other participants are then seen as trusted sources.

  However, what makes them to trusted sources. Let`s say there are only
  three participants, two make a transaction and one has to decide if
  the transaction is ok or not(does the clearing). What makes him a
  trusted source?

No one is considered a trusted source. Bitcoin enables trustless transactions. If we have 1000 bitcoin nodes in the network and user A makes a transaction that sends some coins to user B all 1000 bitcoin nodes will validate the transaction. Then, when the mined block is propagated all 1000 nodes will validate it again. Note, that users A and B may or may not run a full bitcoin node themselves.

Hopefully, that clarifies things a bit.

First of all you need to understand that the use of Bitcoin is not controlled by anyone at all, therefor there is no way to check the integrity of anyone using the Bitcoin technology.
With that in mind one should always be cautious when making transactions.
People who make a lot of transactions succesfully are considered trustworthy (technically) but there is always a chance this will change.
It's actually the same as in real life, like when you mail-order something you rely on trust. The more people order from the same company the higher the trust will be but as with Bitcoin, that trust can be broken for many reasons.
The time we live in is truly a sick period in mankind's history. So many people try to scam each other any which way they can including governments, banks etc.
So in short : you can not trust anyone 100%, so forget about trust and be cautious when sending large amounts of bitcoins. If you need to make a big transaction to someone you don't know you should try and find some transaction history of that person. You could check the blockchain info for that persons transactions to get a more accurate estimate on how trustworthy that person might be.
I hope this answer clarified your questions.


I set my transaction fee too low 2 months ago and blockchain says "transaction invalid", will I get my coins back? About 2 months ago I sent BTC from my Mycelium wallet to an XMR exchange, however I set the transaction fee too low so it never got any confirmations. I found the transaction on blockchain.info and it would start off saying unconfirmed, then after some time it would say "Transaction invalid: some outputs that it attempts to spend have been already spent or are no longer valid" (although I have done nothing else with the bitcoin), then sometimes when I checked the transaction on Mycelium every few days it would rebroadcast and the same cycle would happen.
After 3-4 weeks I let the transaction rebroadcast once more and then deleted the transaction from Mycelium, so it would not rebroadcast anymore - I was hoping that after couple weeks the transaction would drop from the mempool and I would be refunded the coins. However this was now over 4 weeks ago and there is still no sign of the coins coming back. What should I do? Should I just wait it out and they will be guaranteed to come back eventually, or is there some action I should take?
Here is the transaction on blockchain: https://www.blockchain.com/btc/tx/4367ed782f5347ec5184b597d38267ccd117c0705b419bda5911d3a199df3483

Contact the person you sent it to sometimes they can speed up a transaction. Like when i sent a small amount of btc to localbitcoins in 2017, the can see the transaction and somehow point their miners specifically at that transaction. Maybe i don't recall correctly.but it took like two weeks and that was a long time then. Sounds like it's getting far worse. Probably will continue to get worse and worse. Bitcoin could be completely obsolete in another 3 to 6 years because it will be so slow.
I think the only thing you can do is wait. There's no centralized regulations that you can complain to. Very to hear that. Next time increase the transaction fee. The fees are godawful and are ruining crypto.


How do I spend bitcoins from multiple wallets in a single transaction? Using, e.g., the Bitcoin Core command line, how could I spend bitcoins from multiple wallets in a single transaction?

This comment says:

  instead of sending the transaction to the network, you send it to the next person who will add their inputs and outputs and sign them as well, and so on. The last person would then broadcast the transaction on the network.

I assume I use createrawtransaction and signrawtransaction somehow, but how exactly do I actually do this?

cf. Mastering Bitcoin (1st ed.), §"Using Bitcoin Core’s JSON-RPC API from the Command Line", §§"Creating, Signing, and Submitting Transactions Based on Unspent Outputs"

There are currently three different ways to do this: raw transactions, PSBT in 0.17, and PSBT in 0.18. I recommend that you use PSBT in 0.18 as it is the least hassle, but I will describe all three here for you.

Traditionally, you would do this with createrawtransaction, fundrawtransaction, and signrawtransactionwithkey/signrawtransactionwithwallet. One person would have to know all of the inputs that were being used in the transaction or have all of those stored in their wallet (i.e. they have imported everyone else's public keys and/or redeemScripts into their wallet) and then they can use createrawtransaction or fundrawtransaction to create the raw transaction.

createrawtransaction just takes inputs and outputs that are specified by the user and gives the resulting transaction as is (so you need to be careful about fees and change). fundrawtransaction can choose the inputs to use for you using your wallet and it will handle fees and change outputs itself. However fundrawtransaction needs to know all of the information necessary to construct the final transaction (except for the private key, it can just use a dummy signature) in order to correctly estimate the transaction fees, which is why you need to import the public keys and scripts into your wallet.

Once you have the raw transaction, you then send it to each of the other people involved in the transaction. They then sign it using signrawtransactionwithwallet (if the keys and scripts are in their wallet) or signrawtransactionwithkey (if their keys and scripts are not in their wallet). Most people will use signrawtransactionwithwallet. They then send the result back to you where you have to combine all of the signed transactions into the final transaction using combinerawtransaction. Then you can broadcast it with sendrawtransaction.

Instead of sending the transactions out to everyone to sign at the same time, you could send to one person who signs, who then sends to the next person and so on. This would not require combinerawtransaction. The last person would sign and then use sendrawtransaction to broadcast.

This process is kind of bulky and requires that one person knows some (or all) of the information for the inputs being used (except for the private keys).

Since Bitcoin Core 0.17, you can use the various *psbt RPCs to achieve the same thing. With 0.17, the flow is fairly similar to the the raw transaction flow described earlier. You would have to have all of the information for creating the final transaction in your wallet (except for private keys) so that fee estimation can be properly done for coin selection, or you need to know which inputs to use. Either way, you use walletcreatefundedpsbt and specify the inputs you want and the outputs you want. Bitcoin Core will then automatically choose additional inputs if there is not enough to cover the output amount and create a change output for you. Because it needs to also conver transaction fees, it needs to have the same information that you need for fundrawtransaction to be able to estimate fees for the inputs it chooses.

Then you would send the transaction to everyone else who would add their signatures (and other metadata) using walletprocesspsbt. You can also do walletprocesspsbt first before sending the transaction to everyone so that various metadata needed for signing (like the UTXO that is being spent for each input) is added beforehand. Once signed, everyone would send the transaction back to you and you combine them together using combinepsbts Then you create the final transaction for broadcast using finalizepsbt and send the result using sendrawtransaction.

Of course using PSBTs you can do the same thing described above where each person sends the transaction to the next person to be signed instead of sending back to you to be combined.

Again, this process is kind of bulky and requires that one person knows some (or all) of information for the inputs being used (except for the private keys). But it is slightly less likely to result in an error than the raw transaction method. PSBTs also allows you to use other non-Bitcoin Core wallets that support PSBT, and you can use this method with wallets which are not connected to the internet or otherwise do not have the blockchain or the UTXOs that are being spent in the transaction.

However, Bitcoin Core 0.18 actually makes this whole process a lot easier. Bitcoin Core 0.18 introduces a couple of new *psbt RPCs which make it so that one person does not need to know all of the inputs being used and all of the information for each input. The only caveat is that this method assumes that each person has their own outputs that they want to create instead of multiple people pooling together their Bitcoin to make one large output.

With 0.18, everyone would create their own PSBT using walletcreatefundedpsbt. They specify any of their own inputs that they want to use and all of their outputs. Any change outputs will be added, and additional inputs from the wallet will be added to cover the output amount and transaction fee if not enough were specified by the user. Since every user does this with their own wallet, no one person needs to know anything about what the other users have in their wallets.

Then each person would send the PSBT to a designated coordinator who uses joinpsbts to join every PSBT into one large PSBT. This PSBT will have all of the inputs and outputs that each person wants to spend and create. So instead of having many individual PSBTs with their own inputs and outputs, there is now one large PSBT with everyone's inputs and outputs.

This PSBT is then sent back to each person who uses walletprocesspsbt to update the PSBT and add their input information to the PSBT and signs it. Even if a user has an airgapped setup where their private keys are somewhere that does not have access to the blockchain, they can update the PSBT from an online watching only wallet and send the PSBT to the offline machine to be signed.

Once everyone has signed the PSBT, it is sent back to the coordinator who uses combinepsbt to combine all of the signatures and input information into the same PSBT, then creates the final network transaction using finalizepsbt and broadcasts it using sendrawtransaction.

Again, this can be done serially like the other methods described earlier and thus omit the need for combinepsbt.

I haven't checked the Bitcoin-core command when it comes to Withdraw all balances from all wallets in a single transaction - But I do know is the structure and the flow of it, I assume it's the same (THIS IS NOT THE ANSWER, THIS IS ONLY A LOGICAL FLOW) :

/api/v2/withdraw_from_addresses/?api_key=API KEY&from_addresses=ADDRESS1,ADDRESS2,...&to_addresses=ADDRESS1,ADDRESS2,...&amounts=AMOUNT1,AMOUNT2,...&pin=SECRET PIN

Code is from block.io


How do you sweep a paper wallet with Bitcoin-Qt? Sweeping involves importing a private key, then sending it's entire balance to a new address in your wallet via a new transaction.  This would protect your paper wallet's bitcoins from being stolen if someone else ever had access to your paper wallet, or obtains access to your paper wallet in the future.

I'd love to know all the nitty-gritty steps involved with Bitcoin-Qt.

Unlock your wallet
Run Import Command in Debug Window
Sweep to another key

https://en.bitcoin.it/wiki/Help:How_to_import_private_keys_in_Bitcoin_Core_0.7%2B

Tools needed: camera in your PC + qr code reader.
But of course you can find the private key value with classical mathematics ;)

This isn't a feature that's supported or encouraged with Bitcoin Core.


Deterministic Wallet Step By Step I'm reading about deterministic wallets, I get the point, but it get's confusing when you actually start setting up things. I have to install support for generating "whatever"-coin addresses on a server. Where do I start, how should it be done? People are talking about importing keys from a seed. OK great but again, how? People talk about using different wallets. Should I use one of the existing wallets? How can I create my own wallet? Is there a console-based step by step tutorial that you can apply to any crypto-coin network/wallet?

Currently I use bitcoind for communicating with bitcoin network. It's the only good-enough documented piece of code. Thanks for your help!

If you know Python, pycoin might be a good place to start for a hd wallet implementation.


Could bitcoin be destroyed if an entity cornered the market? I know the US Government is opposed to competing currencies.  It seems that it would be a rather simple solution for them to destroy Bitcoin before it grows too much by merely buying all the currency, which would be rather feasible given today's market cap of $80M (as of July 2012), and never selling.

The exchange rate at any one point in time is determined by supply and demand at the markets.

The value of all bitcoins at the current market price is $80 million because the current market price is the point where the demand for bitcoins at a certain price meets the supply.  You are describing introducing an artificial demand that would indeed cause incredible rallies in the exchange rate and cause tremendous exchange rate volatility

While some people cash out in a rally, others are buying.  This government taking this action would be enriching speculators mostly -- certainly not the best use of the governed's tax dollars.

Even in a hypothetical scenario where this party you describe were somehow able to acquire 9.49 of the 9.5 million coins issued today, there are just about 11 million more that will be issued, so this entity would need to continue buying.  But even with just 10,000 coins remember that Bitcoin is divisible down to a Satoshi (0.0000001 BTC).  That 10K BTC gives 1,000,000,000,000 Satoshi trading units.  That allows plenty enough time to get an update out that provides for even greater divisibility.

Of course, the risk then is that those 9.49 million coins are not destroyed but find their way back onto the market, creating again huge volatility and price inflation.  That can technically be done, yes.

I don't think too many speculators are losing even a wink of sleep over it though.

It is unrealistic to assume that one entity such as the US Government would actually care enough about Bitcoin to drive it to the ground. Hypothetically, yes, one could destabilize it. But the developers would likely add preventative measures to stop this from happening.


Which Two-factor authentication methods are available at which exchanges? I see that Mt. Gox now supports the Google Authenticator app (on Android, iOS - iPhone, iPad, iPod Touch, and on Blackberry) for 2-factor authentication (in addition to support for Yubikey, of course).

What are all the various 2-factor (also referred to as multi-factor) methods available for Bitcoin-related sites (exchanges, eWallets, mining pools, other services, etc.)?

Bitcoin Currency Exchanges:

Mt. Gox: OTP using YubiKey or Google Authenticator

Options: [On Login] | [For WIthdrawals] | [For Changes To Security]

Camp BX: OTP/Google Authenticator
Bitstamp: OTP/Google Authenticator
Bitcoin-24: OTP using Google Authenticator and for withdrawal SMS messaging
Bitcoin-otc: GPG authentication with gribble bot
BitMarket.eu: OTP/Google Authenticator
Coinbase - OTP/Authy or OTP/Google Authenticator
FYB-SG (Singapore) - OTP/Google Authenticator
VirWoX - OTP/Google Authenticator
WeExchange.co - OTP/Google Authenticator
BTC-E - OTP/Google Authenticator
Local Bitcoins - OTP/Google Authenticator
bitcoin.de - OTP/Google Authenticator or Yubikey (but not Mt. Gox Yubikey)

Other Exchanges:

MPEx: GPG authentication
ICBit.se: OTP/Google Authenticator
BTC Trading Corp (BTC-TC): OTP/Google Authenticator or YubiKey
BitFunder: OTP/Google Authenticator

Other Services:

BitPay: OTP/Google Authenticator

EWallets:

Blockchain.info/wallet - Google Authenticator, e-mail verification, SMS, and YubiKey (but not Mt. Gox YubiKey).
WalletBit - SecureCard (or perhaps OTP/Google Auth has been added now?)
Coinbase - SMS text messaging-based two-factor, Authy (Android/iOS app similar to Google's)
Paytunia - OTP/Google Authenticator or Yubikey (but not Mt. Gox Yubikey)
bitZino - OTP/Google Authenticator
Just-Dice - OTP/Google Authenticator

Mining Pools:

MaxBTC - Yubikey and Google Authenticator
EclipseMC - Supports Yubi/GA OTP

They use 2 Factor ID at ZIGGAP which I found to be one of the best new exchanges out there.


Does any exchange site let me automatically sell Bitcoin to USDT (or USD) right after I receive it? I want to sell Bitcoin automatically and immediately after I receive it.

Is there any exchange site has this feature?

You can use one of the Bitcoin exchanges and using their API, create something with the following logic:
while True:
    current_balance = get_balance("BTC")
    if  current_balance > 0:
        crypto_exchange.sell_market_order(current_balance)
        print("Sold %s" % current_balance)
        break
    else:
        time.sleep(60)

This would automatically sell your crypto as soon as its confirmed as an active balance on the exchange and it would "hedge" your crypto exposure in the process.

Yeah.. there are a lot of websites that allow you to sell Bitcoin for USD.

Here are a few:

https://gemini.com
https://coinbase.com
https://localbitcoins.com
https://xcoins.io


How can I use bitcoin testnet in coinbase php I'm using coinbase wallet for bitcoin transactions. Is there any option to use testnet for transactions testing purpose in coinbase?

Any suggestions will helpful.

Yes, Coinbase now supports using the Testnet.

No Coin Base does not provide testing account

https://sandbox.coinbase.com/ previously they provide testing environment but now they don't provide. We need to test with main-network only.For that we need real cryptos.


convert private key to bitcoin address using python or php I have private key like this 5JYJWrRd7sbqEzL9KR9dYTGrxyLqZEhPtnCtcvhC5t8ZvWgS9iC how to convert to bicoin address using python or php?

example bitcoin address
18V7u8YNHKwG944TCkzYYj32hb6fdFPvQf

I think this video will explain it in details (python):
https://youtu.be/tX-XokHf_nI

Using the code from video, pip packages ecdsa , hashlib and base58:

import ecdsa
import hashlib
import base58

# WIF to private key by https://en.bitcoin.it/wiki/Wallet_import_format
Private_key = base58.b58decode_check("5JYJWrRd7sbqEzL9KR9dYTGrxyLqZEhPtnCtcvhC5t8ZvWgS9iC")
Private_key = Private_key[1:]

# Private key to public key (ecdsa transformation)
signing_key = ecdsa.SigningKey.from_string(Private_key, curve = ecdsa.SECP256k1)
verifying_key = signing_key.get_verifying_key()
public_key = bytes.fromhex("04") + verifying_key.to_string()

# hash sha 256 of pubkey
sha256_1 = hashlib.sha256(public_key)

# hash ripemd of sha of pubkey
ripemd160 = hashlib.new("ripemd160")
ripemd160.update(sha256_1.digest())

# checksum
hashed_public_key = bytes.fromhex("00") + ripemd160.digest()
checksum_full = hashlib.sha256(hashlib.sha256(hashed_public_key).digest()).digest()
checksum = checksum_full[:4]
bin_addr = hashed_public_key + checksum

# encode address to base58 and print
result_address = base58.b58encode(bin_addr)
print ("Bitcoin address {}".format(result_address))

I don't do a lot of work in python but I thought I'd take a stab at this question to discover how easy it is for a new developer entering the space to compute a simple thing like an address.

The first thing I noticed is that, although there are a lot of search results for Bitcoin Python packages, it's very difficult to evaluate if any of them are legit or written by well-known developers. The most popular Bitcoin package it seems is one written by Vitalik and deprecated many years ago.

I decided to go another route: Electrum.

Electrum is an extremely popular wallet with excellent support and I have personally met the developers. The codebase is on github, is well maintained, and well reviewed. I happen to know it's written in python.

After cloning and installing the repo: https://github.com/spesmilo/electrum/

The answer to your question takes two lines:

$ cd electrum
$ python3

Python 3.7.6 (default, Dec 30 2019, 19:38:28)
[Clang 11.0.0 (clang-1100.0.33.16)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> from electrum import bitcoin
>>> bitcoin.address_from_private_key('5JYJWrRd7sbqEzL9KR9dYTGrxyLqZEhPtnCtcvhC5t8ZvWgS9iC')
'1AsSgrcaWWTdmJBufJiGWB87dmwUf2PLMZ'

As a sanity check, I re-ran the computation using bcoin (A Javascript Bitcoin library) which I'm more familiar with:

$ node

Welcome to Node.js v12.13.0.
Type ".help" for more information.

> const bcoin=require('bcoin')
undefined

> bcoin.KeyRing.fromSecret('5JYJWrRd7sbqEzL9KR9dYTGrxyLqZEhPtnCtcvhC5t8ZvWgS9iC')
{
  witness: false,
  nested: false,
  publicKey: '04fb95541bf75e809625f860758a1bc38ac3c1cf120d899096194b94a5e700e891c7b6277d32c52266ab94af215556316e31a9acde79a8b39643c6887544fdf58c',
  script: null,
  program: null,
  type: 'pubkeyhash',
  address: '1AsSgrcaWWTdmJBufJiGWB87dmwUf2PLMZ'
}


How can Auroracoin be the 4th crypto-coin by market cap if it's unreleased yet? Auroracoin has become the 4th biggest crypto-currency measured in market capitalization. How can an as-yet unreleased coin have market value if it's not available for exchange (either for fiat or for another crypto-coin) anywhere??? In fact, save for the storage accounts of its creator, noone has an Auroracoin yet. So whence comes its valuation and thus its market cap???

As much as I admire the stated intentions of Auroracoin's creators and their ingenuity for turning stuff traditionally seen as BAD (premining, universal and compulsory registration for all citizens) into GOOD, this market cap point makes me a bit suspicious.

Turns out I was wrong. It is mineable right away and it is actively being traded in different exchanges, as cryptorush.in and cryptsy. What hasn't happened yet is the release of the pre-mined coins (50% of final amount), which will be given to Icelandic citizens.

Too bad the official page isn't clear about this (info on pools and exchanges is a bit hidden in the forums), nor does it list anywhere a list of exchanges dealing with it or pools for mining it - the cryptocointalk page linked first states all that.

The Aurora coin has been released, and can be mined, however even if this where not the case, And the coin had not yet been released the simple fact that the Government of Iceland  are backing it and the 50% pre-mine could account for this capitalization.


Justification of usage of Blockchain by banks After learning a bit about Bitcoin and Blockchain Technology, I do not understand how any bank is going to use it.

My understanding is that the blockchain is useful in an environment of mistrust. In a closed system, like a bank, different nodes would be wasting computation if they used a blockchain with Proof-of-Work. If they just use the hash of previous blocks to verify the blockchain is never tempered with, without Proof-of-Work, can't any normal database do it much more time efficiently in a closed system (where all nodes belong to bank)?

What are the essential requirements for a problem to justify using the blockchain with and without Proof-of-Work?

Blockchains are best used when there are multiple entities that don't necessarily trust each other. So within one bank, a blockchain really isn't useful. However between bank transfers could use the blockchain. Right now, in order to send between banks, banks use centralized systems (ACH, SWIFT, etc) operated by a third party. With federated blockchains, they can remove most of that third party's involvement and thus save on fees and time. That's really the only good use case for banks using blockchains that I have heard of.

After learning a bit about Bitcoin and Blockchain Technology,
  I do not understand how any bank is going to use it.

Blockchain and Bitcoin are modern financial pyramide schemes. Point. Why can not banks take part in it?


Have there been cases of traditional money theft from Bitcoin exchanges? There have been a number of cases of thefts or losses of Bitcoins from a few Bitocoin exchanges, but has there ever been a case of traditional currency being stolen or lost by an exchange?

This much less likely for a number of reasons:

Banks have advanced, robust and well-tested anti-fraud infrastructure, making such thefts much more likely to be detected.
Legally it is much much easier to prosecute for fraud cases in fiat than BTC (I do not know any prosecution over stolen Bitcoins)
Fiat transactions are reversible meaning the exchange could easily get its money back
Bitcoins are much easier to launder, so thieves are less likely to get caught

Sure. Payments in traditional currencies are fraudulently made and/or fraudulently reversed all the time.
This is effectively theft of that currency from the exchange.


Energy cost of bitcoin vs physical currency? The bitcoin mining infrastructure uses a certain amount of energy and processing power to operate.
The resource usage is often cited as part of arguments critical of bitcoin.
But relatively speaking how much more resources does bitcoin mining take compared to physical currency?
No body really talks about all the resources that it takes to use physical currency.

The money first has to be produced in a mint.  That mint and the machines in it had to be built.  These are all of course specialty machines and are probably very expensive.  The building and machines require energy to operate.  They all need to be maintained.  And people need to be employed to do all those things.

Money is typically stored in banks.  There are thousands of bank locations in the world.  They all needed to be constructed.  And those buildings all require resources and people to operate.

Physical currency must actually be moved.  Moving any significant amount of physical currency requires security.  A large store typically has to hire an armored car to transport money from their safe to the bank.  An entire niche industry needs to exist to produce those vehicles.  Security workers need to be employed to operate them and protect the money.

Money must be stored.  Millions of safes/vaults were built so individuals, businesses, and banks can store their money.  In general there is a lot of resources spent on securing physical currency.

The most extensive research on this topic is:"An Order-of-Magnitude Estimate of the Relative Sustainability of the Bitcoin Network" by Hass McCook
among others, it cover specific topic as the economic and environmental cost of cash printing & coin minting, banking system, gold mining & recycling etc ...
The results of the research are summarized in the tables below.

take in mind that these data are from 2014, so Bitcoin cost of production and consumption are actually much higher.

These are the estimation about miners efficiency at the time, when the network hashrate was 130 Phash/s and the most efficient miner was Antminer S3 with 0.766 w/Ghash:

I redid the calculations using current hashrate of 186 Ehash/s, an efficiency of miners ranging from 0.1 w/Gh of Antminer S9 to S19 0.03 w/Gh and keeping all other assumptions the same, these are the results:

About 70/80 times more consumption than was in 2014 (depending on which energy efficiency you pick as network average). Certainly the costs of the other activities (banking, mining, minting) have also increased, but not in this size.
Although the research in question is detailed, the author was honest in saying that the data is not an accurate representation of reality, but an estimate of its order of magnitude.

I personally think the whole consumption argument is ignorant. it is not like anyone here plans to not consume energy, so as a whole the world is going to naturally consume more energy as we grow, the block chains energy is all energy that more or less would be there and consumed no matter what, though if we switch to a system that lives off energy consumption, wouldn't that then make energy a commodity and eventually lead to people being priced out of electricity?  hmmmm...


Litecoin litecore-lib receive UTXO and current balance I have coded NodeJS script for bitcoin for send all balance from by address to some other one. Now I want to do this for the litecoin. For bitcoin I have used bitcore-lib and bitcore-explorers libs to do that.

For litecoin I have found forked and adopted lib litecore-lib, but I can't found solution to receive UTXO data for some LTC address like I do it in case of bitcoin:

var Insight = require("bitcore-explorers").Insight;
var insight = new Insight(network);
insight.getUnspentUtxos(sourceAddress, function (error, utxos) {
    // determine balance, fee and sign transaction
}

How can I do this for litecoin? Thanks!

I used the request library to manually retrieve information from the insight API. I also used the litecore-lib library to create the transaction.

var Litecoin = require("litecore-lib");
var request = require("request");

//manually hit an insight api to retrieve utxos of address
function getUTXOs(address) {
  return new Promise((resolve, reject) => {
    request({
      uri: 'https://insight.litecore.io/api/addr/' + address + '/utxo',
      json: true
    },
      (error, response, body) => {
        if(error) reject(error);
        resolve(body)
      }
    )
  })
}

//manually hit an insight api to broadcast your tx
function broadcastTX(rawtx) {
  return new Promise((resolve, reject) => {
    request({
      uri: 'https://insight.litecore.io/tx/send',
      method: 'POST',
      json: {
        rawtx
      }
    },
      (error, response, body) => {
        if(error) reject(error);
        resolve(body.txid)
      }
    )
  })
}

//your private key and address here
var privateKey = PrivateKey.fromWIF('YOUR_PRIVATE_KEY_HERE');
var address = privateKey.toPublicKey().toAddress();

getUTXOs(address)
  .then((utxos) => {

    let balance = 0;
    for (var i = 0; i < utxos.length; i++) {
      balance +=utxos[i]['satoshis'];
    } //add up the balance in satoshi format from all utxos

    var fee = 1500; //fee for the tx
    var tx = new Litecoin.Transaction() //use litecore-lib to create a transaction
      .from(utxos)
      .to('TO_ADDRESS', balance - fee) //note: you are sending all your balance AKA sweeping
      .fee(fee)
      .sign(privateKey)
      .serialize();

    return broadcastTX(tx) //broadcast the serialized tx
  })
  .then((result) => {
    console.log(result) // txid
  })
  .catch((error) => {
    throw error;
  })

Cheers!

Here is the module what you may require
https://www.npmjs.com/package/litecore-explorers


E-commerce invoice in USD & receive payment in Bitcoin Is there an e-commerce plug-in or payment processing platform that facilitates the sequence detailed below?

Merchant accepts customer's online order
Customer's credit card is charged accordingly
The dollar amount of credit card charge is:

Converted into bitcoin; *or*
Used to purchase the equivalent amount of bitcoins;

Value of customer's order (in bitcoin) posts to Merchant account
The customer receives the invoice in USD

Coinvoice lets you invoice in USD and get paid in bitcoin. Sorry if you need the exact workflow described above. I'm not aware of many services that sell bitcoin and take credit card for payment.

Lamium is a first decentralized bitcoin invoice payment service which allows you:

Merchant accepts customer's online order
Customer's credit card is charged accordingly
The dollar amount of credit card charge is converted into bit coin
The charge is used to purchase the equivalent in bit coins
Value of customer's order (in bit coin) posts to Merchant account
Customer receives invoice in USD


how to send money using json-rpc in bitcoin-cli for php? $bitcoin->sendfrom($this->session->userdata('account'), $_POST['address'], number_format($_POST['amount'], 8));

but this isn't working. i got everything via json-rpc. but can't send or move money using  json-rpc. what is the problem?

The suggested library for Bitcoin JSON-RPC via PHP is the EasyBitcoin-PHP library. Source

Here's a simple example:

<?php
require("easybitcoin.php");

//authenticate
$bitcoin = new Bitcoin("RPCusername", "RPCpassword");

//execute ternary command
$send = $bitcoin->sendtoaddress("1SomeBitcoinAddy", 1);
echo $send ? $send : "Oops an error: ".$bitcoin->error;
?>

The first argument for sendtoaddress() is the address you want to send funds to, the second is the amount in whole bitcoins.

if(number_format($_POST['amount'], 8)>.00009){

$amount=number_format($_POST['amount'], 8);

$bitcoin->sendfrom($this->session->userdata('account'), $_POST['address'], (float)$amount);

}
else{

echo "Tumbling is not possible vai php";

}


What is vanity address? I saw lot of questions about vanity addresses, but not sure what is vanity address. Could someone please explain?

thanks.

It is the same thing as a vanity plate which are used for cars. That is: An address which you choose yourself (or at least part of it). For example the address of Bitcoin24 is 1BTC24yVKQdQNAa4vX71xLUC5A8Za7Rr71 (watch the first six characters!).

See this question How can I generate a vanity Bitcoin address?

The first Google hit for vanity address for me is https://en.bitcoin.it/wiki/Vanitygen.

  If you're tired of the random, cryptic addresses generated by regular bitcoin clients, you can use vanitygen to create a more personalized address.


What happens if a miner receives a block but not its previous? Suppose the following:

A miner has stored the current blockchain A-B-C.
It stops listening for blocks during some time.
During that time, blocks D and E are mined and broadcasted.
The miner reconnects and immediately listens to the block E, before even knowing about D.

Will the miner simply ignore that block? And, how will the miner update to A-B-C-D-E (step by step)?

Will the miner simply ignore that block?

Yes, the block will be just ignored by the miner.

  how will the miner update to A-B-C-D-E (step by step)?

When the miner's node gets online and start connecting to peers, it will start a “handshake” by transmitting a version message, which contains all basic identifying information, including BestHeight (the blockchain height of the node). Since v0.10, the nodes sync with 'headers-first'. This means that the nodes when restarted first ask peers for block headers and validate those. The getheaders message requests a headers message that provides block headers starting from a particular point in the blockchain. The connected peers will respond with a headers message that sends block headers to the node which requested certain headers with a getheaders message. The disconnected miner's node will then verify the difficulty until the tip. This allows a peer which has been disconnected to get the headers it hasn’t seen yet.

In a second stage, when the headers have been discovered, the node can then download the blocks. However, as the node already know about the whole chain in advance due to the block headers it has received, the blocks can be downloaded in parallel from all available peers. These blocks are received through getdata requests.

The above process describes the syncing of node when it was disconnected for some time. To make the answer more complete, I'll expand a bit further as to how new transactions and blocks are broadcasted. Nodes unsolicitedly transmits inv message (inventory message) containing one or more inventories of objects known to the transmitting peer. It can be sent to announce new transactions or blocks. The receiving peer can then compare the inventories from an inv message against the inventories it has already seen, and then use a follow-up getdata message to request unseen objects.

Blockchain is built to have each block linked to the previous, as a result of; the hash in C has every information from B to duplicate that of C to D and D to E. To update the blockchain, care fully compare the time stamp and the information recorded in the Block E. Any discrepancies in Timestamp or recorded transaction would mean a tamper. The system won’t recognize such transaction.


How can one earn some Bitcoins with minimal skill requirements? This issue came up during a chat on this answer to a question asked by a new Bitcoin user.

Lets say I am new to Bitcoin and don't want to go through the hassle of exchanging money for coins quite yet. I don't have much of marketable skills, so I can't offer my services. How then can I earn some Bitcoins with minimal skill requirements, without any long-term commitment or investment of any type?

The most popular way to earn a bit of Bitcoins without any much skill is mining. The amount of coins one could earn is pretty small even with higher-end graphic cards, but through the use of mining pools and alt-coin mining one could get a small start in the Bitcoin world.

A website that offers small Bitcoin rewards for mechanical-turk-esque small tasks is CoinWorker. The skill requirement is minimal and the service provides value to people paying for the task.

I have tried mining but found out that the electricity used by your pc cost you more then the bitcoins you can get this way,so it is not  worth it unless you invest in some very specific hardware and have the patience and time to see your bath tub get filled a drop at the time


Is 18 TH/s Enough to Start My Own Pool? I'm thinking of developing a mining pool for myself and close friends.  I realize that there are large pools like BTC Guild, Slush, etc. that we could join, but I like the idea of creating my own.

I'm taking delivery of 6 Neptune miners from KnC in Q2 that will give me 18 TH/s.  I know that's not a great deal, but it's a start...and my friends will add their own computing power as well.

To be honest, I'm not a "technical" kinda guy; I'm a business man.  So here's my question(s):

1) How would I go about developing a pool and handle automatic payouts?
2) How could I create a dashboard that allows my friends (and maybe one day the public) to see their mining activity?

I appreciate and look forward to your responses.

Setting up a mining pool will require some programming, so based on your self-identification as a business man, I would suggest to start with asking yourself how much this will be worth to you. Many would say that running a bitcoin pool is likely a bit of an altruistic endeavour: If you want to attract people to join your pool, you are competing with others. This competition drives pool payouts close to 100% payout of block reward plus earned transaction fees plus free insurance against the stochastic nature of actually finding a block, and possibly against the pool making a mistake such as losing bitcoin temporarily stored for participants.

However, if you are a business man through and through, there might yet be a profit motive to be found: Successfully running a pool certainly will gain you credentials in the bitcoin world, which could be valuable for doing other bitcoin business. Then hypothetically having a large pool could help in offering future services like enabling bitcoin businesses to more quickly accept bitcoin payments by insuring against double spending. Finally, I have been wondering about pairing a mining pool with a bingo-like gambling element, where customers could bet on when the pool will next find a block (for the combined effect of extra revenue and helping to insure the pool operator against not finding a block for a prolonged time). Note that both the payment insurance and the gambling idea is likely to raise legal issues and may be expensive to start in a law-abiding way due to legal/licensing overhead.

Whether running a pool is worth it to you depends on the value you attach to all of that. To help you make an estimate, consider that with your hashrate of 18 TH/s you'd contribute 0.15% of the total hashrate today (and less tomorrow), see e.g. the stats page bitcoincharts.com/bitcoin. That means you need to wait, on average, about 670 blocks or approximately five days until you find a block, with actual values fluctuating wildly according to the Poisson distribution, provided none of your miners maliciously cheats and withholds blocks found. Hence you will either need tremendous tolerance about actual block rewards and payouts possibly diverging purely by chance, or more hash power. Or a vain or altruistic outlook on this project, or a side business associated with running the mining pool.

Well im looking for the answer myself,    however the calculations  don't seem to promising ,  here is what i have

bitman power is  465.81 PH/s  (460000000000000)
my power atm is 4.5 TH    (4500000000)

4500000000 / 460000000000000 = 102222.22
102222.22 X more powerful than me

there average mine is 1 hour  ...  and what they do in an hour would take me 4259.26 Days

If my calculations are correct..

but they have mined some blocks in 4 mins,  which should take me 284 days
i cant see how we can actually mine a block with these statistics...


If I were to generate an address and it happens to collide, legally speaking, would a transfer constitute theft? Let's say that somehow I generate a new address which happens to already be "taken". I realize the chances of address collision are extraordinarily low as per Is it possible to brute force bitcoin address creation in order to steal money?, but let's just say that it happens.

For argument's sake, let's say I land on 1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF (currently carrying a balance of about 80,000 BTC).

If I were to then sign a transfer to another address, would I be doing anything wrong or illegal? I think it'd be immoral, but does it constitute any legal wrongdoing?

I don't think this is quite like finding an ATM card and guessing the PIN, but more like walking into a Swiss bank, guessing a random account number and PIN, and walking out with whatever is in the safety deposit box, right? Is that "stealing" ?

IANAL.

What you describe is the act of taking something that isn't yours in full knowledge that somebody else invested effort and money to accumulate it.

Just as with your Swiss bank example: The rightful owner would be losing the funds that you misappropriated. Taking someone's property without their consent is theft.

I feel that this is independent of the way by which you gained access to the property, but rather derived from the intent of your action.

Perhaps more ambiguous would be scenarios where somebody receives a transaction to a key that you also control, or when you stumble on a key that has a Bitcoin balance that hasn't been moved for decades and could reasonably assumed to have been lost by the rightful owner.

The "owner" of address with balance is person who holds "Passphrase" and Private key!!! If you have private key and you don't have "Passphrase" for address private key in that case you're a Theft!


How much Bitcoin will I mine right now with hardware X? Say I have a given piece of hardware (CPU/GPU). Where can I find out how much Bitcoin will I mine per day?

Go to http://bitminter.com/test and click the "test start" button. If you have Java installed the miner should launch. Click "engine start" on your GPU(s) to start mining and the GUI will show how many bitcoins per day you will make (on average).

Note that you are actively mining in a pool without getting paid. This test page launches a version of the miner which is only meant to be used for a short time for testing.

Update for 2015: CPU and GPU mining are both long dead. When you buy ASIC mining hardware you will know its hashrate before you buy. Don't buy if you don't. Google "bitcoin mining calculator", input your hashrate, and it will tell you how much you can earn right now, on average. Note that the difficulty will change in the future so your earnings will not stay the same. Also note that with most pools actual earnings vary with luck. Finally, avoid the typical newbie mistake of confusing TH/s and GH/s. 1 TH/s = 1000 GH/s.

If you are interested in how your profitability will change as the network hashrate grows this calculator is the best IMO.

http://bitcoininsight.com/2013/04/05/bitcoin-mining-profitability-calculator/

Although you will have to make some guesses about how the network will grow, it should be more accurate than just a plain guess as to what the difficulty will be in X months time.


Why is sharding not possible with a distributed blockchain? Hi guys I've been reading a lot about the problem of scalability in crytocurrencies and how to run a full bitcoin node is not a possibility on a mobile device for example, as a result we become relient on centralised 'power nodes',

My question is: what is it about the datastructure which makes sharding the full blockchain across many lite devices not possible?

For example node 1 stores blocks 0-100, node 2 blocks 101-200, etc. A node wishing to verify some transaction can then just keep pinging nodes until they connect with a node which is storing the data they're interested in.

Apologies if this is a noob question, still got a lot of learning to do!

Your question is a little unclear as it only talks about storing, and not really about validating the entire blockchain. Storing is actually not the problem. Recent versions of Bitcoin Core support crude pruning and work is underway to make it more flexible.

However, to be truly trustless a full node still needs to download and validate the entire history of all blocks (even if deleting that history seconds later). This is what David Schwartz answer comes from: you need a complete history to know whether a transactions was NOT in it.

So in that regard pruning doesn't help mobile devices much.

My proposal made a couple of hours ago seems to address those issues. It involves keeping for each block a list of nodes that carry a copy of that block.


Can Ripple XRP be a good store of value with >50% ownership known? The fact that the vast majority of XRP ownership is known represents from my point of view the main threat to the value of the currency and the project itself.

Do Ripple founders and OpenCoin have any strategy in case authorities confiscate their XRP funds? Government could try to do that in order to stop Ripple development as it is done at the moment.

Would they liberate the code then so the open source community can take over its development?

If the company were to cease operations or break down in some way, the code would immediately become open source. At least one developer has that clause in their contract. If something were to happen to the company's store of XRP before the network is sufficiently distributed, at worst, the ledger would be reset. (We have contingency plans that mitigate damage, but they're not pretty.)

These are risks, and they're part of the reason that getting the network distributed and the server source code open is a high priority for us. It's not just a matter of trying to do the right thing, these are threats to OpenCoin and risk is a drag on adoption. So we want them gone as much as anyone else does.

Personally, I don't think XRP is a particularly good store of value now. It's not so much the risks you mentioned, because I think they're small. It's the unpredictability of the value of XRP due to market forces, widely variable speculation, and so on.

Yes the millions premined and owned buy a US company is a problem !

Yes the fact that it is not open source is a problem!

Also is it legal for a US company to issue debt money like that ?

What if the company is shutdown  ?

See also http://ripplescam.org/

Personaly I wouldnt touch that, even with a barge pole.


Which notable Bitcoin-related sites offer referral rewards? TradeHill used to offer a referral bonus when you got other people to sign up with your link, and there are a couple other sites that offer similar rewards for referrals. Which notable Bitcoin-related websites offer such rewards?

Between TradeHill, Bitcoin7 and a couple others the offering of affiliate rewards ended up spawning a spamfest.  Fortunately, TradeHill added terms and conditions that included no spamming and withheld commissions to spammers and the problem mostly went away.

Camp BX apparently is one that offers a referral.  10% discount on trading fees for them and 10% commission for you.
After login, click on "My Profile" (or https://campbx.com/in/userinfo.php )
then scroll down to Affiliate Program Link.

Others:

http://clients.microtronix-tech.com/aff.php

The MPEx securities exchange offers 5BTC reward if referral account is mentioned while creating new account. MPEx broker CoinBr.com has referral program, too.


What's more important GPU cores or GPU memory? I have been on the sidelines, watching on and off, looking to attempt mining a few coins. I have also looked at just buying coins, but found that's not so easy to do with anonnimity with all the verifications, ID requests and concern of identity theft from scams. Plus FIAT to Bitcoin can run as high as 20% in transaction fees at a bitcoin ATM....sheesh!

So... I'm looking at mining and attempting to decipher the current GPU hardware requirements by COIN TYPE in terms of hash rate, on card memory and other items like CPU cache and main system memory and even M.2 onboard storage/cache on the newer motherboards and if these have any effect at all on a GPU miner setup.

TOTALLY BRAIN FRIED TRYING TO SORT APPLES, ORANGES and LEMONS OF MIXED DATA.

How do you determine how much GPU core or MEMORY is the minimum needed to mine a specific coin. I'm sure there might be some instances where a lower hash rate card at a lower watt rating might do fine mining, just not as fast as the best of the breed. gpuboss,com has been great for card info, but not all the cards are listed, and some do not give details on power consumption, which when compared at today's crazy prices doesn't give the cost/profit/overhead details.

At this stage it's clear that only a few will continue to mine BITCOIN and ETHERIUM directly given the custom miner farms. Call me a bottom feeder or whatever, but I'm looking at using maybe some less popular cards, lower power cards and less frequented coins to mine and get into the game and migrate into more stable crypto coins to HOLD long term.

Suggestions on plotting the details or sites to follow?

Also some pooled mining does not appear to use all the GPU hash benchmarked from some cards, or at least it doesn't pay the total hash credits offered at that rate.

I would not bother buying new hardware to mine low rate. I suggest you try mining with your existing hw. You could try cpu-mining MAGI, it's easy to start with: https://bitcointalk.org/index.php?topic=735170.0

You won't strike it rich but its a nice mining start.

If you want bitcoins to use anonymous I suggest you find someone local to buy from with cash, or buy a prefilled creditcard and use that to buy coins.

Mining pools don't pay for your hw specs, they pay for the amount of work contributed.

Get a reality check. Answer is bitcoin only as this is a bitcoin place.

  Plus FIAT to Bitcoin can run as high as 20% in transaction fees at a bitcoin
  ATM....sheesh!

If you complain about 20% fees (which are ridiculously high) - how do you think you will fare with a GPU that is 100 times less efficient and similar or more slower than an asic CHIP? You will pay multiple TIMES the price of a coin in electricity. Your 20% ATM surcharge will look really small.

There is no choice of which GPU - you need an ASIC to be even in a way competitive that does not mean "ok, I heat my house". And even then, unless you have access to super cheap electricity - you basically pay WAY more than 20% above rate for getting a coin.

  but found that's not so easy to do with anonnimity with all the verifications,
  ID requests and concern of identity theft from scams.

Stop. Seriously. Either you want to deal with real adult money, or you do not - and if you do, there is no way around KYC (Know Your Customer) requirements. They are law and exchanges will not work loosing banking for me, you or anyone else. Choose a trustworthy exchange (some are big and established) and just bite the apple. You would likely either not be so.... funny... when opening a brokerage account, or you are too poor for that - because it is exactly the same KYC and more (making sure you can afford to loose the money) by law. There is no way around it. On top, you do not want to be anonymous - if something happens you want to be able to be identified by the broker. I want all the security I can get from an exchange. Real money involved, I legally declare taxable income, why should I hide? I do not hide with my other non crypto brokers wither.

Your best bet is localbitcoins.com or a similar site that works like craigslist and hooks you up with a local seller - and even then and depending where you are, laws apply.


I mined in early 2010 with a cpu miner and just found my keys after forgetting all thease years, no joke need info please who is the best most reputable bitcoin recovery company?
I have added details and questions about our situation below
Thank you
And God Bless

what was the mining program from the devs back then? I remember a pop up kinda like a dos window and it dispalyed the key and said somthing like write this down we will not give it to you again...
I also remeber a pass sentance proram that could be used to recover somthing if you entered in you full sentace string..

I have been out of crypto since I mined a few blocks way back then and I have my keys so do i just download and sink the wallet first?
remeber I did this long ago and was hoping to located the mining program from way back then to read the readme and refresh my memory.
Also back then you could contact a dev to help you,,
thanks in advance for helping out a old man trying to pay a few bills.

Sorry guys I am old sick with cancer so I do not want anyone to think I am lazy to ask questions like this. I believe what I found are my entropy codes. I remember seeing a sit down report on CNBC back in the day about Silk Road and weather or not bitcoin was a legitimate coin ect and they spoke for a good bit at length and they told you where to download the program and I thought the blocks was 50 at a time? It was a long time ago. I had ignored the boom from a few years ago to embarrassed and to and sick to care what ever happened to my codes / keys until I found my old drives and then my old codes. I do not remember it being a pool but if it was my guy is saying it was from the dev teams or team. It was a pop up miner and it would not have much on he display in the small little box. Just your mined coin count and a splash code that said something like write this down you will not get it again and will need it for us to help you recover your coins ect.

I think in late 2010 the first mining pools emerged. Could it be that you have been contributing your CPU Power to a mining pool and this was your credentials. If that was the case and you never cashed out your Bitcoin I guess you will not be able to access your coins unless you figure out which pool it was and see if the pool still exists


What is the difference between your address and your public keys I'm beginning to learn about cryptocurrencies, and I'm having a lot of trouble because some terms are used in different contexts. I know that public keys are generated through a private key. So, are those public keys the addresses? And is it possible to generate more than one address per each private key in wallet? Why?

cited:

  A Bitcoin address is a 160-bit hash of the public portion of a public/private ECDSA keypair.

a picture may make it easier to understand how an address is generated from a public key;

Image provided under Creative Commons CC0 1.0 Universal Public Domain Dedication

Public key are not the addresses, A  address is like an email address that funds can be sent to.

The public key is used by the wallet to make different  addresses.

we can also say that The public address is a hashed version of the public key. Because the public key is made up of an extremely long string of numbers, it is compressed and shortened to form the public address


Who is responsible for ensuring that the bitcoin protocol is not violated in the network? Who is responsible for ensuring that the bitcoin protocol is not violated in the network?

The market forces behind the supply and demand of bitcoin
Miners
Consensus of the miners
Developers of the bitcoin protocol

There is no single entity responsible for ensuring the rules of the protocol are not violated. Rather, bitcoin is a decentralized network, so all participants must adhere to the protocol’s rules, or else the network will ignore them.

This is accomplished by a network of full nodes, that relay and validate all transactions and blocks against the network’s rules. All of the nodes together form the decentralized network, so to join the network you must adhere to the rules defined by the node’s code.

  The market forces behind the supply and demand of bitcoin

This will determine the price, but the price will not affect the ability of participants to violate the networ’s rules, nor will it ensure that rules are not violated. The rules must be followed whether the price is $1 per bitcoin, or $1 million per bitcoin.

  Miners

Miners work to secure the blockchain record, they will validate transactions in the same way other (non-mining) full nodes do, and they will ensure only valid transactions are added to the blockchain.

  Consensus of the miners

Same as above. Note that even if a group of miners decided to violate the network’s rules, then the network (full nodes) would simply ignore any new (invalid) blocks found by those miners.

  Developers of the bitcoin protocol

The developers collaboratively write and refine the code that runs the network, but this does not give them absolute powers to violate or change the rules. Their code works to ensure that everyone involved in the network is behaving, and that any misbehaving nodes are banned.

All the decentralized miners are responsible, as it is defined in the Bitcoin white paper. Noone else.


How can the government tax you using bitcoin Bitcoin is decentralised and anonymous so how can governments issue /enforce taxes on any transactions made with bitcoin?

Governments can set up laws and regulations and then set up "departments" to monitor and enforce.

Whether it is successful or not is another question. No doubt they will have to skill up and understand how digital currencies really work, maybe monitor a few people, monitor the flow of their btc's and audit them, create some "high profile" cases to be made examples of etc.

One can draw an analogy with cash.

Bitcoin is (...) anonymous

You won't go to the governmental office to say you have created a wallet.
But they have huge control over your ISP probably and can check what are you send/receive to/from Internet...


If cryptocurrencies have no intrinsic value, how do they originate? In theory, anyone could create an infinite quantity of their own cryptocurrency right now. However, if you were to do this, it would have no value and, thus, it would be useless.

Since value comes from demand, how is it possible to create something from nothing and expect people to pay for it?

You seem to have a misunderstanding:

  anyone could create an infinite quantity of their own cryptocurrency right now

This is not accurate.  The breakthrough that enabled Bitcoin (and other cryptocurrencies) was the ability to make a digital asset scarce without trusting a central authority.

In the past, currencies (digital and otherwise) have required an issuing party, whom we all have to trust won't hyperinflate the currency by creating too much of it.  This might be a regional bank, a central bank, a government, or something of the sort.  Bitcoin changed this.  By using a few clever cryptographic tricks and some game theory, Bitcoin is able to give its users a very strong assurance that hyperinflation will not occur, without anyone trusting a central authority.  Bitcoin has decentralized digital scarcity.

What this means, is that there is a fixed supply (which nobody can reasonably increase) of a currency with a built in transaction network.  There is plenty of demand for such a system, yet limited supply...therefore, there is value.

These responses miss the original post. They explain the inflation/deflation aspects of Bitcoin.
The responses don’t address ‘intrinsic value’ - acceptance of one currency over another. How can any crypto/blockchain currency be accepted widely if there could conceivably be an infinite number of crypto currencies. And the answer is that it it cannot.
How has the USD maintained an intrinsic value? It’s centrally regulated, and more importantly, trust. Trust because the USD maintains an intrinsic value loosely associated with US democracy and capital markets.
Blockchain is a great new technology that many banks and governments talk about adopting.. Blockchain isn’t crypto. So let’s be clear, a proprietary currency will not last without a trusted political and regulated infrastructure.


How does the Bitcoin payment forwarding at Blockchain.info work? We have been using the payment service provided by blockchain.info https://blockchain.info/api/api_receive

It allows us to generate a unique address for each payment and forward Bitcoins received by these addresses to a forwarding address. From what I understand, bc.info pays the transaction fee for the forwarding transaction for us.

We want to use our own wallet. I have two questions:

1) How does bc.info handle this cost? Am I missing something? Are they really paying 0.0001 BTc for each payment their clients receive?

2) Is there a way to forward payments without paying fees?

The fee for each transaction can be calculated using estimatefee API call. And yes, blockchain.info have to incorporate fee in every transaction, 0.0001 BTC being the minimum. One of the reasons attributed for the necessary fee deduction is the quick inclusion of the transaction in the next few blocks.
You can try creating a transaction with the outputs spending all of the inputs and not paying any tx fees. The client will throw an error stating insufficient priority.
Yes you can, but then are conditions apply. You can check out this link to clear things a bit more.

Use Coinbase's "pay with bitcoin" button or iframe. It also generates a new address for each payment but its free and very very simple.


Is it possible to add a miner's fee after you send your bitcoins? I accidentally sent a transaction without a miner's fee and I need it to clear as soon as possible. But, as far as I can tell it's going to take days if it goes through at all. Is there any way that I can pay a fee on top of what I've already sent?

Rebroadcasting a similar transaction with a fee attached will invalidate the one that's waiting. Basically you initiate a double-spend and the new one (with a fee) will get confirmed.  Once it's confirmed, the old transaction will be invalid and forgotten.

Your client probably does not allow double-spend attempts, but it's possible via blockchain.info. Warning: Don't create a raw transaction unless you really know what you are doing!

People are working on making fee changes easier for us mere mortals; one example is/was (seems to be defunct) ConfirmNext.

No, there's currently no way of doing this. Some pools will prioritize a large fee on a secondary spend, but unless you own the recipient address as well you can not use this to your advantage.

In future pay the standard fee, bit for now you'll need to wait it out.


What is the best way to purchase Bitcoins quickly? What is the best way to purchase Bitcoins quickly? I don't want to wait a month.

On LocalBitcoins.com you can get bitcoins bought under one hour. Just pick a trader who has good reputation (not a scammer) and low response times.

Bitcoin is definitely in its infancy.  I have bank accounts all over the world in USD, GBP, and CHF.  I have accounts on Coinbase, BTC-e, CampBX, Mt. Gox, Bitstamp, LocalBitcoins, and others.

Yet, it is next to impossible to move fiat currency to these exchanges.  In fact, I have only ever been able to buy bitcoins on Localbitcoins, thanks to the immediate transfer facility in the U.K. banking system.

For people who want to buy in USD, which is where the major exchange volumes are, there has not been a way to transfer USD to an exchange without a currency exchange, bank and exchange fees, and a long wait.

CampBX is adding ACH transfer on November 20.

Coinbase not only requires all bank and credit cards to be based in the U.S., they also require the holder to be based in the U.S.  This essentially restricts Coinbase to the 4% of the world that lives in the U.S.

It is frustrating watching the volatile price action and being unable to trade because I can't get fiat to the exchanges.