text:
Documenting bitcoin cash buys
I've been trading BTC in the UK via bank transfer for a while now and may begin doing cash purchases soon. I've realised that it is critical I document the cash withdrawal as an expense so that I get taxed only on the profit and not the entire turnover of the bitcoin sale. Usually this is done via the means of keeping receipts - so I guess I could have some sort of receipt that documents the exchange but I'm not sure where to begin.
What kind of information do I put on it?
What is the bare minimum information I need on the seller?
Considering it is me issuing this document it's not exactly an invoice or a receipt, is there a word for it?

Begin by asking your local tax authority.
They would be the ones able to give you a proper definitive answer.

-1 This is always true for this kind of question, and the asker knows it unless he's dumb. If an answer doesn't add anything to that, it's not an answer.

The question is not whether you like the answer or not, it's whether the answer is correct or not. By visiting his local tax office the OP will also get valuable information regarding VAT. Because buying and selling Bitcoin has VAT implications if you do it as a corporation, and above certain thresholds you can not transact as a private individual anymore. Like it or not it is the correct answer to the question that was asked.

It may be a correct answer, but that doesn't make it a useful one.

Maybe suggest an useful answer then.

Upvote. I think this is actually the correct and only answer.  It is also useful.  There is a toll-free number.  Ask HMRC.


text:
Is EFF's proposed Sovereign Key system similar to how Namecoin/Bitcoin works?
To avoid the problems caused by the current SSL certificate infrastructure, the Electronic Frontier Foundation has proposed Sovereign Keys, which appears to be backed by a distributed, append-only datastructure that can grow to hundreds of gigabytes. That sounds awfully familiar to a block chain. Are there similarities between Sovereign Key and Bitcoin (or Namecoin)? Do they employ a related approach or is this just a superficial similarity?

No.  Sovereign keys are simply a technical mechanism to use the DNSSEC trust anchors instead of companies like Verisign.  Trust is still centralized; it's just centralized in a different place.

Note that the "sovereign keys" design document explicitly states that it "bootstraps from and reinforces existing PKI techniques".  https://git.eff.org/?p=sovereign-keys.git;a=blob;f=sovereign-key-design.txt;hb=HEAD

So the gist is basically that instead of relying on separate entities to issue SSL certificates, you are using the authorities that you already need to trust if you are using DNS?

If you're using SSL you don't actually trust the DNS system -- you rely on it for a service.  Just like you don't trust your ISP, but you rely on them to forward packets for you.  The DNS system could return bogus IP addresses just as easily as your ISP could send your packets to the wrong destination.  They can deny you service, but cannot deceive you.

So where is this central trust that you speak of located then? And don't I have to trust DNS for DNSSEC trust anchors?

No.  DNSSEC-enabled operating systems ship with the public keys of the centralized DNSSEC root bundled in to the software -- much like how browsers ship with the CA's public keys built in to them.  If your DNS provider tries to point you to the wrong server, your DNSSEC-enabled OS will notice because the record that comes back won't be signed correctly.  I'm not saying any of this is a good idea, of course; just explaining how DNSSEC works.  More info is here: http://www.root-dnssec.org/

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Where can I sell things for bitcoins?
I have old items that I want to sell for bitcoins. This includes digital content and physical objects.
What websites can I use to sell them?

Maybe also try Craigslist. Your ad will be seen by many more people then on bitcoin sites. Of course, most of those will have no idea what bitcoin is. But that way you'll be promoting Bitcoin among the general public. ;-)

http://sell-deigital.okitoo.net ... bitcoin or paypal . 0% comission !!!

You can find an extensive list on page Trade at Bitcoin Wiki.
A short list of some auction sites that use Bitcoins:

Bid Bitcoins
Bidding Pond
Bitmit

If you want to sell digital files per download, go here: http://bitcoinservice.co.uk/ .
And as with anything, you can just post on an online classified ad websites, such as craigslist (thanks Thilo for the suggestion).

Bidnapper is not a site to sell things for Bitcoin. Its just a Sniping service for eBay and many other auction sites. I can't even find on their site that they accept Bitcoin, just says Paypal and credit card.

@miernik Edited accordingly

Interesting that 18 months later none of the three sites you list operates any more.

http://bitcoinservice.co.uk/ allows you to upload a file and receive payment from people downloading it, in case your digital content is of a kind suitable for this format.
Update Apr 24 2012: https://www.coindl.com is looking to become the new bitcoinservice.co.uk.

For digital content, coinDL is worth a shot: https://www.coindl.com (full disclosure: it is developed and operated by myself).

You can also post your goods & services on BitcoinTrading.com: bitcoin buy/sell classifieds.
http://www.bitcointrading.com/

https://www.qrypto.space/sell is also a great place.

http://CheaperInbitcoins.com You can buy or sell as many items as you want for free, you only pay for upgrades. You can sell items anonymously and as the owner I can vouch for my self and say that we are incorporating our website with an up and coming Web Of Trust ratings system to provide safe, secure and anonymous person to person transactions.

If you are selling a digital product you can use http://instabuck.com/

I've never used it for this purpose but I believe Mokimarket allows you to sell items in a penny auction format.

Most popular is
BitMit.com
You can also check the complete list at bitcoin wiki.

"most popular" {{citation needed}}

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Changing Bitcoin's deflationary nature
One of the most common criticisms made against Bitcoin is related to its deflationary nature.  Regardless of the advantages and disadvantages of an inflationary system, would it possible to change the rate of coin generation in order to transform Bitcoin into an inflationary currency?
I know that the Bitcoin protocol and client are often updated to incorporate new features, but what part of the protocol (if any) is set in stone? Could such a drastic change be done by the developers?

Changing something like coin generation has two major risks:
a) You fork the network.  If you make a change and it doesn't have universal support then those supporting the old network will see new blocks as invalid and those supporting the new network will see old blocks as invalid.  To users who don't want to get caught up in a "fork war" the results will be confusing. If user on fork A send coins to user on fork B they will be gone but user B will never get them (unless he modifies his client to fork A).
b) You cause a loss of confidence.  Bitcoin is based on "nothing".  Part of its intrinsic value comes from the fact that nobody can make changes and thus like the "rules" or don't like them you at least know the rules won't change.  Anytime you make a change someone gains and someone loses.  For example if the Federal Reserve lowers interest rates that helps debtors but hurts savers.  Once you start changing the rules Bitcoin becomes open to manipulation with each party pushing for changes that help them.  There is a real risk that will cause a huge loss of confidence.  IF you can gain enough support to change the generation rate you can change just about anything and some people won't like that ambiguous future.
Those risks aside to change the rate of generation you need to
a) decide on a future block in which to change generation
b) reach near unanimous consensus among users (at least among users you can reach)
c) provide updated client which incorporates changes at the preset future block.
d) encourage rapid and widespread adoption of clients with new changes prior to the change block.
e) at the "change block" be prepared for significant issues from users with out of date clients.
There is no way to force this (or any other) change on the Bitcoin community.  Any change require consensus and for something as devisive as generation change that would be difficult.  If it has low support the "inflation fork" will die off.  If it has high support, then even those who dislike it will eventually adopt it and the original fork will die off.  A worst case scenario would be a "fork war" where both versions have roughly equal support and neither one gains an upper hand.  That likely could crippple Bitcoin or at least push it back significantly.

There is nothing technically difficult about making this change. Edit a few lines of code, upload a new version, make sure everyone installs it.
However, it is extremely unlikely that any respected developer will ever try to make such a change, or that enough users will adopt it if it is offered.
The reason is that people who hold bitcoins and don't get rid of them like hot potatoes, do so with the understanding that every BTC they have entitles them to 1/21M of the total eventual worth of Bitcoin and that there will be no unplanned inflation. They have confidence that the generation schedule will not change, because it has never changed so far. And people who would consider condoning a change, know that by so doing they will create a loss of confidence for future generations who will have this precedent. And, everyone knows that everyone knows that changing the schedule will create a loss of confidence, giving even more confidence that there will be no change as nobody would condone it. And so on, ad infinitum.
In short, as long as the generation schedule is sacred, it acts as a Schelling point for the confidence in long-term projections. Changing it even once will make this confidence collapse completely.
If people want an inflationary decentralized cryptocurrency, they will have to create an alternative currency and leave Bitcoin out of it. The inflation rate can be set in stone, or if they think a mutable schedule is good, they can specify on what terms it can be changed, so it can be safely changed without destroying anything.

Changing the rate of coin generation is unnecessary and hard. Instead, an economy can simply use substitutes for currency, just as every modern economy actually does.
If there is insufficient supplies of a currency for an optimum economy, positive pressure will be applied to things that create new currency (because that currency will have more value than it would in a balanced economy). When that happens, people begin to use substitutes for currency in lieu of currency.
For example, if someone creates some other crypto-currency with a relatively stable exchange rate with respect to Bitcoins, we can use coins in that alternate currency instead of Bitcoins. Similarly, secured notes can used instead of currency.
So it won't matter. A modern economy won't tolerate a consistent deflation. The pressure to fix it would be unstoppable, unless you imagine some powerful government-based economic regulation that prevented expanding the monetary base. (Which, of course, would be politically suicidal.)
If deflation is a problem, it's easy to fix a billion different ways.
How much would it matter if the Fed stopped printing dollar bills? What percentage of dollars are in the form of physical dollar bills? A limit on one form a currency won't stop other forms from being used as a substitute for the limited form of the currency. A long-term currency deflation is basically impossible.

People, please consider adding comments when you downvote an answer. @DavidSchwartz: I'm guessing that the downvote is because the question is about whether it is possible to make such a change while your answer is more about whether it is desirable.

@D.H.: My point is a bit more subtle -- the premise of the question is false. You basically can't have a currency experience a harmful long-term deflation unless something literally forces it (such as laws that prohibit inflationary economic practices). There are just much easier solutions than changing the protocol, including using alternative crypto-currencies to increase the effective supply of Bitcoins, using demand notes, and so on. (Just as we use many other things instead of physical dollar bills.)


