The second time the transaction appears in a block the outputs it claims are already marked as claimed, hence the transaction, seen a second time, would be invalid. By definition the block is only valid if all transactions in it are valid.

The only way of a transaction landing in two potentially valid blocks is during a blockchain fork, where the two competing blockchain heads both include the transaction.

If a miner were to include an already confirmed transaction it would invalidate the block, and he would lose its reward. Notice that this also avoids having a miner claim fees multiple times, which would effectively create new coins from thin air.


Query unspent outputs for arbitrary address

They're planning to add 'watch-only addresses' to bitcoind; https://github.com/bitcoin/bitcoin/pull/4045

this is already the 4th pull request, they've been working on it for a long time, should be getting into the next version or something I'd guess

once that is in you can get this kind of data out of the basic wallet, until then you'll need to use a blockexplorer or a 'better' wallet (eg Armory) that supports watch-only addresses.


What's the best way for someone in Israel to move money in and out of Mt. Gox and/or Tradehill?

For smaller amounts you could buy bitcoins from another who holds ILS on BitMarket.eu.  http://bitmarket.eu/market/ILS or over the counter on the #bitcoin-otc marketplace: http://www.bitcoin-otc.com

TradeHill had been planning on adding ILS, but there was a setback:
 - http://bitcointalk.org/index.php?topic=19537.msg366806#msg366806

For larger amounts, having your bank send USD funds via an International bank wire to an exchange would likely the cheapest and fastest method even though the fees to do so are sizable.
 - http://en.bitcoin.it/wiki/Buying_bitcoins


what is forking attack? and different between forking attack and selfish mining?

With 51% of the network hashrate the forking attack is theoretically possible. Classically, what you have described is a double spending attack.

First, the attacker pays M->B and B releases the goods. Then, the attacker presents a longer valid chain paying M->M instead and the blocks containing M->B are orphaned.

It is not simply a matter of presenting an alternate block, it must be a valid alternate block(s) with more valid proof of work (a longer chain) which must also be based on the genesis block and any (each) checkpoint.

With 51% of the network hashpower, selfish mining is also possible, where the attacker ignores any network generated blocks and continues to extend their own chain with blocks that they have created. Because the attacker's hashpower is greater, theirs will be the longest chain with the greatest PoW.


The only way is to disallow membership changes in the "block-forging-process".  The DPoS used by Bitshares does this for instance, with 101 forgers, as do the PAXOS and Raft algorithms.  Otherwise it is trivially easy to Sybil attack the set of "block-forging-nodes", creating 10,000 indistinguishable, seemingly-valid chains with different forgers.  You can require work to become a member of the forging set, but then you've just reduced the whole thing back to Proof of Work.

You may be interested in my blog on the subject: What's wrong with proof of stake?


What happens to transactions included in extinct or invalid blocks?

what happens if my transaction is in the fake block?

It is also in the memory pool (mempool) of pending transactions at other nodes run by more honest people and will be included in a new and valid block in the normal way.

  Let’s suppose I am buying a Tesla car. Should I wait 6 blocks to be generated to be sure? But I have to wait 1 hour!

Yes.

There are faster payment methods for Bitcoin - e.g. Lightning Network (LN) and arguably perhaps escrow services. But they have their own trust model and characteristics you need to understand when using them.


The issue is with the recipient's wallet. There is nothing that you can or need to do.

  why I keep seeing this transaction as 'unspent'.

It is not saying the transaction is unspent. It is saying the output of that transaction is unspent, which is perfectly fine and expected. Bitcoin transactions use a system of spending and creating transaction outputs. If a transaction output is unspent, that means it is not spent by another transaction and indicates that the output is available to be spent. This means it is part of your wallet as your "balance".

In this case, you created a transaction which creates an output that is spendable by the recipient. Since the recipient has not spent the Bitcoin yet, the transaction output is unspent. That the recipient's wallet does not detect the transaction means that there is an issue with her wallet, not yours.


Can I recover btc sent to an incorrect address? (electrum)

Can I recover btc sent to an incorrect address?

Confirmed Bitcoin transactions cannot be cancelled, reversed, undone or recovered.
The only person who can give you your money back is the recipient, by creating a new transaction to send the same amount back to you.

I realize now that I had a malware copy of electrum

If the initial mishap was due to a malware copy of Electrum, there is no chance the criminals, who created that, would choose to give back money they stole from you.

I read somewhere something...

The things you describe won't work.

something else to get those funds back?

Nothing. Anyone who says otherwise is trying to scam you.


A pruned node is a full node.  "Full node" means fully validating and enforcing the Bitcoin rule.  Pruning just means that the node does not bother keeping old historical data that is never used for anything except helping new nodes sync up, wallet rescans, and similar.

Pruning will not impact validation performance other than perhaps there may be some small latency spikes created by periodically deleting old blockfiles, or small latency improvements from not participating in feeding historic blocks to newly syncing peers.


What are the issues they currently working on?

Perhaps I can help. I'm a member of the foundation; however, they haven't broadcast a specific mission or vision to us yet. That said, they are pursuing regulation and continued development of the Bitcoin protocol.

As for challenges, they face the following concerns:

Managing the growth of the ecosystem in a way that promotes mainstream adoption of bitcoin
Resolving issues with miscommunication and misinformation by the media and other entities
Working with businesses to better understand the regulatory and legal implications of bitcoin
Soliciting and integrating new developers and ideas into the protocol as the needs of the ecosystem mandate
Dealing with the consequences of government regulation on the ecosystem

There are far more issues to resolve; however, these to me seem to be the ones the foundation has invested the most work on.

  How to track their activities?

As of now, you can't outside highly public events such as the conference in San Jose. They are not a very transparent organization, which I suspect is a symptom of their age. Over time they will have to become better.

  What are the challenges ahead of bitcoin foundation?

For the moment, survival and relevance. They have yet to court the bitcoin community nor have a dynamic outreach program in the works to the best of my understanding. Longer term the issues of education and business adoption are also major challenges. As more people become aware of bitcoin, they will have a large list of questions and concerns. Depending on how they are addressed, the individual may have a positive or negative opinion of Bitcoin and will spread that opinion to their peers.


51% attack - apparently very easy? refering to CZ's "rollback btc chain" - How to make sure such corruptible scenario can never happen so easily?

Disclaimer: I believe this question may be primarily opinion-based and not very appropriate for this site, but there are a number of technical misunderstandings that can be clarified along with it, so I'll give it a shot.

There are many nuances involved here, and I fear that a large part of them didn't reach as much of an audience as the exchange announcing "we decided not to do it". I believe this was a poor choice of words, as the decision they made wasn't whether or not to roll back the chain; only whether or not to offer a bounty for doing so. I personally believe it would be very unlikely that the alternative would have actually resulted in a deep rollback.

Let's analyze the situation from a number of perspectives.

