Pages:
Author

Topic: Could proof of Blockchain (PoBC) be the solution to ASIC industrial mining? - page 2. (Read 4813 times)

full member
Activity: 280
Merit: 100
Interesting, so tell me do you have the capacity to code such a novel idea into reality?

member
Activity: 93
Merit: 10
Several things going on in Cryptocurrency and Bitcoin in particular have been bothering me.  First, mining is becoming increasingly centralized into industrial operations.  Second, there is no incentive for people to operate a full node with blockchain history.  Third, specialized hardware (ASIC) is causing a runaway in difficulty and removing any possible RoI for small miners.

I have an idea which could address all three issues to at least some degree. 

Most coins out there today use proof of work (PoW), proof of stake (PoS), or a combination of the two.  Proof of work has led to the runaway difficulty out there as the only way to make more is to add more hashing power.  We are far beyond the amount of hashing power needed simply to keep the network secure.  Some of the estimates of power useage for mining claim enough wattage to run a city.  Proof of stake has its own issue.  Sitting on a stake means that there is a counter incentive to using the currency for transactions.  This leads to hoarding rather than economic activity.

What if we tried a proof of blockchain (PoBC) model?  In order to generate a valid hash you need access to the entire blockchain or at least information from every block in the blockchain.

Currently, in Bitcoin, a hash is generated as follows:
sha256(sha256(block_header))

I’d like to see a hash generation done this way instead:
   sha256(sha256(block_header)+history_block_hash))

1. Start with the header of the block being worked. 
2. Generate the first sha256 checksum.
3. Use the last 32 bits of that checksum as an index into the blockchain history which could return anywhere from the first block up to the last block generated before the one being worked.
4. Use the selected history block to generate another hash (more on that later).
5. Append the history hash to the first header hash.
6. Generate the outer hash over the header and history hashes.

As for how to generate the history hash I can see three methods of doing it.  Each requires a different amount of information to be available and the technique selected can be determined if you want to give the miner a chance of keeping the entire working set in memory or if you want to ensure frequent trips back to disk (unless the miner has terabytes of RAM).

1. Use the hash of the selected block (smallest amount with only 32 bytes per block needed).
2. Use the header of the selected block with the current block inner hash appended and then generate a hash on this (80 bytes per block needed).
3. (my favorite) Take the entire selected block with the current block inner hash appended and then generate a hash on this (requires the entire blockchain to be available).

So, why would we want to do this? 

First, it should stop the ASIC miners in their tracks.  For even the smallest history dataset above you would need to have 16MB of working data per year of blockchain if the block generation time is set at one minute.  The ASIC can’t store this much information internally so it will be going back to an external store for every computation.

Next, it promotes having more copies of the entire blockchain on more computers.  If you want to mine, you will have to dedicate more hardware and storage.  This will make it much harder for the industrial size miners to scale up as they can’t just add racks of ASIC chips.  There are ways of scaling but they will require high speed networks or lots of storage per mining node.  I’m not even sure a GPU miner will work under this model.  It may be better to go back to the old days of CPU mining.

I’m curious if anyone has explored a concept like this for an altcoin.  I see this as being a way to force a coin to scale out since anyone wanting to mine will need to operate a full node containing the entire blockchain.

I’d also like to come up with a way to prevent too much hashing power from being concentrated on one copy of the history.  If anyone has an idea for how this could be achieved I’d really like to hear it.  This would be another way of preventing the industrial miners from sucking all the air out of the room.  I’d much rather see 100,000 small miners (and full network nodes) than 10 giants.

Hope this can spark some discussion.  I decided to post it under the altcoin area since I don't think the existing Bitcoin could be modified to incorporate such a concept.  Plus, it would be so disruptive to the status quo in Bitcoin that it would never be accepted if it could be done.

StuffOfInterest (hobby miner, programmer, and what if idea speculator)


Make a coin out of your idea instead of discussing it any further.
legendary
Activity: 1260
Merit: 1000
I’d also like to come up with a way to prevent too much hashing power from being concentrated on one copy of the history.  If anyone has an idea for how this could be achieved I’d really like to hear it.  This would be another way of preventing the industrial miners from sucking all the air out of the room.  

I talked about that in this post:  https://bitcointalksearch.org/topic/bitcoin-capitalism-vs-bitcoin-socialism-and-the-inevitable-death-of-sunny-king-395769