text:
Can wallets be shared by different machines?
I have a bitcoin client installed on machine one. Let's say it has 5 coins in there. I then have another machine, with another client on it. Can both machines see the same wallet?
Do I have to have a per machine wallet? What if I want to pool my coins in one place?

It is a bad idea to have multiple copies of your wallet.dat running from multiple computers if both will be spending.  You risk getting double spend attempts that will never confirm and cannot be cleared without performing wallet surgery.
BlockChain.info/wallet has a "desktop sync" feature that will let their hybrid EWallet sync with your Bitcoin.org client (through RPC), but since BlockChain.info/wallet can be used on multiple machines why not just use BlockChain.info/wallet from everywhere instead?  You get to use the mobile app with it as well.

You can copy your wallet over multiple machines, but you should generally not do that. Besides, your wallets would start drifting apart with each use - generally Bitcoin keeps a set of spare keys in case you need to use them in the future, and the set is refilled every now and then with random new keys.
The best practices for using Bitcoin is to have backups of wallets, but not use them on multiple machines at the same time. If you want to access your coins from anywhere, you can either look into running Bitcoin in a server mode (a bit tricky, not really for beginners), or using one of the many eWallets available around (you trust your coins to a third party, but this option is quite easy [just don't put too much money there;) ]).

Actually, with blockchain you don't really have to trust your money to a third party: you have your local backup, and the js verifier plugin checks if something nasty happened server-side.

+1 for the mention of "drifting apart". This is a very important point which can lead to loss of bitcoins in case you don't back up both copies separately.


text:
How to find the shortest unused FirstBits?
I am interested in generating a bitcoin address with the shortest possible FirstBits. By random trial and error I found that 1ijj1 is untaken. Is there a way to find the shortest possible untaken FirstBits? (So I can generate it using vanitygen)

If I was an evil person I'd generate 1ijj1 it myself just for the lulz.

According to this post all of the 4 character firstbits are taken.

Yes there is a solution, it is brute-force. Make a loop and add variable characters, test them one by one. Start with one variable characters, try all combinations, add another variable character, try all combinations, rinse, repeat until you find unused firstbits.

Okay... But how do I check if a given firstbits is used?

If I wanted to do it I'd plug into the blockchain API somehow and script the search. If you're going to do a brute-force search you'll have to script it anyway.

@David, that seems rather hard on the firstbits website, given that you'd need 5 million requests (ish) to fully search for 5 character firstbits.

Hmm. Is there some kind of database I can download of firstbits that I can search through?

@lurfjurv Download, probably not. However, you can use a program called Abe to make a firstbit database. I wrote a guide about setting up Abe back in November, which I just updated to cover the firstbits feature.


text:
If there is no one company behind bitcoin, who controls it?
"If there is no one company behind bitcoin, who controls it?"  This is the question that many people new to bitcoin ask. What is the best way to convey to them how bitcoin works, and in a way that can be understood by non-techies.

From bitcointalk.org: triple-entry crowd accounting by casascius.

I came up with the term TRIPLE ENTRY CROWD ACCOUNTING as a way to abstractly describe Bitcoin in as few words as possible.  I wanted to solicit feedback.  This term would make sense to those who are familiar with banking but not with technology.
Slightly expanded (EDIT: and revised):
"Bitcoin is a payment network based on triple-entry crowd accounting.  A crowd of computers - run by ordinary Bitcoin users - observes the transactions, produces a single common ledger, and keeps everyone honest.  The magic that came from Bitcoin's inventor - the thread that holds the whole thing together - is a documented and published process by which the entire crowd can always agree on what transactions it observed, despite differences in timing and perspective, and even despite varying levels of honesty among participants.  Bitcoin's design ensures that no matter how big the crowd, its collective efforts always produce exactly one consistent transaction ledger."

key sentence for me was, "No matter how big the crowd, its collective efforts always produce exactly one consistent transaction ledger."

Bitcoin operates based on a set of rules known as the Bitcoin protocol, which is defined by a consensus among its users.
The Bitcoin software is open source so anyone can contribute to its development, but in order for one to have any influence his modified software needs to be accepted by the users (so harmful code will be rejected).
The Bitcoin currency day-to-day bookkeeping is operated by a peer-to-peer network of computers running a Bitcoin software which follows the Bitcoin protocol. Virtually anyone can make his own computer part of this network.

Suggestion: Replace "unhelpful" with "unhelpful or malicious"

Majority of the nodes control the network, but they all obey the common rules of the Bitcoin Protocol. Each node checks data sent by other nodes that it receives against those rules, and only if it obeys them, the data is transmitted further.


text:
How does the computing power of the Namecoin network compare to the Bitcoin network?
Namecoin sounds neat, but I know that the strength of the network depends on the amount of computing power in use. Namecoin isn't as popular as Bitcoin, so it would be easier for an attacker to control the network. I'm curious how big the difference actually is.
How does the amount of computing power in use compare between the Namecoin and Bitcoin networks?

Since Namecoin started using merged mining with Bitcoin, its effective processing power increased substantially. The current difficulty is 1063443.
This is very high considering the resale value of namecoins (1 namecoin is worth 0.002 of a bitcoin) and given that the difficulty is 49% of the Bitcoin difficulty.
The Bitcoin network currently is around 16TH/s, so you'd need around 8TH/s to successfully attack the Namecoin network. That would be pretty expensive!

US$4 million worth of hardware to attack, US$100K of market value of all namecoins issued so far, using the current exchange rate.


text:
Are there alternatives to Bitcoin which take a different approach?
Are there any alternative approaches to decentralized, electronic currencies?
Bitcoin was built with certain technical characteristics in mind. I'm hoping to see if there are alternative approaches. I don't mean things like Namecoin or other adaptations of the blockchain concept.

Can you be more specific?  What problem are you trying to solve?  Bitcoins offer many features: transactional uses, investment potential, flexible transaction possibilities via scripts, pseudonymity, decentralization etc.  Different alternatives are available for each.  The term "open source money" is not clear.

It is best when a question has a clear answer, so when there are different requirements, they should each have their own question.

There are "digital bearer certificate" systems, which are an older concept.  They require a centralized issuer in order to prevent double-spending.  You can think of the certificates as electronic IOUs for a commodity (such as gold) held by the issuer.
Some DBC systems implement Chaumian blinding to anonymize transactions.
Open Transactions is a recent DBC system that has gained some interest.  It could be used with Bitcoin as a backing commodity, taking advantage of the properties of both systems.

(answering the original question, before the edit)
I suppose it depends on what specific characteristics matter to you.  There are plenty of examples of non-government "money."  WoW gold, Linden dollars (Second Life money), and Chuck E. Cheese tokens all count as money in some sense.
I don't think any of those examples truly count as "open source money" though.  Perhaps the main problem in developing such a money before Bitcoin was how to trust that transactions are legitimate.  Typically this would require some sort of trusted 3rd party (so if I believe in Linden dollars gold then I trust Linden to be honest and not to get hacked).  Some mechanism needs to be in place to prevent me from altering the balance in my digital account or from making copies of my money files.  Trusted 3rd parties can indeed do this, but I don't think that is in the spirit of "open source money."  The block chain concept is the only open-source mechanism I know of to prevent double spending without relying on trusted 3rd parties.

-1 He explicitly said "decentralised", so no, all those moneys don't count.

@Lohoris The "decentralized" part was only added to the question a year and a half after I answered...and by someone besides the original asker!  I answered the original question as it was asked...

Oh, sorry, I totally didn't notice!

Yes, there are other alternatives to Bitcoin with overall different approach but with different results such as zCoin, Monero, ... which provides more privacy


text:
Can Bitcoin software be used to create a private currency (single issuer)
I understand Bitcoin software can be used for private currencies. Can it be used to create a private currency (the NewCurrency) where there is only one issuer of NewCurrency and any monies raised are invested. So that investments "belong" to the holders of the NewCurrency, and any returns on the investments benefit the holders of the NewCurrency (i.e. improve exchange rates against other currencies). Issuer of NewCurrency can quote the net asset value of the investments daily (like for open ended funds), which supports the value (i.e. exchange rate) of the NewCurrency?
Does Bitcoin software/infrastructure support implementation of this?

Let me see if I understand: you want to create a new currency which is controlled by someone? You don't need bitcoin to do that. Just create something unique that only you own and annouce it as a currency. People may want to use it or not... Bitcoin does not have one issuer. It is completely decentralized. It is controlled by everyone.

If I understand you correctly, the answer is yes. You could use a Bitcoin-like system simply to track the movement of 'shares' or 'units'. All the 'coins' could start out pre-mined, and the system's sole purpose could be to track the movement of those units.
However, there would be a lot of reasons why this would be a bad idea. The primary one is this: the Bitcoin system makes a lot of trade-offs to get the benefit of decentralization (nobody needs to trust anyone else at all ever). If you want to have one central authority anyway, you are trading off all those things for nothing.
Securing the block chain requires sufficient hashing power such that a malicious organization can't easily muster 51% of it. So to keep the system secure on a day-to-day basis, you'd need some way to fund that massive amount of computing power. It's hard to see what benefit you'd get back for that cost.
There are systems, even cryptographic ones with similar properties, that are more suitable for a centralized currency. The basic design change would be that instead of having a block chain, you'd simply have the central authority (or authorities) sign all transactions.
For example, if I had 50 units of this currency, I could request a signed and dated statement from the central authority saying that I had those coins and showing my public key. If I want to transfer 10 units to you, I make a signed statement saying so and get the central authority to sign it. You can now prove you have those 10 coins with that signed statement. I can prove I have 40 coins by showing the signed statements and the central authority can't argue I made a transaction I didn't make because I have to sign them. So you get the same security properties and don't need all the CPU power.

Remember that Bitcoin will eventually stop paying block rewards and will switch over to fee-subsidized mining. The same model could support a privately-issued network. Since the fees come from users sending coins to one another, they wouldn't be "double issued" or such. I the central issuer simply control how many coins are in circulation, the Bitcoin protocol would allow the circulation to take care of itself.

You would at least want to change the model so that instead of piling hashes onto blocks, the central authority simply signs them. (The central authority could cheat, of course, but the victims would have proof and could sue them.)

You don't necessarily need the central authority to sign anything. Just view the central authority as the "issuing bank" and let other clients handle other transactions independently. The Bitcoin protocol will work just fine once the coins are in the wild, the coins simply enter the economy from a non-distributed source.

That assumes the currency can amass sufficient hashing power to secure itself. A lot of currencies have failed to do so. If you have a central authority, it seems both much harder and much less necessary to secure with hashing power. Bitcoins are secured with hash only because they have no central authority.

True enough, perhaps it's not an ideal solution but it could be used. Also, the blockchain mechanism isn't just a method of reducing/eliminating centralization, it also outsources the cost of securing and operating the transaction database. Still, @ChrisAcheson is probably correct in stating that Open Transactions might be the better solution.

For a private currency, you'd want a digital bearer certificate system (such as Open Transactions) instead of a Bitcoin-like system.

this IS possible to do with bitcoin.
Create a new genesis block. Total number of coins to produce that can be produced within the first block. Dont release the client and refuse incoming connections. mining after this will only process transactiosn ofcourse, but that is all you want anyway.
Viola. One man blockchain.

How can transactions be made if no incoming connections are accepted?

He would make the transactions himself.

modified to allow transactiosn with a flat client but no block generation

You could but it would be pointless.  Bitcoin was designed from the ground up to support a decentralized economy that requires no entity to trust any other entity.
Using that infrastructure for a centrally controlled currency that has ability to create "trust" would be horribly inefficient.


text:
What happens to cash used to buy bitcoins?
Are there any requirements to Bitcoin exchanges [USD/EUR/etc], as to for what the [USD/EUR/etc] may be used? Or is the [USD/EUR/etc] received property of issuer of bitcoins?
Unfortunately, this is not decribed anywhere.

Hi Kaido--there is no such thing as an "issuer" of bitcoins.  Every bitcoin bought on an exchange is simply being bought from another person who owns bitcoins.  So the cash goes to that person.  Exchanges are simply places where people buying and selling bitcoins can meet to exchange bitcoins for dollars.

Exactly, it's not described anywhere because it's not a method which is actually in use. For the purpose of determining the legality of an action, imagine Bitcoins to be a commodity rather than a currency since to my knowledge no jurisdiction currently recognizes them as currency: If I were an exchange selling someone Pork Bellies or Wheat, would I be expected to discover the intent of my buyers? Certainly not. Unless you're dealing in drugs or explosives there is no such requirement for buying/selling commodities.

Bitcoin exchanges, like stock exchanges, act as a middleman for people that want to trade bitcoins. They do not sell/buy their own bitcoins or US Dollars.
Suppose that I have 10 bitcoins and I want to sell them at $5 each. In order to do that, I can use a bitcoin exchange and put a sell order at $5 for 10 coins. This is a way of "announcing to the world" that I will sell 10 coins to anyone who is willing to pay me $50. If you want to buy them, just login to the exchange and put a buy order at $5. The exchange will match our orders and I will receive your $50 and you will receive my 10 bitcoins.
When a buy order matches a sell order, a trade is made. This is how the bitcoin price is defined.
Now suppose that you want to buy bitcoins, but you are only willing to pay $4.9 for each bitcoin. You will put your buy order at $4.9, but it will not match mine because I only sell if you pay me $5 per coin. The amount of pending orders defines market depth.
For example, you can see here the market depth for MtGox. The bids table show the price people are willing to buy at and the asks table show price people are selling at. MtGox Live is also a nice way to visualize these concepts.
Note that bitcoin exchanges charge a small fee (currently around 0.5%) each time they match an order. So in the previous example I would receive $49.75 and you would receive 9.95 bitcoins. The rest is kept by the exchange for their services.

Exchanges just bring buyers and sellers together. Generally speaking, they have no legitimate interest in what the buyer does with the Bitcoins or what the seller does with the money. If you buy a bicycle on eBay, should eBay care why you want the bicycle, where you got the money to buy the bicycle, why the seller wants to sell the bicycle, or what the seller is going to do with the money?
Your use of the word issuer suggests that you may not quite understand how Bitcoins are produced in the first place. Bitcoins are generated when new blocks are mined, with a (currently) 50 Bitcoin 'reward' going to the miner who mined the block. This reward compensates for the costs associated with maintaining and securing the Bitcoin public block chain which publishes the transactions.
And, of course, the seller may or may not have personally mined the Bitcoins they're selling. It's also possible they received them in exchange for something else.

That's the billion dollar question and no one seems to understand what you're asking
The answer is probably what you suspect. There's a pool of millions of $$ that fills up the basements of exchanges that just keeps growing whenever anyone funds their account with $ to purchase crypto from a seller they got matched with. Because that seller never gets that $ only simulated exchange money which we treat as having the same value because of the misplaced confidence that it's the same thing
But it's actually very close to worthless because the exchanges will never allow anyone to withdraw in a big way... why would they when they can just Mt.Gox it when too many people start coming after the money they think is waiting for them
When all crypto corrects to near zero when the exchanges start to cut and run most people probably won't even understand why
crypto is real. it has value. and that value is whatever it was when we only had a system like localbitcoins to trade it.
but the exchanges? they're ponzi schemes
99.9% of people engaged in trading crypto are in for the rudest awakening imaginable

this is a q&a forum on bitcoin here, and I think your answer goes more into an opinion based view. While sometimes this makes sense, the better forum for these type of speculations is reddit. There are daily postings with this type of content. Also accusing exchanges as Ponzi schemes and 99.9% of users morally questionable is not helping anyone. Maybe reddit is the better platform for such posts.

This doesn't make sense. While it's true that funds deposited to an exchange are held by it, after a user makes their trade their funds are then withdrawn again (less a small fee for their trade), so most people using exchanges only have their funds at risk for a short amount of time. They aren't a safe place for long term storage though, generally.


text:
Why does my wallet need to download the whole transaction history?
I started a wallet, and it is downloading and synchronizing lots of transactions.
This takes time and network bandwidth.
Why is this necessary? Is this some form of accountability?
With Paypal, for example, this isn't done.
And as you grow, I guess this becomes a huge -- will the amount of transaction data become too large? It is a bit scary to have my computer run off and synchronize, without it informing me  what kind of information it is getting and whey this is necessary.
Can't the whole transaction history be shown or available on a website, rather than loaded on my computer?

It should be noted that the whole transaction history is shown and available on a website (eg blockexplorer.com and blockchain.info). But it doesn't exist only there, and it's generally a bad idea to rely on such a site exclusively to verify transactions that concern you.

The short answer to your question is "no". The reason is actually pretty simple: Without the entire block chain, there is no way to know that funds that are claimed to have been sent to you weren't actually sent to someone else. There is no way to prove the absence of a conflicting transaction, other than to check every valid transaction.
With a bank, the bank clears your checks for you. Here, you clear your own checks. Without knowing every check an account has received or sent out, how can you know the account has sufficient balance to cover your check?
Of course, you don't have to run the Bitcoin client. Your alternative is trust someone else with your coins.

I suggest some links that clarify the phrase "Your alternative is trust someone else with your coins." When you just write it like that, it seems very stupid to do so.

I think the analogy with banks makes it clear. We all trust our money to banks, credit card companies, and so on.

I wonder, does this mean there will be a Bitcoin bank in the future (trusted to hold and manage transaction history?)

Bitcoin is a new approach to security of money, offering nigh-full transparency. You can "audit" any account and see what transactions were performed without a problem. With traditional models, like Paypal or the banks, you can't do that. As Bitcoin is P2P, it needs to have all the data to be able to validate all of it. This way no single entity can take the whole network down, or freeze anyone's account.
There are works done, however, on a set of servers forming Stratum overlay network protocol that will be handling almost all of data handling for very thin clients. In this model one would not need to download or validate the entire blockchain, but some people see this as giving up their security (this issue is addressed and debunked here).
A third option is thin clients that validate all the data, but prune older blocks that they don't need themselves. This approach would save hard drive space, but not the initial validation time.
In short, if all Bitcoin data was stored on a single website, the system would be vulnerable to being taken down and trust would be centralized. With the standard client, one need not trust any single individual, so security is greater. There are are other solutions being developed that will be something in-between the two.

With paypal you trust paypal; here you check all history and ensure it is correct.
Still, you usually don't care about that, and that's why there are "thin clients" which only download the necessary data and check only the blocks regarding your transactions.

The bitcoin client devs has said they will be working on this very problem in the future versions of the client, possibly only downloading a subset of the blockchain. Because as years go by, the blockchain will grow very large, given the current amount of transactions plus some growth, in 10 years it will approach 50GB, this is simply unsustainable.

Oh, how we wish your prediction were true and the blockchain had only approached 50 GB by now :D

You need to download the whole blockchain because any client which does not do so necessarily sacrifices some amount of security -- though some much more than others.

Not true.  SPV (Simplified Payment Verification) clients are no less secure than the Bitcoin.org client running as a full node.  The difference is that SPV doens't give all the functionality that the Bitcoin.org provides.  But for  consumer use, only a subset is needed.

SPV does sacrifice some security. An SPV client can be tricked into thinking a block that contains transactions that pay from already-spent outputs of prior transactions is a valid block when it is defined as invalid by the bitcoin specification. The bitcoin.org client running as a full node can reject those blocks as invalid. (Whether that security is important is another question.)

There are clients that do not require the full blockchain.
SPV (Simplified Payment Verification) clients like MultiBit and Bitcoin Wallet for Android are two examples.
There are client/server clients such as Electrum which are ready to use upon installation.
There are hosted (shared) EWallet services such as Coinbase (Web-based) and Paytunia (Web-based or mobile client) which have no blockchain requirement.
There are hybrid EWallet services such as Blockchain.info/wallet which provide the conveniences of an EWallet with the security where your keys are kept locally and only an encrypted copy is kept on the host.

The basic concept behind Bitcoin currency is distributed consensus. Being a P2P protocol, each and every node is required to obtain a full and global knowledge of every account's (wallet) status.
The differences with PayPal are easy to explain: in a client-server model, like your contractual relationship with your regular bank, the bank holds the huge database of all accounts of their customers, plus the transaction history with other banks. You, as a client, act as a thin client with knowledge limited to only your account. When you arequest a cashier an extract of your accoun't activities, or log in to your internet banking, a view on a database is triggered to obtain only your data.
In Bitcoin, that's completely different: there is no central data warehouse and the security principle is that nobody fully trusts nobody unless a message is signed with corresponding private key. So, what else better storage rather than all network nodes?
In both cases, the database still exists, but is located differently. Central VS distributed.
Let me finish with a short answer, that may be the repetition of previous answers: In Bitcoin, when you receive a payment, you have to validate that the sender account has enough money for the transaction to be valid (anyone could send an uncovered check else). The only 100% sure way is to check the transaction history for the sender to see if he really received the money he's sending to you from someone or from mining.

Let me add a comment: someway, all banks hold in their DB a "blockchain" of their transactions. But it must be never be synchronized :) as it is only one in the world (for each bank), started when the bank started its activity and not shared with anyone


text:
Can a malicious majority miner rewrite history?
Is it the case that a malicious miner with the majority of hash power (say, 99%) can perform a double-spending attack by rewriting history?
If so, I can't understand how. If not, under what circumstances is double-spending possible at all?
Consider the following simple assumptions:

A malicious miner M controls 99% of hash power
M does not control much "relay power" (e.g. it only operates a single node in the network)
The current legit blockchain (before the attack) is forkless, and consists of block B0,B1,...,B10, and 100% of the nodes in the network agree on that.
The attacker wants to void blocks B6-B10
The attacker mined alternative blocks B6' (on top of B5), B7', ..., B11'.

How can the attacker carry out the attack?
If he publishes B6' first, wouldn't all nodes reject it for being built on top of a block other than the last, thus preventing the attack?
If he publishes B11' first, wouldn't all nodes reject it for being built on top of an unknown block (not seeing B10' yet), thus preventing the attack?

Sidenote: Assumption 2 seems irrelevant. If M controls 99% of hash power, it surely could run hundreds of nodes all around the world. It can always decide how many to use depending on its needs to do malicious acts.

It still can't use these hundreds of nodes to change what other nodes think.

If a Bitcoin node could know for certain which is the last block, the whole multiple confirmations thing wouldn't be necessary.

@pieter that's why i said irrelevant: doesn't matter either way.

Jannes: so you're saying that an attacker with an equal amount of money but without large hash power could do the same thing? That is incorrect. The number of nodes does not matter, but the hash rate does.

@PieterWuille ehm... misunderstanding here. Assumption 2 says "relay power" i.e. the number of nodes the attacker runs. I'm just saying it doesn't matter whether he runs 1 or 100 nodes for his attack to succeed or not. It's irrelevant.

@Jannes My apologies! I missed that you were talking about assumption 2.

Let's assume for a minute that your theory is true, and that actual nodes on the network would not accept this new, valid, and longer block chain.
That on itself would be a bug. Maybe it isn't obvious for a 5-block reorganization, but if it was a 2-block deep one (which actually occurs in practice), your argument would be equally true. If there was no means to accept a 2-block deep reorganization, nodes would be stuck in their shorter chain. This is actually exploitable too: someone may intentionally try to get you in such a state, as you will not see new payments on the chain that might conflict with a payment the attacker is trying to send you.
This is true for any depth of reorganization. If we don't accept 12-block deep reorganization, the network would remain in a very sore state if there would ever be a few-hour partitioning of the network. Being able to accept the longest valid chain under every condition is absolutely required for making Bitcoin converge.
So: we need a mechanism to reorganize pretty much any depth. How it is accomplished changed in Bitcoin Core 0.10 with the introduction of headers-first synchronization.
Before 0.10, the attacker would broadcast B11' first, which the victim doesn't know about. It will do a getblocks message to request the hashes of blocks between B5 (using a block locator) and B11'. When it receives these hashes, it will download them one by one using getdata, see they have a missing parent, place them in the orphan pool (the set of blocks without known parent), and when they're all received, notice that they connect, and switch to it.
Since 0.10, the attacker would inv B11'. The victim will use a getheaders message to request the block headers between B5 and B11' and getdata for the block B11' itself. When the headers arrive, they are validated on the fly (in order of increasing height, so they always connect). By the time B11' arrives, we already know about its parents, and know that (assuming the parents are valid) this will in fact be the new best chain. We will then start fetching the actual blocks B6' through B10' to fill in the gaps, and when they have all arrived, switch over to that chain.

That's not to say that alarm bells wouldn't go off on large reorganizations, right?

Yes, indeed. At some point, it becomes uncertain enough that human intervention may be required.


text:
What is "segregated witness" and how can it improve network scalability?
I've just heard about it, and it is claimed to be a "turning point" in the block-size debate.
What is "segregated witness?" how does it work?
How can it be used for improving network scalability?
Is this the answer to all of network's scalability concerns?

Can you add a link to where you read about this concept?

It's not a silver bullet solution, but it's a really good start.
As Gavin Andresen has said, Segregated Witness is a poor name. The 'segregated' part of the name is there to denote that there is separation being done. The 'witness' portion of the name comes from the fact that digital signatures are often time called witnesses.
Segregated witness splits up transactions into different parts that can be handled separately instead of the single chunk of data as they are now. Specifically, it takes the digital signatures out of transactions and puts them in a separate merkle tree that has the same structure as the transaction merkle tree. So, if fully implemented, to check that an input legally spends its previous output, you would get the signature from the signature tree, instead of the standard scriptSig field.
These are a few of the benefits of this idea:

Since signature data (witness data) is stored outside the transaction (and outside the standard block), it means that that data doesn't have to be counted towards the block size. Pieter Wuille is proposing a 75% discount on space taken up by signature data, meaning that you can fit 4x as much signature data into blocks. This effectively results in a soft fork increase to the block size.
Completely solves malleability issues. Using transactions with the signature data outside the transaction means that TXIDs don't hash the signature data, which means that they're not malleable (assuming you're using the standard SIGHASH flag). Technically, the signatures are still malleable, it's just that modifying them doesn't invalidate chains of transactions because the signatures don't sign the modifiable parts.
Allows for a slow upgrade. Software has to opt in to using Segregated Witness after it has been fully deployed to the network, but in the meantime (and afterward) transactions can still be made as usual without segregated witness.
All future Script updates become soft forks. When segregated witness gets fully implemented, it will have a version byte in outputs for what version of Script it is using. And the behaviour for clients that see a script with a non recognized version number is that they treat it as an 'anyone can spend' output.
Signatures only prove that a transaction is authorized, it doesn't describe where funds are going or where they came from. So, after they're checked they can be discarded. Putting the signatures in a separate data structure makes it much easier to prune that data, which results in much less blockchain data needing to be stored on your hard drive.

However, this doesn't completely increase the block size, it just increases the amount of signature data that a block can store. Since transactions are roughly 60% made up of signature data, this is still a pretty big gain.
The downside is that it's a non-trivial upgrade for the network to start using segregated witness. The transaction serialization format is different, and code everywhere that makes bitcoin transactions needs to be updated. Since it's an opt-in process, though, upgrading can be done slowly over time.
You can watch Pieter Wuille's great talk on Segregated Witness at:
https://www.youtube.com/watch?v=fst1IK_mrng&feature=youtu.be&t=37m12s.


text:
How do you delete an account in Bitcoin Core?
I am attempting to allow multiple bitcoin addresses to be created per account, but how can I delete them using the standard API? There doesn't seem to be a function for that.
E.g. the acccount "Test" :
Array (
[0] => 1JQQXBRrG5h7uW8StVtJRcGEdb4YYTqnas
[1] => 1LP8VeKDNKAgErCnYVAFvGMnrGbM3oHe6u
[2] => 1LwTx3a7hy4FZ5EJMxcPnRG9ap8AUwd2cm
[3] => 1AtbnW8dPuzp6jVnAvipiJR4o1BupCcU8D
[4] => 1K7FyNgmJ4ryjKgNz9ybxzQcYrGDEbYEUX
[5] => 1Ng77Nq1SF46MDZnz4pEirCEbbiHZ1Wthp
[6] => 175FKAiJSC9wA12BPcYZD6drTYLxXXChdZ
)

What if the user just wants to delete 1JQQXBRrG5h7uW8StVtJRcGEdb4YYTqnas?
Cheers!

Are you using the accounts feature of bitcoind?

@NickODell I am :)

Do you want to delete the account, delete the address, or dis-associate the address from that account?

@StephenM347 I'd like to delete an account!

@PatrickGeyer, I was confused because in your question you ask "What if the user just wants to delete 1JQQXBRrG5h7uW8StVtJRcGEdb4YYTqnas?" I'm glad you've got it figured out, though.

@StephenM347 - I can now delete an address from an account.. But it still appears in the list of Bitcoin receiving addresses under the label (no label). Any advice on how to completely delete the address?

And I'm assuming label and account are the same thing - http://bitcoin.stackexchange.com/questions/4136/importprivkeys-label-is-it-the-same-as-an-account?rq=1

@PatrickGeyer, Yes, label and account are the same thing. Like Nick said in his answer, though, you can't delete the address itself.

"You can also use PyWallet to delete addresses permanently" - I guess not quite, then. Thanks a lot Stephen :)

bitcoind does not allow you to delete addresses. (If it did, the next question people would ask is, "How do I undelete addresses?" :))
However, you can use the rpc call setaccount to change the account associated with the address. The first argument to setaccount should the the address you're changing; the second shound be the account you're moving it to. (If you want to move it to the default account, put "" as the second argument.)
Note that this does not change the balance of the account; balances are tracked internally. If you want to keep this consistent, run getreceivedbyaddress, then move that balance to the new account.
You can also use PyWallet to delete addresses permanently. Use the --multidelete option, and pass it a path to a file. That file should contain key as the first line, followed by each address you want to delete, each on a new line.