If we only consider miner's actions, is it theoretically possible for them to roll back the chain? Yes. If you're wondering if there is a small number of mining company CEOs in the world, which, if all together convinced, with complete disregard for their own financial interests, the health of the network, or legal repercussions, could decide to roll back the chain to a point before the theft, the answer is yes. This is the reason why people care about mining decentralization, and permissionlessness of entering the mining market. However, unless it's not just a majority of the hash rate that is on board with this, but actually close to all the network's hashrate (a substantially harder problem, as there are many small miners in addition to the few big ones), this would likely have take days or even weeks (if it's close to 50%), a time during which many things can happen - including a public outcry and a UASF-style fork to prevent the rollback from being accepted by the ecosystem. If considered over an even bigger timescale, events like this may even incentivize people and businesses to become miners, in order to reduce the influence of large pools.

Assuming miners maximize short-short term profit, would it be financially interesting to rollback? No. Even if we assume that everyone in the network is acting selfishly to try to maximize their own (short-term) profit, and ignores the protocol rules and the possible repercussions from doing so, it is not. By the time the information about the theft became known, the transaction was already confirmed several hours before. During those hours, miners had created dozens of blocks, which together earned several hundred BTC in subsidy and fees. The exchange would need to offer at least that amount to the affected miners, to compensate them for the income they'd lose from rolling back those blocks, before it would even be worth discussing. Let's call this the rollback cost R. As the stolen amount was in the thousands (let's call this S), that seems like a reasonable option. However, nothing prevents the thief from using (part of) the stolen funds to do the same. Every BTC offered by the exchange above R can be countered by an equivalent amount offered by the thief. And then it becomes clear that the thief has the upper hand: the exchange can at most gain S-R by a rollback, but the thief stands to gain S by not having a rollback. A theoretical possibility is a bidding war between the exchange and the thief, where both increase the amount paid to make miners act in their favor. The end game of this is that the exchange offers S-R, the thief offers slightly more and keeps R, and miners are paid S-R by the thief, and no rollback happens.

What would happen in the real world? Theoretical models are interesting to study, but in reality many more practical considerations exist. I believe those too are generally in favor of no rollback:

Coordination between distrusting miners (especially close 100% hashrate) is hard, and would take time. The more time it takes, the less advantageous a rollback becomes (see the above point), and the more damage would be done to the ecosystem (see the next point).
An hours-long (in the very best case) or a weeks-long (in the worst case) rollback would monumentally hurt the ecosystem, and likely undermine the public's confidence in the system to the extent that it would severely reduce the profitability of many parties involved (including miners and the exchange itself!).
Even ignoring all the above, miners may not be willing to take a bribe to rollback because of legal reasons if they're publicly known (which they mostly currently are). They may equally not want to take stolen money as a bribe, so this cuts in both directions. This point becomes weaker if the mining ecosystem is more decentralized, but that would also make coordination harder.
As I pointed out above, in the extreme scenario where such a rollback is actually happening, the public has time to react. If a sufficiently large group of economically relevant parties in the network refuse to accept the rollback, miners have no choice but to go along with that. This is a last-resort option, and likely damaging to the ecosystem on its own, but it is an option.

So to summarize: in theory there are absolutely ways in which a rollback could happen, and it's good to be aware of those. In reality, the security of the system relies on economic incentives already which are nontrivial to analyze. It however seems very unlikely that in the case of a theft a deep rollback is a reasonable outcome.


Why must be the Merkle Tree a full binary?

Bitcoin does work with full or complete binary trees. For complete trees, leaves without a partner are simply hashed with themselves instead. The attack that CodesInChaos links was solved by checking that every transaction is unique which is required for valid blocks anyway.

Image from Bitcoin Developer Guide


Can a unconfirmed transaction be lost or modified?

where these unconfirmed transactions are stored before being included in block

Mempool
Each node (wallet, miner, etc) stores them in a local collection called the "mempool". The name implies these are typically kept in memory (RAM) but the developers of each wallet software can decide whether to also store the data onto non-volatile storage such as disk.

Can they be modified before a [miner] put them in blockchain

No, because they are each signed
Modifying the transaction would make the transaction signature fail verification.  Only the person who knows the secret number known as a private key can produce a valid signature for a transaction. The inputs to a transaction are locked by a script that can only be satisfied by a number resulting from the use of the private key.
Every other node (wallet, miner etc) would reject a modified transaction and start to suspect the source as being potentially malicious.


Logic thread between output folders and input transactions

Let us illustrate this using the example given in Mastering Bitcoin.

Joe sent 0.1 BTC to Alice in the transaction having txid = 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18. Below are the outputs of that transaction:

vout": [
    {
        "value": 0.10000000,
        "n": 0,
        "scriptPubKey": {
            "asm": "OP_DUP OP_HASH160 7f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a8 OP_EQUALVERIFY OP_CHECKSIG",
            "hex": "76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac",
            "reqSigs": 1,
            "type": "pubkeyhash",
            "addresses": [
                "1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK"
            ]
    }
]

When Alice spends these earnt bitcoins to Bob Cafe, she references this transaction in the input. Note that the input includes the txid of the transaction through which she earnt her bitcoins and the n=0 which shows output number of that transactions that was directed to the address she controls.

"vin": [
        {
            "txid": "7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18",
            "vout": 0,
            "scriptSig": {
                "asm": "3045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4ae24cb02204b9f039ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e3813[ALL] 0484ecc0d46f1918b30928fa0e4ed99f16a0fb4fde0735e7ade8416ab9fe423cc5412336376789d172787ec3457eee41c04f4938de5cc17b4a10fa336a8d752adf",
                "hex": "483045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4ae24cb02204b9f039ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e381301410484ecc0d46f1918b30928fa0e4ed99f16a0fb4fde0735e7ade8416ab9fe423cc5412336376789d172787ec3457eee41c04f4938de5cc17b4a10fa336a8d752adf"
            },
            "sequence": 4294967295
        }
    ],

Full nodes maintain a UTXO set through which they can easily cross-verify this data to ensure, the txid and n referenced by Alice has not been spent previously. If Alice wanted to spend more than 0.1 BTC to Bob Cafe, she would have had to reference multiple transactions as the txid and n she referenced only has access to 0.1 BTC.


Blockchain.info probably doesn't use the standard bitcoind client, but something written just for their use, which works like bitcoind, but with a large list of encrypted wallets instead of just one.

Since bitcoind just isn't made to handle thousands of wallets, it would be cumbersome to try to have a web wallet like blockchain.info use bitcoind. I don't think you'd need one server per person, but you'd need one instance of bitcoind running (whether on-demand or always running) for each wallet.

I'd expect that nobody would use the standard client for this, but would fork (or create from scratch) their own version. Maybe at some point, someone will release such software as open source software, but there's not really a need to have many different servers like that (unlike, say, mining).


How to integrate bitcoin payment in ASP.Net?

If you don't want to integrate with a 3rd party bitcoin payment provider you can implement your own payment module for Bitcoin (but also for Litecoin and every Bitcoin-derived altcoin) very easily with BitcoinLib that is written in C#.

Some of BitcoinLib's features:

Fully compatible and up-to-date with Bitcoin 0.9.1 RPC API.
Design-by-contract, service-oriented architecture.
Strongly-typed structures for complex RPC requests and responses.
Implicit JSON casting for all RPC messages.
Extended methods for every-day scenarios where the built-in methods fall short.
Exposure of all RPC API's functionality as well as the extended methods through a single interface.
Fallback mechanism for timed-out RPC requests.
Custom RPC exceptions.
Supports all Bitcoin clones.
Can operate on unlimited daemons with a single library reference.
Litecoin integration included.
Each coin instance can be fully parametrized at run-time and implement its own constants.
Console test client with demo methods implemented in it.
Disconnected raw RPC connector included for quick'n'dirty debugging.
Testnet ready.
Fully configurable.


If Fees Were Paid In US Dollars, What Would They Be?

Instead of asking what would be the fees if they were paid in US dollars, I think you meant to ask "what will be the purchasing power of the transaction fees, measured in today's US dollars".

There's some discussion of this at How much will transaction fees eventually be? but the short answer is that nobody knows. Left to their own devices the fees will be close to 0, which is a problem. No consensus has been achieved on how to fix the problem. Personally I think the goal should be fees on the order of 0.1% + 1 cent.


1) The answer is 12! = 479,001,600 possible mnemonics (less if there are repeated words). Out of these only ~29,937,600 (1 in 16) produce a valid seed. This is definately brute forcable.

2) No, if you want to do this use a longer mnemonic (and make sure you permute them in a truly random way)


Is there a case a transaction's confirmations isn't the same as its containing block's confirmation number?

No, by definition the number of confirmations on a transaction is the number of confirmations on the block it is contained in.


No, you see the difficulty of a pool is lower in order for the pool to be able to verify that the miners are actually working on a solution. The shares a miner obtains are mostly not valid blocks, which is what gets rewarded in Bitcoin, paid out to the pool and then paid to the miners.

The difficulty to create a block is not influenced by a pool's share difficulty, hence the total payouts the pool makes does not change, and old hardware is just as (un-)profitable.


How can I create and distribute my own private blockchains in a scalable way?

Yes there is:
https://github.com/coinclone/cloner

You can mine genesis blocks, configure common settings for nodes on your network and ship them easily using this opensource project.


Security implications of bitcoin.conf location

I do not see the "necessary" relevance to bitcoin here. File access security is better discussed in unix relevant stackexchange. Still I'd like to share my view with the little bit of bitcoind relevance.

  One argument against using ~/home/.bitcoin/bitcoin.conf I thought of
  is the RPC Password is be stored in the .conf file and could be viewed
  by anyone with read access.

depends how you setup your bitcoin system. If bitcoind is setup as a user related process, it makes absolutely sense to have bitcoind.conf in home directory. You may then secure the file with "chmod 600", so only the owner can read/write the bitcoind.conf file (and root and/or the admins after tweaking the permissions).

When storing in /etc, the "chmod 660" makes more sense, then owner and group can read/write the file. In this case I'd be having bitcoind running as a systemwide daemon. But to be honest, I haven't seen such a setup discussed anywhere. This would be ok for a static setup (using shell scripts to startup), but imagine you use it every day for tx generation or status checks. Every call to the bitcoind executable would require the correct path to the config file, and if not, bitcoind creates one (in your home dir), and then it might give RPC access problems...

  Item #2 Similar to #1, besides +1 style points, is there any advantage
  to moving logs to /var/log?

This again depends on the distribution used. My OpenBSD uses syslog (to /var/log), whereas the OpenSuSE systems have introduced last recently the journal system, where all logging is in a database. I must admit, I am more comfortable with /var/log, but when my beloved OpenBSD would also go away from /var/log, then what to do with bitcoin system logs?
So generally I'd say, /var/log should remain for the unix system related logging, and each application (I consider bitcoind as an application) should have it's own log (and related directory). This makes separation of duties on a larger unixoide system more easy, and the sysadmins wouldn't find irrelevant data in their well known /var/log directory.


You will have to rebuild OpenSSL, since the build shipped by Fedora/Red Hat does not include support for elliptic curve cryptography, on which Bitcoin relies. So you have to build your own.

Once that's done, you can get on with building Bitcoin normally, provided you point it at your private build of OpenSSL with -rpath.

Or, you can just skip all the work and use my existing Yum repository. This also gives you standards-compliant paths, as well as an SELinux-enabled bitcoind. Read the RPM spec files if you're really interested in the build process.


How to create and load new wallet using multi-wallet feature (bitcoin-core v0.15.0)

Multiwallet are currently only available through the RPC interface for programmers and command-line users.ref

Multi-wallet is enabled by using more than one -wallet argument when starting Bitcoin, either on the command line or in the Bitcoin config file.

Multi-wallet support


Oauth - can my application use Stellar Oauth?

Oauth isn't presently on our roadmap, but feel free to check back in future.


why is double-spend not an issue for payment channels?

Great question. In order to understand how it works, you have to understand that opening a micro-payment channel (MPC) requires a commitment before you get started. That is, both parties have to show proof that they can't double-spend these transactions before they get started.

How is this possible? SCRIPT, of course. A transaction (2-of-2 output) that's dependent on other transactions is signed first, which opens up the MPC, and then, and only then, do both parties release the transactions that would make this other transaction valid. At that point, the funds are committed to the channel and cannot be double-spent since it's locked in a 2-of-2 output, which must be signed by both parties, hence eliminating the possibility of a double-spend.

A more thorough explanation can be found here.


Isn't Bitcoin's hash target supposed to be a power of 2?

Contrary to popular belief, the target is not actually based on the number of leading zeroes. This is a major simplification that is used to get the general idea across, but is not actually how the code works. Instead, the target is just a number that is adjusted by the ratio between the actual time between blocks and the expected time between blocks (with an off by one error which actually causes it to not quite work as expected). So the targets are not necessarily multiples of 2.
There is one additional caveat - the new difficulty can only be at least a quarter of and at most 4 times more than the old difficulty. The multiplier (the ratio between times) thus must be between 1/4 and 4.


Based on a certain amount of addresses, is it possible to find out how many bitcoins a specific wallet includes/owns?

Short answer: No.
Long answer: It depends.

The addresses themselves are independent (unless blockchain.info has bugs that prove otherwise*) and no one can tell just by looking at them that they are contained in the same wallet.