The only thing I could come up with is ditching Bitcoin's "infinite" wallet address solution and making it so each user only has one wallet, which makes it much easier to assign global variables to the system to cap people's possible mining rewards per day.

So basically, the "fairer" the coin, the less privacy you get unless it also implements native coinjoin or something like that.
legendary
Activity: 1260
Merit: 1000
We will need the Sunny King batphone for this.
hero member
Activity: 826
Merit: 1001
@Bit_John
Several things going on in Cryptocurrency and Bitcoin in particular have been bothering me.  First, mining is becoming increasingly centralized into industrial operations.  Second, there is no incentive for people to operate a full node with blockchain history.  Third, specialized hardware (ASIC) is causing a runaway in difficulty and removing any possible RoI for small miners.

I have an idea which could address all three issues to at least some degree. 

Most coins out there today use proof of work (PoW), proof of stake (PoS), or a combination of the two.  Proof of work has led to the runaway difficulty out there as the only way to make more is to add more hashing power.  We are far beyond the amount of hashing power needed simply to keep the network secure.  Some of the estimates of power useage for mining claim enough wattage to run a city.  Proof of stake has its own issue.  Sitting on a stake means that there is a counter incentive to using the currency for transactions.  This leads to hoarding rather than economic activity.

What if we tried a proof of blockchain (PoBC) model?  In order to generate a valid hash you need access to the entire blockchain or at least information from every block in the blockchain.

Currently, in Bitcoin, a hash is generated as follows:
sha256(sha256(block_header))

I’d like to see a hash generation done this way instead:
   sha256(sha256(block_header)+history_block_hash))

1. Start with the header of the block being worked. 
2. Generate the first sha256 checksum.
3. Use the last 32 bits of that checksum as an index into the blockchain history which could return anywhere from the first block up to the last block generated before the one being worked.
4. Use the selected history block to generate another hash (more on that later).
5. Append the history hash to the first header hash.
6. Generate the outer hash over the header and history hashes.

As for how to generate the history hash I can see three methods of doing it.  Each requires a different amount of information to be available and the technique selected can be determined if you want to give the miner a chance of keeping the entire working set in memory or if you want to ensure frequent trips back to disk (unless the miner has terabytes of RAM).

1. Use the hash of the selected block (smallest amount with only 32 bytes per block needed).
2. Use the header of the selected block with the current block inner hash appended and then generate a hash on this (80 bytes per block needed).
3. (my favorite) Take the entire selected block with the current block inner hash appended and then generate a hash on this (requires the entire blockchain to be available).

So, why would we want to do this? 

First, it should stop the ASIC miners in their tracks.  For even the smallest history dataset above you would need to have 16MB of working data per year of blockchain if the block generation time is set at one minute.  The ASIC can’t store this much information internally so it will be going back to an external store for every computation.

Next, it promotes having more copies of the entire blockchain on more computers.  If you want to mine, you will have to dedicate more hardware and storage.  This will make it much harder for the industrial size miners to scale up as they can’t just add racks of ASIC chips.  There are ways of scaling but they will require high speed networks or lots of storage per mining node.  I’m not even sure a GPU miner will work under this model.  It may be better to go back to the old days of CPU mining.

I’m curious if anyone has explored a concept like this for an altcoin.  I see this as being a way to force a coin to scale out since anyone wanting to mine will need to operate a full node containing the entire blockchain.

I’d also like to come up with a way to prevent too much hashing power from being concentrated on one copy of the history.  If anyone has an idea for how this could be achieved I’d really like to hear it.  This would be another way of preventing the industrial miners from sucking all the air out of the room.  I’d much rather see 100,000 small miners (and full network nodes) than 10 giants.

Hope this can spark some discussion.  I decided to post it under the altcoin area since I don't think the existing Bitcoin could be modified to incorporate such a concept.  Plus, it would be so disruptive to the status quo in Bitcoin that it would never be accepted if it could be done.

StuffOfInterest (hobby miner, programmer, and what if idea speculator)