Thanks, I've used piwallet, but is there a way to do this from command line, not Web interface?

@PatrickGeyer See edit.

This is exactly what I am looking for, thanks so much :)

What format should that file be? Is .txt okay?

@PatrickGeyer Yes.

Just to answer the explicit question "how to delete an account": you cannot. The label will stick to another – eventuallay unused – addresses. for further information, read this issue: https://github.com/bitcoin/bitcoin/issues/1231#issuecomment-6305302


text:
GUIMiner won't start mining on Slush's pool
I started co-mining on Slush's pool successfully for about 48 hours, but from there on I haven't been able to connect to it again. It logs in the console this, no matter if I'm using a valid worker and password or not:
2013-05-26 12:55:19: Listener for "Default" started
2013-05-26 12:55:20: Listener for "Default": api2.bitcoin.cz:8332 26/05/2013 12:55:20, checking for stratum...
2013-05-26 12:55:20: Listener for "Default": api2.bitcoin.cz:8332 26/05/2013 12:55:20, started OpenCL miner on platform 0, device 0 (Turks)
2013-05-26 12:55:20: Listener for "Default": api2.bitcoin.cz:8332 26/05/2013 12:55:20, no response to getwork, using as stratum
2013-05-26 12:55:20: Listener for "Default": api2.bitcoin.cz:8332 26/05/2013 12:55:20,  No JSON object could be decoded
2013-05-26 12:55:30: Listener for "Default": api2.bitcoin.cz:8332 26/05/2013 12:55:30, Failed to subscribe
2013-05-26 12:55:32: Listener for "Default": api2.bitcoin.cz:8332 26/05/2013 12:55:32, IO errors - 1, tolerance 2
2013-05-26 12:55:33: Listener for "Default" shutting down

