Does Bitcoin dust limit include miner fee as well?

For a transaction to be standard, Each of the outputs has to be at least 546 satoshis. (except an OP_RETURN output, which has some extra rules).

Testnet does not enforce standardness rules.

You can still include  a nonstandard transaction in your block in mainnet, but still, those transactions are not relayed.


Do I spare 80Gb to only keep the blockchain and do I need it to be always present?

There are different ways of interacting with Bitcoin. If you just want to make an occasional payment, and don't want to handle large sums, you'll probably be happy to run a Thin Client on your smartphone. They rely on full nodes to provide data, but when you wait for a few confirmations are sufficiently secure. To learn more about different types of wallets, you may want to have a look at Choose your Wallet.

If you want to support the network or want to make extensive use of Bitcoin for business, you may be interested in running a full node. If you want to have and be able to serve a complete copy of the blockchain, you'll need to keep all of it, but if you're only interested in working off a fully validated representation of the network's state, you can instead opt to run in pruning mode. Nodes in pruning mode are as secure as other full nodes, but cannot serve all historical data.


One private key generate many public keys?

One private key can generate two different bitcoin addresses. That depends on the ECDSA logic and encoding schemes used. Probably you have heard about compressed and uncompressed keys. The details are deep under the hood, and requires some reading, e.g. Andreas book "Mastering Bitcoin" (2nd edition), which is online available. Chapter 4 and 5 are the relevant ones.

I am not sure, how bitpay creates his keys, but I have already imported privkeys into Electrum as well. As long as I was working with compressed keys in my source wallet, Electrum showed the same. However, this gets different, when you extract keys from bip39/44 wallets. From looking at their website, I think bitpay has only a function to extract an extended private key, that is for sure different from a "std private key". An extended private key is used in HD wallets, to generate a set of xpub keys, that can be used e.g. on websites, to avoid re-use of keys. And depending how the seed is implemented, wallets are not always compatible to each other. This might be the case, why you see different addresses. Electrum uses [m/44'/0'/a'] as xpriv path for derivation. But maybe there is a way, look for samuelt33's comment on 5 Aug 2017 on the webpage here.

On standard privkeys and pubkeys, there is a longer thread here: How are compressed PubKeys generated?


BTG wallet or exchange with BIP39 seed import

This doesn't answer the question directly, but Coinomi running in Genymotion works and allows restoration from a BIP39 seed, per the instructions given here:

https://medium.com/@coinomi/collecting-your-free-bitcoin-gold-btg-coins-da937d4255d1

Genymotion can run under Linux, so while it's a bit of work, one can achieve the desired outcome using this method.


running bitcoind for the first time - can't interact. keep getting command not found

bitcoind is the server, you can interact with it using the command-line utility bitcoin-cli. For example:

bitcoin-cli getblocktemplate

See this question for more info.


How can I move BTC wallet and funds from Block.io?

That error message suggests that there may be a short term problem inside the systems operated by Bitcoin.io, in which case I would just retry every day or so.

Clause 5.1.2 of their user agreement says

  When you create a Wallet, the Wallet software generates a cryptographic private and public key pair that you may use to send and receive any supported Virtual Currency via the relevant Virtual Currency network. You are solely responsible for storing, outside of the Services, a backup of any Wallet, private key or transaction information that you maintain in your Wallet or otherwise with the Services. If you do not maintain a backup of your Wallet data outside of the Services, you will be may not be able to access Virtual Currency previously accessed using your Wallet in the event that we discontinue or no longer offer some or all of the Services or may otherwise lose access to Virtual Currency. We are not responsible for maintaining this data on your behalf.

If you have the private keys in a known format, you should be able to import them or sweep them into a normal Bitcoin wallet

How do I import a private key into Bitcoin-Core?
Electrum 2.x sweep feature

etc.

Please read about the advantages and disadvantages of importing vs sweeping and differences between full-node and SPV wallets.


What happens when you send a transaction that ends up in an orphaned block. Is it recoverable?

Orphaned transactions are returned to the memory pool, they are never "lost". If the TX did cease to exist from the mempools, it would just be as if they has never been sent, so again they wouldn't be lost.


Why is Poisson instead of Negative Binomial used for computing attacker's potential progress?

I have found the answer in this article by Meni Rosenfeld, page 7. The problem should indeed be modeled with a Negative Binomial distribution, and the computations done on Satoshi's paper are approximations.

The fact of matter is that the quality of the approximation does not rely on the expected high number of trials required to mine a block, but in the general similarity between the negative binomial and the Poisson distributions. This leads to non-negligible differences between the actual probability and the probability computed by Satoshi, e.g. for q=10% and 5 confirmations, Satoshi says P=17.73523%, while Rosenfeld says P=19.762%.


What is the superscript number in Bitcoinica prices?

These are indeed pips, according to this comment by Bitcoinica's owner. That is, they are just an extra digit denoting multiplies of 0.00001 USD.


If you look at the changes made to the bitcoin reference implementation with the implementation of BIP 43 (see this commit), you will see that a check has been added to the function 'AcceptBlock'. With this change, the function is now validating the height against the value taken from the coinbase script of the incoming block.

CScript expect = CScript() << nHeight;
if (!std::equal(expect.begin(), expect.end(),vtx[0].vin[0].scriptSig.begin()))
            return DoS(100, error("AcceptBlock() : block height mismatch in coinbase"));

So a block that contains a wrong block height in the coinbase transaction would actually be rejected by the other nodes in the bitcoin network (in the current version of the source code, this check is now in ContextualCheckBlock in validation.cpp). The value of the height to which the coinbase script entry is compared is taken to be the height of the current last block plus one, so it is calculated.

Thus the answers to your questions are:

1) no, the block height that a node actually uses is determined based on the current last block

2) yes, see the check in ContextualCheckBlock

3) probably yes, but then the DoS protection mechanism in the network would kick in and ban the respective node - and apart from that, the mining power that the miner has invested into the block with the incorrect height would be lost


Does solo mining with multiple computers require different generation transaction addresses?

Bitcoind will of course give different data to each of the miners connecting to it. Otherwise using multiple miners would be pointless.

It needn't necessarily give a different address (though normally it does) - it's enough to change the extraNonce field.


If Bitcoins aren't tied to a conventional currency, how did they get so valuable?

At first it was simply because a decent amount of people accepted the fact that it had a value and used it as a currency even if it was not backed by gold or oil like conventional currency (that still does not have intrinsic value), if you mean how it achieved such an insanely high value the answer is even simpler: speculation; people started buying the currency not to use it for transactions of goods but to simply make a profit from the fluctuating value, buying low and selling high.


Why is OP_SUBSTR disabled? (and OP_LEFT, OP_RIGHT)

I'm afraid that my answer here can't be better than "Ask Satoshi".

There was a series of bugs found in Bitcoin's early life, and the response by its creator was to disable a number of scripting opcodes. Some of these may have been bad choices (or very wise ones...), but we don't know, and it does not matter. For all intents and purposes, these opcodes do not exist, as "reenabling" them would be just as hard as introducing them as new operations in the first place (i.e. a hard fork).


Could Bitcoin be implemented without saving the block chain on the HDD?

Yes this is called an SPV client.  See this question here for detailed explanation of how SPV works.  There are several of these today, most mobile wallets and the multibit wallet use SPV technology.


Import all existing addresses in local bitcoind

You can import any address you want to watch or "work with" by navigating to console window and sending the following command:

bitcoin-cli importaddress "address" "account" <rescan>

after blockchain scanning complete you can send

bitcoin-cli listtransactions "account" "Count" "skip" watch-only
bitcoin-cli listtransactions "*" 1 0 true

So you get all transactions.

You can get all commands from bitcoin.org


My Radeon 7570 that comes with my hp envy h8-1409 is not being detected by CGminer (Litecoins)

It's a bit janky, but I've finally found a solution to this situation.

Download this driver sp57510.exe
Attempt to run the installer - it will eventually get to a point and then fail. When it gets to the point that it tells you 'Unsupported System' with an OK button, don't press OK just yet. Open /appdata/local/temp. In there, find the most recently created folder. It's contents should look like this:

Go into the /src/ folder, and you should find an ATI Setup.exe. Run that. My driver was up to date, but it did add the AMD APP SDK stuff and now CPU-Z reports that OpenCL is available, and cgminer is chugging away.


Can I add inputs from different accounts coming from the same Bitcoin HDWallet?

Yes. Each input has its own signature with which to sign, so as long as you possess the private keys (or a master private key above the account level), you can add those inputs into any transaction you want.


What does a coinbase output script look like?

Coinbase transactions are almost identical to normal transactions.

The only difference is that they have exactly 1 input, which must have a special form (which would be invalid for non-coinbase transactions).

There is no difference between the outputs of coinbase transactions and others*. So just like any other transaction, they can have 1 or more outputs, and all those outputs have an amount and a script (address). Each of those outputs result in a new UTXO that is spendable by anyone who can sign for that script/address.

(*) Coinbase outputs have a special rule that they can only be spent after 100 blocks, instead of immediately. This is to prevent reorganizations from wiping out whole sequences of dependent transactions.


Projects built on the Tendermint platform?

CyberMiles is using it. They just got on the stage


I think the most easy way to do this would be through Omniwallet API.
mastercoin-tools is deprecated and should not be used.

If you want the better security achieved by running a local instance, use Master Core.


Why do some generation transactions use pubkey, instead of hash?

Pubkey transactions use a little less space in the block chain overall (if no pruning is used), so you might as well use them when you can.

I think that Satoshi's main reasoning was as follows, though:

Satoshi originally expected that most transactions would be pubkey transactions: the sender would contact the recipient directly and retrieve a public key to send funds to (the protocol has commands for getting this info from recipients, but it's almost never used nowadays). Bitcoin addresses were just a "hack" useful for sending BTC to offline recipients. You know your own public key for use in generation transactions, so addresses aren't necessary and Satoshi avoided using the "hack".


How do I know if an input I am using in my script is associated with witness data? I have tried using public API's to look at the outputs I am using and I cant understand what it means. I see witness fields associated with the inputs of the transaction that produced the outputs I am trying to include in my transaction but not the other way around.

I believe your confusion is due to this line

  If a txin is not associated with any witness data, its corresponding witness field is an exact 0x00, indicating that the number of witness stack items is zero.

not applying to the serialization format, but to the contents.

A witness is always serialized as:

A variable-length integer indicating the number of witness stack items n.
For each of the n stack items:

A variable-length integer indicating the size of the stack element b
A b-byte array with the contents of that stack element.

A corollary is that an empty witness is always serialized as just a 0x00 byte (indicating that there are zero stack items).

So your serialization and parsing code does not need to know whether a particular txin has associated witness data. It just serializes/parses the witness, which may be empty.

It so happens that the validity rules require that the witness for a non-segwit spend always has to be empty, and as a result, the serialization of such a witness will always be just 0x00.


What is wrong with using hmac_sha512(block_hash, trans_id) as the resulting hash for a provably fair game?

Miners could cheat this game, by withholding blocks that would cause them to lose.

For simplicity, let's assume the game is designed for approximately 50/50 odds (say, players are betting on the first bit of hmac_sha512(block_hash, trans_id)).

A mining cartel could do the following.  The cartel members pool their coins and place a single large bet at your casino (say BTC 1000).  If they solve the next block before anyone else on the network, they compute the hash of the block hash and transaction id, and determine whether this block hash would win their bet.  If it would, they post it, and collect their winnings (and their BTC 25 block reward).  If it wouldn't, they throw it away and keep mining (and forfeit BTC 25).  This cuts their effective hashing rate in half, but means that every time they do find a good block, they have a guaranteed win of BTC 1000.

This introduces a bias into the game, proportional to the fraction of the network's hashing power that the cartel controls.  But even a slight bias, over large bets and a long time, could let the cartel clean up at the casino's expense.

Worse, since the cartel's activities are profitable for all its members, there'd be an incentive for more miners to join the cartel, which makes the bias stronger.  In the limit, every miner on the network joins the cartel, and the cartel wins 100% of its bets.

A solo miner could mount a similar attack.  Alice creates a transaction that bets BTC 1000 at the casino, but doesn't publish it to the p2p network.  Instead, she includes it in the blocks that she hashes.  When she solves a block, she checks its hash to determine if it would win her bet.  If so, she publishes it.  (Maybe, to be a little less obvious, she will post her bet transaction on the p2p network and wait a few seconds before publishing the block, and hope that nobody solves another block in the meantime.)  If the block doesn't win her bet, she discards it.  As in the previous case, her effective hashing rate drops by half, but she wins every single bet that she makes.

"Provably fair" can be counterintuitive.  The way to make a provably fair game is not to bet on some external phenomenon that you think neither party can predict or influence; often the parties will surprise you, and in any case it's not usually easy to prove that they can't.  Provably fair systems instead bet on something that's determined by the inputs of both parties (with no external input), but determined in such a way that either party can assure a fair result by choosing their input to be truly random.


The USD limit is only for funds being removed as USD.  They do not value BTC in USD to see if it crosses the limit.


Does the size of a pool affect the number of invalid shares?

There's no reason pool size should affect the number of invalid shares. If you're seeing different amounts of invalid shares on different GPUs, the most likely explanation is that the GPU is too hot, improperly overclocked, or failing.


How to get sending address of a deposit using coinbase api

No it is not possible because to get the "sending address" because such things do not exist in Bitcoin. There is not "send from" address in Bitcoin transactions. Furthermore many transactions will "send from" multiple addresses (i.e. they have multiple inputs).


How to compute merkle root without coinbasetxn?

What pool are you using? As an example, if you hit (POST a request to) eligius pool (http://gbt.mining.eligius.st:9337) with the body as

{"id": 0, "method": "getblocktemplate", "params": [{"capabilities": ["coinbasetxn", "workid", "coinbase/append"]}]}

as taken from https://en.bitcoin.it/wiki/Getblocktemplate you will get a coinbasetxn field returned in the json.


what is the relationship between bandwidth and hash rate?

Hash rate measures how fast your miner can attempt to find a nonce that satisfies the proof of work.  The speed at which it performs this task is not related to network bandwidth.  It does not perform a network operation per hash.

Bitcoin mining still requires network usage, however.  Your miner will request a unit of work from the mining pool, which is really just a block header.  This is only 608 bits (not bytes) of data.  Your miner's job is to fill in the remaining 32 bits of the block header (total size is 640 bits), called the "nonce", and hash it to determine if the proof of work is satisfied.  If you have exhausted all 2^32 options, then you will request a new unit of work.

So your miner will request units of work more often the faster it can hash, but this amount of network traffic is small.  Since each unit of work is only 608 bits, this is a very negligible bandwidth usage.  You won't see a significant increase in profitability by increasing bandwidth.

You may want to check out this answer to How do mining pools distribute work effectively?, specifically the comments.


Are there numbers on how many pre-orders (or total GH/s) ButterflyLabs already received?

I found this :

BFL SC Pre-Order Information

So. 6000 units ordered from june 2012 to june 2013. 100 were shipped, in june 2013. 5900 to go.


What are the advantages of sharing money in hosted e-wallet services?

As Chris mentioned, this is the default behavior of bitcoind which the eWallet uses - disassociating addresses from accounts.
Users expect the funds to be immediately available. If everyone has their own address, it means all the deposited funds must be in a hot wallet, which is dangerous since it can be hacked and stolen. A prudent eWallet will keep most of the deposits in a cold wallet, and only move funds out of it as necessary to allow smooth transactions. For this it will need to move bitcoins to an address other than the original deposit address.
Some eWallets provide green address functionality - a sending address known to belong to the eWallet and assumed trusted. For this the eWallet will need to move funds to its green address in advance.

So the question really is why not to combine the funds. If it's to prove that it's not fractional reserve, that can be done in other ways.

eWallet such as blockchain.info's MyWallet provide the benefits of an eWallet without giving the provider control over the coins, and in the future there will be eWallets with more advanced features using multi-signature transactions.


I can't say that I'm certain of it, but this is the largest block I've ever seen:

00000000000000fb62bbadc0a9dcda556925b2d0c1ad8634253ac2e83ab8382f aka nr 153509

It has a total output volume of 607,176.29050282 BTC, primarily because of this 550k transaction.


Here is an extremely simplified sketch of the problem, but it should give a pretty good idea of what the problem is.

The data:

This is the hash of the lastest block (shortened to 30 characters):

00000000000001adf44c7d69767585

These are the hashes of a few valid transactions waiting for inclusion (shortened).

5572eca4dd4
db7d0c0b845

And this the hash of one special transaction that you just crafted, which gives 25BTC (the current reward) to yourself:

916d849af76

Building the next block:

Now, let's use a gross approximation of what a new block might look like (the real one uses binary format). It contains the hash of the previous block and the hashes of those 3 transactions:

00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--

Now let's do mining by hand! Our goal is to complete this block with a nonce (a piece of garbage) such that the hash of the new block starts with 13 zeros (considering the previous hash, it seems that 13 zeroes is the current difficulty!).

Mining (trying to finalize this block):

Let's try with nonce=1, and compute the hash of the block (I'm using the md5 hash algorithm, but Bitcoin uses double sha256):

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--1" | md5sum
8b9b994dcf57f8f90194d82e234b72ac

No luck, the hash does not start with a 0… Let's try with nonce=2

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--2" | md5sum
5b7ce5bcc07a2822f227fcae7792fd90

No luck…

…

If we pursue until nonce=16, we get our first leading zero.

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--16" | md5sum
03b80c7a34b060b33dd8fbbece79cee3

For nonce=208, we get two leading zeroes!

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--208" | md5sum
0055e55df5758517c9bed0981b52ce4a

Continue like this… If you finally find a hash that has 13 leading zeroes… you're a winner! Other miners will now build upon your block, you've just got 25BTC.

But you'll have to be fast!

Back to step 1…

If someone manages to build a block before you do, you'll have to start again from the beginning with the new block's hash (the one of the winner).


Why is a cyclic subgroup chosen in ECDSA?

The security of the discrete logarithm problem in a group is only as hard as that of the largest prime subgroup.

Because of this, there is no security gain from working in the larger group. However; it's worse. If you're working in the larger group you must make sure to not accidentally ending up in a (much smaller) subgroup when multiplying.


How Do I Fix: "Safe mode: Warning: Displayed transactions may not be correct!"

Typically, this is caused by a corrupted block chain database - it causes your client to consider the real chain invalid, and try to find another one. Since the real chain remains the longest obviously, it shows this warning, as it notices its opinion differs from the rest of the network.

The solution is deleting blkindex.dat/blk000?.dat and let redownload the chain. In case you're running 0.8 (if not, upgrade), you can just use -reindex to rebuild the database (no downloading necessary in that case).


is there a Java or C# library for mining bitcoins?

Diablo Miner is GPU miner implemented in Java. It's not a library, but it shouldn't be hard to incorporate it's code in another application.


Can a double spend attack be obfuscated by mimicking the transactions seen before the fork?

The short answer is that there is no way to double spend "without arousing suspicion". Presumably, you would be double-spending against someone and that person would notice as soon as you diverted the main chain.

longer answer:
As long as you're building your private chain you can double spend everything you have by normally broadcasting to the public chain, knowing that it will be reversed later. There is no way to detect/defend against a 51% attack until it happens, and once it happens the security of the blockchain of Xcoin is obviously compromised and the whole coin/your stash of coins is now worthless, so there was not much point in the double spend anyway.


Are there performance implications using the "timestamp" property of ImportMulti in the following way?

importmulti finds the earliest of the timestamps, and rescans from that point after all imports are done, yes. The wallet stores metadata about keys including the timestamp, which is why a timestamp is provided individually for each address rather than a single timestamp overall. Other commands like dumpwallet export a timestamp per key as well so this makes sense to provide it per-key when importing too, to save you having to look for the earliest before passing them in.


Change in hash rate fraction of mining pools

You could try this page for the current share and keep a record?
Bitcoin Hashrate Distribution


What does it mean that bitcoins have lower transaction costs than more traditional forms of currency?

In the past, the cost to send a transaction (aka the transaction fee) was literally very low. For a long time, it was basically 0 for many transactions. That is what people meant by "transaction costs are low". While 0 fee transactions are nonexistent now, Bitcoin transactions are still lower in cost than many of the traditional ways of sending money.

A lot of traditional money transfers will charge a fee based upon the amount being transferred. However in Bitcoin, the fee is based on the size of the transaction data itself, not the amount transferred. This means that the fee for transfers of say $100,000 can be the same as the fee for sending $10. And those fees are usually in the order of $0.50 - $1.00. Furthermore, sending money internationally through a bank is usually more expensive than domestically.  Transfers to an account at a different bank also costs more than transfers to accounts in the same bank. None of this matters in Bitcoin. The fee is only dependent on the transaction data itself, not who you are sending to, where they live, nor how much is being sent. This makes Bitcoin much cheaper than many traditional money transfer services.

With credit cards, there is actually a transaction fee, just that the consumer doesn't pay it, the merchant does. This fee is usually just rolled into the price of the product so you as the consumer don't notice that it is being paid. But the merchants do.

Furthermore, transaction fees with all traditional money transfer services is set by the service and unavoidable. But with Bitcoin, you can choose your own fee. You can choose to pay no fee or very little fee. It's just that paying a lower fee means that it will take longer for you transaction to confirm.

Lastly, Bitcoin transactions are irreversible and "settled" much much sooner than any of the traditional money transfer services. With credit cards, you can reverse a credit card transaction up to 180 days after purchase. With banks, it takes days for ACH transfers to clear. But with Bitcoin, a transaction can be final within 10 minutes. Since you can also change the transaction fee, you get some control over when the transaction is confirmed, unlike with other money transfers where you just have to wait for the bank or payment processor to handle it.


In bitcoin network will there be a path from every node to every other node?

The bitcoin network is only as connected as each node wants to be. The protocol is designed in such a way as to incentivize being connected to the network, so in practice, almost every full node is connected to a lot of other nodes and hence, there's at least a very good chance of a short path between any two nodes.

However, that's not to say that every node is connected. It is entirely possible to run a full node that's not connected, like you seem to have done. In your case, it seems C does not have any peers, so C's mined block won't get to anyone else.

Run this command to see which peers it has:

$ bitcoin-cli getpeerinfo

You'll want to add connections this way:

$ bitcoin-cli addnode <node ip and port> add


Sending fund to an existing bitcoin address

How does the blockchain know that BTC address1 got 3.5 BTC?

It doesn't know anything, it's just a list
Wallets and other software know by looking through the whole list of transactions from the beginning of time† and adding up all the amounts received by address 1 and subtracting all the amounts spent from address 1.

† Bitcoin time effectively started 12 January 2009


Are there other options? Short answer: Yes.
Find a person with bitcoins and make an offer. That's how trading works.
Exchanges minimize the risk and centralize the trade. But they do not monopolize it.
English isn't the only option on most exchanges. If you can't find one supporting your language you have to translate, of course.
As Murch already pointed out legality depends on where you are from. So, check here to see if bitcoin is legal in your country. Plus I strongly recommend asking a lawyer for legal advice.


Are there an infinity of public addresses for a wallet?

A wallet contains a collection of keys, not just a single one.

Every private key has exactly one associated public key. Addresses are shortened forms of public keys (they're encoded hashes of the public key).

Change addresses are indeed public. Like every other address, the key for it is independent from the other keys in your wallet. Note that some clients send change back to one of the addresses the inputs were previously assigned to, in which case it's obviously the same key that is reused.


Bitcoin public key cryptography is not based on RSA, but on Elliptic Curves, so the key is not a huge coprime (in fact ECC manages to achive a similar level of security with much smaller keys).

About why blocks are hashed, the reason is not to slow down anything, quite the contrary: it's to speed up verification that a block "follows" the other blocks in the blockchain. One does not need the hash to verify the transactions (in either the current block or the past ones), but since each block contains the hash of all previous blocks (in a compact way known as a Merkle Tree), one can not simply create a block "isolated" from the blockchain (taking as much time as needed) and then just "insert" it in the blockchain to win the reward - it's necessary that a previous block is known before a new valid one is created.

The "hard" part is creating a hash that satisfies the difficulty criteria. A concise explanation of the process is given in this answer. But one does not need to "reverse the hash" or anything like that for any reason.


Why does my client not show funds that were sent to me?

Your client will immediately show a payment that was sent to you however it will only show as "0/unconfirmed" until the transaction has confirmations and also your client must be synchronized (has downloaded the needed remaining blocks).

If the transaction was broadcast to the network (e.g., shows up in Blockchain.info) but your client doesn't show any payment whatsoever then the problem is likely to be either that your client isn't connecting to the network or somehow the address you think is in your wallet really isn't.

If you manually imported private keys into the client's wallet, then possibly the client needs to have the client launched from the command line with the "-rescan" option to get the imported private key and its bitcoin address to be properly recognized.  That option can be run at any time (i.e., isn't harmful to run, even if not needed) so if you are expecting results that aren't occurring, this is one step you can take to eliminate any question.

Of course, make sure you have a backup (multiples, actually) of your wallet.dat at all times, including before doing a -rescan or at any time there appears to be trouble.


Does btc-e require verification for coin to USD conversion

I use them for my primary exchange. You can sell BTC/LTC/etc. for USD and hold the USD in your account without verification. As far as I can tell, there is no verification process nor a way to withdraw USD other than as a BTC-E credit. In my experience, you're better off finding a reliable third party that specializes in buying BTC when you are ready to cash out.


What was the intended benefit of truncating the Target?

I suspect that the target is truncated so it will not consume too much space in the blockchain.

The blockchain stores a compact form of the target in a "bits" field that is 4 bytes wide.  This is (significantly) less than 32 bytes (256 bits) representing a SHA256 hash.

For context:

The space savings is exactly 28 bytes per block.
As of 2/28/13, a block count of 223693, that's 6,263,404 bytes or roughly 6MB that was saved with this optimization.  This data optimization applies to data-on-disk, and what is sent to miners from pool operators


Is there a website that shows historic price data?

I think this should help:
http://bitcoincharts.com/charts/

Here you can view all the historical data:
http://bitcoincharts.com/charts/mtgoxUSD#tgSzm1g10zm2g25zv

And if you need any specific date you can hit "Custom time". :)

