I'd say it can work both ways. Currently virtually everyone who knows anything about climate change agrees that it is a problem, then the cautionary principle dictates that we should try to limit CO2. If our knowledge changes, or the situation changes, then the same principle can dictate the direct opposite. It all comes down to our body of knowledge at that specific time. If you state the conclusion at a high enough level of generality then everyone can agree. Yes, all other things being equal, let's prefer a solution that releases less CO2 to one that releases more. But, of course, that's not where the issue is. The issue is how much pain and sacrifice is justified to reduce CO2 by some particular amount and who will suffer the pain and make the sacrifice. What's funny to me is that the very same people who are arguing for massive changes to reduce CO2 output are vehemently opposed to any other form of climate engineering. They're arguing for the biggest such attempt of them all, with massive, certain affects on human existence.
|
|
|
The argument that you have to go with what you know? Sounds strange because what else do you have. Then you would also probably want to apply the cautionary principle, at least for changes that would have a great impact. Yeah, see there's the problem. Let's take, for example, global warming and let's assume that AGW isn't established. (The argument works the same for other things such as GMO and climate engineering, but I'll use AGW.) Does the cautionary principle work this way: "We're not sure humans are responsible for global warming. But trying to restrict our CO2 output will definitely harm our economy and likely cause a reduction in our ability to produce food. It will raise the cost of energy, causing some people to freeze to death. The cautionary principle says we shouldn't restrict CO2 output." Or does it work this way: "We're not sure humans are responsible for global warming. But they might be. The cautionary principle says we had better reduce our CO2 output so that we don't risk causing massive damage to our planet." What happens is that people always raise these arguments to support the conclusions they've accepted for other reasons. Nobody is actually swayed by them. They're basically window dressing. These are issues where both sides claim great impact and claim that the cautionary principle and the lack of complete knowledge justifies the conclusion they wanted in the first place for completely different, and unrelated reasons. You have to address the real reasons people reach the conclusions they reach. If the evidence is not strong enough to compel either conclusion, people will generally argue for the conclusion that benefits them. And then it's not a scientific argument, it's over who wins and who loses.
|
|
|
I'm not really sure what you're trying to say with this?
I'm saying that that argument won't persuade anyone because people always make it when it supports their position and always ignore it when it doesn't. The people who make that argument about global climate change don't accept it themselves about GMO or climate engineering. So why should anyone accept it when they make it about global climate change?
|
|
|
To be fair though, we don't have all the facts and things could change in the future as our understanding increases, but that doesn't mean that we should sit idly and hope that all current knowledge is wrong. You act on the information currently available.
The people arguing that this applies to climate change never seem to be willing to apply it to things like genetically-modified organisms or intentional attempts to engineer the global climate.
|
|
|
I'm missing something here. Doesn't the wallet key pool prevent this from happening unless you have over 100 transactions since you last backup?? Yes, if the pool isn't empty. But if you've never sent any bitcoins, the pool will be empty. (The client creates 100 *extra* keys when it creates a key for a transaction.) Because these rules are complicated to understand and easy to get wrong, I make my advice clear and simple -- unless you understand the rules exactly, always backup your wallet after sending. Could you please give me your definition of a deterministic wallet? A deterministic wallet is a wallet that generates new keys in a way that is repeatable, rather than creating random new keys. With a deterministic wallet, there is no need to back it up after sending because the new keys it would generate can always be regenerated based solely on the previous wallet.
|
|
|
Unless you know exactly what you're doing (or are using a deterministic wallet), you need to make a new backup of your wallet after every time you send bitcoins. Otherwise, you may not have the private keys necessary to claim the change from your previous transactions.
|
|
|
Hi David,
What are your thoughts on the final 0.5.0 release?
Unfortunately, I've been completely swamped with work lately, and I haven't had a chance to look at it yet.
|
|
|
So perhaps the blockchain itself is never pruned ?!? The tail is never cut off !? Currently, the chain is not so big that anyone has implemented any pruning. Pruning is a bit tricky to do correctly. This then raises the question:
What if the blockchain becomes to large for average computers to store ?!?!?!? Then clients can start using pruning. But disk space is growing much faster than the hash chain, so this may never be an issue. Does this mean that if bitcoin grows faster then harddisk space that bitcoin will more or less be doomed ?! At least for average people ?!? Probably people will cut over to clients that don't keep the entire block chain but instead keep only their own transactions.
|
|
|
Let's see if I understand correctly, and then examine a possible way of totally replacing the blockchain.
Conceptually speaking, all bit coins in existence form a chain of coins. These coins can be moved around from person to person, account to account, can be transerred, sold, bought etc.
Everytime coins are exchanged the chain starts to grow with new coins.
A possible problem with this concept is the chain grows too large.
So the idea is to cut away the tail of the chain to make it shorter again.
The idea behind cutting away the tail is to replace the tail with a single hash. (Merkle Tree Partially collapsed ? or perhaps something else, simply a single hash unrelated to merkle, or perhaps a new merkle hash root node, since something has to be the previous hash for the last block in the tail ?). That's correct. You remove the entire chain and all you keep is the hash and a table of all Bitcoins that are still spendable. You throw everything else away. Anyway the question is now:
What happens about all the transaction data ? All you need is the transaction IDs and output offsets of any outputs that are still spendable. You can throw everything else away. You seem to imply as well, that this transaction data would have to been thrown away as well, since that would otherwise also grow to large, and since the blocks have been thrown away it makes no sense to store the transactions. Well, you have to keep track of all coins that are spendable. Other transactions can be thrown away. So the bottom line is:
1. Blocks are thrown away. 2. Transactions are thrown away. 3. What remains is a single hash. In principle, all that remains is a single hash. But that hash is sufficient to reconstruct the one and only state of all current transactions. My claim/idea was that an attacker could create "fake" transactions which represent the transactions which were thrown away in step 2. How could he? One of two things would have to be the case for the transactions to be accepted: 1) They'd have to claim spendable transaction outputs that this node still knows. In which case, in what sense are the transactions "fake"? 2) They'd have to claim spendable transaction outputs that could be proven valid based on the hash the node still knows. In this case, the attacker either needs to find a hash collision (in which case, everything is screwed) or the transaction must claim valid outputs. You claim that doing so would be useless, because the entire network/system has apperently agreed to cut away the tail. So everybody using bitcoin throws away the tail, the blocks, the transactions that went with it, and everybody agrees that that data is now no longer in play. So you say making those fake transactions won't be usefull because they would be rejected by the system You seem to say that these transactions cannot be re-injected into the system ?!? They cannot be injected because they do not claim transaction outputs that any node would consider valid by any method. But then my question is:
How does the remaining part of the system, the section beyond the tail, the section that was not cut off know who owns what ? They either keep track of all spendable transaction outputs or they require verifiable proof that there exists a spendable transaction output that they don't know of -- validating by hashes and signatures traceable back to data they know is valid. All those transactions which were done before the tail was cut off, result into some kind of wealth, some kind of account money ?!? They're still valid. Their outputs are still spendable. I assume that when a bitcoin application starts up, it starts to scan all transactions for it's own addresses, sums them together and thus figures out what it's balance is ?!?
If those transactions have been thrown away, and/or the blocks are not available for verification purposes ?!?!? Then how would the client know what it's balance is ?!?!? The client would store its balance, along with the identities of any transaction outputs it could spend. Is this perhaps why bitcoin could be considered a pyramid scheme ?!?!? Once the cut happens wealth disappears ?!?!?
Nothing disappears. The cut is just to save memory and disk space. The semantics remain precisely the same. The difference is that everyone can forget about transactions with no spendable outputs and they can forget about blocks prior to a checkpoint.
|
|
|
However this does present a problem for the future: the idea was to "cut away the blockchain" and replace it with a hash only, this is the concept of the merkle tree.
Perhaps this is not yet done to make sure the blockchain is long, but after a certain while this long blockchain might become impractical and will have to be "pruned/cut away" leaving just a hash.
At that point it will become easier since there is no more blockchain to check it has been pruned away, leaving only the remaining blockchain to be checked.
If the pruned away part of the blockchain is replaced with just a hash, replacing that part of the blockchain will go from difficult to impossible. The client could not possibly accept a different view of those blocks because it would have no way to undo their transactions and replace them with transactions in different blocks. A client can only reorganize the block chain for blocks it has. Any pruning of the block chain would only be possible for blocks that had been permanently locked in. Pruning a block means forever accepting the version of that block you pruned. Without the old contents of that block, there's no way you can replace them with new contents.
|
|
|
I don't think it would be rational for a country to start a cryptocurrency based on Bitcoin technology. The basic ideas of accounts, transactions, and confirmations make sense. But where the lack of a central authority is not an advantage, there's no reason to make all the compromises bitcoin makes to get that.
|
|
|
Doesn't this code access mapBlockIndex without holding the cs_main lock? If that's legal, what protects mapBlockIndex? If that's illegal, isn't the patch broken? (If this question is obsolete because there's a newer version of the patch, where can I find it?)
|
|
|
i think its memory(cache) intensive code, instead of computation intensive code. you could do it on a GPU, but if the memory is not fast enough, or all the required memory can't be in cache GPUs will not speed it up.
For today's GPUs, decision-intensive code works well too. Mixing functions like: k ^= (j&1) ? m : n; m ^= (j&2) ? k ? n; n ^= (j&4) ? m ? k;
|
|
|
Only because the government will happily bail them out in the end. That's the only thing that incentivizes the failure in the first place. Otherwise, investors going around and failing companies would find themselves collapse in reputation and funding. A world where investors only want companies to fail is a fantasy. That's actually not the only reason. Part of it is that there is no competition for varying corporate structures. Pretty much the only way you can form a company is with complete financial immunity for stakeholders and decisionmakers and wherein the decisions are made by investors who can dump the stock any time they feel like it. This is likely not anywhere close to the best corporate structure. The reason we reject the idea that the workers should own the means of production is that they are free to buy them if they wish. But it would be the unusual coincidence where the best investment most workers could find would be the very same tools they needed to work with. Different investments have different risk/reward profiles and a worker's outlook would match his financial needs only by total coincidence. Yet we have compelled precisely the same flaw in our corporate structures. Votes represent both shares in the profits and shares in the decision making. Shares are dumpable at a moment's notice By law, we have inexorably tied them together.
|
|
|
If Bitcoin dies out, we will learn from the experience and replace it with something superior and the world will be a better place for it. Fall in love with the concept, not the implementation.
|
|
|
Since there can be no FDIC in bitcoin, people will probably not want to bank with a bank that only keeps a 10% reserve because if there is a bank run, they are forked. They won't be able to get their money immediately, but a bank can easily prevent a bank run from being particularly disastrous. What they have to do is explain in advance what their bank run policy is and have sufficient assets of some kind (which can be loans) to cover the run in the long term. For example, if the prevailing interest rate is 4%, they can have an "emergency run interest" of 9%. If there's a run on the bank, they declare an emergency and cover withdrawals with 9%, fixed-term notes. Sure, some people won't be too happy to have these notes instead of bitcoins, but their value will likely be a bit higher then the corresponding number of bitcoins, so they could likely sell them for a slight gain. This assumes the bank isn't in danger of going out of business. This means the loans (or other bank assets) must still be sound. This can only cover a short-term liquidity run problem, not a long-term solvency crisis. (It wouldn't have helped with the bank failures we saw recently.) However, a bank can easily cover a bank run with non-cash assets. This is another way commodities can be used to inflate the money supply. You might not trust a bank to keep only a 10% bitcoin reserve, but if they had a billion dollars worth of gold or also owned many stable businesses, you probably would. So a bank can leverage any other asset to allow them to put more bitcoins into circulation than they could otherwise.
|
|
|
Banks use fractional reserve banking to increase or decrease the money supply and central banks influence that action via monetary policy.
Still the ACTUAL MONEY SUPPLY = MONEY not debt.
Fractional reserve banking is debt. My $100 checking account balance is the bank's debt. If a checking account balance is part of the money supply, then debt can be part of the money supply. Your dollar bill is debt. It is an obligation of the United States. If a dollar bill is part of the money supply, then debt can be part of the money supply. Whether or not debt actually *will* be part of the money supply depends on a lot of factors. The primary one is whether or not it makes economic sense for it to be. In a hypothetical economy with a currency shortage, there will be a demand for currency, and debt will meet that demand.
|
|
|
While you can barter with debt it isn't money and thus isn't part of the money supply (any money supply). If that were true, then no fiat currency would be part of the money supply, inlcuding dollar bills. Fiat currency notes are debt -- most of the money supply for most of the world's nations are notes that represent sovereign debt. See, for example, 12 USC 411. http://www.law.cornell.edu/uscode/12/411.html
|
|
|
I hate to quote wikipedia but: In economics, the money supply or money stock, is the total amount of money available in an economy at a specific time.[1] There are several ways to define "money," but standard measures usually include currency in circulation and demand deposits (depositors' easily accessed assets on the books of financial institutions). This is a reasonable definition of money supply. The fact that the block chain can never contain more than 21 million bitcoins puts no limit whatsoever on how many can be in circulation (just as a bearer bond can circulate the same way dollar bills do) or in demand deposits. The reason you don't see equivalents in circulation with dollars is because of a combination of legal restrictions and the lack of any need for them.
|
|
|
|