Of course, I've checked my connection, and I've started GUIMiner with administrator privileges. I'm using Windows 7.

The problem is that in GUIMiner, the URL for Slush's pool is:

api2.bitcoin.cz:8332

That address has been deprecated, and it falls back to the GetWork protocol. From Slush's Pool news:

10.03.2013
  Default mining URL for Stratum is stratum.bitcoin.cz:3333. If you're still using api.bitcoin.cz, please fix your URL to prevent fallback to deprecated Getwork protocol.

In the GUIMiner interface, instead of choosing "Slush's Pool" from the dropdown menu, choose "other" and then enter
http://api.bitcoin.cz:8332
or
stratum.bitcoin.cz:3333

Nice, it worked!

When I tried it with the CPU miner (not GPU), api.bitcoin.cz:8332 worked, but stratum.bitcoin.cz:3333 did not work.

Use stratum.bitcoin.cz and port 3333 in GUIMiner, not like http://stratum.bitcoin.cz:3333 that was mensioned in another answer.


text:
Why did Bitcoin first start to gain economic value?
I am really having difficulty answering this:

Why does a bitcoin have an economic value, such that there are people willing to
  trade US$ (or any other traditional currency) for these virtual numbers?

What did the creator of Bitcoin do at the start to give it economic value?

possible duplicate of Where do bitcoins come from and what gives them their value?