Hope this helps.


How does the network determine whether to replace a transaction?

Each node in the network accepts any transactions with a higher sequence field (in TxIn) as long as the transaction isn't locked (lock time hasn't expired).

This can't be used as an attack because the client is aware the transaction is unlocked and thus could be modified.  The client (and thus any merchant) will/should treat the transaction as even less secure than an unconfirmed one.

To protect oneself the merchant just needs to wait until the lock time has expired (then transaction is similar to any other 0-confirm transaction) and for even more security wait for 1 to 6 confirmations.

Currently the client only supports lock time of 0 (lock as soon as created) and sequence of max UINT (no possible higher sequence) which prevents modifying transactions.


As required in BIP 34, how miners put the Block Height to their coinbase transaction

In this transaction, the scriptSig is of size 0 because it isn't filled out yet. You have also used a txid of all 0's and a vout of 0, so this size of 0 gets lost in your large string of zeroes.
00000000000000000000000000000000000000000000000000000000000000000000000000ffffffff is the input data.
The first 32 bytes of this is the previous txid. The 4 bytes following that is the vout. This leaves us with 00ffffffff. That remaining 0x00 byte is the length of the scriptSig, currently length 0. The ffffffff is the sequence number.
What you have to do is replace that 0x00 byte with your scriptSig. The scriptSig is prepended by it's length, so what you replace that with would look like 040334cc09.
Note that currently your transaction would not be a valid coinbase transaction. The vout for a coinbase transaction is 0xffffffff, not 0.


Entropy gathering from already generated bitcoin keys?

In basic terms, entropy is good when it is secret and not good when it is known to the attacker or guessable.

Adding the keys would not improve your already existing entropy (although they wouldn't worsen it either). They are just derived from that entropy, so an attacker who breaks your "very good entropy" can just compute those keys. He can also just compute the required parts.

If you have "very good entropy", just use that for how ever many keys you want. Any decent PRNG should have a sufficiently long period until it starts repeating.


What is the probability of forking in blockchain?

Actually, it is not related to the difficulty at all, rather just related to the expected time until the next block is found.

Block finding is a Poisson process.

The probability of x blocks occuring in the amount of time we'd expect λ blocks occuring therefore is:

In ideal conditions, we expect one block per ten minutes, i.e. 600 seconds. Therefore in 2 seconds we'd expect 1/300 blocks occuring.

p(2|1/300) evaluates to approximately 5.54*10-6 which is about 0.000554%, i.e. we'd expect two blocks to occur within two seconds once every 180k blocks or every ~3.4 years.

More exciting are ten seconds which has a probability of about 0.00014, i.e. we'd expect two blocks within ten seconds to happen once every 7000 blocks, i.e. roughly every seven weeks.


Receiving donations by public Bitcoin wallet ID, where to make transparent deposits?

No, do not expose your wallet ID. That is used for logging in to your wallet on the site and is for you only.

Instead, simply expose your bitcoin address. Making that publicly available will mean anyone can send your donations and everyone can see the transactions happening with that address. There is no security risk in exposing your bitcoin address to everyone, if you want transparency.


Can blockchain size become a blocker for bitcoin adoption?

Actually, as Satoshi explained in his paper, you can use a Simplified Payment Verification (SPV) client which would only require you to download the headers of each block.

From the paper itself:

  As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker.

So if you're not mining, and the network is overpowered by honest nodes (as it should always be for Bitcoin's integrity) you don't need to use a full node.