However, the way you sent 1 BTC to each of those addresses and/or the way you will be spending that money later on, might betray you! For example if you buy one Ferrari for 1000BTC, combining all those bitcoins in the wallet in one transaction, then others looking at that might conclude that you were the owner of all those addresses afterall. Similar if you have 1000BTC in 1 address and then split that up and send 1 each, onlookers might suspect they're still yours.

*) Note that blockchain.info has a horrible track record of generating bad private keys, causing many bitcoins to be simply stolen.


First Question: private key for what exactly?

For the scriptPubKey that locks/encumbers the coins from being able to be spent.

  An output contains instructions for sending bitcoins. Value is the number of Satoshi (1 BTC = 100,000,000 Satoshi) that this output will be worth when claimed. ScriptPubKey is the second half of a script (discussed later). There can be more than one output, and they share the combined value of the inputs. Because each output from one transaction can only ever be referenced once by an input of a subsequent transaction, the entire combined input value needs to be sent in an output if you don't want to lose it. If the input is worth 50 BTC but you only want to send 25 BTC, Bitcoin will create two outputs worth 25 BTC: one to the destination, and one back to you (known as "change", though you send it to yourself). Any input bitcoins not redeemed in an output is considered a transaction fee; whoever generates the block can claim it by inserting it into the coinbase transaction of that block.

See https://en.bitcoin.it/wiki/Transaction#Output.

  which system validates that I am a private key owner?

When transactions are submitted, nodes on the network validate the signature with the scriptPubKey before including them in their mempool for miners to include in the next block.

  Now these two amounts of bitcoins are taken by a system X (what is X?) and it will be created an output with amounts 2 Bitcoin (i) and 0.8 Bitcoin (j).

The transaction is created and signed using wallet software, and the transaction is submitted to the nodes on the network, it is propagated to all nodes (given it passes the validation checks).

  Where will the public and private keys for i and j are generated? How and from which holder (after generation) to which (new owner) will they be transmitted? What kind of message do they sign/encrypt (content).

The private keys are generated by the user usually in their wallet software and usually the pubkey and scriptPubKey (which is encoded into an address) are also created by the user for people to send them Bitcoin. The message that is signed is the new transaction data itself.


Omar, you can do almost everything you want there with Armory using the offline feature. The offline, air-gapped computer can create the private key and store it there. The watch-only wallet on the internet connected computer can create transactions to be signed by the offline computer.

From a security standpoint, it's generally better to use something a lot of other people have used before than creating your own process.


Are transactions verified in chronological order?

According to the wiki, there is some tolerance in the accepted timestamp for a new block:

  A timestamp is accepted as valid if it is greater than the median timestamp of previous 11 blocks, and less than the network-adjusted time + 2 hours. "Network-adjusted time" is the median of the timestamps returned by all nodes connected to you.