my question is more to historical perspective, about what the creator do at the first launch of bitcoin to give an incentive to people to trade their money to the bitcoin

From historical perspective, Bitcoin was worthless until Laszlo decided to give 10000BTC for one pizza. Some crazy restaurant keeper accepted the deal, and in that very moment 1BTC=pizza/10000. Then, the trust raised and also the value.

@DavideC: Precisely. I consider your comment the accepted answer! ;)

Satoshi created a system that:

Allowed users to trust transactions without having to trust any single entity.
Opened it up so that anyone could participate and exchange computation power for Bitcoins.
Is designing with a fixed size (21 million Bitcoins), he created an incentive for users to get involved early while Bitcoins are relatively cheap to generate; there is less risk of future inflation reducing the value of early adopters.

Bitcoins have value because they are useful.  They have useful properties.
This answer expands on this at length.
As for what the author wrote in the very beginning, you can read the announcement of Bitcoin v0.1.
Bitcoin was worth very little for the first year. In this thread, written 16 months after Bitcoin's launch, you can read the conversation leading up to a guy buying 2 large pizzas for 10,000 BTC.

I want to downvote this because it doesn't really answer my (or OP's) actual question - how did Bitcoin start to become valuable?  The answer may be somewhere in the links, but it would be great to see it here.  On the other hand, the other links (e.g. pizza) make me want to upvote... So, net effect - I'll comment instead of voting. :)  Thanks for your answer!

Bitcoins have value for one simple fact: 2 or more people agree they do.
The Proof of Work system in mining proves that a number of people agree on this, and agree on a method to account for transactions between them.
The was no particular financial incentive. The system was proposed, and people agreed that it would work. They proved they agreed by adding their CPU power to the network. This began to add value to bitcoin.
The CPU power doesn't add value, but the proof of work that it computes does, because this proves the existence of the agreement between the interested partied. The agreement is the code of the reference implementation of bitcoin. This agreement is the fundamental value in bitcoin.
Once the agreement is established, people are able to use it to trade for other things (dollars, euros, goods, services), establishing its relative purchasing power.

TL;DR: It was not its creator who did that. Bitcoin's economic significance was gained similarly to any other money; but here, it started with pizza...
Let me answer by refuting the most persistently recurring false argument:

Crypto money has an intrinsic value created by clever design to provide utility in the form of safe/free/practical/... (i.e. "valuable") transaction medium.
[And any variants of this, including the accepted answer, unfortunately.]

Is it true? Of course. Does it explain Bitcon's trade value? No. How could it?
Intrinsic-value arguments consider only the system, the medium itself, failing to take into account the "real thing": its value-measuring function, the actual link that connects it to the (ever changing conditions of the) real world, where the actual economy works. (And excluding the real-world economy from the equation makes it impossible "by definition" to answer questions like: "how does it gain real economic value?")
Confusing the market value of Bitcoin (or any other money) with the utility value of the framework itself is completely missing the most important point. It's the same fallacy as saying that

"the US dollar has its market value because it's a handy way to
  facilitate exchanging market value in comfortable transactions"

This should already sound vaguely suspicious, but one could immediately see the problem, when exchanging USD to other currencies. Shouldn't these plots be just boring flatlines then?

How many times have you seen those charts being explained by daily fluctuations in the usability/efficiency/design properties of the federal reserve system's machinery or the quality of coins and notes or fluctuations in the safety of credit card services etc., instead of real economical reasons?...
So, when looking at the same thing from that angle, everybody agrees that changes in currency prices (values) are caused by changes in real economic processes, events that affect actual markets (i.e. people...), rather than changes in the measuring tool (money), that only exists to map real market values to abstract numbers.
But then it directly implies that market value of any currency (crypto or fiat or commodity) comes from the market, not from the money itself!
Just watch for a minute the wild fluctuations of different crypto coins real-time at an exchange. Those instantaneous value changes are clearly not caused by corresponding changes in any inherent properties (like "fluctuations of clever design", or "momentary changes of hash safety" or "degree of free access" or real-time network load etc.).
Those value changes happen in the minds of individual traders, because that's where markets work, i.e. where all the market values are created.
As others correctly noted: it all boils down to trust (which is, BTW, just a glorified word for a basic cooperative game strategy element).