Bitcoin-QT is a full node probably because it's the official client and it bundles all the features since day one. Using something like MultiBit, which is an SPV client, would offer you the same exact amount of security as Bitcoin-QT.

So no, the increasing size of the blockchain is not really a blocker for Bitcoin's adoption because only miners would need the entire blockchain data.


You cannot. You need the wallet.dat file, unfortunately. Without a backup there is way to recover the funds.


What's the point of trading BTC if you're limited in the things you can buy

Well I guess there are three reasons I personally trade for.

Make a profit by buying BTC/fiat low and selling fiat/BTC high.
Potentially increasing the profitability of Bitcoin by increasing the coin volatility via trading.
Being a stakeholder in the currency of the 21st century.

Does this give you an idea of some of the motivations?


Schnorr batch validation speed statistics

Speedup in well optimized cryptographic functions are hard to come by. In libsecp256k1 we'll usually celebrate a 4% algorithmic speedup. Figures on the order of 2x are reasonable for the usage in Bitcoin, though larger might be possible in the future during initial block download since much larger batches could be used.

A single validation on a single core of a fast desktop grade cpu takes about 50 microseconds.

Another relevant Q/A is Schnorr's batch validation


Can you shutdown part way through synchronization process and start up again from the same point?

Yes you can, as long as you don't close the client in some bizarre way (system crash, etc.). In such case, you can get a blockchain that will never synch (you'd have to delete it and start over). But in most cases, yes, you can close the client and start synchronization over without a problem.


Explain how CoinJoin enhances anonymity, in plain English?

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

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

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

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

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

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


Is it possible to create multisig wallet from command line?

Not entirely via the CLI. The create command can be used to create new wallet and the restore command can be used to restore from seed, xprv, xpub, private keys or addresses. Neither supports multisig though.

There is createmultisig that lets you create a multisig address from public keys. But it won't create a full fledged wallet.


Yes, it was removed in an update. The developers have decided to hide it as a way to discourage users from wasting CPU time. CPU mining this big of a coin will get you no where.

It's suggested to mine using an external mining program like CGMiner or practically any miner recommended for Scrypt. Check out Litecoin wiki's Mining Software list and look into Scrypt mining guides such as the Dogecoin wiki's 'Beginners guide'.


Does BTC return fee in a failed transaction?

Yes, effectively.  It isn't really that it's "returned", but that the fee is never actually "collected" until the transaction is confirmed.

If your transaction isn't confirmed, then no money moves at all.  The entire amount, including the fee, remains available for your use in a future transaction, though you may have to wait a little while for it to expire from the memory pool of other nodes on the network, and depending on your wallet software, you may have to use some obscure commands to make it forget the original transaction.


Test environment for bitcoin transactions/wallets

Bitcoin Core and all implementations of Bitcoin should provide developers with a local regtest mode which is local only (no peers) and a mining difficulty of 0. This is the mode most tests are written in because blocks can be mined instantly.
Since you tagged nodejs you might be interested in bcoin:
https://bcoin.io
https://github.com/bcoin-org/bcoin


The hash rate is literally how many distinct block header hashes you can try per second. Nothing more, nothing less. Note that I say "try" and not "compute". Determining whether a particular block header is interesting is somewhat faster than fully computing the hash:

You can drop the last few rounds of the hash implementation, and only compute the first 32 bits of the output (and if that those 32 bits are 0, recompute the hash in less optimized software to determine if it's a fully valid block).
You can exploit the fact that successive attempted block headers only differ in a few bytes, reusing part of the computation.
You can precompute things to find combinations of multiple block header attempts that share more parts of the evaluation than random ones (this is what AsicBoost is based on).

So determining the exact hashrate of certain hardware is a nontrivial engineering effort because of the above, and is complicated by things like architecture specific optimization, and things like exploiting special hardware instructions.

Such engineering has obviously not been done for iPhone, as it's a nonsensical target for computation. My back of the envelope computation suggests it could probably do a few MH/s, but as that still means ~50 million years to find a block, not much effort will be spent on this.


Are there any limitations to vanity addresses?

Overall, you have to start with a "1" (unless you're doing alt-coins). Then the first letter is the only one that can be more tricky to generate (some letters from the end of the Base58 alphabet are harder). Also, generating an address with a lot of leading 1s is a lot harder than any other characters due to how addresses are constructed (leading 1s mean that you have a whole leading byte of 0x00 at the start of the address, or about 1 in 255 change in comparison to 1 in 58 chance for any other letter). After the leading 1s and the first letter, everything else is the same 1 in 58 chance of being any letter no matter what it is.

So all in all, you can generate any combination of letters and numbers in a Bitcoin address as long as it starts with "1", but some combinations are harder to generate. The same can't be said for other altcoins with a specific netbyte, since some starting patterns may be outside of their name space.


Antminer S1, how to mine on multiple pools

Not quite, however you can pool hop.
Check out Bit Hopper

this way you can maximize your mining profits, obviously you put other people at a disadvantage, but the pool operator should really take care of these exploits...


where can I get the NEW Hardware? to make profit

No, you're not doing anything wrong. If it was easy to make a profit, everyone would do it, raising the difficulty, and bringing the profit to zero. Only those with the lowest cost of electricity, the lowest cost of capital, and who can get the best deals on high-end ASIC miners can make a profit. And even then, only by taking the risk that the difficulty or price will not change in ways they didn't expect.


How a thin node ensures the validity of blockchain?

Most thin clients only download, check and keep the block headers. They do not download the transactions of blocks, so they cannot fully verify blocks.

To learn about transactions they request information from full nodes which will send them a Merkle block for each transaction of interest. With the transaction and the Merkle block, the thin client can verify that the transaction was indeed part of the block. When this transaction gets additional confirmations (i.e. more blocks get found building on the block this transaction was included in), the thin client assumes that the network accepted the block and that the block is valid.

There are also some thin clients that outsource verification to remote services such as mobile wallets of online wallet services.


Bare minimum system requirements for Core

Bare min setup uses the bitcoin's feature called pruning.
In prune mode your node will sync the whole blockchain (the data on the website is a bit outdated, it's closer to 400GB now), but it has to start from block 0. If you set your pruning to 5 GB, it will start syncing from block 0 till the 5GB limit and after that will still sync (so your internet connection has to go through whole 400GB) but will delete older blocks. So at the end your history will be only latest few dozen k blocks. But your node in the process will "parse" all the 400+ GB of data, just keeping latest 5GB at a time.
Yes, bitcoind/bitcoinqt works on windows 10 :)


Your understanding is largely correct. I'll nitpick a few points for clarity, but overall I would say you have a decent grasp of whats going on here.

I can send the X BTC I purchased to my hardware wallet by giving the public key to my hardware wallet and specifying perhaps .99X BTC go to that wallet and the remaining .01 BTC is left as the transaction fee.

You will copy your bitcoin address to coinbase, not your public key. (In most cases, they 'pay-to-public-key-hash' (P2PKH) address is, as the name suggests, a hash of the public key). Your wallet will display bitcoin addresses, not public keys, so this is just a matter of terminology.
I am not familiar with Coinbase's interface, but there should be some sort of 'withdraw all' function. You will likely not need to specify a fee (in reality, Coinbase will likely just present you with a fee, which could include both a network transaction fee portion, and a Coinbase service fee portion).

When this transaction gets grouped into a block and is mined, my wallet now contains .99X BTC meaning my public key shows up somewhere on the blockchain ledger that I have .99X unspent BTC associated to my public key.

Wallets do not contain BTC. Wallets contain private keys, which can be used to sign transactions that spend coins which are locked to their associated bitcoin address. Once the transaction confirms, nodes on the network will be aware of an 'unspent transaction output' (UTXO), that is locked to an address that is derived from a private key, which your wallet holds.

I can repeat this process as many times as I like, continuing to accumulate more BTC in exchange for USD via Coinbase.

Yes, though when you eventually want to spend the coins, remember that it is more expensive to create a transaction which includes many small inputs, rather than just one or two larger inputs. See this question for info on fee calculations, and this one for fee info related to segwit transactions.

I can do this by using Ledger Live as described on the ledger website here. Is this still "offline"? even when I "unlock and connect" my ledger device?

The device connects to your computer via USB, and has a very restricted protocol for talking over the USB cable. Your private keys exist on the Ledger, and never leave the Ledger, so this is a more safe way of transacting, then just keeping the private keys on a device which is connected to the internet itself. The transaction can be created using software on your computer, and then that transaction is transmitted to the Ledger, signed, and the signed transaction is then transmitted back to your computer. Some other hardware wallets use different methods of communicating this data back and forth (eg SD card, QR codes, etc), but the general workflow will be the same.

I use ledger live to send BTC to my Coinbase "hosted wallet" public key. When the transaction is processed I can sell my BTC on Coinbase market at the market value.

Again, you'll send to a bitcoin address, but otherwise, this is correct. Note that when sending to coinbase, you will have more control over the transaction fee (and there will be no service fee, like there may be when you withdraw from an exchange).

how is my private key being used when I send BTC using ledger live? I think it is used to "sign" the transaction? So in some way is my private key vulnerable to nano ledger programming or software when sending?

Your private key will remain on the Ledger device, so you need to confirm the transaction looks correct, via the prompts on the device's screen. You should follow the hardware wallet manufacturer's instructions to ensure that you have received an authentic device from a legitimate retailer, and that it is running legitimate and up to date firmware.
Hope that helps!


How can an online wallet be more secure than paper wallets or cold storages?

I tested it by creating a secure wallet on BitGo.

They gave a multisig address for deposits. 2/3 of keys are needed to withdraw Bitcoins. BitGo holds one key, you get private key and backup key.
You don't need to printed private key to withdraw Bitcoins. the passphrase is enough (apparently the key is derived form the passphrase).

BitGo cannot do Bitcoin transactions without user consent, because they (claim to) lack the other halves of the key. This protects againt some attacks. E.g. the site doesn't have a hot wallet which could be emptied if there is a breach on the server.  BitGo forces SMS two-factor authentication to be activated upon sign up. This is good too, protecting against lose of credentials due to stealing or phishing.

If the BitGo infrastructure gets compromised all created wallets after the compromise are compromised too, as the attack can capture keys upon creation. So ultimately you are placing trust on BitGo. They could also blatantly lie you and hold all copies of the created keys, as they are creating the keys, not you. Even if the key creation happens in a web browser using JavaScript you are trusting the code they give you to run.

BitGo is still an online site. If you store your passphrase in a password manager or web browser and your computer gets infected you can lose your Bitcoins, even without interaction from you. BitGo is also subject to malware attacks which modify the withdraw requests in-fly. However "the mad general problem" cannot be solved if you are not doing any checks outside the online world e.g. manual phone calls and confirming by voice. You always need to trust the device you are using to do the withdraws.

BitGo has a nice process and good instructions how to create a multisig wallet and they are also holding a third key themselves, which you can access through password and SMS confirmation. You could create a similar set up yourself, even in safer manner, but BitGo may save you from some hassle. BitGo is also safer than any Bitcoin wallet service where you hold no private keys at all.

The conclusion: lots of marketing promises, ultimately an online site, but may be safer than your average Bitcoin wallet service. You need to trust BitGo. Not safer than your own cold wallet / multisig solution if you know what you are doing.


Can I spend/transfer bitcoins directly from cold storage?

Every bitcoin and bitcoin transaction is stored in the blockchain which is online, distributed and known by every full bitcoin node.

What you have on your pc are private keys.   As long as you have this private key, you can sign any transaction which matches the corresponding public key.

An offline, or cold-wallet is a wallet that is not connected to the internet, so nobody can ever figure out your private keys by hacking you - the keys aren't connected to the internet.

Spending coins is basically signing (with your private key) that you wish to yield the control of your coins to someone else.

To sign this message, you will usually need a pc which is online to create the message to sign, and has a copy of the private key.  It also needs to be online to send that signed message.

So unless you have a way to transfer the message to sign to and from a completly offline computer, you will always have to bring your wallet online to spend your coins...


finding new bitcoins vs processing transactions

I'm fairly certain that learning more about mining and proof-of-work in general will help answer most of your questions, but I thought I'd get you started.

  What does the process of finding unconfirmed transactions and submitting them into the blockchain look like?

This is mining.  It means taking unconfirmed transactions, checking if they are valid, grouping them into a block, and performing a proof-of-work on that block.  Miners don't have to "find" unconfirmed transactions; the transactions come to them.  Anyone who is listening on the Bitcoin network will see new transactions as they are broadcast.

  Is confirming transactions just as expensive as minting new coins?

Confirming transactions is mining.  A confirmation is the inclusion of a transaction into a block.  You may have meant validating transactions, meaning checking if a transaction is valid.  In this case, no, validating a transaction is not an expensive operations.  It's simply checking that the transaction conforms to a standard and is not attempting to spend money that has already been spent.

  Does bitcoin core's bitcoind expose unconfirmed transactions?

Yes.  You can use getrawmempool to see the transactions still in the mempool.

  How do unconfirmed transactions get submitted into the blockchain?

The user who creates the transaction broadcasts it to the network, and then miners include it in a block.


How fast is the Bitcoin (mining) network?

According to Bitcoin Charts, it is equivalent to 127.25 PetaFLOPS currently. This would make it faster than 500 fastest supercomputers in the world (58.9 PetaFLOPS), or Folding@home (4.1 petaFLOPS) [reference]. However, this is only equivalent computation speed, if you would measure actual amount of FLOPS of Bitcoin mining it would be... 0, as Bitcoin does not use floating point operations. Moreover, I'm not exactly sure how Bitcoin Charts computed that figure.

However, objective measure of how fast Bitcoin is in computational sense, would be it's current hashrate - 9.738 Thash/s. At peak rate it was estimated to be over 15Thash/s.

As a side note, one might also be interested in the speed of propagation of blocks in Bitcoin network, which is estimated to be close to 2 seconds.


Tracking transactions in both directions

That's not possible without looking through all the transactions after this one and finding the one which spent it. Most block explorers keep a database of the transactions so you could look it up on one of them.


Is it possible, with bitcoin-core or btcd, to manually set the scriptSig field in a coinbase transaction?

It is not possible to do this in Bitcoin Core. If you want to have control over the coinbase transaction, you will need to use external mining software that allows you to do that.

Since the difficulty on regtest is so low, you could have a simple python script that produces blocks with your specific coinbase. You don't need actual mining software as the difficulty is low enough to be found almost instantaneously with a naive mining implementation.


Retrieve private key for watch only address

the mycelium wallet automatically generated a watch only address and sent the btc from there

A watch-only address is one for which you do not have the private-key. It isn't possible to send bitcoin from a watch-only address.

I need the private key for this watch only address to access my tokens. Is that possible?

See Mycelium

'Watch only' accounts
An address stored in the wallet without the corresponding private key, allowing the wallet to watch for outputs but not spend them.

If the address is watch-only, your wallet doesn't have the private key.
How to manage my account says

To activate an archived account, press it to select it, and press «Activate» at the top.
To delete an account, press it to select it, open the pop-up menu, and press Delete. Note, you cannot delete your HD accounts, only single address accounts. When deleting an account, you are given the option to delete the account completely, or only delete its private key. Deleting only the private key will convert the account into a watch-only address, allowing you to monitor the balance and receive payments to the account, but not to spend from it.

(my emphasis)


How to create multi-user wallet or wallets supporting off-chain transactions

The case 1 is easy from a technical perspective: you create a single hierarchical deterministic wallet and take full custody of your users' balances. To do so, you provide distinct addresses to each user whenever they want to deposits or receive coins. You keep track which addresses are associated with which account, but only show them their balance aggregated from what they received and sent. When they send to another user on your service, you only update your database and do not move any coins. To create withdrawals or send transactions, you use whatever coins are convenient to do so. Note that this is simple only from a technical perspective, it is difficult from a legal and regulatory perspective.

Case 2 is impossible: The two requirements of the users holding their own private keys and being able to transfer coins without paying transaction fees are not compatible.
If you want users to hold their own keys, to sign over bitcoins, they need to be transferred to the control of another key. This requires an on-chain transaction and thus requires fees. On the other hand, to transfer balances without a fee, the coins must be under your service's control so that you can unilaterally amend the balances in your database.


Are bitcoins (or fractions of bitcoins) labeled with IDs?

So are bitcoins, or the smallest allowable bitcoin fractions, distinctly labeled entities?

They are unspent amounts (outputs of prior transactions) associated with addresses. Unspent transaction outputs are abbreviated UTXO.

Bitcoins or fractions (millibits, Satoshis etc) don't exist as entities in computers running Bitcoin software. The computers just keep track of the movement of amounts, they keep track of UTXOs, transactions, addresses and so on. Those are the identified entities.

  what would double spending actually look like in the bitcoin system?

Two transactions with the same input UTXOs.

The first one to be mined and "confirmed" will be valid, the second one will be regarded as invalid. There can be a period in which the outcome is uncertain until a consensus emerges.

See also Replace By Fee (RBF)


How does bitcoin implement checkpoint mechanism to finalize the blockchain history?

Checkpoints are a relatively misunderstood part bitcoin - Bitcoin does have a few checkpoints, but they are only used in one very specific case.  That case is just to ignore forks from the chain early on, before the most recently seen checkpoint. When a node has seen a block it recognises as a checkpoint, any further blocks received below that height will be ignored.

You can see this here: https://github.com/bitcoin/bitcoin/blob/0dfc25f82a01d9fec26380d95915df31e1fe2c02/src/validation.cpp#L3107

It is a long term goal of removing the checkpoints entirely, because they  are a source of confusion over the security model and power the developers have. But currently the role they serve is to prevent low difficulty header flooding attacks, and there has been no alternative solution proposed yet (that I know of)


Why are ardor transactions called via the api not in chronological order by timestamp?

The results are first ordered by the score which Apache Lucene assigns to them . If two results get same score, they are ordered by blockTimestamp, descending (what happens with the 2nd, 3rd and 4th result in your data).

Apache Lucene is configured with the default BM25Similarity with parameters k1 = 1.2 b = 0.75, i.e. Ardor uses the default scoring function. More details about that function can be found here. The query parser is configured with default operator AND, so if your query contains two words, they must both be present in order for the data to be included in the result


Does the Merkle Root get constantly updated inside the block or does it only get added once the block is completed?

Once the mining pool has the list of all of the transactions they are including in that block, they calculate the merkle root for this list of transactions, then they distribute the block header, that includes the merkle root, to miners to work on.
So, no, it's not constantly being updated, unless for some reason a new transaction was being added or removed from the list of transactions being included in the block.


Standing Orders, Is it possible with Bitcoins?

One way to accomplish this today is to run Bitcoin with the -server switch. Then, create a cron job (Linux) or scheduled task (Windows) that calls bitcoind with the proper arguments. Something like...

bitcoind sendtoaddress <address> <amount> <comment>

The up side of this method is that you can run a lot of different commands this way. See the wiki for a full list of available RPC calls.


Sold BC but funds not received into Bank

this is Coinify representative writing. We are sorry to hear that you have experienced issues using our sell service and would like to ensure that everything is in order. Unfortunately, based on this post, we cannot identify your specific case. Could you please submit a ticket to support@coinify.com with identifying info from the email address associated with your account? If you have submitted a ticket already, please refer to the ticket id in your email. At the moment we are experiencing longer response times (https://support.coinify.com/Knowledgebase/Article/View/197/0/why-are-bitcoin-transactions-taking-longer-than-usual) but we want to assure you that every order and support request will be taken care of. Thank you for your understanding.

Best regards, Coinify team


Why Do Compact Signatures Need To Start With a Byte 27-35?

Frankly, I just picked a range of numbers whose binary representation wouldn't easily collide with those of addresses (0, 111), secret keys (128, 239), public keys (2-7) or signatures (48). At the time, I didn't really expect it to end up in the message signing feature eventually.


During normal operations, the "fee" is set to be a small fraction of .01 USD. This is for ALL transactions, regardless of the units being exchanged through the system.

This is a protection measure for the ledger against spam attacks. If there was an attempt to overload the consensus system, the fee would increase in increments. It would still be a very small amount for a normal user and would be a financial hindrance to a spam attack.

There is no monetary compensation for being a part of the consensus. The base fees and load fees are destroyed. Ripples are not mined, it was all created at once. People will likely be running their own servers for fast, secure access to consensus, not coin rewards.

A basic and technical overview of transaction fees and how they escalate to prevent spam
https://ripple.com/wiki/Transaction_Fee

How consensus works.
https://ripple.com/wiki/Consensus
"Finding consensus by trusting validators not to collude is a simple and strong way to establish the valid ledger. Because, the network is not relying on proof work, this consensus process is fast and allows the Ripple network to validate ledgers in seconds."

An excellent visual explanation of consensus. Also shows how transactions can be verified within seconds as opposed to the minutes required for many other crypto-currencies.
http://www.youtube.com/watch?v=pj1QVb1vlC0


What keeps someone from creating a malicious wallet app?

Answer: Nothing

Even with the most secure system, you're still trusting their developers.

Remember, secure encryption is not cracked, it's bypassed.


When a transaction is broadcast to the network, what is actually being sent?

Client creates a new transaction, adds it to its memory pool
Client broadcasts an inv frame, which indicates that it has something in its memory pool, by giving the hash of the transaction to one or more connected peers
Peer receives inv frame, checks its own memory pool, it's not in there, so it sends a getdata frame back
Client receives a getdata frame for the transaction it just created, so it sends a tx with the entire transaction
Peer receives the tx, hashes it and puts it in the memory pool
Peer now has something new in the memory pool, and broadcasts an inv to all connected peers
Client gets an inv frame, notices that it's already in the memory pool, and ignores it
Another client gets the inv frame as well, getdata's it, stores the tx, sends inv, and repeat that until the entire network has the transaction.

References :

tx frame
inventory vector
getdata


Implicit/Tacit mechanisms in Bitcoin Core disclosing Selfish Mining

It is impossible to detect a drop in hashrate working on a chain because foreign hashpower is only evident in the discovery speed of blocks, except if it were deducted from a pool publicly sharing its mining stats. Thus the dropped hashrate would only be evident over sufficient long spans of time.

The only indicator of selfish mining would be the actual publishing of a previously unknown longer chain. I believe I've read somewhere that this will be shown in BitcoinCore with a "Reorganization" warning.


MultiBit got progressively slower after adding more receive addresses

It seems very unlikely that a number of addresses as small as 120 could make a significant difference in performance. I would guess there is some other problem that just happens to coincide with you adding addresses.

The inability to open the wallet, and the excessive disk I/O, is particularly troubling. One possible explanation is that the hard drive is failing - the slow I/O being caused by repeatedly retrying failed operations. I would start by backing up all your files and especially your wallet (which you do regularly anyway - right?). If that fails because there are files that the backup software cannot read (without a good reason, e.g. they are locked by another process), or it reports I/O errors, then that would clearly indicate a failing drive that needs to be replaced.

(Generally, if you have good, regular backups of your wallet files, you are fairly well protected against "catastrophic money loss".)


Could the price drop between July and September 2011 have been caused by a bot?

Since the bot exists, and the people who wrote it presumably wish it to perform every transaction it performs, it reflects real supply and real demand. Why would you want to stop it? There is nothing inherently good about a high price.

Personally, I think the drop in value was due to the bursting of a speculative bubble. The price was previously kept high due to press attention that made people think Bitcoins might be a good investment. As soon as everyone who was going to be brought in by the hype was brought in, the demand started to drop. This caused a small price slide, which induced a lot of panic selling from people who thought the speculative rise would continue forever. Once the price starts dropping at the end of such a bubble, more and more people try to sell out to minimize their losses. Once everyone who expected a short-term profit sells out, the price stabilizes.

We're now back at that relatively stable floor, waiting for the next hype cycle to start another speculative bubble. Until Bitcoin's price is driven by its use as a real medium of exchange, this pattern is likely to repeat over and over.


How to dump all of addresses from wallet.dat for other alt-coins?

now you can use bitcoin-cli dumpwallet command to export all your privkeys


Can Bitcoin Tech be Used to Protect Journalists

Bitcoin is a network that allows participants to hold and transfer value amongst each other. A journalist could use it to transact with sources, or perhaps to withhold their money from the grasp of an over-reaching government, but it will not protect a journalist that is publishing articles from an angry government.

A journalist could publish anonymously, and perhaps request support through bitcoin. In such a situation, the journalist may need to be careful they do not leak their identity, so they may have additional considerations in receiving the bitcoin (ie. being careful to not tie their identity to the received coins in any way).

  Can the blockchain technology be used in a way to protect journalists from having to reveal the identities of their sources?

Bitcoin could allow the journalist and their sources to engage in pseudonymous transfers of value, but this is different than preventing the journalist from revealing sources. A technology like PGP encryption would be a much more appropriate way for a source to communicate sensitive information to the journalist.


I sent bitcoin from electrum but never received it , has been confirmed but I can’t tell what’s happened to the btc. Can anyone help me out?

Looks like you downloaded a malware version of Electrum and sent bitcoin using that. The output address in that transaction starts with bc1. I'm guessing that's not the address you intended to send the coins to? The malware replaced the address with its own. There is nothing you can do about it now. If you want to use cryptocurrency on the same system you should do an OS reinstall first in case there were secondary infections from the malware. Sorry for your loss.


What will incentivize miners to keep processing transactions after bitcoin production slows down and or stops?

We don't know. The hope is that fees can take over the function of subsidy over time (and to an extent, that seems to be happening), but the incentives in the system become more complicated to reason about in that case (search for fee sniping attacks).

  I understand that miners could work off fees, but are these costs per transactions for the consumer cheaper than they are now with the current credit card system?

It is important to realize that not every payment in BTC-the-currency needs to happen on Bitcoin-the-blockchain:

Transactions happening within exchanges do not hit the blockchain, and probably wouldn't fit regardless.
If you need to pay me, and I trust you, you could just give me a private key with associated funds.
Payment channels (including bidirectional ones like Lightning) can result in many small payments being aggregated before making the whole world validate it.

Bitcoin-the-blockchain is good as a currency:

Fair, verifiable, beyond control, resistant to theft and seizing.
Being natively digital, it hopefully simplifies building systems on top (for example, systems with cryptographic proofs of reserve).
Going beyond the traditional forms of ownership: money that inherently requires multiple people to sign off on, or even further, money that can be tied to the exchange of knowledge (look for ZKCPs).

For all these properties, it is not good at being a payment system:

It's slow at transferring (it takes hours for transactions to confirm).
It is expensive for small payments (its fees are proportional to transaction complexity, not amount)
It lacks consumer-oriented features like disputing claims.

All this means is that for different purposes, different technologies may be more appropriate. Nothing prevents existing (or, hopefully new) payment solutions to be brought to BTC-the-currency.

  If the suggestion is just for the consumer to send bulk transactions instead of individual payments, what stops someone from buying coffee and then not sending it?

Lightning does not have this problem - it processes transactions between two parties instantly, without needing the whole world to verify it for them. The downside is that it requires channels to be setup beforehand, and loaded with some money from both parties (which returns to them after closing the channel, or can be taken by the other party when you cheat).


Coins are gone when you can't recover your private key.

If you have used a non hd wallet (and i think you did), you can check if your bitcoin wallet supports keypools. Keypools are a set of pre-generated keyprairs (pub/privkey) which can be used when a new key is required. Because generating a key (non HD) in a encrypted environment needs to unencrypted (you would need to enter your password), keypools make sense in non-hd wallets.

With keypools (and i think you used a non-keypool wallet) there is a chance that your receiving address's private key – which you used after you created your backup – is still on the disk.

Last chance you have is to try to recover your deleted wallet file. Therefore best you could do, stop using/writing on the disk where your wallet was stored. Filesystems mostly don't really delete files (write the bits to 0), they mostly just allow other data to be written in that space. Because of that, you can use undelete software to try to extract deleted data from your disk. You should try to tell your undelete software, how your lost wallet file does look like (files magic, file structure) and this could be hard and probably requires a professional.

There are always chances to recover data and i hear of people successfully recovering data from physical damaged hard drives (fire, etc.). It always depends on how valuable the lost data is/was. A data-recovering in the laboratory can cost around 1000USD.

Next time it's maybe worth to use a HD wallet. During the creation process you can write down the master seed (sometimes a hex string, sometimes a wordlist, depending on the wallet).
If using HD, this master seed technically allows you to recover all your possible private keys.


Is it possible to reduce the block interval in the future?

Yes and no. Any change to the protocol is possible if and only if > 50% of the active nodes "agree" to it by adopting that protocol change.
Getting everyone to agree is very hard though. For example, Bitcoin Cash (BHC) exists as a fork of Bitcoin because of a dispute over increasing the block size. It seems likely such a push to lower the block time would lead to a similar messy debate and ultimately a split.


How do decentralized exchanges prevent front running?

For those not familiar with front running: it is the process of market/price manipulation. If I know, that a big purchase of s.th. valuable will happen, the amount of this would get more rare on the market and it's price may rise. Therefor I could quickly do my own purchase of such a good, speculating that the price will rise, and sell it after the big transaction at a higher price.

In the bitcoin world this is not excluded. Imagine that you are within a big financial corp, and this institute asks the trading desk to buy bitcoins for 10mio Euros. An employee could see this planned trade, and do a quick self trade before. So this is within corporations.

In the public bitcoin space, there is no indication of a "big" trade, that will happen on the blockchain. Usually a tx is composed and then sent into the network, to the nodes that you are linked with, and from there to the whole network. So if you could see this UTXO with an enourmous amount in your node, you have the time to create your own tx to do front running. It would need to get into a candidate block, before the "big" tx joins a block which is then minde. I do not see that there is a guarantee to do so. It might get different when a miner comes into the play, and he is hand crafting a tx, but I am not 100% sure... He would have to be fast enough, that no other miner has a candidate block, that get's into the blockchain before him...


it's clear that you have custodial wallet such as coinbase or localbitcoins so, they are controlling your wallet, and you don't own your wallet master key.

I suggest you use Bitcoin-core or electrum since they give you full access to your bitcoins and nobody ever has access to your wallet.


How to manage externally created addresses?

Bitcoin Core has a scantxoutset command. You give it output script descriptors (which specify scriptPubKeys) and it will scan the UTXO set and return the UTXOs that have scriptPubKeys that match the given descriptors.


bitcoin-qt

open the File menu
click Backup Wallet...
select a file to save the backup as

MultiBit

From http://multibit.org/help_backupWalletUsingPrivateKeys.html:

  You can export your private keys from a MultiBit wallet into a file
  (using the 'Tools | Export private keys' option) and, as long as you
  do not manually create new receiving addresses, you can use the
  private key file as a backup for the wallet.

Armory

From http://bitcoinarmory.com/index.php/start-page/what-is-armory/features:

  Not only are the wallets determinstic, but there is a built-in dialog
  for printing permanent copies of your wallet.  When you first create
  your wallet, make sure your printer is on and click the “Paper Backup”
  checkbox.

Electrum

From http://electrum.org/:

  You do not need to perform regular backups, because your wallet can be
  recovered from a secret phrase that you can memorize or write on
  paper.


BRD Wallet Recovery - Only have the first 11 words

Open source Bitcoin wallet password and seed recovery tool: https://github.com/gurnec/btcrecover
Details about solving a problem involving bip 39 seed by brute forcing: https://medium.com/@johncantrell97/how-i-checked-over-1-trillion-mnemonics-in-30-hours-to-win-a-bitcoin-635fe051a752
Similar questions with some good answers


How to make a transaction start from a given address?

As of version 0.9.0, the bitcoin-qt reference client includes a "coin control" feature.  When you create a transaction, it lets you explicitly select which past transactions will be used as inputs.  You can enable this feature via the Display tab in the Options dialog.

This accomplishes what you are asking for.


Transaction shows up in blockchain.info but not in Electrum wallet

Looks like the problem has been resolved. Seemingly it may have been caused by Electrum being too old in terms of version number. A simple update using the website instructions appears to have solved the issue and I can now see the balance. New version number: 2.9.3


Can Scripts be used to implement Chargebacks?

The discussion on Bitcoin Talk pretty much convinced me that "elective Chargebacks" (where some tx be reverrsed, but not all) is essentially meaningless.

If a shop would choose to give a customer the ability to do chargebacks for a limited time, this is equivalent to just postponing the payment. Since this is the main use case, and the other use case of chargebacks is personal wallet security, for which there are better alternatives, I'll accept this answer and consider the matter closed.


How can I send bitcoin from one address to another through the Bitcoin client/API?

I think you answered your own question in a way. That command will send from a specified account to an address, I'm sure you don't want to bother with accounts and just send bitcoins.

You can send from an address to another using a similar command.

sendtoaddress <bitcoinaddress> <amount> [comment] [comment-to]

Where <bitcoinaddress> is the address you want to send to and <amount> is amount of Bitcoins (up to 8 decimal places). The other two that are in brackets are optional and cosmetic.

You can issue these commands in a command line or using one of the many libraries for various languages. Check out the Bitcoin API reference.


Does CPU mining become efficient as memory requirements increase?

Currently, for a custom-built high-performance desktop, 16 GB of RAM (or even 32 GB) is typical, while one of the best GPUs, the AMD Radeon HD 7990, has 6 GB of GDDR5.

Suppose the memory requirements were raised to 4 GB. That means that each thread will require 4 GB, so a CPU can mine on 4 threads at a time (16 / 4 = 4), while a GPU can only mine on 1 thread at a time (6 / 4 = 1.5, with greatest integer part 1).

Contrast this to the current requirement of 2 MB. A CPU is bottlenecked by the maximum number of threads it can do (even the very best Intel Xeons are typically capped at 32 threads), while a GPU with just 2 GB could easily do 1000 threads at once.


BitCoin Cash and Bitcoin are two different blockchains. Technically, segwit2x won't affect the BTC blockchain nor the BCH blockchain (the only thing that might be affected is the price of each coin).


Is there any way to install a GPU miner on ubuntu without using the proprietary drivers?

No there is not. The ATI Catalyst driver implements OpenCL, which is what GPU miners use to accelerate the SHA256 hashing used in mining. The open source driver does not implement OpenCL. There are experimental projects that aim to implement OpenCL in the open source driver (Clover is an example) - as a Gallium3D state tracker - but so far these only run on the CPU.

GPU drivers are very complex pieces of software. Even if an open source implementation of OpenCL, that runs on the GPU, were to become available, it would likely be orders of magnitude slower than ATI's proprietary implementation, which basically undermines the whole purpose of using the GPU in the first place -- to gain speed.


Claiming Super Bitcoin (SBTC) with Ledger Nano S?

Walleting services

https://bitcointalk.org/index.php?topic=2434261.0
https://dig.walleting.services/#/

  Select Electrum, BIP39 (Trezor/Ledger), or WIF Private Key. For BIP39 or WIF, select the appropriate SegWit options. Ledger / Trezor Help

Some informational websites

http://www.findmycoins.ninja/ - tells you which forks do you have
https://bitcoinforks.io/

Guides

https://99bitcoins.com/how-to-claim-bitcoin-forks-guide/
https://steemit.com/bitcoin/@pieczywo/how-to-extract-multiple-bitcoin-forks-easiest-and-fastest-way

Security disclaimer:

Always send the coins to the address you control first.

Don't trust 3rd party software with your private keys.

  EMPTY YOUR WALLET! Seeds & private keys give us FULL ACCESS to your funds!


What are the positives and negatives of "Flexible transactions"?

Why aren't they used instead of Segwit? It seems that they solve the exact same issues as Segwit, in a more clear way.

Segwit existed long before FlexTrans first came out and was almost ready for release by the time FlexTrans was even conceived. It has received far more testing and review than FlexTrans. In order to deploy FlexTrans, it would need to have much more testing, and have much more review.

Furthermore, FlexTrans requires a hard fork and for wallet developers to completely rewrite their serializers and deserializers to understand the FlexTrans format. Since Segwit is really just an extension of the current transaction format, it only needs a soft fork. This means that people can upgrade their software when they are ready and wallet developers only need to slightly modify their software in order to support segwit. They can also do so at their own pace. FlexTrans would require every wallet developer to perform a full rewrite or a new addition to their code which adds complexity and is more error prone. The FlexTrans format itself is also exotic and much more complex than the current format, and that can lead to potentially disastrous bugs.

Lastly, a hard fork to FlexTrans only transactions would completely break every single transaction in-flight at the time of the fork. It would make every single unconfirmed transaction that uses the current format invalid by the new hard fork rules, so every single unconfirmed transaction would need to be remade in the FlexTrans format. This also causes issues for transactions that have a lock time and the private keys necessary to spend those lock-timed coins have been lost/thrown away.

If a FlexTrans hard fork were to allow the current transaction format, then it wouldn't solve any problems. People would just keep using the current transaction format since using FlexTrans has no requirements to switch to using it. At least with segwit, if you have segwit outputs and want to spend from them, you must use the segwit transaction format. There is no such requirement to use FlexTrans. Furthermore wallet developers would then have even more complexity as now they need to have code that figures out when to use the current transaction format and when to use FlexTrans for serializing and deserializing a transaction. That is additional complexity and possibility for failure.

Therefore Segwit is preferred over FlexTrans. Segwit breaks less things, is easier to implement, and is backwards compatible, all of which FlexTrans is not.


When does a crypto exchange write to a blockchain?

Yes and No, depending on the exchange. You can confirm this by watching the deposit transaction on the blockchain. For example using blockchain.info.

Some exchanges write to the blockchain once you deposit by immediately transfering your deposit to their cold wallet.

Others, like bitkonan will keep your funds on your deposit address for quite a while until you either trade or attempt a withdrawal.

So depends on the Exchange architecture, but for sure they all write to the blockchain when you make a withdrawal.

The unfeasible alternative of making a real transaction whenever anyone trades would lead to too many transactions on the real blockchain and trades would have to wait to be mined so as to be completed.


A few questions to ask:

Did you send it to the right address?
Is the address's private key controlled by/imported into the bitcoin core wallet? E.g. $ bitcoin-cli importprivkey <WIF>
Make sure the transaction has been confirmed on the blockchain.


Multibit application on Mac only showing 2/7 wallets

Ok, after trying different things and updating multibit software i managed to recover my missing wallet by creating new wallet with the exact name of the .wallet that existed in the Multibit Application. If i had a garbage.wallet and was not showing in Multibit, i created manually a new garbage.wallet and that recovered my old multibit wallet.


Funds still go into the same wallet and
  if I send coins from the wallet it would always be from the same
  "from" address. Am I correct?

Not exactly. It depends on the amount of coins you'll send. Here is an example:

You have address A with 1 BTC.
Address B with 0.3 BTC.

Consider you want to send 1.1 BTC to the address C.

In that case the transaction would have 2(A,B) outputs and 2(C, X) inputs *:

Outputs: A with 1 btc and B with 0.3 BTC.
Inputs: 1 BTC to the address C and 0.1 BTC to the address C.
0.2 BTC will be your change, and it'll be sended back to you*.

The from address will be the collection of your income addresses(A,B, e.t.c.).

*Some wallets do let you manually select which address should receive the change from a transaction.

*In some cases client will create a new address for change.


"request coins" address is different to top right qr code

On the main screen (not the request coins page), you should see a little Tag symbol up the top in the menu bar. That opens up your address book. Swipe over to the 'Your addresses' tab, and you'll see a list of all the addresses generated by the request coins page. You can give each one a label on this page too so you remember what they are for.

The app generates a new address for each payment for privacy reasons.


No, this is a fundamental concept in Bitcoin. You must download and verify the entire history of the network in order to be sure that it is valid and untampered with. If your situation doesn't allow this it is possible to use SPV wallets which only do weak validation, sacrificing security and privacy for sync speed. Electrum and Multibit are examples of SPV wallets.


How does Dash achieve anonymity without centralisation?

TL;DR yes, it's still decentralized, no it isn't perfectly anonymous.

From the Darkcoin (now Dash) Wikipedia: "It adds privacy to transactions by combining identical inputs from multiple users into a single transaction with several outputs. Due to the identical inputs, transactions usually cannot be directly traced, obfuscating the flow of funds." The nodes who perform this "mixing" are called Masternodes, and operate on a decentralized ledger.These nodes are trustless and do not have complete knowledge of input/output

In order to prevent Sybil attack, the masternode tier requires colateral of 1000 Dash to run. This makes the cost of attack very big. In this whitepaper is a lot more information for interested ones.


It's possible, but difficult to do with standard wallets. What you can do is have a third address that your clients will see, and when you receive bitcoins there, then split them to the other two addresses that you want.


Generating addresses starting with certain characters such as "JoeAnonymousUserB7pMqyVa8JRcpZdCQLQ"

Yes, the concept is known, and called "vanity address". The problem with it is that it takes a lot of computing power. However, there is also a "split-key" method of generating vanity addresses, which lets you commission other people for the computing work. And finally, I created a website called Vanity Pool that handles a sort of free market of vanity miners and buyers.

As for the legal issues, I have already included a so called "illegal number" in the block chain as a part of my master thesis. So far Bitcoin hasn't been banned;).


Is an unencrypted wallet secure if bitcoind is not accepting RPC calls?

Turning off RPC will prevent that particular attack vector, but if the coins are on a machine connected to the internet, that's a lot of vulnerabilities and attack vectors to consider.

That said, if you're running a node on EC2, you're not going to generate enough bitcoins to be worth stealing. If the point is to figure out how everything works, I wouldn't worry about the bitcoins you'll be mining since it'll be so little (at most $10 per year).


How to transfer private addresses from one wallet to another?

Just export the private key of one wallet and import to the other.


Does port 8333 need to be opened as TCP_OUT or TCP_IN?

Port 8333 is only relevant for inbound connections. Opening it allows other nodes to start talking with your node.
That said, a Bitcoin node can fully participate in the network even if you don't allow inbound connections (to port 8333). It'll use outgoing connections, which start from random higher unprivileged ports and connect to port 8333 of another node. If you can allow incoming connections that's good for the health of the Bitcoin network, otherwise outbound connections are functionally equivalent.
Bitcoin Core can also offer a JSON-RPC interface on port 8332, so if you need that, act accordingly.


Can I cash out Bitcoin without proof of provenance?

In the US, nobody is likely to care if you assume a zero basis and pay capital gains tax on the full value of the bitcoins. If anyone asks, just explain that you acquired them back when they were nearly worthless. There are a lot of people in that same situation.


Removing "hub-and-spoke" property of Lightning Network?

No as this algorithm introduced in the paper is not very efficient. As far as I understood the paper when it came out basically everyone needs to be involved in finding the path for a single payment.

I want to say a few more things that always get mixed up when talking about decentralization:

Path discovery and building a censorship resistant decentralized network are two different problems. There are many well known techniques also for source based routing to discover paths. It is the privacy property of the lightning network that gives those algorithms a hard time to come up with an accurate response in 100% times of the cases. This would also hold true for the "famous" hub-and-spoke structure.
I want to emphasize that the 2nd and 3rd source don't seem technically sophisticated as they seem to make many assumptions. For example the third source relies on arguments given in this video which are (as I have stated in a comment to that video) just plain false.
It is very natural in almost every decentralized system/network (take the internet or the world wide web or social networks) that central hubs emerge. Having central hubs is not a problem per se. As the lightning network does not require everyone to connect to a central authority every user can decide to connect to other nodes. It might just be economically more useful for users to connect to a central node (in the same sense as people tend to move to larger cities though they are trusting the city to be running well and they don't have to)
Since everything that happens on the lightning network is ultimately backed by the bitcoin network we don't have any problems with censorship. In fact since all the routing is encrypted anyway it would be hard to censor anyone on the lightning network.


do i get a new private key for every transaction that I transfer to my cold storage

Every address you use to receive crypto will have a corresponding private key. So if you buy 10 coins today and transfer to your wallet, it will have a private key for the address you use. Next day, you buy 15 and transfer to a different address generated by your hardware wallet, it will have a different private key.

You do not have to keep track of the private keys. All those private keys are generated from the same root key which is generated from the 12/18/24 word seed you set up for the hardware wallet. All you need to remember/record is the 12/18/24 word seed.

Try playing around with this https://iancoleman.io/bip39/ . It will give you an idea of what happens inside the hardware wallet.


Viewing total number of coins mined for an Altcoin

Generally that would be the job of a block explorer application. You would have to build one for your altcoin if it doesn't exist. Otherwise you could issue rpc calls on the client and sum up all the block rewards.


Multibit wallet says my balance is unconfirmed, even though I've not sent a transaction in months

OK found a way! It cost me $8 and four days to switch wallets! WTF?

Install Electrum bitcoin wallet. https://electrum.org/
Go here and save the web page to disk: https://iancoleman.github.io/bip39/
Download, install, & start TOR browser. https://www.torproject.org/ We are using TOR because it is made for anonymity and privacy, and doesn't keep cookies, storage, cache, etc. We are going offline, but a Javascript page can store data in your browser so next time you visit, it can send your secret info back. If you are not worried and think you'll just use a private browser session, look up permanent cookies and see how creepy your browser is when it comes to protecting your data.
Open the web page you saved in TOR browser. Turn on Javascript.
Start Electrum, create a new wallet, and select Import Private Keys. Wait at the input box.
Unplug your network cable, and disable your WiFi network connections.
Input your Multibit seed words into the BIP39 tool. Select BIP32 tab, and MultibitHD for client.
Scroll down and view the addresses generated. Verify the addresses match the addresses in Multibit, starting from the earliest to latest.
Copy & paste all of the private keys from the private key column. Yes, you will have to freakin' copy & paste like 20-100 keys depending on how much you have been using Multibit! (Oh it get's worse!)
These are only the original keys. Whenever you send a payment, you get change to a 'change address'. Those are not listed! If you have sent any payments, you need the change address keys also. To get the change address keys, read the following.

https://www.reddit.com/r/Bitcoin/comments/6btevz/how_do_i_import_my_12_breadwallet_seed_words_into/dhqvy31/?context=3

  If you use the BIP39 tool that I linked, put your seed in and go to the BIP32 tab, in the "client" box change it to "custom derivation path" and start with m/0'/0
  You should be able to manually go through addresses and get private keys by changing the path. (example: m/0'/0 --> m/0'/1 --> m/0'/2 and I think change addresses are probably m/1'/0 --> m/1'/1 --> m/1'/2 --> etc.)

However, the change addresses are m/0'/1 not as mentioned above.
Change the Client to Custom, and change the BIP32 derivation path to m/0'/1.
Verify the change addresses match. To find the change address, open the first transaction where you sent, view the transaction on BlockExplorer blockchain.info, and see which address the excess change went to. This is one of your change addresses. You can verify as many as you want but more than likely if the first matches the rest do.
Now repeat the copy & paste of the addresses private keys into Electrum.
Click Next on Electrum and enter a password. You must encrypt your wallet or else the private keys are in plain text on your disk!
Close TOR browser with the BIP39 tool.
Plug in your network cable and turn on your WiFi network adapter.
Electrum will synchronize and show your balance.
Go to File > New/Restore and create a new wallet, with new seed words.
Write down your seed words.
Send your bitcoins from the old wallet to the new wallet. The fees will be high due to many inputs!