The reason, as explained in an answer to a related question, is that "without a central authority, it's impossible to know for sure what the current time is" (in the sense that, while there might be standards that set the "correct time", you can't prove that an operation that happened in a computer somewhere in the world actually happened the time it says it did).

So, answering your doubts:

Who updates the timestamps?

The miner that produced the block assigns the timestamp, and the other peers in the network endorse it.
Are the timestamps used to verify transactions in chronological order?

What matters is the order of blocks in the blockchain, not the order of the timestamps (since to produce a block you need a previous block "done", it follows that the transactions in that block happened after the transactions of the previous one).
If a block with a certain timestamp is added to the blockchain, will any block with an earlier timestamp be rejected?

Only if it falls outside the margin of tolerance mentioned above.
How is the timestamp used by the protocol?

I'm not sure of all the reasons it exists, but you can start by looking at this and this questions. My understanding is that it's unfeasible to know exactly when a transaction happened, but you still need a rough knowledge of the time at the very least, for several reasons.


Can bitcoin-core wallet be used as the backend for a mobile wallet app?

There are at least two open source mobile wallets that already do just this:
FullyNoded for iOS, which connects to a bitcoin node via a Tor V3 Hidden Service
Sifir which uses the brilliant Cyphernode


Why do we refer to previous transactions in each transaction?

We don't refer to previous transactions, but rather to specific outputs of previous transactions. When transactions sign over money to a recipient, they create a uniquely identifiable "Unspent Transaction Output" or UTXO. Transaction inputs in turn spend these "UTXO" to fuel transactions. Since addresses can be reused, addresses alone are insufficient to precisely identify the bitcoins that are being spent.

If you only had "Input Address, Output Address, Amount and Signature for each transaction". This would be trivially broken:
Let's say Alice keeps all her funds in address A1, and pays Bob 0.1BTC in rent to address B1.
Bob pays Mallet to fix Alice's heater from B1, using the funds that he received from Alice.
When Alice pays Bob next month again from address A1 to address B1, Mallet can replay Bob's transaction to himself in order to get paid again.


get offline Bitcoin transaction id, chain multiple offline transactions

before having sent A, can i get the transaction ID of A?

Yes, you can calculate the TXID without any connection to the network.

  I wish to create a new offline Transaction (called B), using the outputs from A as inputs for B.Still, A has not been sent to the bitcoin network. Is this possible?

Yes, but there's a small technicality when working with nested unconfirmed transactions. If you build a large number of them on top of each other, and one of them is never confirmed, then the entire chain of transactions will disappear. That is to say, if you build A, B, and C, and A had an incorrect fee, none of the subsequent transactions will ever confirm and will eventually drop from the network.

That being said there's nothing stopping you from making chains of infinite lengths, they just have to be broadcast in order for the nodes to be able to see the previous inputs. If you make them out of order (C, A, B) they will likely be rejected.

  is possible, and I send A, then immediately send B to the bitcoin network. what would happen?

This is completely valid and a reasonably normal flow for some applications, it's not invalid or unrecommended if the fees for each input are properly paid.


How do you determine if a transaction is unique?

Each transaction can have multiple inputs and multiple outputs.  sendmany is used when you want to send to many accounts.  It's all still one transaction.


Is PAN or ID card verification necessary to buy Bitcoin in India?

No authority in India expressly authorizes other entities to use PAN or other unique ID cards for customer verification purposes. The entity itself takes such measures since Government issued identities carries trust and uniqueness.
No unique identity of any nature is required for transacting Bitcoins.
Now, as for the Bitcoin exchanges and other trading platforms requiring the use of PAN or other ID cards, these entities have valid reasons to ask for such details, such as:

to avoid legal hassle for the entity when a customer engages in illegal financial activities or anti-national activities  such as tax evasion, money laundering and terrorism. PAN is a must for surveillance, tracking and investigation;
to show itself as a responsible corporate entity engaging with legit customers only and maintaining transparency at their end.

You are most likely to reach this conclusion if you read T&C, Privacy Policy or KYC/AML policy of the entity concerned. For example, CoinSecure has it mentioned here:

No Legal Requirement
Although Coinsecure is not required by the law to follow any Know Your Customer (KYC) policies or implement any Anti Fraud mechanisms, however Coinsecure believes in total transparency and adherence to the law and discourages any of illegal activities while using Coinsecure’s services. In order to discourage and prevent any person from indulging in illegal activities using its services, Coinsecure has made the following KYC and Anti Fraud Policy purely as a measure of prudence and on an entirely voluntary basis.

You must know that there is no standalone data protection law in India and currently, misuse of unique identifiable information is a punisable offense under Section 66C, IT Act 2000 (Amendment 2008), but the punitive punishment has failed to deter many criminals from committing identity fraud, so you must weigh your risks carefully before divulging such critical details.
Side Note: Do read Privacy Policy before sharing any critical information.


Segwit transaction format is unknown for BU nodes. The peer either drop the connection or even ban your IP address for a while.


Bitcoin Transfer from Coinbase to Zebpay in India

It is important to differentiate between mining fees paid to the Bitcoin Network and service fees charged by a middleman company such as Coinbase or Zebpay.

The Bitcoin network fees are market based (when demand goes up for space in the block, the fees will go higher) and are based on the amount of data in the transaction, not the amount being sent.  A 0.1 BTC transaction can have higher fee than a 1000 BTC transaction for example.
The fees charged by payment processors, exchanges, etc are usually based on the amount sent. Coinbase used to be 1% for example.  Normally receiving money is free, but sending or converting to/from fiat cost something. You need to check with the services you are using.

If you own the bitcoin keys (you are using a wallet like Electrum, Mycelium, Bitcoin Core, etc), then you only pay the network (miner) fees.  If you are using a service like Coinbase, you may be charged a fixed fee by the service, and / or the network fee.


Which block header fields are miners able to change in an effort to avoid having to recalculate the Merkle Root?

nBits cannot be changed at all. Its value must equal the (compact encoding of) the target value for that block, which is determined entirely by the predecessors of the block. In other words, if the prevblock hash is given, so is nBits.

nVersion: can be modified arbitrarily, though its value is subject to interpretation under BIP34 (requiring it to be at least 2), BIP66 (requiring it to be at least 3), BIP65 (requiring it to be at least 4), and BIP9 (assigning potential future meanings to certain bits if the value is within a specific range).

nTime: can be rolled within a window starting at the median of the past 11 blocks + 1 up to 7200 seconds in the future at the time the block is mined.


At present I'm not aware of any ways that Bitcoin and Ven interact, but from what little I know of Ven there's no reason they couldn't interact in the same ways as any traditional currency. I see no compelling reason why a Bitcoin<->Ven exchange couldn't be opened, though I don't know if Ven allows chargebacks. Ven might also be useful as an analysis tool, since it essentially represents a "basket of currencies" and therefore the price of Bitcoin in Ven might be a better indicator of Bitcoin's actual worldwide value since differences in value of local fiat currencies would have less of an effect on the BTC/VEN price than say BTC/USD or BTC/PLN.

Update: Apparently, Ven is a private, local currency which cannot be converted back into other currencies, so the above may be inaccurate. Ven does allow private exchanges, though, so it may still be possible to build an exchange.


Yes, the same hash power means the same probability of mining a block.

But there can be other factors like connectivity: if a mining pool is facing internet connection problems between it and its members, it may fail to use that hash power effectively. P2Pool FAQ talks to its members about the importance of a good connection: http://p2pool.in/

Also, if there is an internet outage soon after it mines a block and it fails to broadcast it, the block risks been orphanated.

But it's not possible to 3 miners to work on a same candidate block, each block they are trying to mine will be necessarily different. I think you mean 'on top of the same block'.


What are the advantages of a 210,000-block subsidy halving interval that's out-of-sync with retargeting?

We do not know whether it was a deliberate choice or an oversight that the difficulty interval is not a factor of the halving interval. Instinctively, I'd suspect that both were chosen on their own to be round numbers in their context: 14 days worth of 10 minute intervals, and a 4 year intervals starting with 50 ₿ rounded to the next ten thousand. Choosing a halving interval of 209,664 blocks would have prevented either a nice round numbers for subsidies or the final supply. Today, we know that especially the supply has become an important meme in explaining Bitcoin. Generally, non-round numbers can mean an increase in complexity.
 via https://btc.com/stats/diff
Let's look at what happened at the third halving.
The halving in May at block 630,000 was exactly in the middle of the two difficulty adjustments at block 628,992 (+0.92%) and 631,008 (-6.00%). Assuming that the profitability drop of the halving led to miners turning off their hardware exactly then, one could suspect that the shift between the two periods could have smoothed out some of the congestion the slowdown: instead of one long period of extremely slow blocks, the difficulty adjusted across two periods with a shorter period of very slow blocks and a long period of less slower blocks. Since the blockspace supply is inelastic, this may have reduced the overall congestion. On the other hand, congestion can also significantly drive up transaction fees, which in turn could incentive miners bringing shutdown hardware back online.
Either way, the difference is very small.
If the halving would have coincided with a difficulty adjustment and the complete hashrate drop happened with the halving block, we would have expected the complete difficulty reduction of 6.00% and 9.29% in one period. Then, we would have expected the first difficulty period to have taken (14/(1*0.9400*0.9071)) = 16.38 days. If the second period would have then been balanced, and we would have reached 1.5 difficulty periods after the halving in:
16.38 days + 7 days = 23.38 days
Our record shows that the halving block is timestamped at 2020-05-11 19:23 UTC and the second adjustment after the halving at block 633,024 has a timestamp of 2020-06-04 12:30 UTC. This amounts to 23.7 days. Unsurprisingly, fully adjusting downward immediately would have led to a shorter time. However, as mentioned above it might have also caused more congestion due to the already slower blocks in the period directly after the halving, driving feerates even higher which in turn could have sped up blocks a bit.
In the end, it would likely not have made a huge difference if they had been aligned, and it will even less so in the following halvings under the assumption that the total transaction fees will remain at least at this absolute level, since the subsidy will then be a smaller relative part of the total reward.


How would somebody compromise my identity if I generate new receive address in Bitcoin Core?

Identity leaks usually happen in two places.
Off Chain Leaks
Here, the address is somehow linked to you off chain - this could be because you shared it from an account or network that can be traced to you (it's largely impossible to avoid being tagged online if a well funded and skilled group, such as nation states, is targeting you).
Alternatively, if you have sent funds to an address from an exchange or other wallet that has some link to your identity, off chain requests by law enforcement or other such authorities for your transaction data could link you to it quite trivially.
On Chain Leaks
Although modern wallets, especially Bitcoin Core, take steps to avoid this, there are scenarios where when spending funds from one address, you also include inputs sent to other addresses. If all your addresses do not have an equal level of privacy in how you shared them and received funds to them, transactions which spend from multiple addresses can create links that on chain monitoring tools use to identify clusters of addresses controlled by a single entity.
Thereafter, if any one address in the cluster is deanonymized, the entire cluster can be tagged to you retroactively.


How do I construct a Bitcoin transaction with the Bitcoin Core Console?

Am I getting this error because I'm resetting the console before I start my commands ? Should I let my console time add up or reset it before a transaction ?

No, that is completely unrelated.

The transaction fee in a transaction is determined by the difference between the sum of the values of the outputs and the sum of the values of the inputs. Bitcoin Core will not accept a transaction which has a fee rate (in BTC/virtual-kilobyte) that is too low. You probably aren't setting a transaction fee or are setting one that is too low. To set a transaction fee, you need to decrease the values of your outputs so that the difference is larger.


Bitcoin is using +90% CPU power using Ubuntu 12.04?

Using bitcoin-qt you can go into Helps->Debug Window->Console and then type

setgenerate false

By default it should already be false so my guess is that you have a fast internet connection and that your computer receive a lot of blocks in a short time. Your computer then needs to check all the ECDSA signatures for the transaction and this can consume a lot of CPU.

I had an overheating issue like that when I was mining litecoins with my laptop. I installed the cpufreq package to decrease my cpu frequency about 30% and everything was fine then.

If you have a dual-core processor you should type something like this in your terminal.

sudo cpufreq-set -c 0 -u "1.8GHz"
sudo cpufreq-set -c 1 -u "1.8GHz"


Mining without pool where does the bitcoin/reward go if successful?

Read the cgminer documentation about "solo mining".  You'll need to install and set up bitcoind and sync the entire block chain, so see its documentation as well.

As far as payouts, note the --btc-address command line option to cgminer; that specifies the address to which the reward will be sent.


How do I open up the transaction dialog popup in Ardor Ignis via the URL parameters when the wallet gui loads in the browser?

I don't think there's a way to open up popups using just the URL, because it's not built inside the codebase.

The only reason you were able to go to a specific page was that there's a loader function for that page.

For instance, loadAssetFromURL() for the asset page in ardor/html/www/js/nrs.assetexchange.js


Solving a block and verification of transactions

Verifying a transaction is not a difficult process, it is finding a good block hash that makes mining difficult. Furthermore, if a miner verifies a transaction and includes it in the block he is creating, he gets the transaction fee from that transaction. This makes it attractive for miners to verify transactions instead of just looking for a block hash.

The reason why mining is difficult and it needs to be verified that a miner has put a certain amount of work in finding his new block, is for security of the network. If mining were easier, it would be easier for attackers to take control over the block chain.

Also, the Bitcoin protocol tries to achieve a block creation rate of 1 block every 10 minutes. To achieve this, the protocol automatically adjusts the difficulty of finding a block every 2016 blocks. This should be approximately 2 weeks. When these 2016 blocks were found too quickly, the difficulty will rise. Otherwise, it will fall. This makes it possible to predict the supply of bitcoins over time.

So, because we only want one block to be found every 10 minutes, the difficulty has to be proportional to the total amount of work the whole network is doing. This means the more people are mining, the more they help raising the difficulty and help making the network more secure against attacks.

I don't fully understand your last question. But "keeping track of how many transactions a person has verified" would not be a suitable alternative for several reasons. First, as I mentioned above, transaction verifying is not a difficult process, so the amount of verified transactions would not be a good measure of the amount of work you did. Also, in the Bitcoin network, there does not exist such thing as a "person". It is possible to keep track of the IP address of who submits transactions and blocks, but identifying people by their IP address is not a good idea (IP's are not always fixed and multiple users can share an IP). The only other identification method Bitcoin supports are its addresses, but real Bitcoin anonymity requires you to frequently change the address you use, so addresses should not be used as identification. (Although sometimes they are.)

I tried to answer all your questions, if I missed something, just ask me in a comment.


Technical problems in deployment of segwit parallely on bit 4

If the miners activate segwit by signaling readiness for segwit on bit 4 (further called segwit4) immediately, all nodes that follow the current activation procedure (signaling on bit 1) would ignore this activation. Regular segwit enabled nodes would interpret transactions and blocks created with segwit according to the old rules. After segwit4 activated they would still consider segwit transactions to be not allowed yet, and thus with the first segwit4 transaction appearing on the network, ban the relaying nodes for forwarding invalid transactions. At this point, this would split the network between miners and all nodes that are segwit1-enabled.

Activating two different versions of segwit on the network would trigger untested interactions between nodes, as several parts of the relay code logic is dependend on the signaling bit. Only interactions between segwit-enabled and segwit-unaware nodes were tested extensively, so one should expect new code and new test cases to be necessary to avoid a netsplit with segwit1-enabled nodes.

This would perhaps not matter terribly much, since according to Garzik on Twitter the blocksize increase would be activated at the same time as SegWit4, so any old type nodes would be hard forked off the network anyway as blocks created by the new chain would appear invalid to them.

Update: Apparently, there are at least three opinions out there about the activation order of segwit, and the hardfork since Consensus, so I'm waiting what it'll be.


You will most likely be using a mining pool, in which case the coin you earn will remain on your pool account until you choose to withdraw it to your local wallet. Most pools support auto-withdrawals (i.e. when the balance reaches a certain threshold).


Is it possible to run both bitcoind and bitcoin-qt as backend and frontend?

No, you cannot do that. Bitcoin-qt is not just a frontend GUI or wallet handling software. It is bitcoind with a GUI. It does all of the same functions as bitcoind as it is built from the same sources. bitcoind also has the same wallet handling components as bitcoin-qt. bitcoin-qt has the same node, consensus, networking, etc. handling code as bitcoind.


Where did the idea of blockchain come from? Git was already using it since 2005

According to Bitcoin and Cryptocurrency Technologies (BaCT), the Princeton Bitcoin textbook, the block chain dates back to a "paper by Haber and Stornetta in 1991. Their proposal was a method for secure timestamping of digitaldocuments, rather than a digital money scheme." (BaCT p.15)

The chaining of Merkle trees instead of single documents was proposed in a later paper. (BaCT p.16)


When generate WIF private key , base58check('80'.decode('hex')) not prefix as '5'

By comparing all variables with this tool, I've found that the mistake is in this line:

print b58(extend.decode('hex') + sha2[:8])

Remember that sha2 is a byte array and not a hex string. You can replace the 8 with a 4 to make your code work.

You can also simplify the code even further to:

def b58(hex):
    return base58.b58encode_check(hex)

def sha256(hex):
    return hashlib.sha256(hex).digest()

def main():
    k = sha256('private_key')
    extend = '80'.decode('hex') + k
    print b58(extend)


How to add a fixed transaction fee to each transaction?

If you want total control over the fee then you will need to build the transaction yourself using createrawtransaction - more info here: https://en.bitcoin.it/wiki/Raw_Transactions

However, it's important to note there was a relatively unnoticed change in the way paytxfee handles the fee calculation earlier in 2016 - see here: https://github.com/bitcoin/bitcoin/issues/7633


Tax deduction for US-based employer paying in Bitcoin to overseas contractor

I don't at all see why he couldn't purchase bitcoin through Coinbase or similar and deduct it. That should be entirely deductible, even the fees paid to buy the bitcoin (bank fees plus whatever Coinbase is charging these days).


Bitcoind doesn't find transactions / synchronize / update until last block from Testnet

It looks like you are using version 0.3.24 of the bitcoin client, which is extremely old (released July of 2011).  The latest version is 0.8.6.

Versions prior to 0.7.0 (released April of 2012) used a different testnet blockchain (called testnet2), which is no longer in general use.  Since 0.7.0, everyone uses testnet3, which has a new genesis block and a separate block chain.  So the coins you received are waiting in that new chain, but you're looking at the old one.

Upgrade to the latest version of bitcoind.  Then copy your wallet.dat from .bitcoin/testnet2 to .bitcoin/testnet3.  After synchronization, you should see your coins (and avoid a lot of other issues too).

I'm actually pretty surprised your client found enough testnet2 peers to get a complete copy of the testnet2 block chain!


How do offchain transactions get validated/confirmed whilst using Lightning network?

Individual transactions on the lightning network will never be confirmed on the blockchain.

However, the net sum of value passed back and forth on a single channel (regardless of how many lightning transactions that is) will be validated on the blockchain as part of one closing transcribe for the channel.  This is similar to how money is transferred in the traditional financial system using a process called "deferred net settlement".


How is a doublespend prevented in the Lightning Network?

Doublespends are not possible, because a payment on LN is only considered finalized once both payment channel owners have revoked the previous state of the payment channel by handing their partner a breach remedy that invalidates the previous state.

Thus, Bob should not hand over whatever service Alice was purchasing until the payment is finalized. Once the payment is finalized, Alice can no longer broadcast the old state without opening herself up to the penalty transaction being broadcast by Bob.


I've sent Bitcoin to my BCH address on Coinbase. How can I recover it?

Coinbase has shite customer service. But they're who you need to wait for. They'll either be able to access the bitcoins and send them back or credit your account, or they might give you the private key and let you do it. Not sure what their policy is. But you should use a different exchange anyway. Try ShapeShift, Bitstamp, or CryptoPay


Bitcoin alert service if price dips or rises by a percentage base?

I have never used it personally, but I have a lot of good things of the Bitcoin Paranoid app. It's supposed to alert you on price changes.

Here's the bitcointalk thread: https://bitcointalk.org/index.php?topic=178391.0


Through block 512961, the highest (little-endian) nonce value to date is 4294956079 (0xffffd42f), in block 219742.

The lowest is 1082 (0x0000043a), in block 67071.

The script I used to gather this data is at https://github.com/neldredge/bitcoin-blocks.


Yes you should be running something like cgminer or bfgminer which can join a pool and mine while your client is still downloading the blockchain.  You only need your own blockchain to do solo mining, and unless you are running a lot of very fast asics you will want to continue mining in the pool.


Transparent Crypto Bitcoin 2.0 Technologies vs Anonymous Bitcoin Crypto 2.0 technologies?

When I joined Ethereum in January 2014, one of the things that attracted me to the project was how transparently Vitalik wanted it to be run. Everyone in the team is identified publicly since day one, all the code is opensource wall to wall under MIT license, and how we intend to use the funds is completely transparent. Even our multisig account is public (https://blockchain.info/charts/balance?timespan=&daysAverageString=1&scale=0&address=36PrZ1KHYMpqSyAQXSG8VwbUiq2EogxLo2).

I personally can't imagine doing it any other way. Staying anonymous benefits who exactly? And protects the project creators from what exactly? To say it's to protect oneself from the big bad 'government' sounds far fetched at best, and a terrible excuse to operate with impunity at worst.

The 'crypto space' is currently very similar to the web circa 1993 (see: Pixelon): a miasma of a very few talented and visionary individuals, mixed with snakes, con-men, and sharks with big smiles preying on the excitement this new technology has engendered. It's very unfortunate, and certainly ironic: it is indeed the promise of the blockchain technology for operations to be executed in a 'trustless' manner, meaning without having to trust a central authority to act honestly.

TL;DR: staying anonymous only benefit the platform creators, so proceed with caution.


Every node maintains a memory pool of transactions that are not yet accepted into the block chain, but they consider acceptable. The rules for this acceptability are complicated (they must be valid, they must not spend any coins already spent in the chain or by anything already in the mempool, various limitations to prevent denial of service attacks, fee and priority limitations, rate limits, ...). Any time a miner creates a new block, they generally use all available transactions from their mempool, constrained by block size limitations (so some transactions may not make it into one block, but could make it into the next one).


how do i brute force my wallet.dat to get my private key

If you are using Bitcoin Core:
1 - Go to window > console
2 - Type listunspent
3 - You will get a list of addresses with the spendable amount
4 - Copy one of those addresses
5 - Type dumpprivkey pasteYourAddressHere


How can I sign message for a blockchain watch only bitcoin address

When you import an address as a 'watch only' address, it means exactly that: you can only 'watch' the address and see whatever funds are sitting in it. You cannot send transactions, or sign messages, with a watch only address.

This is because you just imported the address into your wallet, whereas if you imported the private key, then you would be able to sign the message (and send transactions, etc).

So you'll need to find some wallet software that can sign messages (and that you trust). Import the private key for that address, and then sign the message.


I am reading that some will ship June 12th:
http://themerkle.com/ologies-unveils-first-commercially-available-16nm-bitcoin-miner/

Delivery time is sure to vary based on where you live. Based on the selling price I perhaps some sort of delivery tracking would be an option


Can I mine Bitcoin from my Hosting server?

Since it is a dedicated server, I doubt that the company that you are leasing it from would care. But ultimately to answer that question, you need to take a look at the Terms & Conditions of the leasing company.

Assuming that you can and want to, there is no difference between a leased server and one sitting on your desk, the tools are all the same. (Ok that's simplifying it because obviously you need to connect to the leased server via VPN, etc., but the main point remains).

Since you are new to mining bitcoin, I would recommend getting it up and working on a PC that you have physical access to, even if it's not for serious mining, you would learn a lot about how it works. Once you have it working locally, then I would deal with getting it working on your leased server.

Have fun!


Possible optimisation to bitcoin propagation

My concern would be that in the case where the recipient doesn't have all the transactions, the extra request(s) to get them would end up taking more time than just sending them in the first place.  Miners are scattered all around the world but are likely to be able to pay for fast connections, so I would expect connections between them to have high latency and high bandwidth.  In such a case it's better to preemptively send a larger amount of data (fast because of high bandwidth) than to risk a request/reply round trip (slow because of high latency).

Also, miners pretty often include transactions that they originated, or were sent to them privately, or otherwise have not been broadcast on the peer-to-peer network.  Consider mining pool payouts, nonstandard transactions, low-fee transactions which the miner has agreed to "accelerate", etc.  So I think this extra request protocol would be needed more often than not.

This could be a reasonable optimization for full nodes who are not miners, and thus don't need to receive the block urgently.  They might save some bandwidth this way.  But on the other hand, since they don't need to receive the block urgently, we don't care so  much about them, and it's hard to justify a major p2p protocol change just for this.


What are the tangible benefits of decentralisation?

I'm argentinian and in 2001, banks converted all USD money in the argentinian accounts to argentinian pesos. A lot of people lost money, because the peso plummeted in value after that. With a central authority things like this can happen at any time.

Descentralization is good because you remove a central authority that can modify the economic policy in an arbitrary way, it can seize or reduce your funds for arbitrary reasons, etc.

If Bitcoin had a centralized authority that would mean the policies that were set in the beginning (e.g. the quantity of coins that will be created, the fact that is a deflationary currency) could change. The fact that Bitcoin is descentralized means that the policies can't change, actually if they change it would not be Bitcoin anymore, it would be a new currency.

So from the beginning you know the "rules" in Bitcoin and you know they are not going to change because an arbitrary authority decided to change it. You are protected against arbitrary change in economic policies.

Also, being descentralized, you can do whathever with your money and hipotetically nobody can take it from you. A central authority could take your funds because arbitrary reasons (e.g. a new tax, etc.).

Also, being descentralized means it's really hard for a government to "shut down" Bitcoin.


How much bitcoin can be mined with intel core i5 pc with external graphic card?

Less than the money that it will cost to you for sure.

I think It would take you a bunch of nights to get the minimun to get paid by the mining pool so you could even earn 0 Bitcoins.


It did indeed process and get verified.

The bitcoin is now in 17rnNNdhnc1dcdb9qBCbMsvHmufFiVzCcJ

If you didn't receive anything in return (goods/services) of value. Then it would seem you've been scammed.


This would be a hard fork, and a difficult one to develop at that.


Does pruning node keep old wallet's transactions?

Yes, it does.

Pruning only affects the blockchain/validation logic. The wallet always maintains a copy of all transactions relevant to it (including e.g. unconfirmed transactions that the validation logic does not know about).


These are API names and display scripts in their encoded and or decoded form. What you want to build a transaction is the encoded form like the one returned by toshi (script_hex) or smartbit (hex).

A script is a sequence of instructions beginning by OP_ (OP_DUP, etc...) and hex data. You can read more about the Script language here.

At the protocol level, all of the instructions and data are concatenated to form a single (encoded) hex blob of the script:

76a914cba5f746dc1e41a932a7d38be7aba95944619ee888ac

This is what is signed by the transaction builder. However, it's not really intelligible for us humans. That's why these APIs decode the hex into the sequence of instructions they encode:

OP_DUP (0x76)
OP_HASH160 (0xa9)
(0x14 means 20 bytes of data are next)
cba5f746dc1e41a932a7d38be7aba95944619ee8
OP_EQUALVERIFY (0x88)
OP_CHECKSIG (0xac)

The traditional way of showing this decoded script is :

OP_DUP OP_HASH160 cba5f746dc1e41a932a7d38be7aba95944619ee8 OP_EQUALVERIFY OP_CHECKSIG


Why would we ever need 10k new addresses in average per day?

Bitcoin transactions usually carry change, and to increase privacy and security, it is certainly no worse to generate a new address every time for receiving change than to reuse old addresses. Details maybe belong into their own question; however, it is well within the realm of reason to expect a future where most Bitcoin transactions include two new addresses (one for the person paid and one for the change back to the payer).

If we dream up a future where arbitrarily small micropayments can be handled by Bitcoin, then I would actually call the 5k transactions per user that could hence generate 10k new Bitcoin addresses a vast understatement of the potential. I'm thinking that rather than paying my mobile carrier for data roaming, I'd want to use micropayments to pay for routing of IP packets in adhoc wifi networks (ok, maybe not for each individual packet given the overhead---but I could, from a user's perspective, want that to happen for every 10 kb chunk of data or so). And I can envision much the same thing with my regular ISP, or even with most websites I frequent (and, come to think about it, maybe some of them should pay me).

The problem with this is that all these transactions end up in the blockchain, occupying a huge amount of disk space. That is why many suggest that micropayments ultimately belong off-blockchain, meaning some other solution should be found for them that does not place the burden on Bitcoin. In my example, it is easy to see why this is necessary: Even if only 100 nodes kept the entire blockchain, then my 10 kb chunk of transmission data would occupy much more than that in distributed blockchain storage just to finalize my payment for it. Obviously not just inefficient but truly unsustainable at scale.

Hence I would say that as far as Bitcoin's blockchain is concerned, we need not worry about seeing quite that many addresses added to it. But if whatever off-blockchain solutions we will adopt for micropayments in the future uses Bitcoins' address scheme as well, then we may well, outside the blockchain, envision such a massive use of Bitcoin addresses.


bitcoind is often very slow when running over a remote disks (such as on a VPS), especially if that disk is slow.  Check the load of incoming transactions in debug.log, which lock cs_main during processing (which the RPC thread does as well).  If you have the memory, try tmpfs, or increase the bdb cache.


Where are my coins after restart of blockchain and transactions (Multibit)

The transactions for your coins are stored on the blockchain.
What MultiBit has is the private keys that control whether you can spend them.

When you do a reset blockchain MultiBit resyncs to what is on the blockchain and shows you the transactions it finds.

You can always export you private keys and pull them into blockchain.info if you want - there is a help topic specifically for this.


Blockchain.com wallet | 1178$ transaction with low fee = 10 satoshi | How fix unconfirmed issue

I have a blockchain.com wallet.
yesterday i did a big mistake :
I customized transaction fee and set it to 10 satoshi.
Here is the tx link of that transaction.
Now after 1 day it has n't confirm.

I would consider use of blockchain.com wallet also a mistake but that's just my opinion.
Tx shared in the question: 3bbab54af84e75a3b02da3f45fafbd683b3a76005f7caf84cb57685c6a32d031
It's effective fee rate right now is 16 sat/vByte because a child transaction associated with it has used 99 sat/vByte in fc254...fd22c
Just read about 30-40% hashrate going offline, so this transaction can take few more days to get confirmed: https://twitter.com/Bitcoin_Vietnam/status/1383452911632412684
If the transaction is really urgent, maybe you can try CPFP with the transaction fc25499e2829cc9851ddf70ad0074f0494231413041ee8bfcd6e64c9814fd22c.

Did i lose my bitcoin?

No

How many days should i wait for confirm?

It's difficult to predict this because transactions are prioritized by miners based on fee rate. You can check the visual representation of it here by searching for your transaction: https://mempool.observer

Does it back to my wallet if it fail for confirmation?

It will remain in the mempool of most of the full nodes until it's confirmed considering the fee rate.

is there a way to change it's fee?

I think you already tried CPFP with the child transaction: fc25499e2829cc9851ddf70ad0074f0494231413041ee8bfcd6e64c9814fd22c
You can use this calculator for CPFP in future: https://cpfp.djbooth007.com/ however it only helps if the child transaction is RBF enabled.
To learn more about CPFP: https://bitcoinops.org/en/topics/cpfp/
Open source bitcoin wallets that support RBF, segwit which can be used in future for managing your transactions in a better way and pay less fees:

Bitcoin Core
Electrum
Wasabi
Sparrow
Samourai
Bluewallet
Green


What wallet should I use to collect the mining payout from multiple machines?

Regardless of what wallet you use, it's entirely unrelated to your mining except as a payout. The address you withdraw to can be in a wallet anywhere (even offline).

P.S. You should really consider upgrading to BFGMiner instead.


(Ripple + wire transfer) x Banking (loans) multiplicator = 2x debt crisis?

First, I need to point out that this wouldn't be typical use of Ripple. Typical use would be where users trust gateways and all balances are fully backed by the gateway. There's no loans and no credit except to gateways.

But, if people do extend credit to each other, unless you specifically agree to do so, there is no obligation to return an asset to any real form. Typical "loans" in Ripple are actually even exchanges of IOUs. The IOUs are redeemable inside the Ripple system and are only redeemable outside the system if agreed. The rates are initial discounts, not interest rates.

If I have a really good payment network and you want access to it, I might trade a $10 IOU to you for a $10.50 IOU from you (more precisely, I would agree to accept your IOUs at a 5% discount). The "interest" is prepaid as an initial discount. There's no need to settle or pay anyone back because the exchange was an even exchange. We both considered my $10 IOU approximately equal in value to your $12 IOU (because of my superior liquidity.)

If you max out your credit, I now have full access to your network (because I hold your IOUs) but you have no access to mine (because I won't accept any more of yours). To get use of the pathway again, you have to reduce the balance to below the limit. If you don't, I can just do it myself by returning your IOUs to you in exchange for other IOUs you hold -- you've already agreed to accept them when you issued them.


For US Tax purposes, is Bitcoin mining more like property, "work to solve a puzzle" or "winning a lottery"?

In the USA, Bitcoin earnings are treated like property.  The full announcement is here:

Virtual Currency Is Treated as Property for U.S. Federal Tax Purposes; General Rules for Property Transactions Apply IR-2014-36,
March. 25, 2014 WASHINGTON —
The Internal Revenue Service today issued
a notice providing answers to frequently asked questions (FAQs) on
virtual currency, such as bitcoin. These FAQs provide basic
information on the U.S. federal tax implications of transactions in,
or transactions that use, virtual currency.
In some environments,
virtual currency operates like “real” currency -- i.e., the coin and
paper money of the United States or of any other country that is
designated as legal tender, circulates, and is customarily used and
accepted as a medium of exchange in the country of issuance -- but it
does not have legal tender status in any jurisdiction.
The notice
provides that virtual currency is treated as property for U.S. federal
tax purposes.  General tax principles that apply to property
transactions apply to transactions using virtual currency.  Among
other things, this means that:

Wages paid to employees using virtual currency are taxable to the employee, must be reported by an employer  on a Form W-2, and are subject to federal income tax withholding and
payroll taxes.

Payments using virtual currency made to independent contractors and other service providers are taxable and
self-employment tax rules generally apply.  Normally, payers must
issue Form 1099.

The character of gain or loss from the sale or
exchange of virtual currency depends on whether the virtual currency
is a capital asset in the hands of the taxpayer.

A payment made using
virtual currency is subject to information reporting to the same
extent as any other payment made in property.
Further details,
including a set of 16 questions and answers, are in Notice 2014-21,
posted today on IRS.gov.


The answer from Anton A. is pretty good; I'm adding this as additional information.

Offline wallets are stored on a computer that never connects to the network so they can only be hacked by being physically present. Additional security can be added by encrypting the Bitcoin wallet or the computer as a whole (be aware on the later that the encrypted computer is only secure once it has been completely shut down for several minutes).

The way it works with Armory is that you have an online copy with the public key where you can see your balance. To create a transaction you do it on the online wallet, copy it to a USB stick, connect it to the offline computer and sign it there, then once you load the signed transaction on the online wallet it gets sent to the Bitcoin network for inclusion in blocks.

The paper backup is needed to recover your Bitcoin in case you lose your offline wallet or password (failure, fire, etc.). I recommend storing it in a bank safe if it holds any substantial value.

Another type of wallet that provides a new, handier way of storing Bitcoin safely is called a Hardware wallet. Hardware wallets are a small piece of hardware which store your private key securely and only allow signing transaction, in some case with an address confirmation display and PIN. Just like offline wallets, hardware wallets allow you to save a paper copy of your key in case you lose or break the device.

These devices are safe to use even on a compromised computer provided that you can verify the transaction output addresses before letting the device sign it, and a PIN may protect the device from theft. There are multiple different implementations with varying levels of security. Some of these wallets have additional features such as providing 2-factor authentication.

Offline wallets are probably still the best way to store large amounts securely, accompanied with either a mobile or hardware wallet for day-to-day Bitcoin transactions.


in c-lightning all the state information is stored in the lightningd.sqlite3 database. so if you shutdown your daemon and you copy hsm_secret as well as lightningd.sqlite3 you should be able to fire up the node again and have your channels operating (I did this already)

You have to be carefull though. If you start the node with an old backup of lightningd.sqlite3 your channel partner might think you try to publish old state and will close the channels and redeem also your balance.

with only the hsm_secret it will be hard to close channels. you can derieve the keys you used but you are missing the signatures of your channel partners to reconstruct the commitment transactions. Technically (not 100% certain how the implementation handles this case) you can try a collaborative close with the third party just with your hsm_secret since you know the keys to the funidng txs and with the other party together you are able to spend them. However you would have to trust the partners to provide the correct channel balance that you previously had agreed upon.


How does Coinmarketcap calculate the USD price for Bitcoin?

CoinMarketCap takes necessary information like volume and price changes from exchanges and calculates their average.
That's why they delisted some of the Korean exchanges earlier, as you may have seen that their prices are too high when you compare it to other exchanges around the world, which causes price jump and misleading for investors.


How do I migrate my Bitcoin Core wallet to an HD wallet?

Since Bitcoin Core 0.17, there is an automatic way to directly upgrade a wallet from non-HD to HD. Simply start Bitcoin Core with the  the -upgradewallet option and have no other wallets (i.e. remove all -wallet= and wallet= options from the command line and bitcoin.conf respectively) being loaded. -upgradewallet does not work when multiple wallets are loaded. This will automatically generate a new seed and keypool while also retaining all of your old private keys and transactions so nothing is lost.

Prior to Bitcoin Core 0.17, there was no mechanism for migrating non-HD wallets to HD wallets. If you don't want to upgrade to 0.17+, then migrating your coins to an HD wallet is possible, at the expense of invalidating your backups and a bit of work.

First you will need to backup your current wallet. Stop Bitcoin Core and back up your wallet.dat file. Now rename your wallet.dat file to something else, like wallet-orig.dat.

Now start Bitcoin Core again. Bitcoin Core will create a new wallet.dat file. This one will be HD and that will be the file that you want to actually use later.

Once Bitcoin Core has started, encrypt your wallet and restart Bitcoin Core. Once you have restarted it, you should see no transactions and no (or one) addresses. Now get a couple of addresses and write them down somewhere. Stop Bitcoin Core again and backup your new wallet.dat file. Rename your new wallet.dat file to something else, like wallet-new.dat and rename your old wallet.dat file (wallet-orig.dat) back to wallet.dat.

Start Bitcoin Core again. You should see your old addresses and transactions. Go to the Send tab and send your Bitcoin to the addresses that you wrote down earlier.

Finally, stop Bitcoin Core, rename your new wallet.dat file (wallet-new.dat) back to wallet.dat. Back it up again and start Bitcoin Core again. You should now see transactions from your previous wallet sending Bitcoin to your new wallet. Once those transactions have confirmed, you have successfully migrated your Bitcoin from a non-HD Bitcoin Core wallet to a HD Bitcoin Core wallet.


Blockchain.info, does recovery phrase recover all wallets?

Blockchain.info follows the BIP 44 standard for derivation paths, so the default account has a derivation path of m/44'/0'/0'/0. The derivation path for each account follows the format of m/44'/0'/i'/0. So for each account, increment i to get the address for it. On https://iancoleman.github.io/bip39/, when you scroll down, click the BIP 44 tab and increment the number in the "Account" box to get the next account you made.


Which fuzzer should I use to fuzz test Bitcoin Core?

This is a work in progress answer with some content currently taken from the Google fuzzing docs.
libFuzzer
libFuzzer is a tool which allows you to write fuzz tests in a similar style to unit tests. For developers setting up fuzzing for the first time, the Google fuzzing team recommends it for its simplicity.

[It] might be a good choice for testing libraries that have relatively small inputs, each input takes < 10ms to run, and the library code is not expected to crash on invalid inputs. Examples: regular expression matchers, text or binary format parsers, compression, network, crypto.

See http://llvm.org/docs/LibFuzzer.html#q-so-what-exactly-this-fuzzer-is-good-for for more information on how libFuzzer compares to other fuzzers.
AFL
AFL is the tool that did the most to drive the early success of coverage-guided fuzzing. The Google fuzzing team does not recommend AFL for new projects since it is not as well-maintained as Honggfuzz or libFuzzer. That said, because of its widespread it is common to encounter existing projects which rely on it for fuzzing.

Compared to other instrumented fuzzers, afl-fuzz is designed to be
practical: it has modest performance overhead, uses a variety of
highly effective fuzzing strategies and effort minimization tricks,
requires essentially no configuration, and seamlessly handles complex,
real-world use cases - say, common image parsing or file compression
libraries.

See https://lcamtuf.coredump.cx/afl/ for more information on how afl-fuzz compares to other fuzzers.
Honggfuzz
Honggfuzz is another fuzzing tool with a rich set of features available to it. The Google fuzzing team recommends it for security researchers looking for more customization options in their fuzzers, or developers on complex projects where working within libFuzzer's unit-test-like style is difficult. It allows users to specify how input files should be fed to a target program (e.g. on the command line, on stdin) or allows more complicated customizations such as feeding input to a network server directly.


How can I verify the authenticity of a ledger Nano s hardware wallet?

Found this just after asking the question.

https://blog.ledger.co/how-to-protect-hardware-wallets-against-tampering-cad35cb72c1


Stuck on blockchain 8791 - Synchronizing

You should backup and secure/encrypt your wallet before messing with anything. If you have a second computer, I'd recommend getting the software working there and ensure that your wallet works on that computer.

If you're running an older version of Bitcoin-Qt, upgrade to 0.8.1 or later.

Check out this other question after that.


Is there bitcoin algorithms flowcharts or any other diagrams available?

Forum user and Armory client developer etotheipi put together a few nice images covering some aspects of the Bitcoin protocol, mostly related to transaction construction and verification; see this forum thread.

Other than that, though, most of the documentation is in code only. If you're comfortable with another language, you could try looking at BitcoinJ, a Java implementation of Bitcoin (client node functionality only), BitcoinSharp, a C# port of BitcoinJ, CBitcoin, a C99 Bitcoin library (also partial), Bitcoin-Ruby, BitcoinJS, and/or PyWallet.

In the end, though, currently the only complete reference implementation of Bitcoin is the original C++ code, so biting the bullet might be the only option.


What's a better investment? Buying an ASIC-based mining rig, or buying bitcoin itself?

Investing in expensive mining equipment hedges a bet that the return on investment, in the form of Bitcoin, will eventually pay off the initial investment and continue paying a return for some time before becoming obsolete (like CPU mining has and GPU mining shortly will) or breaking down. It may be possible operate this as a business, writing off expenses while selling generated Bitcoin for a profit. This is all based on an assumption that this mining system may eventually be profitable. It's safe to assume that it will be once running, but, like any dividend play, it's a long term investment. Unlike dividend plays, the return will likely only decrease over time.

By buying Bitcoin itself, one participates in the economy. While Bitcoin supporters would hope that one would not hold on to Bitcoin as an investment, but rather spend it in order to further the economy, it is possible to still make a return on investment if one's goal is to earn a return in government issued currency.

Consider a $1,200 investment in a mining setup versus a $1,200 investment in Bitcoin itself.

The former is a long term play, slowing building up to profitability through the course of months or years. Something may happen that causes the system to fail and halt returns.

The latter is a more liquid play, where one can sell the Bitcoin at a profit (or loss) short-term or long-term, or exchange Bitcoin for goods and services, thereby furthering the economy.

It comes down to investment style. Does one fancy themselves a miner or a jeweler?


Are ripple transactions reversible like how a CC chargeback works?

Ripple transactions are irreversible. There are no chargebacks.


Remote node signature for HTLC-success and HTLC-timeout transactions

As far as what I have seen, nodes do not exchange their htlcsignatures (although we can derive the htlc public keys through basepoint).

I believe you have overlooked the commitment signed message from bolt 02. From there I quote:

  When a node has changes for the remote commitment, it can apply them, sign the resulting transaction (as defined in BOLT #3), and send a commitment_signed message.

type: 132 (commitment_signed)
data:
[32:channel_id]
[64:signature]
[2:num_htlcs]
[num_htlcs*64:htlc_signature]

While we already see that signatures for all htlcs are transferred we can find the requirements further down :

  A sending node:
  ...
  MUST include one htlc_signature for every HTLC transaction corresponding to the ordering of the commitment transaction (see BOLT #3).

I believe a node SHOULD NOT  forward the htlc before it validated the signatures from all the htlcs of the received commitment signed.


Can bitcoind still do CPU-based mining or was that feature removed?

It is still there as of version 0.8.5, but just a reference implementation. It's not optimized, doesn't support pooled mining, and is not exposed via the Qt GUI.

To enable, start with the -gen option. But other than testnet (and even there...), it's utterly pointless.


Solved it!

I downloaded the bitcoin core source code,
changed the regtest node address parameters to be like the mainnet in the file src/chainparams.cpp.

Then compiled it, run the node on regtest and it worked like magic!


Mt. Gox locks their Yubikeys with an access code. You cannot reprogram them without the code. If you're willing to wait a few months, you can brute force it.


Installation instrucion the for bitcoin core (tar.gz file from bitcoin.org in Linux/Ubuntu Desktop 18.04.)

Not gonna write a 'tutorial', but here's a couple things that should be mentioned:

As you imply, ubuntu provides a standard 'snap' for bitcoin. easily installed via apt. Agree they are a PITA to use, so ...

if you use the tar.gz, just extract it somewhere, then (using the appropriate version number):

2a) check the signature on the hash file:
gpg --verify SHA256SUMS.asc
2b) and confirm the hash for the downloaded file matches the appropriate hash in the hash file:
sha256sum bitcoin-0.17.1-x86_64-linux-gnu.tar.gz
2c) Then the trick is to use this to get the files where they need to go (links included):
sudo cp -vR bitcoin-0.17.1/* /usr/
2d) Not sure what the 'right' way to start it is, but this works for me. I put it in the automatic startups:
bitcoin-qt&


in debian =)

sudo apt-get install libssl-dev

pip install python-bitcoinlib
 or
pip3 install python-bitcoinlib


Does the future SIGHASH_ANYPREVOUT capability hurt the privacy of Taproot lightning channels?

The foundation of a channel is a multisig output which can't be distinguished from other outputs when using musig and taproot.
The mutual channel close is just a regular tx spending this output so I'd say it'll be hard to detect this as a lightning Chanel without other data (similar as with current channels)
However the unilateral close is different and leaves a footprint of the channel state. I think the update transaction that is used to kick of the settlement tx might have the detectable structure that you have been referring to. (I'd actually like to ask you for your source)


Is there a pro vs con chart comparing Bitcoin's Rootstock vs Ethereum Smart Contract system?

Rootstock's smart contract features are identical to Ethereum's, both use the EVM. Contracts on Ethereum are deployable on Rootstock, and vice versa.

They start to differ when you look at the networks. Ethereum has a main network where all the contracts run in a decentralized manner. Rootstock is a sidechain of Bitcoin, but it is not a two way peg, instead it is a federated peg with some amount of merge mining.

A federated peg means that to convert your RSK back into Bitcoin, there are federated parties, or "gate keepers," that control the conversion back to Bitcoin. These gate keepers mean the whole system is somewhat centralized. In the past I'd even heard there would be additional fees for entering back into the parent chain, I don't know if that panned out, but it is certainly possible.

It sounds like an alternative unfederated version is possible with merge mining, and it is being worked on. One thing to note with merge mining and sidechains is that even though chains are rooted in the parent chain, they are mined/managed differently and so have different security properties; most likely the parent chain will be more secure than the side/merged-chains.


How can I import wallet.dat file to Bitcoin ABC wallet without downloading whole blockchain?

If you don't need a BCC full node, you can use an SPV wallet like Electrum (see instructions on BCC here).


What is the cheapest fee based bitcoin / altcoin mixing service to keep myself anonymous and from being tracked?

Even if you use a mixing service it is not guaranteed that the link between the two+ addresses will disappear. Actually, as far as I know it cannot be guaranteed by any mixing service, decentralized or not, including extra fees or not...

In theory, a good mixing scenario would use a purely decentralized service with a consistently huge amount of transactions, which will randomize the mixing better. None of the services I have checked a couple of months ago had both of the above requirements. Personally I believe that doing a non-perfect mixing is worse than doing any mixing since they will know that you tried to "hide" the relationship between the addresses.

Looking around again I found this which has some good advice: in summary, to use mixing services behind the Tor network and send the bitcoins to wallet addresses also created from the Tor network. You can then check if there are any relationships remaining between your original addresses and the new addresses.

By the way, I know a lot of people that would be happy to pay a fee for a proper mixing service.


how long can it take me to get 1 BTC on mining speed 30.9945H/s and 72.99451H/s respectively

It would never, ever happen. The increase in difficulty and the reduction in mining reward would mean that you would never, ever accumulate anywhere near 1 BTC with a mining speed that low. You would need to be more than a billion times faster.

Mining is perfectly competitive. Trying to mine with hardware like that is like trying to win a race to build a suspension bridge across a massive river using teaspoons and toothpicks when other people have flat beds full of steel and steamshovels.

Update: "kindly advise which one of theses two can i buy ..."

Why? Why would you want to enter a business you don't understand? I don't understand tailoring, so I'm not going to go out and buy the stuff to have a tailoring business. Having a bitcoin mining business requires you to get everything right because it is absurdly competitive. Were you to just get an S9i and hook it up in your home, you'd lose $45/month. And that assumes you don't need additional air conditioning to get rid of the 1.3Kw of heat it generates.

Update: I just read their FAQ -- they're not mining bitcoins at all, "In fact, CryptoTab software is mining Monero(XMR) and then converts them to Bitcoins in accordance with the current exchange rate, that is why your balance is displayed in BTC.".

I re-did the math using Monero, and I got a best case yield of minus $6/month. The exact amount depends on your electricity cost. That assumes you personally keep 100% of your mining reward, which I'm pretty sure you don't since you're in someone's downline and are paying for conversion to BTC and whatnot.

It seems like an obviously bad idea though. What's the benefit of combining the mining program with a browser? What conceivable advantage does that have over a separate mining program? And there are obvious downsides -- if I want to change mining programs, mining pools, or which coins I'm mining, I have to change browsers!


Check your rpcallowip configuration, you will need to explicitly allow connections incoming to your RPC port from the network. If your local network for example is 192.168.0.x, the rpcallowip configuation in your bitcoin.conf will need to be 192.168.0.0/24 (this is CIDR notation).


How can I retrieve my bitcoins when the client crashes as soon as it begins synchronizing

The quickest way is probably to import the private key of the address to which you sent the bitcoins into blockchain.info's web wallet service.

obtain the private key for the address which holds your bitcoins
visit https://blockchain.info/wallet/
click 'start a new wallet' in the top left
type a password twice, solve the captcha, and click 'continue'
copy/paste the long url (https://blockchain.info/wallet/random-stuff-...) and keep it safe
visit the url you just copied, and log in using the password you just chose
click the import/export tab, then click 'continue'
paste your private key into the 'import private key' box and click 'add private key'
now you should see your balance, and can spend it from the blockchain.info web wallet

Alternatively, if you want to keep using the satoshi client, you might find it useful to download a recent snapshot of the blockchain and let it update from there.


Is there a list of news articles related to bitcoin?

The most up-to-date list is the Bitcoin press hits thread. However, if you want a shorter list with more quality content, I recommend Press page on wiki.


Code modification could lower mining-difficulty requirements, why isn't this a vulnerability?

Nothing (as long as nobody else changes that code as well). I could easily mine hundreds of blocks a second using modified code.

However, as none of those blocks would be accepted by the rest of the network, it's pointless to 'cheat' the system. Which is how Bitcoin basically works: because every node on the network has to store the complete block chain, it can verify every single transaction and block there has ever been, and changes to the mining code aren't dangerous.


Can an exchange work which does not have control of the private keys?

This could work. Participants would need to deliver sufficient money to the exchange to protect others from their non-performance. But the exchange would never have to touch any Bitcoins.

When you sell Bitcoins, you'd have to be responsible for any decrease in the value of Bitcoins between when you sold them and when you delivered them. Rational sellers would price this risk into their spreads and try to deliver as quickly as possible.

Likely, the buyer would have to be able to cancel a buy if the seller didn't deliver. If the price had gone down, the buyer would be responsible for the difference in price.

The problem with such a service, at least today, is that it would be difficult for people to buy and sell on it. Buyers would have to wait for delivery and possibly switch offers and sellers would need to deliver quickly or risk losing money. This would result in higher buy prices and lower sell prices, which would likely discourage adoption.

It could become popular among people who want to speculate on the price of Bitcoins with leverage. You could sell Bitcoins you don't have, for example. The buyer doesn't want Bitcoins, they just want to profit if the price goes up.


Disclaimer: At the time of this writing, I am a shareholder with ASICMiner.

Also be aware that the Bitcoin stock market is, like Bitcoin, very immature and not regulated. The risks involved are far greater than for a traditional stock market.

Like @Steven Roose just wrote, you can buy Pass-Through (PT) shares through two separate stock exchanges, BTC-TC and Bitfunder. I personally prefer the former due to its easier interface, but either works.

However, know that these are PT shares only. A PT means that you buy shares with someone who holds real shares with ASICMiner. In practice, it is much the same, but both PTs will charge a 0.5% fee from your revenues, and you don't get voting rights, so keep that in mind.

For 'real' shares, ASICMiner do not sell those directly. They were sold initially at a now defunct stock exchange (GLBSE) which turned into a bit of a disaster and after that, friedcat, the person in charge of ASICMiner, decided he did not want his stocks traded on any exchange for fear of similar accidents.

That said, there are a lot of people that hold 'real' shares, and these are sometimes put on auction over on Bitcointalk.org (check https://bitcointalk.org/index.php?board=73.0). In case you wint one of these auctions, the seller will transfer the sold amount by sending a message to friedcat with your email address and your Bitcoin address for dividends. I suggest using one of the escrow service providers on that forum to ensure the transfer goes smoothly and safely. Several escrow providers will do this for free, but it is customary to tip a few bitcents at least for their service.

Dividends for PT shares are paid to your exhange account and directly held shares are paid directly from friedcat to your Bitcoin address on file.

Beyond that, ASICMiner does not have a web page per se, but they keep everyone informed several times a week here:
https://bitcointalk.org/index.php?topic=99497.0

Like I said, be very careful about investing in Bitcoins and cryptocurrency stocks. There is no regulation, no recourse, and seldom any personally identifiable information.

And again, I am a current ASICMiner share holder, so keep that in mind as you read this.

EDIT: I've posted a more comprehensive and up-to-date answer here:
http://coin.furuknap.net/how-to-buy-asicminer-shares/

.b


I'm afraid you were scammed.

The balance shown by your wallet software is not your money - it is that of someone else the scammed convinced you to "watch". Without access to the private key, there is nothing you can do. It isn't even necessarily the scammer's money either.


How to import wallet.dat.txt file, to convert a txt document into usable BTC?

I'm not sure how it got renamed with a .txt extension, but if you are in Windows and have the "hide known file extensions" setting on, than the file would appear to be named 'wallet.dat' since it will hide the '.txt' portion.  Remove the ".txt" from the end, and try again to import the wallet file.


Can it really be true that the Bitcoin system consumes almost $1.000.000 in electricity per day?

Of course. At the current block reward of 25 BTC per block, on average 3600 BTC are mined per day which are worth over $1 million.

If it were significantly much cheaper than $1M (in terms of energy costs) to mine that $1M worth of coins, more people would do so, thus the difficulty would go up, thus the energy costs would go up.

By definition, the energy costs to mine x amount of bitcoins will never be significantly less than the actual worth of those bitcoins.

By the way, "wasting" (well, not really) only $365M per year is an incredible efficient improvement over the current banking system worldwide. The huge costs, waste of resources, and TONS of other collateral damage that come with the fiat currency infrastructure is astronomical, and saying that it's much, MUCH more than the costs of Bitcoin is even still an understatement.


How many Namecoins are generated per block?

Yes, it's 50, as documented here:
http://www.bluishcoder.co.nz/2011/05/12/namecoin-a-dns-alternative-based-on-bitcoin.html

The reward for solving a block will halve every 210,000 blocks (around 4 yrs), like Bitcoins.

When namecoins are spent to register a domain name, they are destroyed. More details here:
https://github.com/vinced/namecoin/blob/master/FAQ.md

Note that even though the mining reward remains constant, the network fee to register a domain goes down quickly over time. Quote: "The network fee is initially high, but will be negligible after a couple of years. It is used to slow down the initial registration rate so that plenty of desirable names are left for late adopters."