Market value of (any sort of) money emerges from bootstrapping the network effect of mutual trust:
The first time someone trades a money token to anything else(!), the initial exchange value for that money is (irrevocably) established.
(See @DavideC's nice comment, right under the OP, about first selling a pizza for BTC!)
And as soon as word goes around about such a transaction being possible, a market is created around that money, too.
And the next transaction will be priced based on knowledge about the previous ones (providing a quasi-continuous function for trade value changes).
Those value changes depend on a whole bunch of (known and unknown) factors.
As long as there's faith that another transaction is doable with that money, its market will be alive.

So, to recap: my money has value to me if (and only if) I can trust that people would give me stuff for it. And those others need to maintain the same trust, too, to keep the market alive, and they also need to communicate properly to keep market values in sync with reality.
Note:

It's still true that a viable money system does have reasonable utility value, too, which is, indeed, inherent to it. Part of that value may come from the scarcity of a commodity (like gold), the guarantees of a powerful government, the well-developed infrastructure of banks, or certain mathematically proven properties of an automated system etc.
That inherent utility value is even a factor that may affect the trade value of the money! (See e.g. how recent Ethereum ICO overloads made the market value of Ether plunge, or see how juicy-looking coin startups "backed" with the promise of shiny new tech ideas tend to overprice the market value of their tokens.)
However, these effects are only childhood diseases of the new digital money world: as soon as the technological problems get gradually ironed out, the excitement around them will also fade, affecting the market value less and less. If everything goes well, the money system just gets out of the way: as nobody really cares how much minting a dime actually costs, or what database backends a bank transfer goes through, nobody would get high from the world "blockchain" a few years from now.

And to vividly illustrate how irrelevant those "inherent" design or institutional properties of a money system are in terms of its actual market value, just remember that shells, like money cowry could happily hold any real and arbitrary trade value, despite having none of the sophistication of a blockchain currency. But it's probably best demonstrated by the most arcane monetary system of all time: the Rai stone "coins" of Micronesia. :)

See also: "How does money acquire its value?"

At the start the creator promised utility of Bitcoins (easy payments without banks).Since others believed that, their belief instilled a market value in the first Bitcoins.

From my perspective the controversy about this question is the fact that someone can't price a product without an exchange rate and vice versa... This indeed seems like an insolvable problem but there is one simple answer: every currency or monetary territory has to start with either an exchange rate (to find appropriate prices for products) or initial priced products (to find an appropriate exchange rate).
Since in the early beginning of BTC nearly no Supplier of Goods & Services accepted BTC as a payment the initial product traded were BTCs themself (vice versa: Foreign currencies were the first product). As stated by other answers before: BTC have an intrinsic value which is simply their usability transacting value. For this value a price can easily be found by bringing together supply and demand via an exchange. Since liquidity and market capitilisation grew transacting value became more and more feasible.


text:
Two out of Four transaction with excluding some key pairs
Is it in theory possible to set up a 2 out of 4 multi-sig transaction, but only allow a subset of all possible combinations?
More concrete: I want to have the keys A, B, C, D.

Alice controls A
Bob controls B
Charlie controls C
Dennis controls D

There are six ways to select 2 items from 4 items. However, the only valid combinations should be:

A, B
C, D
A, D

Minor justification: there are six ways to select 2 from 4.

@MaǳiKoǌo Good point. We don't care about the difference between A, B and B, A.

This is a usecase for the question: It would be possible for an oracle to release ether key B or C. Now A OR D could access the funds. The oracle can never access the funds AND it does not need to have to know about Alice and Dennis or about the transaction. It only releases a key.

Out of curiosity, what's the use case for a configuration like this?
Is it possible to do this using the bitcoin scripting language? Yes, absolutely. Making it and actually having it included into a block is questionable, mainly because it would be a non standard transaction type.
There aren't really a lot of tools to help you do it, though. I can describe what the scripts would have to look like, but not sure how you would actually make such a transaction. This question might be of interest to you as well.
The assumed scriptSig, where we don't know what combination of signatures we have:
0 {sig1} {sig2}

The scriptPubKey would be a standard P2SH pub key script:
OP_HASH160 {hash} EQUAL

The redeemScript (in this P2SH transaction) might look something like:
3DUP 2 {A_pub} {B_pub} 2 CHECKMULTISIG DUP NOTIF
    3DUP 2 {C_pub} {D_pub} 2 CHECKMULTISIG DUP NOTIF
        3DUP 2 {A_pub} {D_pub} 2 CHECKMULTISIG
    ENDIF
ENDIF

I believe this would work, but if someone could check the logic of this script here, I'd appreciate it. The OP_3DUP is necessary because the scriptSig should have 3 items on it already (2 signatures and the OP_0 to satisfy the off-by-1 error in the original client), and those 3 items need to be used more than once.

https://www.realitykeys.com/
Is would be possible for an oracle to release ether key C or D. Now A OR B could access the funds. The oracle can never access the funds AND it does not need to have to know about Alice and Bob or about the transaction. It only releases a key.

But if the oracle has keys C and D then they will be able to spend it? And I think your configurations might have been a little off in the original question, wouldn't you be looking for any of these combinations: (A,B), (A,D), (B,C)? That way the oracle can release either D or C and doesn't have to actually go through the pains of signing the transaction.

Sorry - you are right I messed up A, B, C, and D. The question is still valid, but with the key names from the question the oracle should hold B and C.

Can you edit the question to have exactly what you mean? Thanks!

In my opinion the question is fine? An answer to this questions is at the same time an answer how this usecase can be handled. Or do you think I should ask for a solution for the usecase? That would be a different questions in my opinion.

I think my response answered the question you asked. Not sure what you mean by "how this usecase can be handled", but that soundsl like it might be a different question.


text:
Hardware Bitcoins (Smartcards, RFID etc.)
is it possible to create a real hardware Bitcoin, e.g. a specified (and verifiable) value which is stored on a smart card or RFID which can be given directly to other people?

Isn't this what BilBills is all about?

It's certainly possible. The card would basically need four functions: add/generate account, add bitcoins, prove bitcoins, spend bitcoins. The card could piggyback on external smart systems so the card doesn't need to do very much.
Each function would be implemented as follows:
Add Account: An ECDSA private key would either be randomly generated by the card or loaded from an external source. The card would add the key to its store of keys. This would be a secure operation that would require the card's internal key to perform.
Add Bitcoins: A list of transaction identifiers and output indexes would be loaded into the card. This would also be a secure operation.
Prove Bitcoins: This operation would prove the ability of the card holder to spend a particular number of Bitcoins. An external device specifies a number of Bitcoins to prove. If desired, approval is sought from the card holder via a PIN or similar mechanism. The card then forms a transaction to pay that number of Bitcoins but damages it so the transaction is invalid (for example, it adds a single transaction input for a billion Bitcoins). Then it signs it. The recipient, seeing the invalid transaction signed knows the card holder could have signed the corresponding valid transaction. (If desired, a challenge can be included to prove the signed transaction was generated on the spot.)
Spend Bitcoins: This is the same as the prove Bitcoins operation except the transaction is valid, the recipient commits the transaction to the block chain, and the card updates its memory to reflect that the coins are spent.
The only other thing you might need is a 'sync' operation where the card fixes any discrepancies. For example, if a spend operation is done but for some reason it doesn't make it into the block chain, the card needs to know that it still holds those Bitcoins. (And can't spend the 'change' from that transaction.)
This is a minimal implementation. You can certainly add more capabilities.

http://smartcardwallet.org/ claims to have a system where the wallet is stored on a smart card. A custom client is needed to access the wallet, but they say all software is open source.

Hi Martin! Please try to expand your answer so that it does not just contain a link. A couple of lines describing SmartCardWallet will make the answer much more useful to other users.

While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference.  Link-only answers can become invalid if the linked page changes.

@ThePiachu et al, I've updated the answer, since the link looks relevant.


text:
Strange transaction (block 71036)
What happened to this transaction?
Can someone explain it?
http://blockexplorer.com/t/9eHTFRi3Qq

On July 29 2010, it was discovered that block 71036 contained several transactions with a ton of OP_CHECKSIG commands. There should only ever be one such command. This caused every node to do extra unnecessary work, and it could have been used as a denial-of-service attack. A new version of Bitcoin was quickly released. The new version did not cause a fork on the main network, though it did cause one on the test network (where someone had played around with the attack more).

https://en.bitcoin.it/wiki/Incidents#OP_CHECKSIG_abuse

nice link, really worth reading


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

I thought this question had already been asked, but I can't find it.

I added the finance tag since this question is asking about not just the math behind how 21 million blocks was created, but the reasoning behind all that math from an economic perspective (assuming there was one)

I asked myself the same question, but I don't see any clear answer posted on this.

Asked a different way: If Satoshi at picked a max of 11 million, would the market value of a bitcoin today be twice as high? If you don't think this is a deep question, then I think you have not thought deeply out what bitcoin really is.

Here's a mathematical explanation:
Calculate the number of blocks per 4 year cycle:
6 blocks per hour
* 24 hours per day
* 365 days per year
* 4 years per cycle
= 210,240
~= 210,000

Sum all the block reward sizes:
50 + 25 + 12.5 + 6.25 + 3.125 + ... = 100

Multiply the two:
210,000 * 100 = 21 million.

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

Good explanation, but you're just postponing the answer. Why 4 years per cycle? Why was 4 years per cycle picked as the number for years per cycle?

All this info makes sense, but doesn't really answer the question!

If you check my original answer, you'll see I ended with "but I don't know the economics behind it".  I see that has since been edited - not by me.

Interesting. Does this mean that slightly more than 21 million bitcoins will be created?

No, slightly less than 21 million, because of the rounding error on the last halvings.

I think we best conclude that nobody knows why Satoshi chose for 21 million or 4 years per cycle. But I would not recommend accepting this answer as correct.
In fact it only answers "What's the maximum amount of bitcoins that can exist?".

See my guess why 21 million was picked in my answer below.

http://bitcoin.stackexchange.com/a/19676/3908

Wikipedia (Gold):

A total of 174,100 tonnes of gold have been mined in human history,
according to GFMS as of 2012. This is roughly equivalent to 5.6
billion troy ounces or, in terms of volume, about 9261 m3, or a cube
21.0 m on a side.

Bitcoin is often compared to gold, the total number of bitcoins matches the total amount of gold mined in human history which can be imagined as a cube 21 m on a side.
As it is not entirely so important how many Bitcoins will exactly be mined. Satoshi could have easily chosen almost any number. He could just adjust block reward halving (210 000 blocks), reward sizes (50, 25, 12.5 ...), etc. to match some particular number.
Gold is considered a standard for currency and was used as such for thousands of years until recently it was abandoned in 1971. And that could be the reason why Satoshi maybe wanted Bitcoin to resemble gold at least in this unimportant property.
EDIT
Satoshi Nakamoto himself compared Bitcoin to gold.
Satoshi Nakamoto @ bitcointalk.org:

As a thought experiment, imagine there was a base metal as scarce as gold but with the following properties:

boring grey in colour
not a good conductor of electricity
not particularly strong, but not ductile or easily malleable either
not useful for any practical or ornamental purpose

and one special, magical property:

can be transported over a communications channel

M, million or meters, that is the question

And why not 5.6 billion troy once eq. ?

Did he not account for the fact that total bitcoins in circulation will never be equal to the total bitcoins mined/ mine-able? Some of them are lost forever..

Yeah, also some gold is lying at the bottom of the sea. Some is burried etc.