I love the idea now about the implementation.
sr. member
Activity: 406
Merit: 252
Despite my devils'-advocate post, I really would like to see some discussion about this idea. It seems far more interesting than cobbling random algos together and mistakenly claiming it's ASIC-proof.
sr. member
Activity: 406
Merit: 252
ASICs are good for bitcoin. They do not lead to centralization any more than GPUs do. Pre-ASIC bitcoin had more threats to its network and was less secure than post-ASIC bitcoin. Remember the days when GPU-based pools had over 51% of the hashing power? ASICs make the network stronger. Centralization is indeed a problem, but it is not a function of ASIC technology any more than marketing, pool features, trends, etc. Moreover, Bitcoin is a payment system designed to be used for transactions of buying and selling goods and services in a secure, trustless manner. Bitcoin is not designed to enrich new adopters or make things "more fair" for the latecomers. I'm not averse to innovation, but I am skeptical of proposals that reinvent a system that seems no more secure than Satoshi's. Perhaps some more details would persuade me?

Personally, I trust sending large amounts of bitcoin over the bitcoin network precisely because it is has ASICs securing it. I would have less trust in the bitcoin network if it used another means to secure my bitcoin transactions.

sr. member
Activity: 401
Merit: 250
Several things going on in Cryptocurrency and Bitcoin in particular have been bothering me.  First, mining is becoming increasingly centralized into industrial operations.  Second, there is no incentive for people to operate a full node with blockchain history.  Third, specialized hardware (ASIC) is causing a runaway in difficulty and removing any possible RoI for small miners.

I have an idea which could address all three issues to at least some degree. 

Most coins out there today use proof of work (PoW), proof of stake (PoS), or a combination of the two.  Proof of work has led to the runaway difficulty out there as the only way to make more is to add more hashing power.  We are far beyond the amount of hashing power needed simply to keep the network secure.  Some of the estimates of power useage for mining claim enough wattage to run a city.  Proof of stake has its own issue.  Sitting on a stake means that there is a counter incentive to using the currency for transactions.  This leads to hoarding rather than economic activity.

What if we tried a proof of blockchain (PoBC) model?  In order to generate a valid hash you need access to the entire blockchain or at least information from every block in the blockchain.

Currently, in Bitcoin, a hash is generated as follows:
   sha256(sha256(block_header))

I’d like to see a hash generation done this way instead:
   sha256(sha256(block_header)+history_block_hash))

1. Start with the header of the block being worked. 
2. Generate the first sha256 checksum.
3. Use the last 32 bits of that checksum as an index into the blockchain history which could return anywhere from the first block up to the last block generated before the one being worked.
4. Use the selected history block to generate another hash (more on that later).
5. Append the history hash to the first header hash.
6. Generate the outer hash over the header and history hashes.

As for how to generate the history hash I can see three methods of doing it.  Each requires a different amount of information to be available and the technique selected can be determined if you want to give the miner a chance of keeping the entire working set in memory or if you want to ensure frequent trips back to disk (unless the miner has terabytes of RAM).

1. Use the hash of the selected block (smallest amount with only 32 bytes per block needed).
2. Use the header of the selected block with the current block inner hash appended and then generate a hash on this (80 bytes per block needed).
3. (my favorite) Take the entire selected block with the current block inner hash appended and then generate a hash on this (requires the entire blockchain to be available).

So, why would we want to do this? 

First, it should stop the ASIC miners in their tracks.  For even the smallest history dataset above you would need to have 16MB of working data per year of blockchain if the block generation time is set at one minute.  The ASIC can’t store this much information internally so it will be going back to an external store for every computation.

Next, it promotes having more copies of the entire blockchain on more computers.  If you want to mine, you will have to dedicate more hardware and storage.  This will make it much harder for the industrial size miners to scale up as they can’t just add racks of ASIC chips.  There are ways of scaling but they will require high speed networks or lots of storage per mining node.  I’m not even sure a GPU miner will work under this model.  It may be better to go back to the old days of CPU mining.

I’m curious if anyone has explored a concept like this for an altcoin.  I see this as being a way to force a coin to scale out since anyone wanting to mine will need to operate a full node containing the entire blockchain.

I’d also like to come up with a way to prevent too much hashing power from being concentrated on one copy of the history.  If anyone has an idea for how this could be achieved I’d really like to hear it.  This would be another way of preventing the industrial miners from sucking all the air out of the room.  I’d much rather see 100,000 small miners (and full network nodes) than 10 giants.

Hope this can spark some discussion.  I decided to post it under the altcoin area since I don't think the existing Bitcoin could be modified to incorporate such a concept.  Plus, it would be so disruptive to the status quo in Bitcoin that it would never be accepted if it could be done.

StuffOfInterest (hobby miner, programmer, and what if idea speculator)
Pages:
Jump to: