text:
How long does it take to earn back the investment of a miner?
I was strongly considering buying one of the 25 GHash/s miners and hooking it up to my laptop or desktop when not using them, as in, leave the miner running overnight or while I'm at work.
The mining profitability calculators confuse me. If I join a pool and mine the way described above, would it be profitable?
How long would it take to earn that c. $800 back?

You can run the miner all the time, not just overnight or while you're at work.  It doesn't use hardly any resources on the laptop... all the heavy lifting is done on the miner.
It's very risky to buy a miner.  The miner manufacturers often take a long time (i.e. several months) to deliver your order.  While you are waiting the mining difficulty is going up and the manufacturers move on to new more powerful models.  As a result, by the time you get your hardware it could be well on its way to becoming obsolete.  Keep in mind that a mining rig is not useful for any other purpose.
It is a very real possibility that you will never make back your investment unless the bitcoin price goes up a lot.  And if you want to bet on the bitcoin price going up, you can simply buy bitcoin and save yourself the whole mining hassle.

25 GH miner is old technology.  I have a 30 GH miner (2 miners 25GH + 5GH) running on  the eglius pool.  At the current network rate I will earn 0.00859212 BTC per day, which means IF THE NETWORK difficultly stayed constant, then I would earn 1 BTC in 116 days.  But the 28 nm machines are coming online so my 0.008 will soon drop to 0.001 or worse.
You could drop 800 and get 25 GH
$800 on 25 GH   ($32 per GH)

or you could drop 2100 and get 600 GH
$2100 on 600 GH (pre-order)  ($3.5 per GH)

Thanks for the info. Yes, I've been reading up on the difficulties going up very quickly.
The Monarch card plugs into usb, the same as the smaller peripherals, but it looks like it's meant to be mounted next two a dozen other miners. =)
$2200 is a much bigger investment over $800. Electricity costs aren't an issues where I am, but running this thing day any night, how long would it take to earn that back?
Can this be configured to mine other coin or not? (probably not, with the different coding, right?)

You could mine altcoins that are easier to get (like PrimeCoins), and then exchange those for bitcoins on an exchange.

-1 Doesn't answer either of the two questions "Will it be profitable, How long will it take to earn that c. $800 back?".


text:
How can I trust a new block broadcated on the network?
I have a giant hole in my understanding!
I recently started using https://github.com/sebicas/bitcoin-sniffer
which is a Python script that lets you connect to any node on the Bitcoin Network and triggers events:

new_block_event(block): Triggered when a Block is found
new_tx_event(tx): Triggered when a Transactions is found

On inspecting a new block I was quite surprised to find that the object does not include block.height!
Then I found this question: Is block height always sequential?
Quote:

Block height is by definition sequential in the sense that adjacent blocks will always have heights that differ by 1. But there is a chicken-and-egg problem: in order to compute the height, you have to have access to all the blocks in between the genesis block and the current one. (The height is not recorded in the block itself.)
There's also the issue that multiple blocks can have the same height, if they are on different branches of the chain. So just because you have one block at every height, doesn't mean you have all the blocks on the main chain; some of them might be on orphan branches.

So my Question is
How can i tell if the block is official / not orphaned and that it will not be replaced by a 'better' block?

I see that each block contains a previous block hash so my reasoning is that if a block was orphaned then the next blocks previous block hash would not be that blocks hash but another. But using that as a test to see If the last block became part of the network would put the check (time) back by one block... which is not realtime nor ideal
The bitcoin-sniffer does have one curious function for a block message called block.is_valid at the end of the CBlock class:
class CBlock(object):
    def __init__(self):
        self.nVersion = 1
        self.hashPrevBlock = 0
        self.hashMerkleRoot = 0
        self.nTime = 0
        self.nBits = 0
        self.nNonce = 0
        self.vtx = []
        self.sha256 = None
        self.hash = None
    def deserialize(self, f):
        self.nVersion = struct.unpack("<i", f.read(4))[0]
        self.hashPrevBlock = deser_uint256(f)
        self.hashMerkleRoot = deser_uint256(f)
        self.nTime = struct.unpack("<I", f.read(4))[0]
        self.nBits = struct.unpack("<I", f.read(4))[0]
        self.nNonce = struct.unpack("<I", f.read(4))[0]
        self.vtx = deser_vector(f, CTransaction)
    def serialize(self):
        r = ""
        r += struct.pack("<i", self.nVersion)
        r += ser_uint256(self.hashPrevBlock)
        r += ser_uint256(self.hashMerkleRoot)
        r += struct.pack("<I", self.nTime)
        r += struct.pack("<I", self.nBits)
        r += struct.pack("<I", self.nNonce)
        r += ser_vector(self.vtx)
        return r
    def calc_sha256(self):
        if self.sha256 is None:
            r = ""
            r += struct.pack("<i", self.nVersion)
            r += ser_uint256(self.hashPrevBlock)
            r += ser_uint256(self.hashMerkleRoot)
            r += struct.pack("<I", self.nTime)
            r += struct.pack("<I", self.nBits)
            r += struct.pack("<I", self.nNonce)
            self.sha256 = uint256_from_str(hash256(r))
            self.hash = hash256(r)[::-1].encode('hex_codec')
    def is_valid(self):
        self.calc_sha256()
        target = uint256_from_compact(self.nBits)
        if self.sha256 > target:
            return False
        hashes = []
        for tx in self.vtx:
            if not tx.is_valid():
                return False
            tx.calc_sha256()
            hashes.append(ser_uint256(tx.sha256))
        while len(hashes) > 1:
            newhashes = []
            for i in xrange(0, len(hashes), 2):
                i2 = min(i+1, len(hashes)-1)
                newhashes.append(hash256(hashes[i] + hashes[i2]))
            hashes = newhashes
        if uint256_from_str(hashes[0]) != self.hashMerkleRoot:
            return False
        return True
    def __repr__(self):
        return "CBlock(nVersion=%i hashPrevBlock=%064x hashMerkleRoot=%064x nTime=%s nBits=%08x nNonce=%08x vtx=%s)" % (self.nVersion, self.hashPrevBlock, self.hashMerkleRoot, time.ctime(self.nTime), self.nBits, self.nNonce, repr(self.vtx))

The function is 'way-over-my-head' to be honest but it looks like it might be trying to determine weather the block can be trusted (as in; not tampered with as its querying the hashMerkleRoot which is a one way hash mechanism) but, I'm not knowledgeable enough to to tell for sure if the is_valid is doing more like (determining that the block is official)
The last thing I want to do is:

push a tx to the network
listen to new_tx_event(tx) get my tx hash
listen to new_block_event(block) find my tx hash is accepted in the block
start to confirm payment counting new blocks as confirmations
find out later that the block got replaced/became orphaned

Your thoughts?

This is an issue you cannot avoid.  It is always possible for a block to be replaced or orphaned at a later time.  However, after several confirmations, it is unlikely.

How can i tell if the block is official / not orphaned and that it will not be replaced by a 'better' block?

As Nate notes, there's no guarantee that any block will be part of the best chain in the future. Here's what you should ask: Is this block part of the highest-work valid blockchain?
Here's how you determine that: you get the blocks, and connect them together. You sum up the work in each block in the blockchain. You check that they form a valid blockchain, and don't break any rules. You constantly look for more blocks, and try to assemble better, higher-work, valid blockchains.

I'm not knowledgeable enough to to tell for sure if the is_valid is doing more like (determining that the block is official)

Here's a list of things that code doesn't check:

Does a transaction spend more money than exists in an address?
Do transactions inputs actually exist?
Does this block connect to anything?

In fact, you can provide it a difficulty-1 block that doesn't connect to anything, and it will tell you that the block is valid.

Does this block connect to anything? wouldn't you have to wait for the next block to do this?

@BenMuircroft To check if it has children, yes. To check if it has parents, no. I can look at all of the blocks I already have, and see if the new block's prevBlock matches any block's hash.

@BenMuircroft Also, note that orphan blocks typically have parents: http://bitcoin.stackexchange.com/questions/32110/is-there-a-correct-way-to-refer-to-orphan-blocks (Yes, that doesn't make any sense.)

Just a note on the terminology: "orphan" is used despite orphan blocks having parents. In the real world, orphans have (biological) parents; the distinction is that their parents have abandoned them. Thus, orphan blocks are blocks who have been cast aside by their parents, no longer being part of the canonical blockchain.

source: Stack Exchange

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

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

sort: votes


text:
What does an orphaned tx look like via rpc?
I am testing with a currency forked from Pivx, but I see that bitcoind responds the same way here https://bitcointalk.org/index.php?topic=100824.0 with error code -5
If I send/receive a tx that then some time after a few confirmations (the block) was to become orphaned or stale; Would I get the same reply from rpc gettransactions as below (where I intentionally typed a non transaction id in) if I were to look for the tx or should it come back with a full tx object?
zdx-cli gettransaction "gyyyyf"
error: {"code":-5,"message":"Invalid or non-wallet transaction id"}

There are two cases here:

Block with the tx became orphaned and the transaction is still valid. In this case it is returned to the mempool. gettransaction will return unconfirmed transaction detail
Another conflicting transaction got confirmed ( having same inputs). In this case existing txid becomes invalid and it is discarded

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


text:
Does port 8333 need to be opened as TCP_OUT or TCP_IN?
Does port 8333 need to be listed in TCP_OUT in a firewall or in TCP_IN as well?

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


text:
Can I mine with an E5 2620 CPU?
I plan on mining litecoins, but I'm somewhat late and new into the game. Would it be better for me to get a video card later, tight on budget?
I'm not sure how to do the math. There isn't any overhead costs; I just want to build and let it run. I can build three rigs, all with 2 x E5 2620 and 32 GB RAM. How much would I produce per day?

Can I mine...? Yes. How much...? Build one, see how it goes and multiply by three.

But I don't know how the hash math thing works. If you can give me an answer for one. I can multiply by 3. :)

