text:
Can I mine from CPU using 30 PC constantly on
I have internet cafe that has 30 PC constantly on 24 hours a day, they are basic PCs, can I use them to CPU mining botching?

Perhaps with Scrypt, not Bitcoin.

"botching" should read "bitcoin"?

I hope that soon there will be a law which will make this illegal and put some monetary penalty on such individuals.

@SalvadorDali: If they are his own computers, why should it be illegal?  There are lots of other ways to waste electricity that the law doesn't regulate.

@NateEldredge he has his own internet cafe with 30 PC and he bothers with 1$ of profits per day (or even less). Even if it is true, how about customers who are using this internet cafe?

Yes you can, but it isn't profitable. Mining bitcoin on a normal computer is a waste of energy, because the ASICS have much higher hash/s/kW (hash per second per kilowatt). Mining LTC or any other scrypt based coin is doable on regular desktop PCs, but only those who have a good GPU are worth it.
But then there is another part, tweaking your settings. As mining is continuously stressing your card, it becomes very hot and consumes energy. Therefor its more profitable to run at a slightly less voltage (underclocking) or at only (say something like) 80% of the maximum capacity. It requires a lot of time to get the perfect values for your system. It is an important thing to do, because the margin of profit is quite low, and you really need to push the KHs/kW to the limit to get a good financial result. You have to do that for 30 computers (mining results differ from system to system, even if they are identical, I think I read somewhere) which requires even more time.
Furthermore there are two options: there are good GPU's in the computers for people who want to game in your café or there are just normal GPU's in it, and people just browse the internet and do their thingies there. In the first case, you cannot mine while someone is playing a game because it affects the gaming experience of the customer. In the second case, the GPU is probably not good enough to mine.
So I would say no, it is not profitable to mine in your café. Certainly not CPU mining because that is useless for bitcoin (and will always be due to ASICS). GPU is possible, but because it requires a lot of time  and sweat I wouldn't advise it.


text:
How do altcoins tell each other apart?
So there are hundreds of live and even thriving altcoins today. They are all basically a clone of Bitcoin and operate basically the same.
But when you run the mining client for any given coin, how does it know which coin to work on? How does the software know to connect to Litecoin and not Dogecoin, or some other scrypt coin? I realize that when you mine you download the whole blockchain and work on it locally, then when you solve the proof of work for the next block you broadcast it to the network, but this doesn't seem like enough. How do the blocks stay with their respective coins?

Because all these altcoins run on different TCP ports and furthermore (fair) nodes won't relay invalid messages (wrong blockchain, i.e. based on different genesis block, different magic value,  etc.) or IP addresses of nodes running other altcoins.

source: Stack Exchange

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

sort: votes


text:
One private key in different locations?
Can I still use my key pair to receive and send bitcoins, even if I imported the private key in another location? I wondered about this, when I planned to import a backup of my online wallet in a pc-client, but still wanted to use my bitcoin in the online account.
Or is only the latest location where I imported my private key able to operate with the bitcoin? (I'm still trying to fully understand the bitcoin universe)

Bitcoin works in a way that you don't actually own any coins, but instead you have the key to unlock them and spend them - so that you can send them to someone else who can then unlock them and spend them.
Using that logic, anybody that holds your private key can unlock and spend the coins from any computer anywhere in the world with an internet connection.
In terms of wallet implementations, it's a bit tricker to use the same wallet on different computers as there will be synching issues between the various wallets. The "change" from a transaction will go into another address in your wallet, which might not be present in your other wallet. Please read Wallet on multiple computers
Again, this depends on your wallet implementation. If you're using just the raw private key to make transactions, it shouldn't matter how many copies there are or where you broadcast the transaction from.

thank you, your answer really helped to understand the logic behind the keys

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


text:
Decentralized democratic voting
Has the fundamental problem in cryptovoting, one person, one vote, in a completely decentralized or blockchain centric manner been solved?
In other words, how can votes be allocated in a decentralized manner?
The intent of this question presupposes that vote allocation is not delivered by a state, that a blockchain itself can at the very least implement a completely basic, pure democracy: truly one person, one vote.
How can this intent be implemented?

Wouldn't this be better on Crypto.SE?

The study of secure voting protocols has a long history within cryptography, and is discussed in many general crypto textbooks. I would say it's definitely on topic there. They even have a "voting" tag. I'm not sure   I follow your reasoning about what kind of thinking is required.

But I'm not sure why you believe that proof of stake, consensus or abstract assets are necessarily needed to solve the voting problem; I believe there are many other approaches. But anyway, your question, your decision.

I don't think it makes sense to migrate it, because there are questions like it there already, e.g. Unique, anonymous online authentication, Approach towards anonymous e-voting. Let's just leave the question here and see what our community comes up with. – Although, I'd suggest to change the spin of the question a bit, e.g. Could the blockchain technology be used to facilitate anonymous voting, while preventing voters from registering twice? If yes, how could that work?

This problem is not solved by the blockchain or the Bitcoin protocol. By "cryptovoting" I'm assuming that you mean that an individual signs his or her vote with his or her private key. The problem is that anybody can generate a new private key on a whim. The private key would have to be verifiably tied to one individual's identity, and that individual's identity would have to be exclusive to all other entities in the voting network. (DNAcoin maybe? kinda cool, kinda scary)
Note: I just googled DNAcoin and obviously found a thread on Bitcoin talk: https://bitcointalk.org/index.php?topic=187991.0
While a Bitcoin-based voting system could implement a "1 vote per 1 private key" rule, the pseudo-anonymous nature of the Bitcoin network makes it nearly impossible to know if an individual has generated two private keys (unless the transactions make it apparent that it is the same individual). Generating a private key is as easy as flipping a coin 256 times and recording the results as 1 or 0, then converting that into hex (or tonal if you're Luke-jr).

Except if a Voting Authority of the State assign the keys in the first place. Maybe it could issue VoteCoin e.g. where the price to buy it is not fluctuating, allowing it to fund referendums. It also allows for voting on whether to have a referendum or not, etc. Too many possibilities.

Please use complete sentences to formulate your answer. It would also be more beneficial if you actually elaborated on the question's answer, instead of going off on a tangent.


text:
Compared to Slush's pool, how exactly does Eligius payout owed bitcoins to the miners?
I have mined a bit on both pools. Slush builds up an amount in your account and once it passes a threshold that you set, Slush sends you a payout that comes from another wallet. Eligius sets the threshold (and it is quite low too), and once your "account" passes it, Eligius sends out the payment directly from the newly generated coins.
I have enough imagination to see how Slush's pool and site manage the workers and send out the payments, but I cannot wrap my head around how Eligius does it that way.
How does Eligius pay miners directly from the newly generated coins? What are the pros and cons of this compared to how Slush does it? Are there other pools that do the same thing? Is this only possible with BTC and it's clones or can Litecoin pools do it too?

How does Eligius pay miners directly from the newly generated coins?

It simply generates the coinbase transaction to include payments directly to its miners, instead of only a transaction to itself.

What are the pros and cons of this compared to how Slush does it?

Here are some I can think of:
Pros:

No transaction fees necessary for these payouts (except for the opportunity cost of some transactions you're not including in the block; but unless the block is at the max size, this is 0 cost)
Some people like having freshly minted coins, for anonymity and just because it's cool

Cons:

Harder to predict when you'll get a payout (because you have to wait for the pool to find a block)
If you're far down the queue, it might take several blocks and/or a manual payout before you finally get your payment

Are there other pools that do the same thing?

Yes, at least a few. BitPenny and P2Pool, for instance.

Is this only possible with BTC and it's clones or can Litecoin pools do it too?

It's possible with any Bitcoin-like coin, including Litecoin.

Thank you for the answer. To understand this better, I guess I would have to know exactly what a coinbase transaction is, right?

Yes. Basically, it's a special transaction that generates coins by paying them to address(es) without a transaction input. Normally (e.g. Slush), this is paid to the miner's single address, but it could just as easily (e.g. Eligius) be to a large list of addresses.

@fredsbend The coinbase transaction is the one that creates the block reward.


text:
If I have only the private key from a multibit private key export, how can I use the bitcoin later elsewhere?
In multibit, you can export the private keys from a wallet into a basic text document (*.key).
It will look something like this:
# KEEP YOUR PRIVATE KEYS SAFE !
# Anyone who can read this file can spend your bitcoin.
#
# Format:
#   <Base58 encoded private key>[<whitespace>[<key createdAt>]]
#
#   The Base58 encoded private keys are the same format as
#   produced by the Satoshi client/ sipa dumpprivkey utility.
#
#   Key createdAt is in UTC format as specified by ISO 8601
#   e.g: 2011-12-31T16:42:00Z . The century, 'T' and 'Z' are mandatory
#

KyBn........................................... 2014-06-06T04:26:48Z

# End of private keys

[The series of dots is the key, but I censored out the majority of it.]
I have read this post on a similar question, but I am confused about one particular thing: If I have some transactions after the export, more or new private keys will be created, which will mean that I can no longer depend on this set of private keys to regain access to the funds. Is this correct?
My main question is, how exactly can I recover the funds for a particular address with only this private key (or set of private keys) (not specifically in multibit, but generally)? Do all clients and online wallets have an import private key option? What is done behind the scenes with this private key to find the public key and the address?

If I have some transactions after the export, more or new private keys will be created, which will mean that I can no longer depend on this set of private keys to regain access to the funds. Is this correct?

If you create a new address, you create a new private key, and (with MultiBit's model) you need to backup your private keys again, because there's a new private key added to the list. If you reuse the same address in new transactions (which is possible, but usually not recommended for privacy reasons), you don't need to rebackup your keys.

My main question is, how exactly can I recover the funds for a particular address with only this private key (or set of private keys) (not specifically in multibit, but generally)? Do all clients and online wallets have an import private key option?

Most, if not all, clients/wallets have an ability to import private keys. However, there are a few different formats out there, so if the question is, "can Wallet X read this private key directly?", the answer's not as clear. But I think it is safe to say that you'll always be able to find something to read your MultiBit backup and send the money to a new address.

What is done behind the scenes with this private key to find the public key and the address?

The private key (which is a 256-bit number) is multiplied by the base point, which is a point on Bitcoin's elliptic curve. This is done with some fairly complicated mathematical calculations. The result is the public key, which is another point on the elliptic curve. To calculate the address from the public key, you follow an algorithm with various hashings and a checksum. This is detailed at the Bitcoin wiki, which can be represented by this pseudocode:
160_hash = RIPEMD-160(SHA256(public key))
double_hash = SHA-256(SHA-256(0x00 + 160_hash))
address = base58(160_hash + double_hash[0:4])

To sum up, private key -> public key, and public key -> address are easy, while the reverse of each of this is (believed to be) practically impossible.

The most important part to take away from all this, is that one private key corresponds to one address. If you generate a new address, you have a new private key, and need to make sure it's backed up!

I think there is one further issue that needs to be clarified. Is the private key in this file WIF encoded or something else? It sure doesn't look like the hex representation of a 256-bit integer.

@FelipeVoloch You're right that it's definitely not hex. The K indicates that it's a private key for a compressed public key. I think that WIF keys always start with 5, so not that.


text:
Does Ripple use an RDBMS? If so, which one?
Do Ripple servers use RDBMS?
If so, which one?
I think I remember reading that Bitcoin uses some sort of file database.  Same for Ripple?

The ripple server uses SQLite for structured data and a configurable "back end" for unstructured "bulk" storage.
The structured data consists of things like transactions indexed by which accounts they affected. The unstructured data consists of "chunks" of data indexed by hash that constitute portions of network history.
The preferred back end for bulk storage is currently RocksDB on Linux platforms.

@Gracchus What would the advantage be?


text:
How to auto deposit bitcoins on btc-e?
BTC-e gives a new address to send to for every time a deposit is to be made. These addressees can be accesses through this url: Bitcoin deposit authentication required
I am currently using python to interact with the BTC-e server. Is there a way of doing the following automatically?

sign into BTC-e using http request
get new address using http request
make a deposit to the new address
And repeat

There is nothing in the official documentation about this sort of thing. In the examples no-one is doing anything with deposits or withdrawals either. A quick google doesn't give any results, so I think you're stuck.
However, when I log in and want to deposit, one of the rules is the following:

Address can be used for further deposits.

Isn't that working? Just use the same address over and over again? You will have to manually generate an address for the first time. (I know this is violating your first statement, but I used the same address at least twice for a deposit)


text:
Anonymous transactions technology for a cryptocoin?
I’m thinking of investing in a cryptocoin with anonymous transactions feature. So far there are 3 well-known technologies for that: coinjoin (Bitcoin), masternodes (Darkcoin) and CryptoNote (Bytecoin). CryptoNote looks more appealing due its innovative ring signatures technology. Can anybody explain which option would be the best and why?

CoinJoin in Bitcoin does not provide full anonymity and Darksend feature in Darkcoin is merely an implementation of the CoinJoin specification. CryptoNote, on the other hand, allows for completely anonymous transactions through ring signatures and one-time keys. It’s also blockchain analysis resistant. If you are looking to invest in CryptoNote-based coin, Bytecoin is the one to go for. It’s been around for two years (launched in 2012). Has no premine (at least there’s no evidence for that). The developers’ team is reliable and committed. The community is growing steadily. Check out this website http://bytecoin.org/

Monero (also based on Bytecoin) has more active development in my opinion, a less ridiculous story, a less ridiculous name, and graphical wallets.


text:
How much will I earn by running Bitcoin-Qt?
I'm running Bitcoin-Qt on a dedicated server with a good connection (although, only a modest cpu). What is the frequency with which I will earn bitcoins?

Transaction fees are earned only by miners.  Running Bitcoin-QT, you will relay transactions and blocks for other people, but this does not earn you any fee.


text:
Are there any truly anonymous cryptocurrencies?
I've been looking into Bitcoin recently and stumbled upon numerous notes how Bitcoin is not anonymous at all, or how it's only partially anonymous and you can easily trace your funds.
So, this brings us to my question: is there any true anonymous cryptocurrencies which I can use and there will be no trace left.
I am a fairly new member to the cryptoworld, so please, keep it simple. :)

@AndrewPoelstra As I noted in my initial comment: I have already flagged for moderator attention with a related migration request towards Bitcoin.SE, so we just have to wait until a moderator notices my flag and agrees that migration indeed makes sense. (I’m pretty sure both the question as well as its answers – including yours – will be able to attract the appropriate upvotes at Bitcoin.SE.) Btw: no need to make it Bitcoin-centric because Bitcoin.SE handles ALL crypto-currencies.

The short answer is no. The long answer is split into three parts, each headed by a bold word.

I will talk about the existing privacy tools in Bitcoin.
I will talk about some pie-in-the-sky theoretical crypto which would achieve full anonymity (but which can't be done feasibly today).
I will talk about CryptoNote, its limitations, and feasible ways around it that could be implemented today, specifically those that have already been implemented by Monero.

Today, you can do a lot relative to stock Bitcoin in the direction of privacy. Two strategies I should mention are CoinJoin and CoinSwap.

CoinJoin works by effectively pasting together transactions. In Bitcoin, each transaction is a list of inputs tied (by digital signature) to a list of outputs. The transaction is valid if the total output value is less than or equal to the total input value (any difference is a "transaction fee" claimed by miners), and if every input is a valid (not already spent) output of an old transaction. CoinJoin takes transactions from two or more users, combines the input and output lists, and has both users sign the resulting transaction. The result is that the standard flow analysis idiom of "all inputs are owned by the same person" and "all outputs are owned by the same person, except maybe for a change output" is broken. CoinJoin is tricky to implement well: output values should be as uniform as possible to avoid grouping them and matching them to input values; the resulting outputs should not be spent at the same time, since this also groups them; the join should involve two distinct parties, neither of whom is some central server participating in every join. Currently there are no good tools out there which satisfy all these requirements, but there are several in development (such as DarkWallet). Keep an eye open.
CoinSwap does trustless mixing, even across different blockchains (as long as each has a sufficiently rich scripting system). It is too complex to summarize here, but the result is the same as if two parties switched private keys in person, except that there is no room for cheating. That is, coins are moved between parties but the blockchain does not see this and therefore chain analysis cannot link them — except to the extent that they look funny, so if there are almost no users doing this, their transactions can be linked on this fact alone. To the best of my knowledge, there are no tools which support this. I am developing a Bitcoin wallet for experimental features such as this that will support it, but it may be several months or years away.

Total anonymity, in the sense that when you spend money there is no trace of where it came from or where it's going, is theoretically possible by using the cryptographic technique of zero-knowledge proofs. As an extreme example, you could imagine that rather than publishing blocks mapping old outputs to new ones (which is what transactions are in Bitcoin), miners published zero-knowledge proofs that they had a valid set of transactions which, in aggregate, mapped the old set of all outputs to the new set of all outputs. You could further obscure this by having the recipient choose the destination address(es) and pass different ones to every miner. That way, only the miner who gets the block (who is probably different for every block) and the recipient knows where money is going.
In what I've described, the values of all coins would still be visible, and perhaps tracking could be done by linking similarly-valued coins. We can fix this with homomorphically-encrypted values, say.
The point of this musing is that there are no strong theoretical reasons that what you want is impossible. But I'm going to burst the bubble I just created and talk about practical problems: firstly, to do this kind of general computation is zero-knowledge even remotely feasibly, you need to use a system which has a trusted setup (in cryptographic terms, the scheme is secure only in the CRS (common reference string) model). This means that some party, the scheme's creator probably, has access to secret data which will allow them to produce false proofs, effectively allowing them to undetectably print money for all time. A recent example of such a thing is the paper SNARKs for C by Eli Ben-Sasson et. al., which provides a lot of historical context.
Secondly, even with this fatal flaw, these schemes are not all that computationally feasible. Zerocoin, now superceded by Zerocash, took this approach and needed to create serious restrictions: all coins have the same value, there is no scripting (even for multisignature transactions, I believe), and even so some serious work went into special optimizations to do whatever was left (such as hashing) in zero knowledge. For ZeroCash research is going into doing the initial setup in a multi-party computation so that no individual has the secret material needed to print coins; there would be several, and as long as even one securely destroyed their data, the currency would be safe from forgery.
However, ZeroCash's trusted setup is orders of magnitude more complex than any other MPC that has ever been done. And the most efficient MPC schemes known depend on a trusted-setup as well, so we haven't gained anything.
Having said that, we can get something weaker than total anonymity, and it looks like we can do it in a feasible way. As has been mentioned, CryptoNote-based currencies use ring signatures (contrast group signatures, which involve a trusted party) rather than plain old ECDSA signatures in the proof-of-ownership part of their transaction signature scheme. Arguably the most well-known cryptocurrency that was originally based on CryptoNote is Monero. Whilst Monero has subsequently deviated substantially from its CryptoNote origins, it still implements many of the key concepts below, and additionally improves a lot of the problem areas originally highlighted in this answer.
To understand how CryptoNote works we must first recap how Bitcoin transactions work. Essentially, in Bitcoin each transaction output has a public key associated to it (identified, though not revealed, by the Bitcoin address on the output), and to spend that output you need to produce a small script including a digital signature using this key. When everyone sees that transaction, they see that the old output(s) are spent (so they can forget about it, except as far as keeping historical blockchain data for new users) and that new unspent output(s) have been created. Ring signatures, on the other hand, are associated to an arbitrary set of public keys, and knowledge of only one is required to make a signature. CryptoNote uses this by having each transaction input be a set of potential unspent outputs of the same value, signed by a ring signature using all those outputs' associated keys. It is impossible to determine which one is the "real" one that the signer is actually spending.
You might ask, if it's impossible to determine which outputs are being spent, how can double-spending by prevented? CryptoNote solves this using a special ring signature algorithm (which is a modified version of existing signatures, so this is original cryptography and their security proof should be scrutinized — fortunately it is not too complicated) in which the real signing key has a key image associated to it, which must be published alongside the signature. This key image cannot be reversed to get the original key and deanonymize the sender, but if a double-spend is attempted, users will see that the same key image is used twice and reject the second attempt.
This provides good anonymity, but even with the improvements listed presently, this is not a zero-knowledge scheme. This means that linkability is confounded but an adversary with good analysis tools will certainly be able to glean a non-zero (literally, infinity times as much as zero) amount of information.
This is a very promising direction, and these signatures are feasible to verify by ordinary computers (though they are more difficult, so scaling will be worse than Bitcoin's), but there are some serious limitations. Fortunately, all are fixable. The following list is the result of conversations between myself, Greg Maxwell, Peter Todd, Mark Friedenbach, Adam Back and several others (who I'm sure will contact me to be listed :)), and to the best of my knowledge hasn't been published anywhere. So aspiring anonymous altcoins developers, here is a wishlist:

In Bitcoin, because transaction outputs are incontrovertibly spent, the total list of unspent outputs grows only very slowly. Nodes with limited storage are able to store this, and basically nothing else: when they see a new block, they verify it then update their list of unspent outputs accordingly. In CryptoNote this is impossible since transaction outputs are never definitely spent: there is a giant list of potentially spendable outputs, and a giant list of spent key images, and both of these grow very quickly and never shrink. Current CryptoNote implementations, except for Monero, store this all in RAM, which puts a pretty serious cap on their scalability today. One of Monero's scalability improvements is to store this set on disk in a very fast LMDB database, but the set of mixable outputs is still unbounded and is expected to grow faster than Bitcoin's comparable utxoset.

However, this can be further be improved by having users store only the outputs whose keys they own (plus some extras for anonymity) and only a subset of spent key images, which I will describe. The set of outputs would be stored in an insertion-ordered Merkle tree (so a user storing almost none of the tree can easily verifiably append new outputs, but can't detect duplicates, which is fine). The set of images would be stored in a image-ordered Merkle tree (so a user storing almost none of the tree can easily add a new key image and verify that it didn't exist before, given a proof of insertion, which is basically a path from the new node to the root of the tree, along with the siblings of each node along the way). To spend an output, the user provides a ring signature including the output, with appropriate key image and proof-of-new-insertion.
Note that to produce a proof of insertion for the new key image, the user needs to store all its neighbors in the key image tree. Since key images are random-looking, how can this be done without storing the whole thing? The answer is prefix-filtering. When a user creates a new key, he creates one whose first 10 bits (say) are a specific ten-bit sequence that all his key images will have. He stores every key image that starts these ten bits so that he can produce proof-of-insertion of such images. The result is a reduction in anonymity (by a factor of $2^{10}$) since everyone will know that nearby key images are more likely to be owned by the same person than are far-away ones, but a corresponding reduction in storage requirements (by a factor of $2^{10}$) and an increase in key generation time (since on average $2^{10}$ keys will need to be generated before one with the right prefix comes along). This is a tradeoff that every user will have to make.
Peter Todd has suggested choosing a new prefix every few months or years, and retiring those in which every known key image has been used. This gets more privacy for the storage hit than simply decreasing the prefix length, since two key images in different prefix sets don't reveal their common owner.

With ring signatures, the anonymity set is only as large as you make it, probably just two or three potential keys per signature.

We can improve this to effectively CoinJoin all transactions in each block (with the caveats that (a) miners can deanonymize the CoinJoin, reducing anonymity to the smaller set provided by the ring signatures, and (b) it is possible to miners to detectably cheat, so there is a small window after mining in which block content might be invalidated by revealing its cheating, which increases complexity) (the complexity hit is because it is important that the block content, not the block itself, be invalidated, since otherwise miners could deliberately cheat then reveal the cheating later, giving them a large window in which everyone else is mining a bad chain). The exact scheme is described at the very top of this IRC log.
(The same security can be provided with fancy cryptography, specifically one-way aggregatable signatures ("just the math" by Greg Maxwell), which depends on pairing-based cryptography, which is slow and requires new security assumptions that make some people uncomfortable. The exact way these would be used is described from 21:24:58 onward in these IRC logs. It is very cool that we can get the same security with no new crypto.)

With ring signatures, your anonymity can be compromised after the fact by others in your anonymity set. For example, if you spend an output using a ring signature along with two other outputs, then those other outputs' owners spend them with a single-signature ring signature (so they are incontrovertibly spent), it is now clear which of the three you used is yours, since each can be spent only once. This can be done long after the fact, which complicates analysis.

This can be fixed by requiring a minimum size of anonymity set, as Monero has done on a protocol level since March, 2016. But then we have a new problem — there are only so many outputs of any given size, and since all outputs in an anonymity set must be the same size (so the network knows how much you are spending), this might not be possible. This can be fixed by allowing outputs of any size in the anonymity set, and taking the minimum size to be the spend amount. But then given a ring signature across several outputs' keys, people will know that the output with smallest size will be the "real" one. This is because each output can only be spent once, so if you mix it with smaller outputs, you are basically shrinking it to the size of those outputs since the network will only recognize the smaller value.
All these problems are addressed in the next point.

With ring signatures, you need all potential inputs to have same (or similar) value, which greatly restricts your anonymity set.

In fact, Greg Maxwell and I found a way such that every single output can be read as any uniform distribution of outputs (so 1BTC might be spendable as a single 1BTC output, or two 0.5 BTC outputs, or three 0.33 BTC outputs, etc.) There is a single "real" distribution, but only the creator of the output knows this, and it is not revealed except in the case of leaked keys. Therefore, literally every single output size can plausibly be claimed to be created by every output, and therefore all outputs can participate in each anonymity set. This scheme is described in this writeup.
With this is place, it is feasible to set a minimum anonymity set size, preventing people from using keys with no anonymity set and compromising their own and others' anonymity. They can still do this compromise by revealing their secret key, but it's not clear to me that this is even possible to prevent.
Monero has addressed this issue in a similarly powerful manner, by implementing a scheme based on Greg Maxwell's Confidential Transactions. This novel scheme and implementation is called Ring Confidential Transactions. Because the value of outputs is no longer known under this RingCT scheme, you are no longer forced to only mix with a small subset of outputs (ie. those of the same denomination, which in CryptoNote and pre-RingCT Monero are all ^10 denominated outputs). This massively increases the potential anonymity set, and ensures that even large outputs are not "stuck" with only a handful of matching, mixable outputs.
And by the way, Dash (formerly Darkcoin) does not provide anonymity. They attached a (broken) implementation of CoinJoin to the ordinary Bitcoin client, and at least initially released it as a closed-source software. I haven't looked into Anoncoin, but the best advice I have for folks looking into altcoins is to assume they are uninteresting (and probably dangerously broken) until someone has demonstrated a concrete technical innovation.

You should look into Darkcoin again, with the recent fix of Darksend+ it's currently the only working coinjoin implementation which is not vulnerable to "sudoku" attacks. Read more.

What technology are you using for your wallet implementation?

@StevenRoose I am developing https://github.com/apoelstra/wizards-wallet/ in Rust. Rust is a new programming language from Mozilla whose type system supports aliasing, mutability and lifetime guarantees, allowing the compiler to make extremely strong statements about program correctness. (Threadsafety-by-default and compiler-tracked object lifetimes fall out of this for free, so the compiler automatically inserts any required momory-management code --- the speed and precision of C, except that memory leaks, double-frees, invalid accesses, etc., are impossible.)

@vertoe The link you posted says that DarkSend+ is closed source. I am not in the business of auditing amateur secret-algorithm cryptography for free. Everyone else in this thread who has asked that I give more personal attention to this project (whose current incarnation, and every incarnation before that, has raised serious red flags, right down to their decision to fork Bitcoin in order to implement CoinJoin), the answer is no.

I would just like to add that some things have been fixed in the CryptoNote world. Monero now uses LMDB so no need for everything to reside in memory anymore. Also, on the most recent HF, one of the changes is enforcing min. 3 additional signatures to participate in the ring signature, thus improving anonimity for all the users.

This answer is still very relevant, although as Jolly Mort says there are some things that have changed with Monero. Maybe this answer should be edited I don't know.

@JollyMort, I updated the answer and made it current.

First of, I am a Monero core developer. I'll try to remain as factual and objective as possible, though.
Now, for the simple answer: use Monero
And for the longer answer: read Andrew Poelstra's very informative reply.
I would also add the following:

Zero-Knowledge Proof has several of fundamental issues that may not even be fixable (from the less critical to the most critical): trusted accumulator, lack of academic research, obscuring the whole economy means that it is impossible to notice a bug until the economy had already been badly damaged. See our comparison on Monero ANN.
The CryptoNote technology is sound, but most actual implementation of it are not -- Boolberry and particularly Monero being the only ones worth considering, on the grounds of market confidence, activity and volume.
Monero also works with the i2p initiative to obsfuscate IP (the only thing left visible once CryptoNote is in action).

Since the fraud revelation linked in this post, the CryptoNote.org whitepaper has 404'd (part of the fraud was that this document was digitally signed with an obviously-wrong-by-multiple-years timestamp, so I guess that's why..). Do you or anyone have a link to a citable document describing their ring signature scheme?

https://cryptonote.org/whitepaper.pdf
Does it answer your question andytoshi?

I updated my reply with the new link from geti2p - they deleted the previous one during some housecleaning)

Andrew: They put the white paper back after modifying it some more.
(https://bitcointalk.org/index.php?topic=583449.msg9752739#msg9752739)

whitepaper fraud summarized nicely here: https://bitcointalk.org/index.php?topic=740112.0

first of all, you can continue using Bitcoin, simply use coin mixer websites to send your funds like Sharecoin and others. It’s really easy to use and it provides much more anonymity compared to default sending.
In the Altcoin world: I would recommend you to check out the CryptoNote protocol. It uses Ring Signatures to mix the outputs of transactions which makes it practically impossible to trace the funds. (I understand it’s your biggest concern)
As the example of CN implementation you should look into Bytecoin (BCN). It was started back in the 2012 and mined by approximately 2-3k people which were divided in teams.
Since it’s a crypto portal you probably know Adam Back, he mentioned CryptoNote as a new generation of alt coins.
Also, I feel obligated to mention few more anonymous coins to look into: Darkcoin, Anoncoin and their forks.

And by the way, Darkcoin does not provide anonymity. They attached a (broken) implementation of CoinJoin to the ordinary Bitcoin client, and at least initially released it as a closed-source software.

This is a total crock. Darkcoin's anonymity is the closest to actual implementation among all anonymity-centered alts. RC4 is in testing as we speak right now and will feature DarkSend+.
All coins will be automatically anonymized at interval, not just when they are being sent. This means the entire population of coins will be an anonymous mist.
In addition, the masternode system will be utilized to chain multiple DarkSend+ passes together in order to increase anonymity, so that even in the unlikely event multiple nodes are compromised the probability of compromising all of nodes in the sequence is nearly impossible.
I would also like to add that the code is currently being audited by Kristov Atlas, a well respected security expert, and that the only thing that is closed-source is DarkSend. Once the code has been vetted and refined, it will then be open-sourced.
I don't know where you get your information from, but it's obviously not very good or you didn't do your research as what you said is disingenuous and not true.

@vertoe but coinjoin itself is inherently flawed. I encourage you to look outside the darkcoin distortion field at other solutions (such as Monero), ONLY because you seem to have an interest in privacy

This answer could be improved to directly address the question, yet neither does it fit in a comment nor is it completely misplaced as an answer, so I let it be.

The use of masternodes delegates your privacy to third parties over which you  have no control. You cannot mix locally like you can with Cryptonote coins, you have to hope that the third parties you send your coins to do not keep lots of what they do, really do mix the coins, etc. Antithetical to the idea of privacy.

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

authors: Кира Кисловская


text:
addr_recv addr_from in version Message
I need some clarification about the meaning of the addr_from and addr_recv fields
in the Version Message.
addr_recv: The network address of the node receiving this message
does this mean the public IP of the node I am sending to ?
addr_from:The network address of the node emitting this message
does this mean my public(external) IP address or my local IP address ?
Thanks ..

So assuming node A sends a version message to node B then the two fields have the following meaning and value:

addr_recv: node A says "I believe you are reachable via this IP", hence its value is B's public IP address, the IP this message was originally sent to.
addr_from: node A says "I believe my external IP is this", hence this is what A believes its external IP to be (but may be different if A is behind a NAT and has not learned its true external address yet).

What happens if the information in these fields is incorrect or missing?

Bitcoin Core actually ignores addr_from in received version messages. addr_recv is used to influence the heuristic that determines which of the receiving node's IP addresses is publicly reachable.


text:
GUIMiner - Don't seem to recognize my GPU. Where to set it up?
Please don't be rude, I'm not looking for making a living on bitcoin mining, I'm just experimenting with it a bit. At least I would like to, but I can not use properly the GUIMiner. I reckon that I should be getting a bit better rates, like twice as good as now.
I don't see any option to enable processing by the GPU, I can only see my CPU in the list.
My hardware: Intel Dual-Core E5200, 2GB DRR2 RAM, Radeon HD7730 2GB VGA.
I've already installed the AMD developer tools/kit, it made no difference.
It really looks like to me, that it only uses my CPU.
Screenshot:

It is recognizing your GPU, as "capeverde". ATI has code-names for their GPU revisions, such as Cape Verde, Winter Park, Tahiti, and so on, listed here. Cape Verde matches your model on that list.


text:
How to recover coins from a wallet that uses BIP32 Deterministic Keys?
Say I am using an online wallet that uses BIP32 deterministic keys and the site goes down. I have a backup of my seed (passphrase). Is there a github repo that I can download, run on an offline computer, present it with my seed, present it with the BIP32 Path: m/44'/0'/0'/0/2 and recover the private key associated with that seed/path so that I can transfer the funds out of it?

Here's a web tool for BIP32 key derivation.
The only problem is the hardcoded 50k rounds of HMAC-SHA256. You do need to know how your wallet software exactly derived the master private key from the mnemonic or you'll get totally different keys. Unfortunately there's no standard convention for the HD wallet backup/restore process and I'm afraid this ranks quite high among the biggest downsides against Bitcoin adoption.

I like your answer, but I don't agree that this is a barrier to adoption. It is up to the hardware wallet makers to put forward standards for discussion on the developers forum.


text:
Where Bitcoin is kept and what fees are included when liquidating Bitcoin
I have small question, where does bitcoin "banks" keep money you pay them for bitcoins? do they keep it in some kinda bank ?
and when we sell bitcoins to dollars what fee do we pay?

Bitcoin "banks" are markets, not savings institutions. When you buy a bitcoin, you have bought a bitcoin; the money becomes the seller's. When you sell a bitcoin the money becomes yours and the bitcoin becomes theirs; similarly when you buy something with a bitcoin.
Since the value of bitcoins is not nailed down, there's no question of a transaction fee; you just agree with the other person on what the price of the goods is in bitcoins (or on what the conversion rate to/from other currencies will be). If you don't like the price or rate one person charges, you go elsewhere.

However, if the transaction is mediated by an exchange, the exchange may charge a fee or commission.

If you exchange dollars for bitcoin, you gain a bitcoin and lose a dollar and the other person gains a dollar and loses a bitcoin.
The person with dollars will store them however they want to store dollars. Most of the online exchanges have bank accounts (like any other business) so they can store their fiat currency.
There is no inherent fee associated with buying and selling bitcoin. Some businesses try to make money from this practice and may charge 1% or so. Others just give you a bad exchange rate,
Its the same as when you exchange currencies at the airport.


text:
json RPC Blockchain not Working
I am unable to connect to the Blockchain API, here is the code:

$rpc_host = 'rpc.blockchain.info';$rpc_port = '80';
  $rpc_user = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
  $rpc_pass = 'PASSWORD';
  require_once('jsonRPCClient.php');
  $bc = new jsonRPCClient('http://' . $rpc_user . ':' . $rpc_pass . '@' . $rpc_host . ':' . $rpc_port);$balance = $bc->getbalance();

I have also tried with port 443, and I still get this error (but with https://):

EXCEPTION: Unable to connect to http:[Link Breaker]//XXXXXXXX-XXXX-XXXX->XXXX-XXXXXXXXXXXX:Password@rpc.blockchain.info:80

I've tried everything I know and I've seen some people with the same problem, but no solution. Can anyone help me?

Uhm, obvious question: is your Bitcoin server running?

Yes it is, lol :P


text:
How did Satoshi manage to mine so many bitcoins being the first user of the system?
I'm just learning about Bitcoin and if I understand its conception properly, mining bitcoins means validation of transactions by computing a hash which should satisfy some preset condition. In other words, mining == servicing network and getting money for it.
If Satoshi was the first user, how did he earn his bitcoins if there were no transactions?
I understand, that in the very beginning some geeks were involved in the network, so maybe 5 or 10 persons' (first testers) transactions and their validation (mining) generated a lot of bitcoins, because of the low difficulty and high reward. But how did the very first coins get rewarded?

Blocks can include transactions, but it is not necessary for transactions to occur in order to create blocks. The only transaction that is required in a block is the coinbase transaction which is the transaction that creates new bitcoins and collects the transaction fees. This transaction is created by each miner individually for their block attempts (as it sends money to their own address which is different for each miner), so it'll surely be available. In fact, the first transaction other than a coinbase transaction occurred in block 170.
So, since transactions are not a requirement, block creation is limited differently, it happens by means of the difficulty. Miners create block candidates continuously, and then check each whether it fulfills the difficulty requirement. Whenever they find a block that surpasses the required difficulty, they have successfully mined a block. As the difficulty resets regularly to adapt to changes in the hashrate of the mining network, the blocks work out to be discovered approximately every ten minutes.
In the very beginning of Bitcoin, mining difficulty was very low as there were few people running their home computers to mine Bitcoin. Satoshi Nakamoto was the first one to run a computer for mining, and thus was able to mine a large portion of the early blocks.

So one can assume that all blocks that came before block 170 contain only one coinbase transaction in which the respective miners transferred 50 BTC to an address they (presumably) own themselves, right ?

Yeah, although theoretically, someone could have taken less than the full block subsidy, but I don't think that has happened (I didn't check though).

Transactions are not necessary to mine blocks.
In simple terms: mining a block = finding a hash that matches with the previous block's hash + optionally a bunch of unconfirmed transactions.
A block doesn't need to include any transactions. And if there are unconfirmed transactions, a block may include all, some, or none of them.
If there are, it's in the miner's best interest to include them all. He earns the mining fees on top of the block reward, and it doesn't make the hash computation of the new block any more difficult. So deliberately not including pending transactions = leaving free money on the table. But mining can still occur even if there are no transactions at all.
Besides, even if it was required to include transactions, Satoshi could of course have sent dummy transactions between addresss of his own (and collecting his own transaction fees).

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


text:
Generate Bitcoin addresses using a Master Key from Armory wallet
Is it possible to generate Bitcoin addresses using a Master Key from a Armory wallet with PHP?
I don't want to use Electrum Master Key as Armory has a lot more features that come in handy often.

Do you have the ability to install software on this server, or is it a shared hosting environment?

@NickODell I can install software but I'd rather not.


text:
How to power the Bitmain Antminer C1?
Bitmain has a new miner out that is pretty cool (water cool to be exact) called the Antminer C1.
I have an S1 so I am familiar with the basic operation of the Antminers. However, I'm a bit baffled that it has eight PCI-e connectors for power. I've never seen a PSU with eight PCI-e connectors. I'm not sure how I would power this thing effectively if I got one.
I found a great setup guide, but it doesn't go into detail with the power setup.
Here's a picture of how the connectors are set up:

Here's my questions:

The C1 requires that at least four of the PCI-e connectors are used. Which ones then are the important ones?
It is recommended that your PSU be at least 800 watts. Is that correct? Is it different if you only power it through four connectors?
Is it possible to use two or more PSU's to power the miner? For example, I have tons of 300 to 500 watt PSU's that have at least one PCI-e connector. How might those be useful to me?
Do they even make PSU's with eight PCI-e connectors? What is the best solution for a single PSU to power all eight connectors?

I spoke directly with Bitmain. They said:

The connectors are divided into 4 groups as shown in below screenshot. Connect one of the connectors from each group to the PSU and all 4 hash boards can get power.

Pretty straightforward. It does indeed need a PSU with only four PCI-e connectors. Personally, I would just pick one slot, left or right, and make sure all the plugs there get a connector. If you are going to overclock the miner I do recommend using the other four connectors to give the boards the extra power they will need.
Regarding using multiple PSU's Bitmain said:

Sure, 2 PSU is OK, make sure the power is enough for the miner.

Also straightforward. The miner uses about 800 watts, plus the fans and the pump for the cooling is maybe 50 watts more. So with this in mind, two 450 watt psu's will be enough to power the miner if you don't overclock. If you do over clock, don't cheap out. Go for a total of 1200 watts in total PSUpower.
In the picture above, the boards run horizontally under the case lid. The power to any board should be by a single PSU. So if your set up is an overclocked miner and two 650 PSU's (meaning you intend to use all eight connectors), I would make sure that the top four connectors in the picture above are all from one PSU while the bottom four are from the other.
Considering that you can use multiple psu's to power the C1, a single PSU solution does not make any sense unless space and available power outlets are a major issues.

AntMiner C1 Manual:

You must prepare your own ATX Power Supply. There are 4 PCI-e connectors for +12V DC
  input and all are required.

That either means:

The manual is right, and some of these are not 12V connectors. This seems unlikely.
The manual is wrong, and you need eight 6-pin PCI-e connectors.

Is it possible to use two or more PSU's to power the miner?

It depends on how they designed the miner. Those connectors might join together inside the miner, which would mean that you'd want one power supply, or they might be two separate circuits, which would mean it would be more or less safe. Generally, you don't want to use two power supplies to power the same part, though. Can you take a picture of those connectors with the case off?
As for the power supply recommendation - power supplies with eight PCI-e are very expensive, primarily because nobody needs that many. I mean, a typical desktop computer is probably going to need one PCI-e connector. They do exist, though.
However, I would recommend getting two power supplies with four PCIe connectors. I suggest the Cooler Master G650M.
Oh, and the manual says this, which suggests that it's not water-cooled out of the box:

Cooling kit is not included in C1, please read the instruction at www.bitmaintech.com to
  buy them.

I know you posted this a month ago, but i want to give my 2 cents worth.
If any device has several power connectors, USE THEM.  The engineers who designed the product didn't just have extra connectors lying around they needed to use.  They are there for an obvious reason.
The C1 pulls over 800 watts.  That's double the current draw of the S3 (which is perfectly OK because it hashes at 1 TB).  Multiple connectors lower the amount of current that flows through each connector (800 watts divided by 4 connectors -OR- 800 watts / 8 connectors).  That means using all 8 connectors will keep the wires and connectors from getting hot.  HEAT is BAD.  Heat is energy lost, efficiency lost, and an increase in your power bill because part of the energy that was going to power the miner is now heating the room.
Most brand name Power supplies like corsair and EVGA can accommodate 8 pcie connectors.  Its not a big deal.  They usually have 2 PCI-e connectors on at least 2 of the cables.  Follow me?
Personally, I recommend the EVGA 1300 G2 80+ Gold power supply for almost all asics.  They are less than $180 and in stock at Amazon, and it comes standard with 8 PCI-e connectors.  AND, since its rated at 1300 watts, you will be operating it well below its maximum output, which means it wont get HOT.  HEAT is BAD. Heat is electricity LOST.  It will cost you less to run your miner with this power supply.  Plus, next year you might decide to overclock and you will have no worries about your power supply. PLUS plus this PSU has a 10 year REPLACEMENT warranty.   Need I say more??  I can go on and on about this incredibly good deal...
But if you already have a perfectly good 1000 watt or so power supply, by all means use it. Or two 500 watt, or four 250 watt, or ...    I like using one PSU simply because its simple that way.  Statistically, you are twice as likely to have a failure using 2 PSU as opposed to using 1.
I just got my first C1 yesterday and it is a great piece of work.  I already ordered another one.  Bitmain Antminer has come a long way
Mark

The short answer, albeit a late one, for having two power supplies fully powering a C1 is to examine the fat paper clip jumper trick.


text:
Bitcoind fails to start on Centos 5.8
When I try to start bitcoind on Centos 5.8 I immediately receive the following error:
bitcoind: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by bitcoind)
bitcoind: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by bitcoind)
bitcoind: /lib/libc.so.6: version `GLIBC_2.7' not found (required by bitcoind)

This is the version of glibc I have:
$ strings /usr/lib/libstdc++.so.6|grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_FORCE_NEW

About my operating system:

OS: CentOS release 5.8 (Final) i686
Glibc version: glibc-2.5-123
libstdc++ version: libstdc++-4.1.2-55.el5

Download the correct version or recompile for your platform.

You can't run Bitcoin on CentOS 5. It's too old.

You can't run the binaries because they are compiled against much newer versions of glibc and other critical libraries.
You can't compile the source code because it requires much newer versions of libraries than are present in CentOS 5.

I ran into these issues when putting together my Bitcoin yum repository for RHEL/Fedora. As you'll note, only EL 6 and 7 (and of course Fedora) are viable targets.
That's not to say that it's impossible; it's merely very difficult and a whole lot of work. And you shouldn't use old operating systems for new projects anyway.


text:
Papers/Books on how bitcoin works from a mathematical perspective?
I'm a math student interested in Cryptography. Is there any paper or book which explains, in mathematics and cryptography terms, how bitcoin (more general, a digital cryptocurrency system) works? In my course book there is only about 4 pages on how cryptocurrencies work, but I'm hungry for more.

www.springer.com catalog is worth checking out - technical and well respected.
Andreas Antonopolous has a book out from O'Reilly (it is also available on github).
https://bitcoin.org/en/resources - check out the Developer Guide here, it's great.
Your school library will probably have loads of journals or access to them online (eg IEEE or local equiv).
Satoshi's original whitepaper is very readable: https://bitcoin.org/bitcoin.pdf
The bitcoin wiki.

There's enough resources online you probably don't need a book.
Here are some suggestions to get you started:

Mastering Bitcoin: Unlocking Digital Cryptocurrencies by Andreas M. Antonopoulos. It's light on math, but is an excellent overview of all the pieces involved, in case you don't know yet what you want to deep-dive into.
Guide to Elliptic Curve Cryptography by Hankerson, Darrel; Menezes, Alfred J.; Vanstone, Scott
Elliptic Curve Cryptography Tutorial
Elliptic Curve Cryptography: An Implementation Tutorial by Anoop MS

Very little of Bitcoin is new cryptography. Most of the cryptography in Bitcoin has been around for a pretty long time. Some of it is a little obscure, like Hashcash or ECDSA.
Saotshi Nakmoto's original paper is a good resource for how Bitcoin works.
You should also check out the cryptography papers that he references: (there aren't many)

W. Dai, "b-money," http://www.weidai.com/bmoney.txt, 1998.
H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimal trust requirements," In 20th
  Symposium on Information Theory in the Benelux, May 1999.
S. Haber, W.S. Stornetta, "How to time-stamp a digital document," In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991.
D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital time-stamping," In Sequences II: Methods in
  Communication, Security and Computer Science, pages 329-334, 1993.
S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications
  Security, pages 28-35, April 1997.
A. Back, "Hashcash - a denial of service counter-measure," http://www.hashcash.org/papers/hashcash.pdf, 2002.
R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security andPrivacy, IEEE Computer Society, pages
  122-133, April 1980.


text:
Proving a transaction is mine
As an assignment in a digital security course, a group of 100 students was asked to transfer a small amount in bitcoins to a certain wallet. They promised they'd buy something for us from this money. As a proof that we made the transaction, we've been asked to hand in the transaction id.
I'm wondering what exactly restricts me of using blockchain.info to search for this wallet address, wait until someone else has made such a transaction, and then just use that transaction id.
Am I right that merely requesting the transaction id isn't enough here?
Of course, they could notice when two people hand in the same transaction id, but we're in different groups, so they may not notice.

And this is just aside from the question whether such an assignment should be allowed. Basically it's requiring students to spend money on something without telling them what it is, if they want to have a higher grade (even though this assignment doesn't weight too heavily, and we don't have to transfer so much - this is a principality).

See Is there a way to prove ownership of a transaction?, which suggests using the private key to sign a message. You could send a signed message to your professor with the transaction id. However, since you say you're in different groups, it can still be that someone from another group just uses your transaction id, and doesn't get caught.
I would suggest asking your professor to give everyone a different wallet address to transfer the money to, or to request that everyone signs his transaction id with the private key used for the transaction.

You are answering your own question: Both signing the transaction id with the private key  corresponding to the sender's address, or individual destination addresses would prevent others from giving another's transaction id as proof.
Of course, the teachers can easily find out duplicates if they collect all submitted transaction ids in a single list.
Perhaps you should suggest that they do so, in case they haven't thought of it.

I'm new to bitcoin, so that's why I felt the need to verify :) thanks!

authors: Алексей Алхимов


text:
Is it normal for my hardware hashrate to vary by 15% but still achieve the advertised average?
I have an Antminer S1 and an Antminer C1. They both work as advertised and achieve a three hour hashrate average of 200 Ghash and 1000 Ghash, respectively. However, within any given second they hash within 15% of that average. So the C1 right now is hashing at about 850 Ghash, but I've seen it has high has 1150 Ghash.
I thought perhaps that the S1 did it because it is overclocked. But the C1 is not overclocked. I also think perhaps that my source for the stats might be the problem, which is the Eligius stats page for my miner.
Is this kind of fluctuation normal? Why does it fluctuate like this? Is this specific to Bitmain hardware or does other hardware do it too? If it is not normal, what could be the problem?

A wild guess: perhaps the hardware does not report to the computer the actual number of hashes it computed, but rather the number of shares (of some low difficulty) that were found, and the computer extrapolates the hash rate from that.  Your variation might then be explained by the randomness of finding shares.

@NateEldredge That could be something. I don't really know how the whole shares thing works.

I have TechnoBit Hex miners running BlackArrow ASIC chips and my equipment fluctuates a lot. I mine with the 'Discus Fish' Pool (aka F2Pool) and they let me view my hashrate on their website on a really fancy graph. My 1200 GHs dips from 900 GHs up to 1300 (occasionally), but in the end I do get a nice even 1150 / 1200 GHs.
The software (Cgminer) does fluctuate even more on my screen, it goes from 700 to 1300 GHs, but this really depends on what difficulty your miners are getting from your pool. Anyhow, a little fluctuation is perfectly normal.


text:
Is it actually possible to create a "verifiably unspendable" address?
The Bitcoin.it wiki article about proof of burn mentions "verifiably unspendable addres" and this method has been used by Counterparty to create XCP.
Is it actually possible to create an address that is "verifiably unspendable"? If yes, how? Or does "verifiable" just mean extremely hard, the way it is extremely hard to find a private key for any public key?
Or in other words: Are there valid Bitcoin addresses for which it's possible to mathematically prove that there is no private key?

Every valid ECDSA public key corresponds to some valid ECDSA private key.  Bitcoin addresses are not actually public keys though, they are a 160-bit hash of a particular binary representation of the public key.
You asked:

Are there valid Bitcoin addresses for which it's possible to mathematically prove that there is no private key?

As far as I know, the answer to that is no.  To construct such a proof, you would have to somehow consider the enormous set of all possible public keys, and prove that none of them have a binary representation whose 160-bit hash would match the Bitcoin address in question.  The point of hash functions is that they cannot be easily inverted, so you can't just get a list of all the valid inputs that would result in the same hash.
The number of ECDSA public keys (approximately 2^256) is vastly greater than the number of Bitcoin addresses (2^160).  So the average Bitcoin address actually corresponds to about 2^(256-160) = 2^(96) different public keys.  So it seems like it would be hard to find an address that corresponds to 0 public keys.

Yes - the easiest way is to provide an algorithm for making bitcoin public address without knowing private key. That seems impossible but think about what makes valid bitcoin address - for example 1BitcoinEaterAddressDontSendf59kuE is valid. Last 6 digits are made just to make this valid address. With vanitygen which allows you to make some vanity prefixed: 1stackLmzFVj8ALj6mfBsbifRoD4miY36v. But with larger vanity part address is much harder to generate. In case of bitcoin eater on can prove that chance of finding private key for this sequence is so low that effectively this makes this verifiably unspendable.

Relevant: http://en.wikipedia.org/wiki/Nothing_up_my_sleeve_number


text:
Is mining difficulty leveling out (Spring 2015)? How does this affect the economics of Bitcoin?
Bitcoin mining difficulty has been through some interesting ups and downs lately. (I've supplied snapshots below to give context for future readers)
Considering its long history of pretty much only going up for years, I'm wondering what people involved with mining should think about this.
Some base questions:

What is the primary cause? Are miners leaving as new ones come it, or are new ones no longer interested?
Why are miners leaving/not starting?
If it truly is leveling, or at least resuming a slight growth pattern, how does this affect Bitcoin price in general? What about during "events" such as halving of the block reward?
In principal, should Bitcoin value be related to difficulty in a predictable way, and is this leveling something that facilitates that or not?
Lastly, does a stable difficulty help encourage Bitcoin's use in anyway? In other words, if people aren't getting into mining but are getting into Bitcoin, do they generally consider difficulty as a factor in this decision?

I'm not necessarily asking that you answer all those questions. Instead, I'm trying to show that I am interested in how an extended period of leveled and stable difficulty, as we seem to be heading into (Spring 2015), affects the economics of Bitcoin mining and use.

Here's snapshots of that page (clickable):

The idea of this website is to ask one question at a time. Most or all of these questions have actually already been answered.

@Jannes Some links would help make your case.

It's pretty easy.
The first asics where based on 90's technology, current asics are almost cought up now to recent chip technology.
So the asic industry has camped 15 years of tech advancement into 2 years.
Every couple of months the new asics where more than twice as fast. That caused the rapid hash increase.
Now that they are caught up with current tech we will go back to 10% efficienty increase per year again. Like in the gpu days. Back then the difficulty raised very slowely because gpu's also had a 10% efficienty increase per year on avarage.
When gpu's came to the scene you saw the same rapid growth that flattned again when everybody had switched to gpu's. The only reason it was just a short period is because retail gpu's where allready in line with the chiptechnology of the time.
Now that asic efficienty improvements are in line with the industry the only way to increase hashpower is to have more machines instead of ever faster machines.
All that you are seeing is growth in hashes per watt flattning out, and with it difficulty growth flattning.

I'm a newer enthusiast to the world of Bitcoin and Bitcoin mining, but I can try to help answer your questions as best as possible (or more just take a shot in the dark for fun):

My guess is that the cause of this slight loss of momentum in the mining difficulty is because, yes, new miners are becoming discouraged and not joining. In 2015, mining is straight-out not profitable unless you unload a few hundred/few thousand dollars into the best hardware. A hash rate of 100 Mh/s off of a common laptop used to be phenomenal and lucrative. Now, thanks to the influx of people building mining rigs that reach up to terahashes per second, new miners, and even current miners with smaller hash rates are beginning to lose interest in a realm of computational giants. The centralization of mining of the decentralized currency is beginning to discourage people.
As I said, people are getting discouraged that only investing tons of money can put you on the map, and therefore less and less people are starting to throw themselves in.
This is probably completely inaccurate,  but since I'm a beginner, I'll go ahead and try and see if this is anywhere near correct: The value of the bitcoin will not fluctuate as much due to mining trends as it will with usage and popularity. Sure, increase in difficulty does technically mean that the coin is becoming more and more secure encryption-wise, but the coin only has as much value as people believe it does, which is why as it becomes more and more popular and more and more applicable, its value is not only going to stabilize but perhaps increase. (I'm not an economist, I'm a hobbyist, I apologize if that's completely wrong)
I don't think so. Again, yes, difficulty does indirectly equal how secure the currency is, however I would like to think that there are other far more significant factors that economically impact the Bitcoin in greater ways than mining difficulty, seeing as the network is already as big as it is today and is not going to lose huge amounts of difficulty (and if it does to a certain extent, profitability in mining will spike and miners will return to mining).
As Bitcoin matures, lots of the mining aspect of it is becoming abstract to the public, which is really the concept this answer is revolving around. As time goes on and mining becomes exclusive to people who have the best hardware (slowly centralizing the currency, and hence, defeating one of Bitcoin's original purposes), the general public will not even discover the wonders of mining, know the current difficulty, or try to achieve a profitable hash rate--just as people do not know or attempt to replicate the technicalities of minting dollar bill. In 2015, yes, people are still considering difficulty when they choose to begin to use Bitcoin because it's a signal as to whether the Bitcoin community is thriving or in distress. I think that people see the stabilizing difficulty as a temporary stabilizing of the encryption behind the currency itself and not as much its practical application. However, in the future, if Bitcoin survives the next few years, difficulty may become obsolete to the next guy starting to use Bitcoin.

So that's my two cents on the topic...or should I say... at the time of writing, that's my 0.000076 BTC.

Here's a plus one for the effort. Welcome to the site.

A few points: Mining hardware becoming more expensive equates to the barrier of entry for mining increasing, which in turn might cause mining centralization, but it is a steep argument to equate expensive hardware to currency centralization. Bitcoin doesn't use encryption, so I think what you mean is "security of Bitcoin network". Otherwise, good work.


text:
What's a good way to receive donations?
We're a Foundation with board members across various countries. We have some difficulty setting up a bank account. It's definitely easier to create a Bitcoin wallet, but we want more than that.
Here are some conditions:

We want to keep track and control funds without too much overhead.
We want unique addresses for each donation, so a e.g. multisig electrum wallet wouldn't be ideal.
We don't mind relying on a 3rd party service.
We don't have a bank account yet (so BitPay might not work for us).

What would be a good solution for us?

You don't need a bank account to accept Bitcoin with Coinbase.

Coinbase.com has merchant tools that allow non-profits et al. to accept donations.


text:
How could Bitcoin lending be secured?
I have been thinking a lot about platforms that allow us to borrow/make money.
Such a platform would be really wonderful, mainly for people in countries such as Brazil, which has high taxes on interest.
The problem is the risk.
I read in the news about a guy that did not pay the amount he was supposed to on btcjam, which was really bad.
Leading to the question: How will we be able to have a more stable and reliable Bitcoin lending service, so that people might trust bitcoins even more?

It seems like what you're really asking is how to securitize bitcoin loans.

related: Why there's no bank or institution lending Bitcoins?

There is currently no mechanism known to enforce loan repayments, as the lending happens on the blockchain and the repayment is tied to an offchain contract.
The revenue of Bitcoins is very high, because the risk of the borrower evading repayment is very high.


text:
Breadwallet: Recovery Passphrase
Breadwallet uses a recovery passphrase in case you loose your phone. I read that you can reimport your wallet using a private key only once and after that you have to export it again in order to be able to import it a second time (see Using Paper Wallets).
Is the key derivation method breadwallet uses also susceptible to that, or can I use this passphrase multiple times to recover the wallet?

You can use the wallet passphrase (Bip39 mnemonic) as many times as you like. You don't have to export it again.
But mind, breadwallet does not follow the bip44 chainpath scheme. Importing the passphrase into a different wallet application would first require to "convert the keypath" with a tool.
But i would recommend to not use the same wallet passphrase (bip39 mnemonic) on multiple devices simultaneous! You might reuse addresses and run into a chance of creating double spends.

So is it BIP39 or BIP32? This comment says it is BIP32.

It's both AFAIK. BIP39 defines the Mnemonic (the words your have to write down that represents your seed) while BIP32 defines how keys are derived from the master seed.


text:
How to transfer bitcoins from one Currency to Another from Brazil
I want to send money from real BRL to euro EUR. I live in Brazil.
How can I use bitcoins for that? And How would I make the bitcoins available for the person to spend in Euros?
Thanks.

You both need to have bitcoin wallet and know each other BTC address.
If you both have both bank accounts in each country it makes easy.

Buy BTC in your country with BRL.
Send BTC to the person living anywhere in the world.
He can convert his bitcoin against EUR via lobalbitcoins, exchanges or ATM in some cities.
Converting bitcoin to EUR might not be easy. Exchanges will require verification documents. If he can contact persons or go to an bitcoin ATM machine, that will probably not require verification process.

ATM? This is great @W3bit ! The only problem is that I don't have account in those countries, only in Brazil, is there any workaround?

A Bitcoin ATM does not require a bank account.


text:
Why does wallet.dat differ after running?
What information is exactly saved inside the wallet.dat file? When I run the bitcoin daemon, then stop, then compare the new wallet.dat file with the old one, the binary files differ, although I didn't make any new transactions. Can you explain the reason of this behavior?

The wallet contains a lot of metadata, and is actually a database rather than a flat file. At a minimum it contains a record of where you were last synced to in the chain, allowing any node that loads this wallet to pick up where it left off.


text:
Blockchain.info API - Check transactions from one address to another
Using the blockchain.info API, how can I check the transactions from one address to another, including the number of confirmations?
Clarification: I have one address let us say. I want to programmatically check new transactions, without running a wallet and a full node on my computer. So my address is fixed. The sender address is also fixed. So, given 2 addresses, get all the transactions from one to the other. And ideally including the number of confirmations.

Can you clarify, are you just looking for all the TxIDs? UTXOs only? Need it be Blockchain.info?

Additional point to clarify, there is no from address, so you don't have an easy way of looking for transactions from one address to another, which is how I understand the question.

@Drazisil That's right; the easiest way I'd know is to get the TxIDs for from and to, Txs_from and Txs_to, respectively. Then find the intersection of these two TxID sets

You can use pybitcointools history(address). Note that this function has bugs, so try my fork instead.
Or, the API request for 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX would be:
https://blockchain.info/address/12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX?format=json&offset=0

If there's more than 50 results, you'd change offset=50.
I'll provide more details if required.
My personal recommendation would be to use this API call, as there's no offset issues:
https://bitcoin.toshi.io/api/v0/addresses/12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX/transactions

@Solver I'll check now mate, just so I know, are you familiar with Python? If so, I'll post the code instead of "pseudocoding" the answer


text:
What is the difference between Gridseed ASIC and Scrypt ASIC
If you mine in wemineltc pool you have probably noticed that there are two different stratum server for ASIC miners
here are the urls

So my question is that what is the difference between an gridseed asic and scrypt acis miner ???
And I will be thankful if you explain me that what is gridseed mean exactly

Gridseeds are small dual-mode miners offering SHA256 and Scrypt.

Gridseeds have a very low scrypt hashrate (<400kH/s). The hashrate affects the share difficulty and therefore it's quite a good idea to offer a seperate mining port for low hashrate devices.
It seems there are so many gridseeds still out there that it's worth to mention that on the pools help page.


text:
Does bitcoin mining need a lot of internet bandwidth
I'm going to be a bitcoin miner and my question is
does it require a lot of internet bandwidth to mine with a pool ??
I'm gonna use guiminer with slush's pool
I have 1MB dsl is it enough ???

Bitcoin mining doesn't require much bandwidth at all!
It's worth noting that the higher the hash-rate of your rig, the more bandwidth it will require (as you will get through work units faster - downloading new ones and feeding back more frequently).
Seeing as though you are planning to use guiminer, you most likely won't use much bandwidth (most high-performance mining is now done with dedicated equipment as opposed to GPU/CPU mining).
If you're new to mining bitcoins, these sites might be of interest to you:

https://www.bitcoinmining.com/
https://en.bitcoin.it/wiki/Mining


text:
Wallet Address(MultiBitHD)
How do I see my wallet address? I use MultiBitHD. When I tried to use bitvisitor, it told me to type my wallet address. But, I don't know where it is written on.

Click on 'Request' as if you were going to request a payment. The wallet address will be on the next window. Copy/paste it and then keep the amount requested at 0. If you want, you can delete the request after you've copied your wallet address under the 'Payments' tab.

why this address (on Request) change every time?

Hey @ThiagoPereira, check out Why new public key for every new request?


text:
What is the fastest way of litecoin mining?
I have searched whole the Internet but it looks like that there isn't any fast way of mining litecoin.
Most powerful CPUs just mine about 200 Kh/s and the most powerful GPUs mine around 900 Kh/s.
And I haven't seen any hardware like ASICs for litecoin mining yet.
So what is the fastest way of mining litecoin??? I think it's impossible to mine with a 4000$ gpu and just get 900 Kh/s so is any minig hardware going to be produced ???

To my knowledge, all public manufacturers of scrypt asics has ceased their operations. This doesn't mean that there's no scrypt asics being produced, just that they aren't for sale on the open market. If you really want to mine, your best bet is to buy some used equipment on Ebay. However I doubt you'll be profitable, since you have to compete against huge Chinese farms with close to zero electricity costs.

authors: Павел Ковтун


text:
When is it a good time to invest in Cloud mining?
I bought bitcoins a while ago, an investment, but have now been reading up on cloud mining.
Due to the cost of bitcoins rising, is now a good time to invest in cloud mining?

I've always found cloud mining to be a scam... an undercover ponzi scheme. If they don't run away with the money, by the time you break even you'll just be collecting dust amounts. Not really worth it in my opinion.

The price of bitcoin rising is irrelevant to cloud mining profitability. This is because you have to compare a cloud mining investment to a pure bitcoin investment. Is it better to buy $100 worth of bitcoin, or $100 worth of cloud mining?

TL;DR: Never.
Lack of Control
I don't think there is ever a good time to invest in Cloud Mining. I remain utterly unconvinced of the whole business model.
Mining itself already has an inherently slim return rate, then putting both your investment and the hardware into the hands of a third party that wants an additional cut seems counterintuitive. With regular mining you can at least switch the pool when you are dissatisfied, with Cloud Mining you make yourself a hostage to changing circumstances.
Scams in the space
Definitely have a look at Cloudmining 101 (ponzi risk assessment). There are a lot of scams in the space.
Buying bitcoins directly may be better
A lot of people interested in investing into Cloud Mining point out that it may be a profitable investment if Bitcoin prices rise in the future.
Under the expectation of rising prices, the reader should consider the value increase of the same investment directly into bitcoins instead, though.

Also see this related question: How do cloud hashing companies profit? (leasing hashing power).

authors: สุชาติ ขันธะชะวะนะ


text:
Why do you need the *complete* blockchain to mine bitcoins, why not just the last n blocks?
I understand that to mine bitcoins you need the hash of the previous block, and in order to resolve possible forks. But why not just have the last 100 blocks (or more whatever is appropriate) and keep a sliding window of the last blocks?

One would probably need the entire chain to avoid double-spend-transactions in the newly mined block?

related: Mini-Blockchain proposal: How is the proof-chain secured against injections?, If more than one coin did the “mini-blockchain” proposal, would that make the weaker coin vulnerable?

To mine a valid block, you need to ensure that every Bitcoin transaction in your block is valid.  Because each transaction (except for coinbase transactions) spends the output from a previous transaction, you need to have processed every previous transaction in the blockchain.

This has a couple implications:

You need to download and process the whole blockchain before you can start mining (provided you only want to produce valid blocks).
You can create a database of just the information you need to validate future transactions and only store that, allowing you to get rid of the rest of the blockchain data you downloaded and processed.  Bitcoin Core 0.11.0 began supporting this blockchain data pruning feature for mining with the -prune parameter.
You can outsource validation of transactions to someone else and only mine the transactions they say are valid.  This way you don't need to store any blockchain data at all.  This is what most pool miners do.

Unless, of course, you want to mine blocks with no transactions in them at all. In that case, you could just assume the longest chain contains only valid transactions. It's anti-social, but as long as you care only about the block reward and not everyone does it, it will work.


text:
Selection of dependent variables - Time series regression on Bitcoin Price in USD
We are doing a time series regression project to identify the variables that impacts the bitcoin price in USD. We came up with the following explanatory variables:
1) GDPs of US, Canada, Europe, China, Slovenia, Singapore and Japan.
2) Aggregate computing/processing power: We don't know which index to use here.
3) Inflation rates of the previously mentioned economies
4) Activity on TOR browser (downloads for instance)
5) Number of vendors accepting bitcoin payments
6) financial sector's and IT sector's GDP for the aforementioned countries
7) Crime rate and cyber crime rate in each period
8) Dummy variable for major events. (for instance the shut down of the Silk Road online marketplace by the FBI)
9) Stock indices such as S&P 500, DOW 30, Nikkei 225, NASDAQ, NYSE, and ...etc.
10) Inflation rate of the previously mentioned economies
If multicollinearity exists between some of the independent variables, they can be combined into 1 variable via linear transformation.
What do you think about the explanatory variables suggested above? Can you suggest other explanatory variables that would increase the R squared, AIC, BIC, and other related quality measures?

Looks like you copy/pasted this from somewhere. Maybe you can clean it up a bit? "up vote" ?


text:
Cryptocurrencies based on RSA instead of ECDSA
Bitcoin is based on ECDSA. Does anyone know of cryptocurrencies based on RSA for authentication?

Why? An RSA public key + signature for the same security level as 256-bit ECDSA would be almost 10 times as large, and slower to verify.


text:
What happens to the overall value of Bitcoin when a huge amount of coin is lost?
My question is 2 part:
1. How does somebody know that a set of bitcoins is lost? Merely declaring that I've lost my private key and hence bitcoin makes the coins lost?
2. What impact(and why?) would be on the price of bitcoin if I lose a huge amount of bitcoin today? Say 1 billion?

Yes, pretty much the only way to know coins are lost is through someone making the information public by declaring they no longer have access to the private key. Otherwise they would just look like someone who hasn't moved their coins if viewed on the blockchain.
There's actually a limit at the current moment of 21 million bitcoins. So technically losing 1 billion bitcoins is not possible since it's larger than the limit. But taking on the spirit of the question, If someone was to lose a large amount of bitcoin theoretically it should make the rest of the coins more valuable. In practice though I'm not sure it always works this way since in your first question we brought up the notion that confirming lost bitcoin is not easy.


text:
Bitcoind has too slow API call performance on large wallets
Bitcoind (bitcoin-0.11.2, linux32) has too slow performance when the wallet size gets bigger, i will post here some average timing behaviors.
The wallet size is 410MB.
A getbalance call requires 1.45 s in average
A sendfrom call requires 5.46 s in average
A gettransaction call requires 0.595 s in average
A getaccountaddress call requires 0.634 s in average
A move call requires 0.33 s in average
To speed up these calls i have already put the wallet into ram-fs. But its too slow again. Is there a chance that those calls will speed up with upcoming bitcoind versions?


text:
How to use MySQLFullPrunedBlockStore with bitcoinj-core-0.13-bundled.jar
Initailly i am using bitcoinj-core-0.12.2.jar and bitcoinj-tools-0.12.2.jar on my project.Now i updated it with bitcoinj-core-0.13-bundled.jar because i am assuming that bitcoinj-core-0.13-bundled is providing support for MySQLFullPrunedBlockStore.
I have created a new database in mysql with bitcoinj when i run-app my grails app it create following tables
headers
openoutputs
settings
undoableblocks
and show following error
| Error org.bitcoinj.store.BlockStoreException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'bitcoinj.undoableBlocks' doesn't exist
To remove this error i have renamed table undoableblocks with undoableBlocks.
and i again run-app my app and it show following error
| Error org.bitcoinj.store.BlockStoreException: Database block store is not compatible with the current release.  See bitcoinj release notes for further information: Table 'bitcoinj.openOutputs' doesn't exist
To remove this error i have renamed table openoutputs with openOutputs.
and i again run-app my app and it show following error
| Error org.bitcoinj.store.BlockStoreException: corrupt database block store - no chain head pointer ...
Can anybody tell me how to slove this error.


text:
What PSU to use with antminer s7
I'm planning to buy myself a Bitmain Antminer S7 Batch 9.
Unfortunately, the Bitmain PSU (APW3-12-1600-B2) is not available to me, and I need to replace it with a regular PSU from another shop.
I think S7 needs a 9 6pin PCI-E connector. I haven't seen a 9 6pin PSU ever.
Which PSU could power my S7?

The product description mentions that the S7 uses 3 PCI-e connectors for +12V DC input. Does that resolve your question?

No actually I asked for your recommendations

You need 9X of the 6-pin PCI-e connections to make this work with your miner.  You need about 1350 watts for this to account for the ±10% requirements for nominal running, perhaps more if you plan to overclock it.  They also say not to run it with more than one PSU per board, that may be tricky, because I would have normally said to perhaps get a three CX750s to run or perhaps my juggernaut Evo 1500ewt. If you’re interested I’ve got a couple laying around.  Despite that… you would still need another one as my own PSU only has six available 20A connections.

As @murch points out, if you have 1300 watts per device that means you have at least 450 with zero headroom. So if you split it, you need at least 500 watts with the proper headroom without considering overclocking all the way.

You seem to know a bit about setting up miners, the asker had a follow-up question, could you please have a look?


text:
Sending from Coinbase to Blockchain wallet. Numbers explained?
I recently sent some BTC from my Coinbase account to a Blockchain.info wallet, but the numbers I see are confusing.  According to my Blockchain app, the transaction had a fee of .0001 BTC (for the miners, I get that).  The BTC made it to my wallet, but the remaining .00120821 went somewhere else.  Because of this, I wonder where did the .00120821 BTC get sent?

possible duplicate of How does change work in a bitcoin transaction?

All I got from that was a generalization of "change."

Sorry, actually, this one is probably a better match: Why are there two transaction outputs when sending to one address?

Hey @doffing81, I put in a redaction request on both the original question and original answer to make them the same as this latest edit in the edit history.

Unspent transaction output (UTXO) can only be spent in full, so if they don't match the amount you are trying to send exactly the rest will be sent back to yourself.
Therefore I assume that you had a single UTXO in your wallet. When it was spent, the remainder was sent to a change address in your own wallet.


text:
Is 2016 a good time to buy an ASIC miner?
At first, I should add I am not looking at mining for income. I just want to do it for fun but I don't want to waste money either.
In spite of difficulty increases there are a lot of people and companies which are starting to mine Bitcoin and I am one of them who want to start it for fun. So, I want to know whether it is a good time to buy an ASIC (Bitmain S7)?
The electricity cost is very low in my country, so what do you recommend?

related: In the ASIC-age, is it worth starting mining Bitcoin at home?

Although the miner you're considering is a great entry level unit, 2016 will bring in the "halving" of the reward on bitcoins mined. This means, once a solution is found, the reward will be half the number of bitcoin. (http://www.bitcoinblockhalf.com/) You may want to join a pool, which you can help mine bitcoin and the reward is split up depending on the rules of the pool. It's a good way to be a part of the community and possibly earn bitcoin.

Will my profit halves when block reward halves to 12.5

yes compared to what you would be earning before the block reward halves your reward would halve, this would affect your profit significantly

It depends on the electricity cost, the block-reward, the exchange rate, the difficulty, and the quality "Q" of the machine (number of hashes per joule). One interesting event that will occur in 2016 is the block-reward halving, which is discussed below. The upshot is that I don't think the block-reward halving should discourage you from mining as long as your electricity costs are less than about 9 cents per kW-hour.
(In the following, I'm assuming the exchange rate is $440 per bitcoin and the difficulty is fixed at 93448670796.3238.)
A simple (perhaps naive?) calculation implies that a good miner with "Q" ~ 2GH/Joule should be profitable in the long run at current exchange rates as long as your electricity cost is less than about 19 cents per kiloWatt hour.
With all the same parameters, but at half the block reward, you will still be profitable in the long run as long as electricity cost is less than about 9 or 10 cents per kiloWatt hour.
If you believe the advertised "Q" value of ~4Gh/joule for the S7 then even with the block reward halving you may still be profitable even at higher electricity cost... however once the S7 is available to you it is available to everyone and the difficulty will increase as a result. In general the difficulty always tends to increase, so be careful...
All the calculations presented above were performed at fixed difficulty and exchange rate.


text:
Are there any complete Bitcoin systems?
It seems to me that to keep Bitcoin both decentralized and secure, the whole of the Bitcoin process should ultimately depend on each user, or rather, that the involvement of each user should incorporate all aspects i.e. mining, full nodes, wallets, and exchanging.  Perhaps this is too much to think about at this stage, or maybe I simply have not found this, but is there any product or community that is focused on empowering individuals with simple systems that incorporate ALL of these aspects, and may I dare say, while being itself decentralized?

No, not to my knowledge. Also, it doesn’t make sense to me to want to incorporate all these different aspects into one device.
Mining devices need to run continuously and produce a lot of noise and heat. They also need to be replaced eventually, as they get obsoleted by better technology. As such, they are most cost efficient if they just focus on the mining algorithm.
While full nodes also run continuously, they can run on fairly small machines more suited to quieter environments. They run more complicated software than the miners and need to have software updates frequently, while the hardware can last.
You don’t want wallets that store large amounts to run all the time, as that increases the exposure to potential theft. Wallets for daily spending tend to be thin wallets which will catch up with the network quickly whenever you need them to, which also is beneficial for running them on small devices that you can carry around.
Decentralized exchanges are even harder. In a way, these are covered by mobile wallets in that they allow users to meet up and trade directly. The challenge with decentralized exchange systems is the interfacing with fiat currencies. I don’t think there is a widely popular solution yet, and it doesn’t appear likely that a majority should be running any such solution.

Maybe not an exchange, but I could see people having small miners in a decentralized pool or community with consensus, while each having a full node, and this community could build premium wallet services if it did indeed garner large enough developer support.  I think such a decentralized community, maybe even a non profit, could serve in the best interest, and would be of benefit.  A simple all-in-one solution could be both powerful and inviting.

@BrettDoffing: Especially mining devices and wallet also have contrary optimization direction. Miner and fullnode in one would perhaps be useful.