I don't know if this was thought up ahead of time, but it sure makes sense in hindsight.
The reason 21 million is the right number is because people don't know how to value currencies.
For instance, right now a Euro is worth $1.30 USD and a Japanese yen is worth about a U.S. penny.   Ask someone which currency they would rather hold right now and most will answer Euro, because $1.30 is worth more than $0.01.
Of course, that relative unit value means nothing.  Ask most currency traders which currency is better to hold and most (today) would probably say Japanese yen, because what matters is whether the value will go up or down, relative to the other being compared.
When bitcoin hit parity with the U.S. dollar in Feb 2011, it gained a sense of legitimacy that helped propel it on a tremendous pace, rising over 30X that level just four months later.
If there had been more than 6 million coins issued by then, the total dollar value of all bitoins would probably have been about the same, and thus the exchange rate would then have been lower.   So let's say there were instead 60 million coins issued by Feb 2011, and each one worth a dime.  That 60M X $0.10 is the exact same total dollar valuation the 6M X $1 has ($6M) for all bitcoins combined.  Tthe difference is that because it had become "worth more than a dollar", and as a result people attributed greater interest and respect for it.  Had it not been "worth more than a dollar" so early, it might have taken a whole lot longer to get the name recognition and attention it did that has helped attract the participants that Bitcoin has today.
Bitcoin today stands on "dollar parity"'s shoulders.
That may sound bizarre but ask that Euro / Yen question to different people yourself and then ask the reason why their answer was given.
So the number needed to be a low enough number so that while total dollar valuation of all bitcoins was still in the single-digit millions it would reach parity with the U.S. dollar at some point.

So why not 16 million (3y cycle)? Why not 26 million (5y cycle)?

And why not 17 million (40 btc reward)? Why not 25 million (60 btc reward)?

Why not a 3 yr cycle? Perhaps because that would cause the first & second halvings to occur too soon (and thus too high of a concentration of coins going to those who mined or bought early).  Without knowing in 2008 what the level of traction Bitcoin would have a few years later, using four years made sure that if it took three years for Bitcoin to get any publicity (e.g., what happened with the Gawker Silk Road story in May, 2011) there was still a good year left of mining at the 50 XBT/block rate before the first halving -- thus distributing Bitcoin to a bit wider set of early adopters.

The exact number of Bitcoins is not important.  Whether the end result is 1 million or 100 billion makes little real difference.
The important aspect here is the process, not the quantity.

New Bitcoins enter the system in an orderly, predicable way.
Outside forces cannot arbitrarily flood the currency with new money.
An incentive is provided for people to apply their CPU power to make the currency more secure.
Eventually, Bitcoin has to be self-supporting through transaction fees.  Hence the tapering off of blockchain rewards.

Having said all that, there are some psychological advantages to having a low limit like 21 million.  It was inevitable that people would see Bitcoin as being "more valuable" if the exchange rate for a whole Bitcoin was over $1.  Ensuring this "high exchange rate" but making the coins highly divisible was probably a conscious design decision.

This doesn't actually answer "Why 21m?"....

And the answer is "why not?".  I was just trying to explain why the exact number doesn't matter.

It is the result of a 50 bitcoin reward half life of 210,000 blocks.
Reward starts out at 50 bitcoins and halves ever 210,000 blocks. This works out to be 2.1 quadrillion monetary units of currency (satoshi). This is probably the largest number estimated to be needed for a global currency and some padding for attrition.

Why 50 and not 55 or 60 or 45?

42 is the Answer to Life, the Universe, and Everything.
Bitcoin block rewards are cut in half every 4 years.  Half of 42 is 21.
Nearly every person can understand what x "million" means, but comprehension breaks down rapidly with larger numbers.

Therefore 21 million.
;-)

Haha!! I just answered a similar question with the same answer:-)!!! And myself totally agree with the "wink" at the end ;-) ;-)

This was done based on production rate mostly. They did take some things into account but the number doesn't have a real economical explanation rather than the fact that they had to stop production somewhere to maintain a value.

I suspect it has something to do with the M1 USD supply at the time Satoshi was developing Bitcoin.  If you look at the decade prior to the white paper, inclusive of the quantitative easing period commencing with the 2008 housing bubble, the M1 money supply shows a trendline with a slope of ~58, using years as 4 digit integers.  This means, that if predicting M1 over the next decade (from 2009 to 2019), there would be an expected M1 of 2.1 trillion USD, at which point 90% of all bitcoin will have been mined.  Because Bitcoin is designed with an 8 decimal fraction system, the 21 million total BTC can actually be expressed as 21,000,000.00M = 21,000.00Billion = 21.00Trillion.  So roughly 9x functional BTC will exist relative the USD.  Using the M1 trendline to predict M1 in 2140, we see an expected ~10Trillion, which relative to the 21Trillion functional BTC, still gives us a 2x cushion on volume.  And mathematically, we've seen noted elsewhere in this Q&A that the 4 year halving schedule of the coinbase gives us 21Million BTC.  So, there's a convenient convergence of predicted volume needs & reward schedule @ 21Million BTC.  (But realistically, this is probably just me seeing signal where I want to see signal, and not actually Satoshi's anticipation of volume.)
I think another curious question is why the 4 year halving schedule? Is this based on national US elections?  Is it based on a calendar Leap Year?  Is it Satoshi's approximation of a reasonable re-evaluation period for BTC participation rates?

Here's something Nakamoto wrote on the subject
From https://www.bitcoin.com/satoshi-archive/emails/mike-hearn/11/

From: Satoshi Nakamoto satoshin@gmx.com
Date: Mon, Jan 10, 2011 at 4:34 PM
To: Mike Hearn mike@plan99.net
Subject: Re: More BitCoin questions

...

I wanted something
that would be not too low if it was very popular and not too high if it
wasn't.
It'd be interesting to see the working for this. In some sense the
number of coins is arbitrary as the nanocoin representation means the
issuance is so huge it's practically infinite.

It works out to an even 10 minutes per block:
21000000 / (50 BTC * 24hrs * 365days * 4years * 2) = 5.99 blocks/hour
I fudged it to 364.58333 days/year.  The halving of 50 BTC to 25 BTC is after >210000 blocks or around 3.9954 years, which is approximate anyway based on >the retargeting mechanism's best effort.
I thought about 100 BTC and 42 million, but 42 million seemed high.
I wanted typical amounts to be in a familiar range.  If you're tossing around >100000 units, it doesn't feel scarce.  The brain is better able to work with >numbers from 0.01 to 1000.
If it gets really big, the decimal can move two places and cents become the >new coins.

The number comes from 3 decisions:

Time between blocks: 10 minutes
Initial issuance to be 50 BTC
Halving every 4 years

From 1) we know each hour should have 6 blocks, so the number of blocks in 4 years is 4 * 365 * 24 * 6 or 210.240
Satoshi was practical and round it to 210.000
Now, if you add all block issuances, starting with 50 and halving every 210.000 blocks, the total will be 21 million
Satoshi was pretty sure about the 10 minutes between blocks and the 4 years halving period, but he thought on using 100 BTC as initial issuance, but drop it because “42 million seemed high”

Because if he had picked 210,000,000, then a bitcoin right now would only be worth $2,600 and that is too low.
Before you downvote this answer, really think about it. Would $BTC be $260,000 right now if the supply had been limited to 2.1 million coins? (assume that a Satoshi is defined as 0.000000001 BTC)
Also note that none of the above answers actually respond to the OP except the one relating the number of BTC to the dimensions of the base of the great pyramid or something like that. What does this tell you?

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

You're just restating previous answers


text:
Building Win7 Moneychanger: Where to put OT DLL's, How to fix "&& was unexpected" in jsoncpp?
I want to use Open Transactions libraries in my Windows build of my Qt Widgets application. Moneychanger is a test interface for OT built in Qt. As a step to understanding how the Qt code of Moneychanger and the c++ code of OT interact, I want to build Moneychanger on Windows 7 x64 with a binary distribution of OT .dll's.
I can't find documentation on including the OT library when I build Moneychanger. The current documentation (which I'm happy to improve:) git/readme.md / git/doc/INSTALL-win.txt
Starting Conditions

Windows 7 Professional x64
Qt 5.3.0
Qt Creator 3.1.1
Visual Studio Express 2012
Visual Studio Express 2013
Open-Transactions-0.92.c-Win32-setup.exe
Clone moneychanger source from git

Compilation errors on MSVC/MinGW Qt compilers

Open project/moneychanger.pro in Qt creator
Configure Qt Creator kits with various compilers and QT versions, including MinGW 4.8.2, MSVC 2012 OpenGL 32bit, MSVC 2013 32bit, MSVC 2013 OpenGL 64bit
Select "Debug" configuration
Click Run button

Desktop Qt 5.3.0 MinGW 32bit (Full Log)
<snip>
compiling ../../src/jsoncpp/jsoncpp.cpp
g++.exe: error: C:/Program Files (x86)/Git/bigobj: No such file or directory

This MinGW support answer seems to say that I need MSVC compiler for jsoncpp to compile.
Desktop Qt 5.3.0 MSVC2013 OpenGL 64bit
Desktop Qt 5.3.0 MSVC2013 32bit
Desktop Qt 5.3.0 MSVC2012 OpenGL 32bit (Full log)
<snip>
compiling ..\..\src\jsoncpp\jsoncpp.cpp
...
&& was unexpected at this time.
...
13:53:19: The process "C:\dev\qt\Tools\QtCreator\bin\jom.exe" exited with code 2.

MSVC 2013
The next thing I tried was converting the Qt project into a Visual Studio "solution." In preparation for this I installed the Windows Debugger Tools in the SDK for Windows 8.1.
The file doc/INSTALL-windows.txt offers the instructions:
Open Visual Studio x86 2013 prompt.
change to the 'project' directory.
run: qmake -r -tp vc moneychanger.pro

I got the qmake command to work:
> "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.exe"
> cd C:\dev\project\moneychanger\project
> qmake -r -tp vc moneychanger.pro
  'qmake' is not recognized as an internal or external command,
  operable program or batch file.