See my answer.  You will get horrible results.  CPU are not made for mining I cannot even get my i7-3770 to mine.  I have to have cgminer use my GPU.

The only coins you can mine nowadays using any CPU, no matter how fast, are those using algorithms specifically designed to be GPU- or ASIC- unfriendly, such as primecoin (search of primes), quarkcoin (several hashes in row), etc. Anything else, and you'd only lose money - unless you're doing it just for fun.

Using a CPU is a bad idea; a GPU is better. Good AMD...  The best AMDs are hard to find or impossible to find, but the AMD R9 280x and 290x you can find (second-hand on eBay if you don't see them on Newegg, etc..) Sort the chart by GPU, or in your case CPU, search for your CPU...
I tried to play with mining with an i7-3770, and it wouldn't. I don't have any idea why. I had to tell CGMiner to use my GPU which is NOT an AMD, thus horrible. I could mine Coinye coins, but who cares about that.
The page Mining hardware comparison is great for your question.

If an i5 yields about 0.3 Primecoins a week, with an i7 I suspect you could get 50% more. Since you need the whole PC to be on so the GPU can work, the extra cost of putting the CPU at 100% instead of idle would be almost negligible.

i don't advise using CPU,  and if a good GPU is being pushed... you NEED to have open rig with fans blowing on them. In a case, you will burn them up.

Primecoins are only mineable with CPU - some experimental GPU miners exist, but they're less productive (and thus, profitable) than CPUs. Quarkcoins are CPU-only mineable as well. My point is: having the CPU at 100% won't add much electric consumption or heat vs. what the GPU is already consuming, but do can add for the final profit.

My fault I didn't know that about Prime until now , thx Joe

Based on this hardware comparison
1 CPU ~ 50 KH/s
3 rigs x 2 CPU x 50 KH/s each ~ 300 KH/s
At the moment, according to the coinwars, you would mine $9.75 a month or $0.33 a day.

Better mine new alt coin and then convert them into litecoin that will be more convenient. Have a look on coinchoose.com to select a coin with less difficulty and which website is trading them.

He'd lose money mining any scrypt-based SHA-256-based coin. CPUs are only good for primecoin, quarkcoin, protoshares and a few others, no more.

Agree with mine new alt coin and convert to litecoin, but not with the OP CPU

Khan: the original poster is asking specifically about mining with CPU only for he lacks a GPU and is tight on money to buy one.

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


text:
Rolled out my own no-fiat service. What will the tax man need?
Background:
I have programmed my own service using https://bitcore.io and I have a limited company set up in the Uk! My company's original intention was to deal with Paypal transactions. (but we are now going to only use Bitcoin!)
We plan to only accept BTC ,only pay and make trades in BTC (never converting money within the company to pounds or any other fiat currency).

Additionally I am recording every transaction and payment in my database - for the record and in case the tax man would need to take a look at what is going on.

To put it very simply; my company has two instances of dealing with Bitcoin:

A user buys my product with Bitcoin and I collect it in my own private key
A user requests a payment from me. I pay them in bitcoin to a public address of their choice using another private key of mine

My question is:
If my company is never dealing with any fiat money; what information should I be sending to the tax man?
It is a registered company after all (dealing with international clients) and I want to comply with the law.
What are my tax obligations?

From https://www.gov.uk/government/publications/revenue-and-customs-brief-9-2014-bitcoin-and-other-cryptocurrencies/revenue-and-customs-brief-9-2014-bitcoin-and-other-cryptocurrencies

when Bitcoin is exchanged for Sterling or for foreign currencies,
such as Euros or Dollars, no VAT will be due on the value of the
Bitcoins themselves
charges (in whatever form) made over and above
the value of the Bitcoin for arranging or carrying out any
transactions in Bitcoin will be exempt from VAT under Article
135(1)(d) as outlined at 2 above

However, in all instances, VAT will
   be due in the normal way from suppliers of any goods or services sold
   in exchange for Bitcoin or other similar cryptocurrency. The value of
   the supply of goods or services on which VAT is due will be the
   sterling value of the cryptocurrency at the point the transaction
   takes place
So I am to say nothing?? O.o

It depends on what your business is and what country you're in.

digital goods based in the uk

Last paragraph seems to make it pretty clear: when you sell an item for, say, BTC 2.5, you determine the market value of BTC 2.5 in GBP at that moment, and you owe VAT on that amount.

I think stackexchange is a bad place for location specific professional financial/legal advice. Contact an accountant and/or a lawyer.

I depends on the type of digital goods, are these goods vouchers? Vouchers have no VAT!

If you receive 500 EUR as a payment, how do you declare it?
Easy, you declare it as however much GBP it was at the time. If you receive it as a wire transfer your bank will even make this conversion for you!
So with BTC if you receive 2.5 BTC you have to see what the GBP value is and declare that as your receipts, and pay VAT and whatever other taxes on it.
Of course you can choose to lie to the tax man, but remember that Bitcoin is a lot easier for them to track than even your bank account, unless you are very good at operational security and you use something like Monero to separate your transactions. Obviously this is not worth it if you end up having to turn most of it into fiat to pay suppliers anyway.


text:
How does Mimblewimble's security model compare to Bitcoin's?
In addition to scaling, privacy, and scripting differences Mimblewimble also differs in its security model.  How does Mimblewimble's security model compare to Bitcoin's?  Specifically:

How well will Mimblewimble function in the age of quantum computing?
What trust is placed in miners?
Are possible attacks similar to Bitcoin? (51%, Sybil attacks, DDOS)
Is it possible to trick light clients into trusting an invalid transaction?

Commenting on the overall security model is a much more complex answer as many moving parts are involved, from initial blockchain syncing to cut-through. But to answer your specific questions:
Quantum computing
MimbleWimble is not very well prepared for quantum computing as it's intricately tied to Elliptic Curve Cryptography (ECC). But the full picture is a little more complex.
First, one has to define "quantum computing" further. Shor's algorithm would require several hundreds of qubits to break ECC. Modern quantum computers with higher qubit counts rely on quantum annealing, which is a different "kind" of quantum computer much more limited in function, and can't implement Shor's algorithm.
Second, there's early indication that quantum-resistant algorithms may exist with properties similar to ECC that could be used for MimbleWimble. They're mostly untested in the field, so it will required some time, but the above points shows we do have some time.
Overall, quantum computers that can break ECDSA are still years away. So starting with ECC which is well proven and migrating to quantum resistant algorithms when they're mature seems like a good approach.
Miners trust and "Classic" Bitcoin attacks
MimbleWimble has the same miner trust model as Bitcoin, and the same exposure to 51% attacks and DDOS (although in the case of DDOS resistance is more implementation specific than algorithmic). MimbleWimble is more resistant to Sybil attacks than Bitcoin because it's impossible to fake the current chain state.
Light Clients
At this point, light clients are completely unspecified. However assuming a UTXO set commitment in the header and a few other sane measures, tricking a client into trusting an invalid transaction would be extremely hard.

Can you elaborate and/or give references for quantum resistant algorithms? If I understand correctly the required properties are partially homomorphic encryption, and zk range proofs to constrain the additive property, but these two witness values don't need to be based on the same crypto, right?

Apparently the answer to my question is yes: according to Andrew Poelstra, the rangeproofs are the tricky bit (maybe): https://youtu.be/aHTRlbCaUyM?t=29m19s


text:
How to start mining pool?
Can I start p2pool in shared hosting?  If yes, how to install p2pool?
I am newbie in this field. What are the pre-requirement for starting pool business? Which is best script for pool?

The short answer is yes. P2pool source code is available at https://github.com/forrestv/p2pool. If you stand up a P2Pool proxy (probably hundreds of them on the Internet actively running) such a server will maintain its own P2Pool sharechain state. As most mining pools, you will also need an active full node of the Bitcoin blockchain to validate the transactions being mined are indeed legitimate. Other miners can connect to your P2Pool proxy (that is part of the distributed P2P network) using either Stratum or GBT protocols that both bfgminer or cgminer support. Those same miners don't have to be sharechain-enabled. The P2pool sharechain is transparent to them. P2Pool supports numerous other alternative coins, and as a P2Pool proxy service you can reap additional merged mining benefits beyond the fixed mining fees established.


text:
Where is the code that specifies when a block is released?
I'm not sure how this exactly works. So roughly every 10 mins a block is released to the network. How is this done?
Does my bitcoin client signal this? Would that mean in theory if there was just one user, one client, you would just mine alone?

Every time a block is successfully mined, the miner releases it immediately. The mining difficulty is adjusted over time to keep the average block release rate at roughly ten minutes. Successfully mining a block is so difficult that all the miners in the world only successfully build a single block, on average, once every ten minutes.

So how did it work when it was just satoshi mining? Step1 - he runs the client on his computer. Step 2 - Code from his client sets the difficulty? (Where is the code for this?) Step 3 - He mines the block and receives the coins. - Step 4 - His client releases the second block? (I still don't fully understand this)

Back then, the mining was done in the client, so his client would release each block as it mined it. Every 2016 blocks, it would adjust the difficulty per the specification.


text:
How to transfer signed tx from coldstorage to online system for submission into blockchain?
I am building an exchange for crypto currency. I need to be able to transfer tx from cold storage(offline) to hot wallet(online system) for submission. Usb stick is suitable for an individual user mining but is not suitable in an exchange environment.
One option I am proposed is to build an  api that sends tx over ethernet cable to and from cold/hot storage. But in this case the cold storage wont really be offline, it would still be connected. So what other options do I have that could work well for an exchange?

If the coins need to be able to be sent without human intervention, then by definition they cannot be in cold storage.

that is exactly what im struggling with. coldstorage means an offline system that is not connected. what do you mean by coins though? there are only public and private keys. private keys being stored in cold storage and tx being signed there manually.

agree with @nate I think anything you do will risk the cold storage becoming hot. Having considered this the only reliable way to do this is with a Trezor. The transaction is contstructed in a hot environment, and the Trezor simply signs the inputs. It's this minimal functionality and isolation from other software that makes it a suitable "luke warm storage" device.

i spent the last few days brainstorming ideas and have decided to go with a three tier system, a hot wallet, warm wallet and a cold wallet.

I would reroute all incoming deposits to cold storage, which I would keep in small portions on different addresses.
Then I'd import some cold storage addresses to my hot wallet whenever my hot wallet is running low, keeping the amount in my hot wallet in the range between "not empty" and "what I'm comfortable having in the hot wallet".
As Mike mentioned, multi-signature addresses could provide additional security, and accountability.

I'd recommend using multisig for your 'hot' wallet (selfish plug to bitgo).  Then you can periodically manually transfer from your cold storage savings, but have most of your coins be protected with signatures from at least 2 systems.

that would work. but please read the topic carefully. im trying to find a manual method to transfer from coldstorage(offline) to hot storage. in an exchange environment it may not be feasible to use usb-sticks due to the volume of transactions. so what other methods are available?


text:
BTC-E - Is there an official limit on frequency of requests that can be made?
Does anyone know if there is an official limit on the number of requests that can be made to btc-e.com? I know bitstamp will ban your ip address if it detects more than 600 requests per 10 minutes. I checked the terms, FAQ, and knowledge base and searched briefly on google but did not find much.
Anybody with any experience on what is the highest acceptable frequency of requests that can be made?
Thanks!

I don't know the answer, but I log the price in every five seconds for more than a month now and no ban happened.

At around 50 to 60 requests/second their host provider (I believe cloudlfare) starts to error.


text:
If lightning network transactions are "off chain", can we still see the transaction history then?
If the lightning network is a off chain system. Are the transactions private or public? And does that mean once you send bitcoin to a lightning network address, it can possible get hidden in a payment channel? Or is that not possible?

Are the transactions private or public?

Mostly private. If you are not involved in a transaction (i.e. not a sender, receiver, or intermediary), you really won't know anything about the transaction. Transactions occur off chain so there is no permanent record of a transaction happening. All that outside observers will see are the channel opening and closing transactions.

it can possible get hidden in a payment channel?

Yes, you can have a payment channel which no one else knows about, at least until it closes.. These could even exist today and it would not be obvious until the channel closes. And if a channel is closed cooperatively, it will look just like any other 2-of-2 multisig transaction. So even then it is not clear whether a transaction is a closing transaction for a payment channel.

how does this compare to privcy coins like monero?

Privacy coins like Monero utilize cryptography to hide the data in a transaction which is broadcast publicly. However LN maintains privacy by simply not broadcasting the transactions in a channel to the rest of the world. It is certainly not as private, and there is no guarantee of your privacy when using LN.


text:
How can I create a new Genesis Block?
I'm trying to create a testcoin using litecoin. To create genesis block I changed some lines to :
block.nTime = 1390948469; // current time

uint256 hashGenesisBlock("0x"); //I dont now it's true or false

uint256 hash = block.GetHash();
        printf("%s\n", hash.ToString().c_str());
        printf("%s\n", hashGenesisBlock.ToString().c_str());
        printf("%s\n", block.hashMerkleRoot.ToString().c_str());
        assert(block.hashMerkleRoot == uint256("0x")); //I dont now it's true or false.
        block.print();
        assert(hash == hashGenesisBlock);

When I build daemon and launch it, I'm getting this error:
litecoind: main.cpp:2788: bool InitBlockIndex(): Assertion `hash == hashGenesisBlock' failed.
Aborted

When I check the ./litecoin debug.log file, I'm seeing the previous hashMerkleRoot and hashGenesisBlock that litecoin uses now. I can't create new hash and merkle root.

Create genesis block. Some people get stuck there, it's really easy:

find LoadBlockIndex() function, inside, change:

paraphrase (pszTimestamp) to any recent news phase.
get the latest unix time (do a google), and put in block.nTime.
set any nNonce (doesn't really matter),
you can change the time/nonce for testnet too, if you want to use it.

After you are done, save it. Now the genesis block will not match the hash check and merkle root check, it doesn't matter.
The first time you run the compiled code (daemon or qt), it will say "assertion failed". Just exit the program, go to
config dir (under AppData/Roaming), open the debug.log, get the hash after "block.GetHash() = ", copy and paste it to the beginnig of main.cpp, hashGenesisBlock. Also get the merkle root in the same log file, paste it to the ... position in the following code, in LoadBlockIndex()
 assert(block.hashMerkleRoot == uint256("0x..."));

recompile the code, and genesis block created!
BTW, don't forget to change "txNew.vout[0].nValue = " to the coin per block you defined, it doesn't matter to leave as 50, just be consistent with your coin per block (do this before adjust the hash and m-root, otherwise they will be changed again).
check https://bitcointalk.org/index.php?topic=225690.0 for complete info

I changed the pszTimestamp , put the last unix time. After I compiled and started to daemon, I'm getting litecoind: main.cpp:2788: bool InitBlockIndex(): Assertion hash == hashGenesisBlock' failed. Aborted , When I check the debug.log, I'm seeing litecoin's original genesis and merkleroot hashes. What I'm doing wrong ?

I tried this but I get ERROR: CheckProofOfWork() : hash doesn't match nBits - any ideas?

Hello. Now is source changed a lot. And some variables existed doesn't exist, or changed name or new variables come. So how to do this (create new genesis block to make new alt-coin) based on new source currently?

If you want to generate our own unique genesis block you should generate and replace at least the following parameters:

nTime (the unix time. Your wallet will display the "No block source
available 5 week(s) behind" mentioned if this is 5 weeks old from
now)
pszTimeStamp (the "timestamp" to "justify" no premining has taken
place)
hashMerkleRoot (the merkle root based on the coinbase transaction of
the block)
hashGenesisBlock (the genesis hash itself!)
nNonce (the correct nounce which is incremented when searching for
the hash that satisfies the target (=difficulty))

The pubkey in the output transaction script can also be changed to a unique value. However, as the genesis block can't be spent anyway the same pubkey can be used as in e.g. Litecoin. Also the nBits should not be changed if you are planning to create a Litecoin clone.
You can use this script to create the values for a scrypt genesisblock:
https://github.com/lhartikk/GenesisH0

how long it takes on average to get it generated? hours? days? weeks? months> or even more ?

Hello. Now is source changed a lot. And some variables existed doesn't exist, or changed name or new variables come. So how to do this (create new genesis block to make new alt-coin) based on new source currently?

I created my genesis using this code, but you need to commment all the assertions in chainparams.cpp:
arith_uint256 best = arith_uint256();
int n=0;
arith_uint256 hashTarget = arith_uint256().SetCompact(genesis.nBits);
while (UintToArith256(genesis.GetHash()) > hashTarget) {
  arith_uint256 c=UintToArith256(genesis.GetHash());

  if(c < best || n==0)
    {
      best = c;
      n=1;
      printf("%s %s %s\n",genesis.GetHash().GetHex().c_str(),hashTarget.GetHex().c_str(),
         best.GetHex().c_str());
    }

  ++genesis.nNonce;
  if (genesis.nNonce == 0) { ++genesis.nTime; }
}
printf("%s\n",genesis.ToString().c_str());

I don't see the code where you actually change the block object's hash. The method hashGenesisBlock() returns a hash, but it's never passed to the block object.
Besides, the first line of your code also has a bug: the current time is 1390959227, not 1390948469. This might also cause a problem.

Hello. Now is source changed a lot. And some variables existed doesn't exist, or changed name or new variables come. So how to do this (create new genesis block to make new alt-coin) based on new source currently?


text:
does one mine bit coin at current difficulty until next difficulty is set
In Bit coin mining I would like to know if after all 2016 blocks are found and the new difficulty value is set, does one mine continuously on this new difficulty through to the 2016 blocks or does one mine with adjusted difficulty with every block found?

Once the difficulty adjusts, it does not change again until 2016 blocks later.


text:
what is the difference between a private pool or solo mining
I would like to understand if there is a difference in resolving blocks with a private pool and solo mining, I understand that when solo mining you are given a block to resolve but within your private pool you may resolve various, this of course having several machines.

There's no technical difference in generating blocks in pooling vs. solo mining. The only difference is that pool mining can create a more steady pay flow.
Why do people do pooled mining?
Bitcoin's difficulty can give unrealistic time frames for payout. The average computer will mine a single block in 1000+ years at current difficulty. But say I got into a pool with the average computer, I'd get a payed proportionally to the amount of work I contributed to a block being found. Although my "work contributed" may not end up being a block, it had a chance proportional to my own hash rate. In the end I'd get payed a few satoshis daily as opposed to getting the block reward (25 BTC at the moment) at some random point in the future likely to be no later than 1000+ years from now.
Why do people do solo mining?
The main reason is because they can. Certain miners have enough hash rate to get blocks in a reasonable time span. If I had a 1/144th the hash rate of the Bitcoin network I'd statistically have a 100% chance of finding a block of 25 BTC within 24 hours. There's no benefit for large miners to do pooled mining, may even hurt them because of fees.
Pooled vs. solo mining will theoretically yield the same amount of coins if difficulty and block reward never changed and you solo mined long enough. Although you should consider pooled mining if you aren't mining with a rack of gear.

I believe he is asking about the difference between a private pool and solo mining. Either way, he would be the only one on his team. Also, your 100% chance is not correct. It should be modeled as a Poisson process with an expected jump of 1 day. The actual probability of finding a block within 24 hours is 1 - 1/e = 63%. Now, it is true that the expected number of blocks found in 24 hours is 1.


text:
Today's threshold difficulty at 3,9 what would a miner need to go solo
What i am asking is a relative threshold on the minimum Hash rate needed to mine solo, taking into account todays difficulty,could it be an ASIC of 1TH/s or 5TH/s so as to compare with pool mining

potential duplicate: Solo Mining vs Pool Mining for users with high computing power

There is no minimum power needed to mine solo. You should note, however, that if you mine solo, your rewards will be much more inconsistent than if you mine in a pool. This is the major reason why pooled mining exists.
With 5 TH/s at the current difficulty, the average time for you to find a block is 38 days; with 1 TH/s, 189 days. But this is a random process that would average to 38 (or 189) days, and that time period is only likely to grow larger as time goes on. You have a real chance, then, of never getting any reward for your work (the reverse is also true, of course: you have a chance of finding more than expected...but I wouldn't stake thousands of dollars on it). Personally, I'd want an expected period of no more than 10 days/block (~20 TH/s currently) to consider solo mining a good option.
Also of note: your intuition of how any random process will work out is very probably very wrong. I'd go for mining in a pool so that I don't have to deal with any large amount of randomness in this process.

For various machines to make a total of 20 TH/s as a solo miner should these be under 1 address

@user14248 No, it doesn't matter whether you use one address or various addresses. There's nothing that tracks how many hashes/second an address is running. In fact, I'd prefer various addresses to add a little anonymity.


text:
Can bitcoin pools set a different difficulty value other than the network difficulty
I would like to know if bitcoin pools can give a different difficulty value other than the network difficulty or is the network difficulty the same for everybody

at any given time if overall difficulty is at a certain number do pools respect that same difficulty number or can they go below the expected difficulty?

I have reworded my question, I do hope for some feed back

First of all, please be careful with using the terminology "network difficulty." Network difficulty is the difficulty at which a hash is accepted by the network (as opposed to the pool). Technically speaking, if d is the network difficulty, then your probability of finding a valid hash is 1/(d*2^32). If your question is interpreted literally, then the answer is trivially yes, since no pool would do such a thing. If everyone submits shares at the network difficulty, then the only share submitted is the one that solves the block, which means that the block finder gets the entire block reward, negating the reason people use pools (to reduce variance).
I guessing you're actually asking the following: Can mining pools give everyone a different difficulty?
The answer is yes. Basically, I might be mining at a difficulty of 16, and you could be mining at a difficulty of 32. If we have the same hashrate, then I would be finding shares twice as often as you, but your shares are worth twice as much. In the end, it all evens out. Mining at a lower difficulty reduces variance, but for miners with a large hashrate, their variance is already low enough that they can afford to mine at a higher difficulty, and they generally do so to reduce the stratum load (since they must communicate with the pool every time they submit a share).
There are several ways a pool could implement different difficulties. One is to have a setting on the pool website that you can adjust on your workers page. Another is to have multiple strata, each with a different difficulty. Yet another (which could be used in combination with the previous technique) is called vardiff, where the pool adjusts the difficulty to an optimal level in response to its estimate of your hashrate. Note that adjustment of share difficulty must be done at the pool level; there is no way to tell cgminer to choose a certain difficulty. (Even if you could, trying to submit a share at a difficulty lower than the pool wants will end up getting rejected, and only submitting those shares at a difficulty higher than the pool specifies will not get any bonus points for the extra difficulty.)

authors: Виталий Гирфанов


text:
would 10 x 2TH/s machines give me the possibility to mine solo
Would 10 X 2TH/s machines give me the a heads up on pool mining or go solo mining obviously using different addresses on each machine, or one address prone to redundant work?

Even you, solving problems by hand on the paper with a speed 1 hash per day, have this possibility. Is it money-wise is debatable and offtopic.


text:
Why do people mine bitcoins when they are losing 20% a month?
Why do people continue to mine bitcoins independently of their hash rate if their ROI loses 20% every month at the going difficulty rate and the exchange rate BTC/USD is at best flat?

http://en.wikipedia.org/wiki/Sunk_cost

thank you Nate, for the Wikipedia link on sunk costs. very informative.

Be aware that mining Bitcoin only is not the only option to use your SHA256 ASICs. It's usually much more profitable to merge-mine simultaneously several coins that use the same PoW algorithm at the same type, so by mining bitcoin, namecoin and some others simultaneously your loses would drop down or you might even get a small profit.

Most miners are speculating that the future value of a bitcoin will be greater than the present value. No profit-oriented miner is happy about the current rate of increase in difficulty. Also, the current rate of difficulty is not a one-way phenomenon. Many factors could cause the difficulty to decrease, such as a flaw that was perceived to be un-fixable. If confidence in bitcoin in general were to drop, mining difficulty would drop as well as mining power and money fled to other virtual currencies.
Other people genuinely want to create an alternate payment network and/or currency and see their contribution in those terms, and not in monetary terms. For those people the price of bitcoins is not their primary motivation.

your answer is not correct, the only value is the exchange rate BTC/USD at best and what circulation there is, no altruistic value exists.

@user14248 I have seen this viewpoint expressed many times by members of the bitcointalk.org forum. You may not personally share their motivation, but that doesn't make it impossible for other people to see mining as a creative act.

Mining is not a creative act, It is a mechanical act!If it were creative you would not have this difficulty level rising. Also it is not a non profit organization, so therefore Bitcoin is tied to BTC/USD exchange.

That is not completely true. Mining is profitable if done in the right way. That means a miner makes more bitcoin with the investments then simply buying bitcoins.

@user14248 Your views are not universal.

It is hard to understand how mining can be profitable given the calculations on this page: http://www.vnbitcoin.org/bitcoincalculator.php which show that even with the latest hardware it is not profitable.

The answer is, as Nate explained, that the miner is a sunk cost. Obviously, no sane person would buy a miner if they knew they would be in the situation you described.
The future value of Bitcoins is almost irrelevant to the profitability of mining. You can get the same exposure to the profitability of Bitcoins by buying and holding. (The contrary assumption leads to comically absurd results.)
Sane people buy Bitcoin mining hardware because they expect to do better than they would if they used that same money to buy Bitcoins. Changes in difficulty or the cost of electricity may result in them not making money, but no human endeavor is certain to succeed.
As soon as it costs more to provide electricity to the miner than the value of the coins mined, the miner get shut off and retired.

Losing 20% a month?
Are you nuts?
I bought a miner from KNC last year, the miner arrived a couple of weeks late, but I counted on that.
Right now, If I sell my bitcoins as of today's price I would have not only ROI but earned quite a few dollars, not to mention If I would have sold when Bitcoin was at 1000$.
Anyway as of today my miner is mining 0.01BTC/day, that is roughly 30cents per month, which equals to 186$. It is still profitable for me to keep mining even if I deduce the electricity bill.
I am one of those that keep his coin in hope of better times, but if I were another kind of guy I would not only have got my investment back, I would have also earnt some nice bucks.

authors: Фанис Гафиятуллин


text:
Blockchain implementation in banks
Implementation of Blockchain in banks is said to be the new trend now. My question is: Would the private blockchain be kept private in a bank or will it be shared among a group of banks (or even possibly among all the banks)?
In the later case, is there no confidentiality issue, since a bank can know the transactions which are done by its competitors or its competitor's clients?

This would depend on the use case for which the bank built the blockchain.  In some cases, it might be for using internally, but other cases may require it to be shared between a group of trusted institutions, customers, and regulatory agencies.  Still other cases would require the bank to share the blockchain publicly, perhaps restricting it to a "read only" mode.
Banks are experimenting with the technology, but that doesn't mean they have yet figured out how (or if) they will use it.  Private blockchains still have questionable use cases, and bank-created public blockchains still have questionable legality.
This answer might also be of interest to you: Why are banks and other centralized entities interested in block chains?

Think of a blockchain-based implementation of the financial backbone as the modern-day equivalent of Automated Clearing House (ACH), the national standard for processing checks.
Based on banking documents and blockchain organizations focusing on blockchain-based solutions for the commercial banking sector the solution will be a permission-ed, national-level blockchain with each participating bank being allowed access to the network. In this affect each bank would also be a miner with no reward, just confirming the transactions are valid.
The matter of confidentiality will be determined by the customers, and will pick their method of banking accordingly.


text:
How often do miners update their block transaction list?
Assuming an interval where no block is found, do we know how often the typical miner updates his block transaction list with new transactions from the mempool?
I found a reference which suggests that the default update time is 60 seconds, but I'm not sure what software the pools are using to generate their block transaction lists.

This question is similar, but the answer doesn't really answer your question: http://bitcoin.stackexchange.com/questions/3335/under-what-circumstances-would-a-server-submit-new-work-to-a-miner

Welcome to the site!
It depends on the protocol being used.
Some protocols have the pool dictate how often the list of transactions is updated, and others have it defined by the mining client.
Stratum
In Stratum, the pool sends the miner a new merkle branch when it sees a new block or when a certain amount of time has passed. By default, it updates the list of transactions every 60 seconds.
Of course, this is only a default; a pool operator can change this.
GBT
In getblocktemplate with longpoll, the pool sends new work on block change, or after 60 seconds. (For bitcoind, at least.)
// Wait to respond until either the best block changes, OR a minute has passed and there are more transactions
...
checktxtime = boost::get_system_time() + boost::posix_time::minutes(1);

(Source)
In getblocktemplate without longpoll, the miner looks for new work every so often. 'Every so often' is miner-defined.
cgminer does it every 60 seconds:
static void gen_gbt_work(struct pool *pool, struct work *work)
...
if (now.tv_sec - pool->tv_lastwork.tv_sec > 60)

(Source)
bfgminer is user-configurable, but defaults to 60 seconds:
--scan-time <arg>   Upper bound on time spent scanning current work, in seconds (default: 60)

(Source)
Conclusion
Changing work every after the network finds a new block and every 60 seconds is by far the most common way of doing things.

The stratum protocol doesn't have a default interval to push new work. I think most pools use 30 seconds though.

stratum protocol doesn't have a default interval to push new work Technically, the Stratum protocol doesn't define how often you push new work. In practice, everyone uses slush's implementation, and slush's implementation does it, by default, every 60 seconds.

This is a really awesome answer Nick, and much more than I was hoping for.

I've been studying the 'min lead time' on transactions, which is the minimum time a tx pushed to the network needs to lead the block discovery time by, in order for it to have a chance at being included.
The results seem to agree with the 60s/30s update intervals you have described.   See here for graphs of estimated min lead time. Credit is due to organ of corti for the data.

Most pools have their own mining pool software, they don't use Slush's example implementation.


text:
How many different hybrid miners out there now that can mine bitcoin + litecoin at the same time? And where is a reliable source to buy them?
I'm looking to buy a hybrid bitcoin/litecoin miner. Which ones are reliable and where can I get them in the US?


text:
what would happen to an assigned block if the solo miner stops mining it?
As a solo miner, what happens to the block that has been assigned to the miner if after a short time he stops mining it altogether.

The "work" of mining consists of finding a "solution" to a list of transactions. The miners throw in a 'bonus' transaction paying themselves as a reward for solving the problem. But only if they solve their problem "fast enough" do they actually get paid. (Other people are solving their own problem, and there is only one global winner per block. Once a winner is found, everyone starts over on the next block)
In a pool, the master creates a block to work on (giving a bonus to the master) and gives it to the slaves. All the slave workers try to solve that one problem at the same time (adding their power together). If the solution is found in time, the master gets the bonus, and distributes it to the workers in the pool.
So if there are no workers in a pool, obviously no solution can be found, so the master won't get paid.
On the other hand, a "solo miner" doesn't have "assigned blocks". He creates his own problem (giving payout to himself). If he stops working on that problem, he doesn't get paid. Only people who solve the problem (fast enough) can get paid.


text:
Is it possible to verify or audit an exchange to determine how much bitcoin they have on deposit?
Is it possible to verify or audit an exchange (for eg. mnt gox) to determine how much bitcoin they have on deposit?
For example, they could publish one or more bitcoin wallet addresses and by examining the block chain the total amount of bitcoin held could be verified.

If they want to publish this information, it's certainly possible.
If they don't, nobody really knows. They have at least one Bitcoin address for receiving money from each customer, and probably many, many more. Knowing and tracking all of them would be impossibile.


text:
How to move sats from a lightning wallet back to BTC wallet?
How can I move sats from a lightning wallet back to a BTC wallet?
I installed BlueWallet and put $20 of Bitcoin in my wallet.  Then I created a Lightning wallet and moved most of the sats into the lightning wallet.
At this point I am totally stuck:

I can't find anything to send sats to, as a test.  Why did I just put funds in a lightning wallet I cannot use?

Is there a way to send funds back to my BTC wallet?   I read somewhere that the only way is to buy a BTC voucher with lightning and then redeem the voucher back to my BTC wallet?  Is this normal?

Is BlueWallet "meant to be" a one-way, BTC to lightning directional transfer only?

It is really strange that the above questions are so difficult to find answers for.   So confused.

I had many of the same questions when I first started using the lightning network and BlueWallet.
To move funds back to an "on-chain" BTC wallet you can use the exchange function.

Open your BlueWallet Lightning Wallet
Select Manage Funds
Select Exchange
This will take you to zigzag.io where you can send a lightning payment and receive BTC at a BTC address.

As far as using your Sats to pay for goods and services I like paywithmoon.com It can be used at basically any online retailer. It creates a one time use virtual credit card which you can fund via a lightning payment from your lightning wallet.

yeah that worked.  Since then, i have learned there there are wallets that make this easier for users.  One example is breez.

If I want to withdraw $400, the commission is around ~$17 ... Is there a better way?

This no longer seems to work. I cannot find the "Exchange" option in the "Manage funds" menu

I can't find anything to send sats to , as a test. Why did I just put funds in a lightning wallet I cannot use?

The lightning network is a young technology, but nonetheless there are plenty places online / IRL that accept lightning payments. A quick websearch brings up tons or results, for example:

https://yalls.org/
https://lightningnetworkstores.com/
https://acceptlightning.com/list.html

(I do not affiliated with and do not endorse any of those websites, they were simply some of the first examples that showed up in a web search)

Is there a way to send funds back to my BTC wallet? I read somewhere that the only way is to buy a BTC voucher with lightning and then redeem the voucher back to my BTC wallet?

Moving funds from lightning back to 'on-chain' bitcoin is as easy as sending a bitcoin transaction. There is no 'BTC voucher' or any other nonsense like that. Your wallet should be able to create a transaction that will close your lightning channel(s) under the hood, moving your funds back into a regular bitcoin address.
Note that some wallets might hide this functionality, for easier UX. You'll need to decide which wallet to use based on factors such as this (eg fine-grained control vs easy user experience).

Is BlueWallet "meant to be" a one way BTC to lightning directional transfer only?

I am not intimately familiar with Blue Wallet, but in general, no. Any good wallet should allow you control over your funds (including the ability to move funds out of a lightning channel, if desired).

You can do this in a variety of ways as others have mentioned - and one service I've used is coinos.io where you can send Layer-1 (onchain) bitcoin or Layer-2 bitcoin (Lightning), and then withdraw the other.
If you want to experiment with a bitcoin sidechain (Liquid) then you can also withdraw to that - whole other area though!
I like coinos.io because there it is completely anonymous; note though that you are trusting the service for the period between your deposit and your withdrawal. If you want to learn more about the service before using it, you can listen to the TFTC podcast #202 where Marty Bent talks with Adam Soltys.

I had the same question.  My lightning wallet would not accept an address from my on-chain wallet. Apparently, what you need to do is use a service that does atomic swaps.  I was able to use:
https://boltz.exchange/
You go there, no signup necessary, paste in your on-chain receiving address, set an amount of sats, then it will generate a new lightning invoice address, that you can paste into the lightning wallet send form.  The transaction will go through this service, they will convert from lightning to BTC and forward the BTC to your on-chain wallet.

Use wallet of Satoshi for beginning, it is really user friendly. You can easily move from layer one to layer 2 lightning, then back again.

Suggesting that a different wallet should be used is not a great answer.  Instead, it would be better to explain how on-chain and off-chain sats differ and the various options for achieving the desired outcome (independent from a specific vendor)

You can swap mainnet BTC with Lightning sats using any Lightning wallet on:
https://www.mtpelerin.com/


text:
How do I start mining?
I have only known about Bitcoin for maybe a month now.
I don't know what I need to start mining, but I had these two programs that were said to be needed for the Bitcoins. I deleted these programs and thought maybe I shouldn't mess with all this, but I just can't do that.
Please, any help on starting the process of mining and the way everything works would be much appreciated.

To be honest, you came in a little too late. Mining is now done by ASIC's (Application Specific Integrated Circuit). These are chips (like the ones Intel and AMD make) that are only capable of hashing SHA-256. These chips are very limited (they can't run any other software), but can do what they were made to do extremely fast.
An Intel 'universal' CPU can do somwhere around 1.2 million SHA-256 calculations (it is also running an Operating System in most cases), whereas an ASIC chip can calculate these hashes at around 4 billion a second, per chip. That's 4000 times as much. Also, when these chips are made to connect over Serial or USB, you could hook up 100 of these on one computer or Raspberry pi. It is quite difficult to scale up CPU's the same way.
Your best bet at mining would be to buy an ASIC miner and do a lot of research (preferably in opposite order; research first...). It is really easy to buy a miner right now and not make ROI (Return On Investment) because of the rising difficulty in Bitcoin. The rise of difficulty is stagnating a bit, but it is still rising. So please do some more reseach and know what you're getting yourself into.

Source: I have been mining myself for over a year now. I started out with graphics card mining and actually lost 1700 euros (2040 bucks) on the equipment. I now own ASIC miners and make a bit of profit every month. It takes me about 10 hours a week for maintenance, financial administration, trading/selling of (alt-)coins and I am still 'in the red' for about 800 euros (960 bucks). I like it a lot, even though my wife is not so happy with the space the miners take, the electrical bill being 400 euros higher each month, our house sounding like a server center and me spending more time on mining than on something else. Also, in the summer it's like I live in the tropics, with the heat generated by the miners.

Thanks so much for this information. I had no idea about the ASIC chip. Definitely going to research more on all this.

This is a really good piece of information. :) Thank you @MrJones


text:
When miners are working on their block, does everybody's block have the same transactions in them?
On Bitcoin-Wiki's page about Blocks, it says that "Bitcoin transactions are broadcast to the network by the sender, and all peers trying to solve blocks collect the transaction records and add them to the block they're working to solve.".
So, do all peers have the same transactions in their blocks at all times?

Miners will naturally be inclined to include those transactions in their blocks that give them high transaction fees (though exceptions exist), because apart from the block reward from coinbase transaction, those are the only incentives for miners. So, whatever transactions have reached a miner through the network, her choices will be restricted among those transactions. At a particular time instance, different miners most likely have different snapshots of transactions available to them. So, the answer is no (with very very high probability).

Thanks for the explanation. But now what happens to those transactions that don't get put in a block? Is there a limit on the number of transactions that can be placed in a block? Why wouldn't a miner want to include all the transactions received in a block? Sorry for asking so many questions, but I'm trying to build a simple Java cryto-currency that has the basics.

Txns that are not yet included in a block Have to wait until someone picks them. 2. Max block size is 1 MB and avg txn size is roughly 0.5 KB, so yeah, there is an upper limit. 3.Miner creates the block with txns of her choice, she is free to choose whatever she wants. Though the general trend is to chooce txns that ensures highest profit.

All valid unconfirmed transactions are broadcasted on the Bitcoin network, therefore all miners in principal have access to the same transactions.
However, the individual miners may receive knowledge of transactions in different order, select transactions to include in blocks by different rules, or may not yet have received every transaction that is currently unconfirmed.
Therefore, each miner has an individual subset of the same set of unconfirmed transactions.

Well long answer is No because transactions take time to relay between all peers. If you send coins from a multibit wallet you can see how many peers have seen the transaction, however it takes some time to relay it to all the peers.
Once a block is found, then ALL the peers get a notification that a new block was found and they add it to their respective chains. That is how all the peers stay synchronized on the same chain.
Hope I answered your question!

In addition, miners (or controllers for pooled mining) can include whatever valid transactions they want. They can (and do) use different rules for deciding which transactions to include.


text:
What is the weight of a block that contains no pay-to-witness scripts?
I'm trying to understand block weight, a metric introduced by segwit (BIP-141):
block weight = 3 * base size + total size

"base size" is the length of a pre-segwit block, which contains only serialized base transactions. "total size" is the length of a post-segwit block, which contains both serialized base transactions and serialized witness transactions (as defined in BIP-144). The weight of any block must not exceed 4 MB.
The weight of a block without pay-to-witness scripts can found by computing total size. It's tempting to set base size equal to total size:
block weight = 3 * base size + base size = 4 * base size

But this assumes the length of the serialization of a non-segwit base transaction equals the length of the serialization of a non-segwit witness transaction. This doesn't appear to be the case:

The witness transaction serialization format appears to follow the structure shown above (which is also the input to find wtxid). Notice two additional bytes before the list of inputs (marker and flag, respectively). Moreover, the witness requires at least one byte (the witness field count) even if no fields are present.
In other words, a witness transaction serialization will always be at least three bytes longer than a base transaction serialization, regardless of whether a witness is present.
If this is correct, then segwit is in fact reducing the block size limit for blocks devoid of pay-to-witness scripts by a factor proportional to the number of transactions in the block.
What am I missing?

The witness serialization format only applies to transactions that have witnesses. If a transaction does not have witnesses, then its witness serialization format is the non-witness serialization format.
From BIP 144:

If the witness is empty, the old serialization format should be used.

Thanks - silly mistake on my part. I even knew that's what BIP-144 said and somehow forgot it.

From BIP 144: If the witness is empty, the old serialization format should be used.
It is illegal to encode a transaction using the extended serialization format if the witness is empty. Another way to see it is that every transaction has a witness, which may be empty, and the correct way to encode that empty witness is using the old serialization format.
This also holds for the serialization done for the purposes of computing weight.
A non-witness transaction will be counted 3 times as its base size (which is the size of the serialization in the old format), and then once as its witness size (which is again the size of the serialization in the old format). The result is that the weight of a non-witness transaction is just 4 times its old size.


text:
As of today Jan-2014. How much drive space does the following coins blockchain data take?
As of today 2014-January-05.
How much drive space does each of these coins take after downloading the complete blockchain?

Bitcoin
Litecoin
PPCoin
Florincoin
Philosopher Stone
Norbits
Anonymous Coin

Or better yet, is there a website that shows all this data with these altcoins.

For Litecoin, it's 2.0GiB as of 2014-jan-05 (just the blocks folder).

-1 This is not a useful question, it requires an undue amount of work to answer completely, and encourages a multitude of partial answers.

6 january 2014
Bitcoin blockchain: 14.9 GB (the size of the /data/blocks folder)


text:
Updating my online wallet to not rely on the Blockchain.info API
I had a website which allowed me to send and receive bitcoins.
To achieve this, I used the Blockchain API to process notifications of received bitcoins and the same to process sending Bitcoin to other addresses.
Due to the fact that Blockchain forced me to change my calling method because they changed the API using node.js I was considering to move away from them.
However, I found lots of issues. The Blockchain wallet can be exported to MultiBit HD and the source code is available but due to my limit knowledge of Java I am not able do replicate the same use case flow. Also, due to the fact that MultiBit HD does not run as a service, I cannot use it on a vps server being that in case of restart the program does not start automatically.
So I tried to use BitcoinJ directly to process payments the software performs the following steps:

I create a new wallet with a new address.
When the software starts, it ask via web services the remote site to
see if there is some payments to be send to other addresses, creates a
transaction and then processes it.
But again due to my limit knowledge of Java I was not able to intercept the payment received on the address of the wallet.

I had also a problem because the software works on the testnet but when I move it to the production network the program seems to start downloading all the Blockchain.
Being that I am much better at C# I also tried to use NBitcoin but again with no success.
So I Google a while and found that it is possible to run Bitcoin Core and use an rpc call to process payments but Bitcoin Core needs to first download and validate all the Blockchain which is nearly 91GB.
So my question is this:
What I need is to code a service that uses a local wallet on a vps server (nix or win does not matter) with only a Blockchain address.
When a new payment is received in the address the program gets the amount of the transaction and communicate its to a website using web-service.
Programmatically, the same software asks the website if a new sending payment should be processed and in this case send the Bitcoin from the address.
The limitations are the following:
I do not want to use third party services or APIs like Blockchain or  Coinbase.  I do not want to download and process all the Blockchain.
Is there anyone out there that has faced the same difficulties and that can give some suggestions?
Thanks for any help

I do not want to use third party services or APIs like Blockchain o
  Coinbase. I do not want to download and process all the Blockchain.

If you don't want to use 3rd party APIs, you should have your own node which requires downloaded the full blockchain. There's blockchain torrent https://bitcoin.org/bin/block-chain/ that speeds up the download process, and there's advanced Bitcoin node libraries like http://bitcore.io that integrate with Bitcoin core.
There's more reliable blockchain as a service like BlockCypher https://dev.blockcypher.com which is programming language agnostic. I use it all the time and I am satisfied.


text:
Transaction validity clause: output must exist
I'm reading through the Mastering Bitcoin book and the section talking about what nodes check for to ensure a transaction is valid before accepting it refers to this:

Each node verifies every transaction against a long checklist of
  criteria:
...
For each input, the referenced output must exist and
  cannot already be spent.

However, I'm not sure exactly what it means for "an output to exist". How can an output exist if I am creating it now with this transaction?

After reviewing the structure of a transaction, I now understand what is meant by that statement.

The input is the UTXO, and the output is the output of that UTXO. So when it says the output must exist and cannot already be spent, it's saying the output of the UTXO must exist and not already be spent.

It says "referenced output", which means output of previous transaction. (The one you are spending.)


text:
altcoin execoin miner is infected?
looking for asic-proof alt-coins, I found one called EXE coin. however, it requires their version of the miner and it says standard miners won't work. firefox/waterfox claims the binary is infected. should I be looking for a different asic-proof alt coin or is that a false positive?

Related: http://bitcoin.stackexchange.com/a/30336/5464

Often these CPU miners are flagged by specific AV's heuristics, mainly because the program may be an exe with a hidden CPU mining algorithm within, which if it was any other exe like an image viewer, this suggests nefarious mining.
That being said, altcoin wallets and miners are notorious for malicious code, and Bitcoin is the target of more than 100 types of BTC stealing malware.
Since cgminer/cudaminer uses scrypt-n simply find a miner which has been vouched for (ie checksum of the exe should match).


text:
What would happen if 90% of the Bitcoin miners suddenly stopped mining?
What would happen if 90% of the Bitcoin miners were to suddenly stop mining Bitcoin, i.e. the Bitcoin network's hashing power would drop to 10% of the previous amount.
Would it become more difficult for the rest of miners to mine? Would transactions take longer than usual?

I'm not sure this question is actually based on anything - can you provide more information? Apart from the fact that the process of mining transaction blocks will never stop, this seems like an odd premise for a question.

The probability of 90% of miners suddenly stopping mining bitcoin is only slightly more probable than the chance of the sun going dark this afternoon.
Anyway, supposing that 90% of the active bitcoin miners were to suddenly vanish, the first effect would be that blocks would take much more time to be confirmed (10x longer, so 100 minutes per block instead of 10 on average). The next time the difficulty is adjusted (up to 2016 blocks later), the difficulty would be reduced such that blocks again take about 10 minutes to confirm depending on the new speed of the network as a whole. The difficulty is normally adjusted so that 2016 blocks is about two weeks, but if you just lost 90% of your hashing power then the next adjustment could be up to twenty weeks later.
The last time the difficulty was 10x less than it is now was around October 2013. You can see the difficulty history here .

"up to 2 weeks later" is incorrect - it is "up to 2016 blocks" (1007 on average), which is approximately 2 weeks; however, if 90% of the miners leave, it will be 10 times that, "up to 20 weeks later"

@AMADANONInc.: good point, I'll update.

I would like to note that in such a dramatic loss of interest of miners the coin could easily be considered dead, but even so there is no need to wait up to 20 weeks: crowd, still retaining faith could modify easily available sources, compile and agree on a new version of cliet/protocol which will lessen either the difficulty right away, or the remaining numbers of blocks to next difficulty adjustment.
This is possible, i believe, due to bitcoin being a network of consensus.
I am unable to speculate on consequences of such intervention for the blockchain, though.


text:
iPhone App for Bitcoin trading / transfering?
Is it any iPhone App that I can use to buy / sell / transfer easily Bitcoin? I want to be able to download from Apple's App Store.

You cannot buy Bitcoin with credit card as far as I know.
iOS apps are generally limited to either:

HTML5 client (Blockchain.info or GreenAddress.it)
a "pure" (ie no website integration) app like BreadWallet, Pheeva
A trading app (ANX), Coinbase

So buying BTC and managing or trading are very distinct functionalities, and you'll likely never find the former because of credit card fraud allowing for untraceable Bitcoins to be purchased. Also, most all purchases of Bitcoin (except OTC or cash LocalBitcoins.com transactions) require ID to allow fiat to BTC conversion.
The only exception I can think of is Coinjar.io which are rolling out a debit card in Australia which can be used like a normal credit card, but automatically debits a linked Coinjar BTC deposit.


text:
Possible to create 5+0$ founding transaction in Ligthning Network?
Watching a tutorial on how the Lightning Network works. Is it possible that only one party puts in money in the founding address / transaction?

The current protocol implementations only allow one party to fund a channel.
If only one party funds the channel, then the first payments can only be sent from the funding party to the counterparty. After that, subsequent payments could go both directions (until the entire channel balance rests with one party, at that point transactions could again only flow in one direction. It is not possible to have 'debt' in a channel).

The current protocol actually only has one party putting in the funds.

@AndrewChow oh! I actually wasn't aware of that, thanks. As I understand, it is technically possible to have both parties fund the channel, is there a reason this isn't included in the current protocol implementation?

It is technically possible, and there really isn't anything stopping people from doing that. The restriction is only for simplicity and easier use for the first version of the protocol.


text:
What are the differences between Bitcoin and DigitalCoin (DGC)?
What is the difference between Bitcoin and DigitalCoin? Is there any paper related to DigitalCoin?

DigitalCoin utilizes three separate encryption algorithms while BitCoin only uses sha-256. In essence, it is harder to compromise the DigitalCoin network because breaking just one of the three algorithms doesn't give you full control. Bitcoin is also vulnerable to 51% attack, or anyone with enough power to hash using sha-256 faster than the rest of the network can rollback time, edit blocks, rewrite transactions, etc. With DigitalCoin, you would need control over all three algorithms to even attempt such a feat. The complexity of which would be insanely high even if you did manage to control all three algorithms.

Hi baritus, thanks for your update here. I've some questions if you may: I don't understand why you would need control over all three algorithms, wouldn't it suffice to increase the mining power of one algorithm so that you intermediately have 51% of the mining power of Digitalcoin? Is there a rule against finding several blocks with the same algorithm?

Once you have 51% of the mining power in all three algorithms, why is it complex to create a longer alternate chain? I've also posted a follow-up question to your answer: How does difficulty get rebalanced in Digitalcoin's Multialgorithm mining?

@Murch, I believe it's similar to Myriadcoin, where the coin is mined by multiple algorithms and each are weighted differently in terms of how much work they provide. There is also a rule that you can't mine more than 2 blocks in a row with the same algo.

@Murch, a 51% attack requires at least that much hash rate to pull off. What is often not clarified is that the higher the percentage of the hash rate the attacker controls, the more chance he has at successfully creating an alternate chain. So at 51%, you can theoretically pull off an attack, but your likelihood of succeeding is very low because the other 49% will likely create blocks that invalidate your chain before you've been able to write a longer chain than the current one and broadcast it to a majority of the network.

@Murch, therefore, successfully attacking a three algorithm crypto-currency requires majority control over every algorithm as well as a lot of luck to find consecutive blocks on all the algorithms.

I'm aware how a majority attack works. DigitalCoin being more resistant to it than a single algorithm altcoin of similar total mining power, fine, but I don't understand why DigitalCoin is supposed to be more resistant to it than Bitcoin. Achieving a majority in all three algorithms seems to be a low hurdle, and after that there doesn't seem to be a major difference to having the majority in a single algorithm coin. Once you have a majority, over time you are likely to build the longest chain. Is there a mathematical treatise available somewhere?

DigitalCoin is just one of the many copycats of Bitcoin, probably made up by people who (mistakenly) think they missed the boat with Bitcoin, and now try to get rich quick by creating their own variant (which really doesn't add anything significant compared to Bitcoin). After easily mining the first DigitalCoins themselves, they hope to see the price rise. I don't see it happening though (as with almost any altcoins).

Judging from the ANNouncement on BitcoinTalk, it is a Scrypt based cryptocurrency deriving from Bitcoin.
It has a limit of 144,500,000 units, a different reward schedule, and aims for confirmations every 40 seconds. They also probably use a different difficulty retargeting algorithm, as they mention faster difficulty adjustment.
Besides that I didn't see any special features distinguishing it from other altcoins.
I was unable to discover a (white) paper dealing specifically with DigitalCoin.

The  documentary  series  by  Paul  Grignon  “Money  as  Debt “ which  includes “The Essence of
Money, explains well about digitalcoin. Information from that documentary makes me conclude that digitalcoin and bitcoin are different concepts.

There is a "DigitalCoin" that uses the source code of Bitcoin. Perhaps there is another DigitalCoin, that preceded Bitcoin? If that is what you are talking about, please clarify it in your question. Otherwise, feel free to add your own answer that improves on mine. :)


text:
How often do I need to backup my Copay wallet? Is a new backup after every transaction necessary?
Is it true that I need to make a backup after each time an amount was sent from a wallet by writing down the 12 words?
Unfortunately, I had Copay and saved only before the transaction was sent, and now I can not get back the remaining amount.

As long as you did not import any additional private keys manually, you do not need to make a new backup every time. Those 12 words can be used to restore all addresses in your account, past, present, and future.
If you imported any additional keys manually, you will need to make a backup every time you import a key, since they are not linked to the 12 words.

Do you know what the key represents what I get after scanning? https://bitcoin.stackexchange.com/questions/75043/what-key-is-show-after-scan-addresses-for-funds-in-copay


text:
Can you mine without transactions?
As far as I know, mining means verifying transactions and thus keeping the Bitcoin network alive.
Today, at a local meetup, some people have informed me that mining doesn't need transactions. They said that even if there are no transactions waiting to be verified at all, you can just mine away based on the previous block's "hash", and as soon as you find the right salt you create a new block.
That would mean you don't do anything by "mining" except for blowing a bubble. Where is my logic flawed?

Possible duplicate of If there was a period of time with no transactions, what would miners have to do?

similar: What happens if there are no transactions in a block?. If you believe it’s different, please [edit] the question, make it clear how it’s different and/or how the answers on that question are not helpful for your problem.

This is essentially correct: the protocol leaves it up to the miner to decide which transactions  to include in a block.  There is no requirement for them to include any transactions at all, other than the "coinbase" transaction which specifies where to send the block reward.
However, most transactions have fees attached, which the miner can collect only by including those transactions in the block.  So this gives the miner an incentive to include transactions if there are any outstanding.
Note that a block with no transactions does still contribute to the security of the currency: it increases the amount of hashing that an attacker would need to do to reverse a transaction recorded in a previous block.  (They would have to produce a chain showing more work than the current one, including the work proved by the zero-transaction block.)
See also Does mining activity only exist if there are bitcoin transactions?.

There are always transactions waiting to be verified. Every Bitcoin transaction ever performed is waiting to get one more verification. Even if you don't include any transactions in a block, that block adds proof of work to every transaction in every prior block.


text:
How do Bitcoin transactions work, and what does one need in order to send or receive one?
I am trying to understand how Bitcoin works and whether it is possible to manage a bitcoin transaction anonymously.
If someone transfers a bitcoin, what do I need to sign it with?
Can it be signed using another bitcoin? What is the id that is used to sign the bitcoin over to me? Is that not an identifier?
How many identifiers can one have and how to do you get such an identifier/wallet?
Problem is that if you have one wallet then all related transactions can be found, so to stay anonymous you actually need many wallets. How do you get a wallet?
Can you create a wallet per bitcoin transaction?

Welcome to Bitcoin.SE. You seem to be getting ahead of yourself by jumping to conclusions that aren't correct. The "identifier" you are looking for is [tag:address]. Perhaps it would be best, if you do a bit more research and then ask a new question with a focussed topic. I think you may be interested in: What's the difference between a wallet and an address?, I am new to Bitcoin, how can I get started?, How anonymous are Bitcoin transactions?

I've edited the title of your question and hope that it is along the lines of what you had in mind.

You are using some Bitcoin vocabulary, but you are jumping to conclusions that aren't correct.
Quick vocab session:

Addresses can be used to receive payments.
Wallet is a term used for a collection of addresses.
The sender needs to sign a transaction using a private key

When you receive a Bitcoin transaction, you don't have to sign anything. In a transaction the recipient is passive, similarly to receiving a letter in the mail he doesn't have to do anything at all. Whenever he looks at his mailbox at a later point in time, the letter will wait for him; whenever you check the blockchain your address will have a balance associated with it.
The recipient of a Bitcoin transaction doesn't even have to be online at the time of the transaction. However, he does need to have a Bitcoin address, where the payment may be directed.
The identifier you are asking about seems to be such an address. The good news is, you can have as many addresses as you want.
Wallets are essentially an abstract construct to talk about a collection of addresses. It cannot be discerned from the addresses alone that they belong to the same wallet, so you don't necessarily give up a lot of information when you have several addresses in the same wallet.
However, by analysing interactions between addresses it is possible to guess that they are controlled by the same entity, e.g. guessing which transaction output is the change from a transaction, or funds being spend from different addresses in one transaction.
See What's the difference between a wallet and an address? for more information about that.
Concerning anonymity, I'd suggest having a look at How anonymous are Bitcoin transactions? and the tag anonymity.

In an instance such as this. It sounds like you are talking about the physical software wallet. Unless you are a programmer you definitely do need this. The vanilla wallet takes too long to get up to date with the blockchain. Something such as multibit (which you can google) is a lightweight client that downloads only a part of the blockchain instead of the whole.
Multibit is relatively easy to use.
To learn more about wallets you should look towards some youtube videos as there are many
of those that have visual walk-throughs that would be much faster to understand than  plain text.


text:
Passphrase lost for my wallet.dat
I need help to unlock my passphrase. I don't remember setting up one, but now there is a pasphrase. Eitherway I am unable to send out coins from my LitecoinQt to the exchange.

unfortunately there is no easy way to recover the password, you can try bruteforce but you will need a lot of computing power

Do you recall any possibilities?

What do you mean, you don't remember setting up a passphrase?
Either you did do it yourself, or someone else had access to your computer and set a passphrase, effectively disabling your money.

Did you:

Change your client software?
Change your operating system?
Install Updates eg. Java/Qt/...?
Swap ISP?
Checked blockchain.info (for transactions on your wallet?)

My first assumption would be that you got hacked (if your wallet.dat was in it's predefined environment) and that the one controlling has added as password or you have encountered a bug somewhere which has not been reported and fixed.
If you could add your litcoin address(es) I can do some investigation.
Thank you.
Best regards,
Nico

It's unclear why a hacker would add a passphrase to someone else's wallet, when it would be more effective to just copy the private keys and transfer the coins to their own address.  Unless they did it by mistake.

I've had issues before with TeamViewer where the keyboard's symbols are either wrong (eg € or £ instead of &) or dead keys are hit making c` into ć

@NateEldredge not entirely true. I had a test system for malware for Windows wallets and EXEcoin had malware which encrypted the dat file and tried to send it via ftp. It's plausible malware malcontents would wait if the wallet showed significant activity ie to wait for more BTC from those keys. But it's much more likely OP forgot the password

@NateEldredge It would be marginally less suspicious to encrypt the wallet than delete it or steal them outright. Encrypting it is something you might do and forget about.


text:
What are the possible Doomsday scenarios for the 2016 Halving from 25 to 12.5 BTC per block solved?
The 2016 halving is coming from 25 to 12.5 BTC solved for every block. For us to understand the effects. What are some possible doomsday scenarios that can happen?

I just saw that the bounty on this question says "current answers do not contain enough detail". Could you please specify what you'd like to know more about? There were no clarifying comments on my answer.

I think you might be referring to the hypothesis that a large portion of the mining power would switch off right at the halving. This is theorized to kick off a chain reaction:

Lower network hash rate causes slow blocks
Slow blocks increase block space competition
Block space competition increases fees
Increased fees push users off network to competing coins
…
Bitcoin fails

I think this theory is a bit of a slippery slope:
Hashrate
More than half the hashrate has only come on-line in the past half year. Mining companies should be well aware of the Halvening and I'd expect them to consider it in their financial planning. Some might miscalculate its effect, but it shouldn't come as a total surprise.
I'd expect investments into mining hardware to slow down in the time before the Halvening, and mining companies to keep close watch on their revenue immediately after it. They'd first turn off the least efficient hardware, which reduces their cost the most and also has the least impact on their hashrate. Every piece of hardware that gets turned off makes the remaining hardware more profitable. It may dip, but gradually would find a new balance.
Similarly, some altcoin might be more profitable suddenly. Yet, as mining power switches over, competition for that altcoin's revenue gets more fierce, while the reduced hashrate in turn makes Bitcoin more profitable for the others.
Block space
More competition to enter the blockchain would not end the world. In some subreddits the narrative seems to be that full blocks would necessarily cause unconfirmed transactions to grow limitlessly. However, it seems much more likely that people would consider their transactions more carefully, and block space would be used more efficiently. E.g. major Bitcoin companies that do two transactions per payout would probably find a way to save some of those, mining pool minimum payouts might increase, you'd combine transactions where possible. Besides, it seems likely that SegWit would be deployed by then and block space might be less of an issue in general.
Competing coins
Bitcoin is the coin with the greatest security and utility. Paying premium for a feature that you don't need seems silly. If people move to other coins for low amount transactions, one or two of them might see a renaissance, but they wouldn't be able to overtake Bitcoin because they'd have all the same problems with scaling, governance, and software evolution once they get a similar amount of attention.
TL;DR: If the network's hashrate dips, it seems unlikely to happen instantaneously. It may decrease a bit over time. The resulting pains would incentivize more efficient behavior, but I don't see how they'd cause Bitcoin to fail.

There was a well written article about this issue once the halving hits. I'm not sure where that is anymore. It speaks about what you stated aswell.


text:
Who are you solving algorithms for and why?
I am sick to death of people responding to my question with logistics of "how to" mine data or just that you are solving "mathematical concepts" and "algorithms."  What I do understand is this - some "organization" seems to think it is worth A LOT of money to have the public data mine for them (i.e.: bit coin payments for solving data). My question is what is this data used for, who is using it, and why?  No one seems to know and anytime I've encountered a secret this well hidden, it usually is nefarious under the surface.

Just to give an example for those sheeple who gave me negative feedback for asking a question - if some stranger came up to you and asked you to deliver a package for $1,000 to another stranger, and when asked what was in the package, just replied with "stuff - it doesn't matter" would you deliver it? Who knows what you're doing or what the reprocussions are?  This "blind trust" mentality is disconcerting to me in an age when rampant identity theft, privacy infringements, and hacking are on the rise

I don't see how your package delivery analogy relates to your question. Are you asking how do you know the solution found isn't useful for something else?

Undid the downvote: found the question legit, though a bit conspiranoic. The software is open source, so to keep with your analogy the package you're asked to deliver is made of transparent plastic so you can clearly see to the content: paper sheets with long excerpts from accounting books, listing inputs and outputs plus a final set of seemingly-random numbers. Plus, from time to time, the recipient just throws it into the garbage bin right away saying "thanks, but too late" (and then refuses to pay you, the darned!)

Good analogy Joe

The algorithm of choice is two rounds of SHA256, which has completely arbitrary outputs and a massively unsearchable output space. To this end, there is no data mining or valuable calculation actually being done. Here's what's really happening:
Every so often, the rules of the Bitcoin protocol set a difficulty number. This number sets a sort of target for a value miners are looking for. Since the output of SHA256 is essentially random with respect to its input, miners are all just looking for some random value in a given field that makes SHA256(SHA256(x)) return a value within a specified range. Such a value is considered a "solution" to the mining problem, but really it's less like math and more like throwing darts while blindfolded until you hit the bullseye. The changing difficulty number ensures that block solutions will be found at regular intervals no matter how many people are mining.
This solution does not hold any valuable data or information of any kind, except that it proves that someone somewhere had to have done a lot of work to find a value that produced the desired output. This also means that for someone else to fake that data they would also have to do a lot of work.
Since each block of data references the block before it, these hashes - and the work it took to create them - also stack up, meaning that older data would require a TREMENDOUS amount of computational power to falsify, since you'd also have to falsify every block that came after it, faster than the entire network combined is solving new blocks. This is the entire underlying security mechanism of Bitcoin: Data in the Blockchain represents a consensus and this is the way a network of people with no other trust mechanism reach a consensus.
This is likely why you've had such a hard time finding an answer to your question: There isn't anyone you're solving algorithms for and the only "why" is "because it's hard work, and fraudsters would have to do more hard work than everyone else combined to lie to the network."
Finally, as to the "someone thinks this is worth a lot of money" - there are two sources of mining income. The first is transaction fees paid by those whose transactions are in the mined blocks, which seems pretty reasonable given that the miners' work is the only reason that data will be trustable. The second is the block reward.
One of the more difficult problems to solve when decentralizing a currency is deciding who gets the initial run of the stuff. In this case, it was decided that the miners who are doing valuable work to secure the network should receive that initial issuance, in the form of a "block reward." Every so often this reward is cut in half and eventually it rounds down to zero. At that point all 21 million bitcoins that will ever exist will have been mined and the only reward miners will continue to receive is the transaction fee.

I appreciate your information and am really trying to digest and consider it - but I think I'm just too much of a skeptic to think the process is futile (other than the intrinsic labor involved) and the process of generating the currency is essentially valueless. Are you able to tell me what source has helped you determine that there is no underlying purpose to the data - especially since the algorithm SHA256 was designed by the NSA and published by NIST in 2001?

Just to validate my claim, the NSA holds the U.S. patent to SHA256 - Patent #6829355 under the title of Lily Glenn.  Reminder here, the original name for the internet was Darpanet - so it sounds to me like bit coin miners are doing authenticity certification for the U.S. government.

The code is open source. The chance of someone not noticing purposeful data patterns as your query suggests is minuscule and doing could possibly allow profits of ~$13000 per 10 minutes; great incentive to investigate. Let's say all possible hashes (guesses) were recorded from miners though. That data only proves how secure and predictable SHA256 is as an encryption protocol. The difficulty (number of guesses to "win") has been increased since BTC's inception and is done so very simply. SHA256 has always held up to scrutiny.

It is not the "process of generating the currency." It is the process of securing the network. It was a choice by the designers of the software to make the initial issuance of the currency to those who were securing the network, but aside from that choice the two are unrelated. Mining is nothing more than doing a lot of work so that others have to do more work in order to cheat, plain and simple. The monetary side was simply psychological - an incentive to do the work.

True. It's network security but I felt this instance needed to aim at the monetary side since OP's query used the $1000 package analogy

The fact that all those hash computations (and the electricity burned in them!) serve no other useful purpose than securing the Bitcoin network is well-known, it's actually one of main criticisms of this crypto-currency (and its derivatives who use the same concept of proof-of-work).
Paul Krugmanhas decried it, ecologists have decried it, others have decried it as well. So far, only miners of Primecoin (and its derivatives) do work with actual value outside securing the network (i.e. finding long chains of prime numbers). Now you can go doubly paranoid trying to find whom you're finding long prime chains for, and for what nefarious purpose...
(Actually, this research benefits the NSA, CIA, MOSSAD, DGSE et al. just as much as your college's math department).
There are some coins coming, such as Permacoin and Maidsafecoin, which actually reward you for storing data - thereby converting your harddrive into part of a distributed, redundant cloud storage.
Triple conspiranoid points if you can guess whose information you're preserving, and what it may be: Wikipedia backups? Unauthorized government leaks? Info. gathered by Big Brother from unsuspecting innocent citizens? Detailed terrorist plans? Bomb designs? Child porn? 3D-printable guns? All of the above???

I don't think, given our current climate, that OP's query is unwarranted. Do you?

@AussieCryptocurrency in a way, yes it is. By definition, you cannot prove you did not do anything, you can only prove you did do something. You may give alibies, but if I question your original purpose, I may question your alibies as well, and your witnesses, their alibies, etc. ad nauseam. No amount of evidence is enough to convince he who from the very beginning has made up his mind about something. But you do can point out plenty of other, very smart people see things the same way - which isn't his'. Theoretically you do can outsmart everyone else, though very rare it'd be...

I know what you're getting at. It's almost like creationists decrying evolution. But let's not go there. I think your analogy used earlier was perfect. We've yet to hear back from OP though...