C:\dev\project\Moneychanger\project>"C:\dev\qt\5.3\msvc2013\bin\qmake.exe" -r -tp vc moneychanger.pro
Reading C:/dev/project/Moneychanger/project/curl/curl.pro
Reading C:/dev/project/Moneychanger/project/libidn/libidn.pro
Reading C:/dev/project/Moneychanger/project/jsoncpp/jsoncpp.pro
Reading C:/dev/project/Moneychanger/project/bitcoin-api/bitcoin-api.pro
Reading C:/dev/project/Moneychanger/project/nmcrpc/nmcrpc.pro
Reading C:/dev/project/Moneychanger/project/moneychanger-qt/moneychanger-qt.pro
C:\dev\project\Moneychanger\project>

Now I have a project/moneychanger.sln.
MSVC Build Errors
Here's what happens when I build project/moneychanger.sln in Visual Studio 2013: (Full Log)
error C1083: Cannot open include file: 'opentxs/stdafx.hpp':
No such file or directory
c:\dev\project\moneychanger\src\core\stable.hpp`

Sure sounds like I need to point Moneychanger at my OT library. I don't know how to do that in either Qt Creator or MSVC. For now I have da2ce7's binary v0.92c with otapi.dll, otlib.dll and more. Eventually I want to build a windows OT library myself and use that. For now I'll settle for the binary package.
Please tell me it's as simple as copying stuff around and rebuilding!


text:
What is the maximum size of a transaction?
I see from the source code (script.cpp) that there is an upper limit in the script size. It there any other limit to avoid a single transaction preventing other transactions of smaller sizes to get into a block?
How is this kind of attack prevented?
I've read in CTransaction::AcceptToMemoryPool the line:
if .... ::GetSerializeSize(*this, SER_NETWORK) < 100)
    return error("...");

Does this line means that the maximum transaction size is 100 bytes?

The posted line seems to limit the minimum size, not the maximum!

If there is a max transaction size it is much higher than 100 bytes. Not sure what that snippet is refering to but the average transaction is closer to ~300 bytes looking at the average # of transactions and block size for last 1000 blocks.
What limits transaction size is cost.  As transaction size (of all transactions awaiting next block) increases the min required fee increases non-linearly.

0.01 BTC fee per kilobyte of transaction, but:
  If the blocksize (size of all transactions currently waiting to be included in a block) is less than 27 kB, transactions are free.
  If the blocksize is more than 250 kB, transactions get increasingly more expensive as the blocksize approaches the limit of 500 kB. Sending a transaction when the blocksize is 400 kB will cost 5 times the normal amount; sending when it's 499 kB will cost 500x, etc.

https://en.bitcoin.it/wiki/Transaction_fees
So you could make a 500KB transaction but the required minimum fee would be 5BTC.  The developers have indicated they intend to change transaction fee rules in the future but given block space is a valuable commodity any new rules are likely to be constructed to encourage (via larger fees) smaller transaction sizes.

This answer is obsolete. Blocks are full. Always.

The maximum transaction size is the size of the block. Source.
// Size limits (this doesn't take the witness into account, as that hasn't been checked for malleability)
if (::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT)
    return state.DoS(100, false, REJECT_INVALID, "bad-txns-oversize");

Transactions larger than 100 kilobytes (including witness at a 75% discount rate) are non-standard. Source 1. Source 2.
static const unsigned int MAX_STANDARD_TX_WEIGHT = 400000;
...
if (sz >= MAX_STANDARD_TX_WEIGHT)
{
    LogPrint(BCLog::MEMPOOL, "ignoring large orphan tx (size: %u, hash: %s)\n", sz, hash.ToString());
    return false;
}

"Transactions larger than 100 kilobytes are non-standard" has been removed. They've removed the 100 kb limit.

I disagree. It has been changed from a pure measurement of size to one of weight, but that only makes it slightly roomier - it doesn't remove it entirely.

Interesting and related: "Non-standard transactions are frequently included by mining pools."


text:
Transaction delayed >12 hours by Satoshi Bitcoin client
Yesterday I sent 20 BTC to 1Hj8kJ3rq4c4Hn9Prtw45Zue791f4Nc9L3 with a 0.0001 fee and transaction Id 30d1ef9aa05898b11b5ee4f5f5e703a822a821fb499c647b658fc3cb67a899b8.
My Satoshi client said today that is still unconfirmed. But when I search blockchain.info for the id of the transaction, it says that the transaction was sent today (>12 hours after I made it).
Is there any way, if a transaction isn't relayed, to force the satoshi client to send it another time (the same transaction).

That transacation has over 1,400 confirmations. I think you might need to run your client with the rescan option on. (That rescans the blockchain for transactions it might have missed)

It may happen that the transaction is not sent to the network immediately. When creating a new transaction the client will announce its availability to its peers and they will fetch it. If in the meantime you turn your client off, it crashes or you lose connection to the peers, they will not be able to retrieve and broadcast it through the network.
No worry through as your client attempts to resend unconfirmed transactions at regular intervals.
To force a resend you can use getrawtransaction and sendrawtransaction of the JSON-API. That worked for me a few times.

Don't suggest using raw transactions, it is dangerous to do so!

cdecker's suggested use of the raw transaction api is very safe. Creating raw transactions yourself is where you need to be very careful.


text:
Bitcoin adder or bitcoin generator or bitcoin hacker software
Nowadays I always see many persons selling bitcoin adder / bitcoin generator or bitcoin hacker software claiming that these are creating 1 bitcoin or more.
I am unable to believe authenticity of their claim.
Can any one make me clear whether these programs work or merely are scams.

It could theoretically work. https://www.youtube.com/watch?v=foil0hzl4Pg

AFAIK no such thing is possible. Could you please describe where this balance is supposed to be created?
You could obviously change your local record of the blockchain to reflect added balance, however, no other Bitcoin node would accept payments funded from that balance.

Well it's possible. See https://yourprivatekeys.online . If your went through the entire site, would take hundreds of thousands of years, you would have the private key to every bitcoin wallet that has a balance. The chances are very small that you would find some thing but you could get lucky.


text:
Can you use Electrum wallets for storing Ethereum?
Can Electrum wallets be used to store Ether?

No, you cannot use Electrum wallets to store Ether. As stated in the FAQ) Electrum only supports Bitcoin.

electrum also support ltc

@JimThio Electrum-LTC does. Electrum doesn't. Electrum-LTC is not Electrum but a fork of it. You still can't store Litcoin and Bitcoin in the same Electrum wallet, you can't even use the same client for both. Furthermore, afaik, there is no such fork for Ether.

FunFact: You can use Electrum to hold/spend Tether USDT (Omni). If you know the drill :)


text:
Why can't altcoins erode Bitcoin's foundation?
There already are hundreds of altcoins and even more are being created. However, Bitcoin still dwarfs all altcoins in value.
From a technical point of view, Bitcoin was invented 7 years ago and its technology is far from perfect (e.g. forking, speed). Why can't altcoins with improved features beat Bitcoin?

related: Daniel Krawisz: The Coming Demise of the Altcoins

Bitcoin has a large investment in its mining infrastructure, it is rather difficult for a new blockchain system to duplicate that. Some systems are serious contenders (Ethereum Classic, Ethereum Forked, Zcash, Monero, etc.)
The network effect does have a little/lot to do with it.
Bitcoin's conservative stance has also something to do with it as it promotes stability, and investors need stability.
Here is an interesting thought experiment IMO:
What if someone created a 'better' currency, but instead of creating a new blockchain from scratch, they fork Bitcoin's at some point. The mining algorithm would have to be new so that the currency is not attacked by current mining equipment.
Current bitcoin holders would have a stake in the new blockchain, as the 'old' bitcoins would be recognized on the new chain.
If this new currency offers a real advantage over the original, then people will move to it.
Of course the original bitcoin can incorporate the improvements of the new currency thereby eliminating its advantage. :)
I guess i took a scenic route here, as i wanted to show the example first.
Essentially if Bitcoin keeps evolving (and it is) no new currency should be able to take it over.

Bitcoin has the advantage of the network effect.
More info here:

What if someone creates a new block chain, or a new digital currency that renders Bitcoin obsolete?
Network effect


text:
In Ethereum, what is an uncle block?
In Ethereum, what is an uncle?
Why does Ethereum take this approach, instead of having a single chain of blocks back to the genesis block?
If you mine a block, and it only gets included as an uncle, how much of the original reward do you get?
How long after the uncle is created is it allowed to be included into a block?

The motivation is to include stale blocks into the chain, so that the blockchain can have faster confirmation times. I haven't gone through it all, but the bulk of the reasoning for using "uncle" blocks seems to be laid out here.

An uncle is a block that, in bitcoin, would be considered a stale block because it is not on the longest chain (it's an alternative block at the same height as your parent).
Ethereum incentivizes miners to include a list of uncles when they mine a block.
This has two main effects:

It decreases the incentive to centralize by rewarding miners that produce stale blocks on account of them not being part of a large pool and hence hearing about blocks later (due to network propagation delays)

It increases the security of the chain by augmenting the amount of work on the main chain by the work done in the uncle blocks (so, no work, or at least much less work, is wasted on stale blocks)

That being said, uncles introduce additional economic complexity that I'm not sure is well understood (like incentives to mine empty uncles)
Additionally, consider this paper here
(Grabbed from a Reddit post)

Uncles are stale blocks, ie with parent that are ancestors (max 6 blocks back) of the including block. Valid uncles are rewarded in order to neutralise the effect of network lag on the dispersion of mining rewards, thereby increasing security. Uncles included in a block formed by the successful PoW miner receive 7/8 of the static block reward = 4.375 ether A maximum of 2 uncles allowed per block.

Source: https://github.com/ethereum/wiki/wiki/Mining#mining-rewards

authors: Виктория Фоменок