Pages:
Author

Topic: 10 minutes blockchain vs difficulty level (Read 1856 times)

member
Activity: 140
Merit: 12
December 04, 2017, 03:05:07 AM
#48
Quote
2). As I indicated before, just because we could hash at 1 second it doesn't mean we have to confirm the block right away..? What about if we create a build-in a time delay on the off chain/ second layer (e.g. the Lightning Network, which acting as a "trafiffic cops") , let say if it's less than 5 minutes then put in a counter to count up to a fixed interval..?  I also have heard that the bitcoin core code doesn't like to use loops for the obvious reason...Look, I'm not a software developer, but I'm an automation engineer, I believe there are options that we all need to explore before we quickly shut all the doors and declare that it's impossible to address the problem...

As more technical people joining this community, we will continue to hear voices raise regarding how wasteful the hashrate and the difficulty levels are being used on bitcoin blockchain...

[/quote] No doors have been shut. Bitcoin is moving more than 2 billion dollars per hour, worldwide. Making up new numbers for block generation target time out of thin air is silly. Adding gizmos and widgets to try to patch up a broken block generation target time is even sillier. As I said earlier, feel free to start an altcoin. Cryptocurrencies are one of the few truly free markets in the world. But these proposals are incompatible with Bitcoin.
[/quote]

Once again, your point is well taken:  I agree that they're a lot at stake right now - technically, politically, the geo-political and PR, etc...i sometime feel that this is bigger than bitcoin or even blockchain technology.  I believe that what ever happens in the next several years, will potentially impact and shape the destiny of humanity...

To your point, what ever we do to the bitcoin network today would be like fixing an airplane  while flying in the air...but we also want to protect the airplane from being shot down...
member
Activity: 98
Merit: 26
December 03, 2017, 11:35:04 PM
#47
1). Assuming that we all trust your assessment that 10 minutes is an optimal interval between creating new block.  

No one said it's optimal. Without any other empirical data, however, it's good enough. It gets the job done. The interval could surely be lower but no one knows how much. Nine minutes? Eight minutes? We don't know. Bitcoin is in alpha development and security has to come first. The Bitcoin network, today, moves more than two billion dollars per hour (see here). We can be quite sure that 10 minutes is enough because propagation delay for unobstructed light around the planet is about 7-8 seconds. That means that there is enough time for almost 100 network-wide updates before the next block is due to arrive. The probability that the network could not reach consensus in this time is virtually zero. And that's precisely where we want it to be - virtually zero.

Quote
As someone has mentioned here before, it wouldn't be a bad idea for us to plot out the chart and analyze to see what the best blockchain interval should be .?  

That will be a great PhD project in 10-20 years' time: "Minimizing Bitcoin block time based on empirical evaluation of mean network-wide time-to-consensus."

Quote
I'm still leaning how to use the bitcoin core full node, once I'm getting familiar of my way around, I could definitely doing some data analysis...perhaps, 5 or 3 minutes could be more sufficient ?..

Or perhaps 5 seconds or 3 seconds or 8 minutes or 7.5 minutes. Without data generated from reproducible experiments, it's anybody's guess.

Quote
2). As I indicated before, just because we could hash at 1 second it doesn't mean we have to confirm the block right away..? What about if we create a build-in a time delay on the off chain/ second layer (e.g. the Lightning Network, which acting as a "trafiffic cops") , let say if it's less than 5 minutes then put in a counter to count up to a fixed interval..?  I also have heard that the bitcoin core code doesn't like to use loops for the obvious reason...Look, I'm not a software developer, but I'm an automation engineer, I believe there are options that we all need to explore before we quickly shut all the doors and declare that it's impossible to address the problem...

As more technical people joining this community, we will continue to hear voices raise regarding how wasteful the hashrate and the difficulty levels are being used on bitcoin blockchain...

No doors have been shut. Bitcoin is moving more than 2 billion dollars per hour, worldwide. Making up new numbers for block generation target time out of thin air is silly. Adding gizmos and widgets to try to patch up a broken block generation target time is even sillier. As I said earlier, feel free to start an altcoin. Cryptocurrencies are one of the few truly free markets in the world. But these proposals are incompatible with Bitcoin.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
December 03, 2017, 08:52:24 PM
#46
Ok so your point is well taken - but our goal here is to save energy and save time:  

1). Assuming that we all trust your assessment that 10 minutes is an optimal interval between creating new block.  As someone has mentioned here before, it wouldn't be a bad idea for us to plot out the chart and analyze to see what the best blockchain interval should be .?  I'm still leaning how to use the bitcoin core full node, once I'm getting familiar of my way around, I could definitely doing some data analysis...perhaps, 5 or 3 minutes could be more sufficient ?..
The only reason why anyone would do this is to scale Bitcoin. If you do that, the only thing you would do is to increase the blockchain growth and increasingly discourage people from using full node, leading to more centralisation. Miners would still continue to mine the same as before.

You can try but you need all of the users and miners to agree with you.

2). As I indicated before, just because we could hash at 1 second it doesn't mean we have to confirm the block right away..? What about if we create a build-in a time delay on the second layer (e.g. the Lightning Network, which acting as a "trafiffic cops") , let say if it's less than 5 minutes then put in a counter to count up to a fixed interval..?  I also have heard that the bitcoin core code doesn't like to use loops for the obvious reason...Look, I'm not a software developer, but I'm an automation engineer, I believe there are options that we all need to explore before we quickly shut all the doors and declare that it's impossible to address the problem...
If so, then the blocks are going to pile up higher and higher. After an hour or so, you would probably have a few thousand blocks and of those, most of them are empty. There would just be many forks of it and that's definitely not what we want. It doesn't discourage miners at any sense and would simply increase the time needed for a transaction to be included in a block.

Energy consumption won't be the problem that Bitcoin has. There is more energy being used for more useless stuff than for securing a currency with such a high transaction volume. It's all about making compromise.
member
Activity: 140
Merit: 12
December 03, 2017, 08:06:27 PM
#45
All we are saying is to save wasteful electricity, hash rate push for more powerful equipment - why don't we just not increase the level of difficulty ( keep the same level of difficulty)  > faster validation of the block, e.g. 1 minute instead of 10 minutes  > but don't release the new block until the 10 minutes is up...in the end we would be able to completely avoid the hash rate race, thus saving energy,  avoid mining push for fancy equipment and centralization of mining pool/ conglomerates ...?

Since we've locked the difficulty, in this example, once we've gotten down to 1 minute between blocks, why stop there? Why not let it go down to 1 second or 1 millisecond or 1 nanosecond?

You can see here that the hashrate has increased at a geometric rate over Bitcoin's lifetime. The hashrate crossed the 1MTh/s threshold in Jan 2016 and now stands around 12MTh/s. Suppose blocks had been mining at a rate of 1 every minute in Jan 2016, they would now be mining at a rate of one every 5 seconds. How is a global peer-to-peer network supposed to stay in a single, well-defined state with an update time of just 5 seconds? Even for a trivial state, like a binary state, this would be a challenging engineering problem. But for something as complex as the blockchain, it's not possible, it's not even close to possible. At the current growth rate, within another year, that 5 seconds would be down to 416 milliseconds, so your engineering problem is getting worse, day by day.

That's why the difficulty is adjustable. The 1MB block size and 10m average mining time target are as good as any other because we can compress transactions using off-chain systems like payment channels and Lightning Networks. The main chain doesn't need to "go fast" because it can act as a final settlement layer for multiple 2nd-layer, 3rd-layer, etc. services built on top.

Ok so your point is well taken - but our goal here is to save energy and save time:  

1). Assuming that we all trust your assessment that 10 minutes is an optimal interval between creating new block.  As someone has mentioned here before, it wouldn't be a bad idea for us to plot out the chart and analyze to see what the best blockchain interval should be .?  I'm still leaning how to use the bitcoin core full node, once I'm getting familiar of my way around, I could definitely doing some data analysis...perhaps, 5 or 3 minutes could be more sufficient ?..

2). As I indicated before, just because we could hash at 1 second it doesn't mean we have to confirm the block right away..? What about if we create a build-in a time delay on the off chain/ second layer (e.g. the Lightning Network, which acting as a "trafiffic cops") , let say if it's less than 5 minutes then put in a counter to count up to a fixed interval..?  I also have heard that the bitcoin core code doesn't like to use loops for the obvious reason...Look, I'm not a software developer, but I'm an automation engineer, I believe there are options that we all need to explore before we quickly shut all the doors and declare that it's impossible to address the problem...

As more technical people joining this community, we will continue to hear voices raise regarding how wasteful the hashrate and the difficulty levels are being used on bitcoin blockchain...

member
Activity: 98
Merit: 26
December 03, 2017, 11:51:02 AM
#44
All we are saying is to save wasteful electricity, hash rate push for more powerful equipment - why don't we just not increase the level of difficulty ( keep the same level of difficulty)  > faster validation of the block, e.g. 1 minute instead of 10 minutes  > but don't release the new block until the 10 minutes is up...in the end we would be able to completely avoid the hash rate race, thus saving energy,  avoid mining push for fancy equipment and centralization of mining pool/ conglomerates ...?

Since we've locked the difficulty, in this example, once we've gotten down to 1 minute between blocks, why stop there? Why not let it go down to 1 second or 1 millisecond or 1 nanosecond?

You can see here that the hashrate has increased at a geometric rate over Bitcoin's lifetime. The hashrate crossed the 1MTh/s threshold in Jan 2016 and now stands around 12MTh/s. Suppose blocks had been mining at a rate of 1 every minute in Jan 2016, they would now be mining at a rate of one every 5 seconds. How is a global peer-to-peer network supposed to stay in a single, well-defined state with an update time of just 5 seconds? Even for a trivial state, like a binary state, this would be a challenging engineering problem. But for something as complex as the blockchain, it's not possible, it's not even close to possible. At the current growth rate, within another year, that 5 seconds would be down to 416 milliseconds, so your engineering problem is getting worse, day by day.

That's why the difficulty is adjustable. The 1MB block size and 10m average mining time target are as good as any other because we can compress transactions using off-chain systems like payment channels and Lightning Networks. The main chain doesn't need to "go fast" because it can act as a final settlement layer for multiple 2nd-layer, 3rd-layer, etc. services built on top.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
December 03, 2017, 04:50:45 AM
#43
Yes you are correct I meant block to be generated quickly- what was the outcome of the "discussion to death" - what was the conclusion ?
The discussion was geared toward the scalability of Bitcoin. There are obviously pros and cons for it, but none of that was specific to the intention of helping small miners.
What about releasing the block quickly as soon as it's confirm to avoid too many orphaned blocks,  but don't start the new block until the 10 minutes interval is up ?
In a perfect world, sure. But honestly, everyone would mine it immediately after the last block. The difficulty would have to be sufficiently high to have the chance of two conflicting blocks lowered.

I would say it would likely result in blocks going way above the 10mins interval.

Perhaps now with the Lightning Network layer, it could also be used to track the 10 minutes interval to start the next block and track the release of 12.5 bitcoins at every 10 minutes ?
I'm not exactly super familiar with lightning network so I'll leave it to others. I don't think lightning network would be suitable to distribute the block rewards though.
member
Activity: 140
Merit: 12
December 03, 2017, 03:46:21 AM
#42
3). As the way the bitcoin core code is written now, the level of difficulty is inversely correlated to the hash rate, to keep the average of blockchain interval  @ ~ approximately ~ 10 minutes- thus 12.5 bitcoins is released every 10 minutes.
Isn't it directly correlated? If the hashrate increases, the difficulty increases.

Sorry, you are correct hashrate increases > the difficulty increases.

faster validation of the block, e.g. 1 minute instead of 10 minutes
Blocks are actually validated fairly quickly, within seconds. If you mean for blocks to be generated quickly, its discussed to death.

Yes you are correct I meant block to be generated quickly- what was the outcome of the "discussion to death" - what was the conclusion ?

 > but don't release the new block until the 10 minutes is up...in the end we would be able to completely avoid the hash rate race, thus saving energy,  avoid mining push for fancy equipment and centralization of mining pool/ conglomerates ...?
Its actually hard for nodes or miners to keep track of the block interval. Blocks have a timestamp but they might not be accurate. The protocol actually lets them deviate from the most accurate time.

There's this flaw that I feel would be a problem. If you were to release the block only at blocks of 10 minutes and the difficulty is low, there is a potential for many blocks generated at the same block height. Only one of them will get accepted and the rest would be orphaned. Isn't that wasting hashpower instead?

What about releasing the block quickly as soon as it's confirm to avoid too many orphaned blocks,  but don't start the new block until the 10 minutes interval is up ?

Perhaps now with the Lightning Network layer, it could also be used to track the 10 minutes interval to start the next block and track the release of 12.5 bitcoins at every 10 minutes ?
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
December 03, 2017, 03:21:24 AM
#41
3). As the way the bitcoin core code is written now, the level of difficulty is inversely correlated to the hash rate, to keep the average of blockchain interval  @ ~ approximately ~ 10 minutes- thus 12.5 bitcoins is released every 10 minutes.
Isn't it directly correlated? If the hashrate increases, the difficulty increases.
faster validation of the block, e.g. 1 minute instead of 10 minutes
Blocks are actually validated fairly quickly, within seconds. If you mean for blocks to be generated quickly, its discussed to death.

 > but don't release the new block until the 10 minutes is up...in the end we would be able to completely avoid the hash rate race, thus saving energy,  avoid mining push for fancy equipment and centralization of mining pool/ conglomerates ...?
Its actually hard for nodes or miners to keep track of the block interval. Blocks have a timestamp but they might not be accurate. The protocol actually lets them deviate from the most accurate time.

There's this flaw that I feel would be a problem. If you were to release the block only at blocks of 10 minutes and the difficulty is low, there is a potential for many blocks generated at the same block height. Only one of them will get accepted and the rest would be orphaned. Isn't that wasting hashpower instead?
member
Activity: 140
Merit: 12
December 03, 2017, 02:12:01 AM
#40
Perhaps. The link between coinbase and 10-minute blocks is independent of price - price could go up, go down, or stay the same. Either way, the number of bitcoins issued through the coinbase block-reward remains on a fixed schedule. Increasing the block rate would increase the rate at which bitcoins are being issued, ceteris paribus.
[/quote]

It seem like we are going around in circle here:

Let's talk about three variables on this equation:  hash rate, level of difficulty and amount of bitcoins awarded to the validated block.  I know there are other parameters, such as tx fee...but for now, let's just focus on the three mentioned above:

1). Bitcoins amounts is fixed to release at 12.5 every 10 minutes- (in compliant  with bitcoin blockchain's white paper).  So let's lock this down.

2). The hash rate could increase due to more miners on the network- or perhaps better hardware.

3). As the way the bitcoin core code is written now, the level of difficulty is inversely correlated to the hash rate, to keep the average of blockchain interval  @ ~ approximately ~ 10 minutes- thus 12.5 bitcoins is released every 10 minutes.

All we are saying is to save wasteful electricity, hash rate push for more powerful equipment - why don't we just not increase the level of difficulty ( keep the same level of difficulty)  > faster validation of the block, e.g. 1 minute instead of 10 minutes  > but don't release the new block until the 10 minutes is up...in the end we would be able to completely avoid the hash rate race, thus saving energy,  avoid mining push for fancy equipment and centralization of mining pool/ conglomerates ...?


member
Activity: 98
Merit: 26
December 03, 2017, 12:14:56 AM
#39
I feel my proposal limits the barrier to entry to having a half-decent internet connection.

By all means, go build an altcoin - if your idea is sound, it could even supplant Bitcoin. But Bitcoin is built as a 100% distributed, peer-to-peer network so your idea is simply incompatible with Bitcoin.

Quote
As for the 10-minute block time and price, if block creation time suddenly becomes 3 minutes instead of 10 and the block reward doesn't change, then 3 times more coins than normal will be added to the network. That won't have an effect on price?

Perhaps. The link between coinbase and 10-minute blocks is independent of price - price could go up, go down, or stay the same. Either way, the number of bitcoins issued through the coinbase block-reward remains on a fixed schedule. Increasing the block rate would increase the rate at which bitcoins are being issued, ceteris paribus.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
December 02, 2017, 11:30:50 PM
#38
There is little difference from a network with 10 GH/s and one with 10 TH/s other than the barrier to entry is higher. Litecoin difficulty went from 130,000 to almost 1,000,000 with no difference in price or functionality this past summer.
You can try to calculate the cost of initiating a 51% against Litecoin now. Its way harder than before. Since the difficulty is directly proportional to the hashrate, it would signify an increase in the hashrate. With that, the cost of executing such an attack would have increased exponentially.

A computer only needs to be on and connected to be selected to mine, so even something low power could mine the same as a gaming rig. My only question right now is, what is the best way for miners to advertise themselves as available to the network? Would mining be handled by the core software itself, and either vote for itself as 1 of the 10 miners or simply sign-in/sign-out of a shared database when the software is opened or closed?
I would say the best implementation is to have it fully peer to peer. There needs to be a consensus as to which miner is mining which and that is not achievable without them being centralised which is not what we want.

The controlling factor as to what groups and sends transactions to miners is a group consensus of all online nodes. When 50 transactions are present in the mempool, they are flagged with the block number they will ultimately end up in (previous block number +1) in order of datestamp, compiled into a work unit, and broadcast to the 6+n miners that won the vote (6 required miners plus n additional miners based on minting requirements). Only those miners receive the work unit to crunch. No further transactions and no other miners are crunching until the required 6 work units are returned and match. Once that's done, then the next 50 transactions are grouped and sent to 6+n different miners. Each node randomly selects miners and votes for them. Just like a public poll, you can participate even though you don't know or trust the others that participated.
As said, due to the way Bitcoin works, none of the nodes would have a similar mempool. The consensus is not easy to reach, especially with the transactions being broadcasted so rapidly. There is no way that the order of transactions and the timestamp would be consistent with all the nodes. It would most likely work if a central server decides which are the miners and which are the nodes.

Under this new system, the block size is limited by transaction count, not MB size. And since block time depends on how fast a block can be assembled and verified and transaction load, I don't really see what gain spamming would have?
With the cost of creating large transactions down, it is easy for people to start broadcasting transactions with huge size. This would just exacerbate our current problem with the storage space. You're just going to be driving Bitcoin less to the masses with the storage space.

As for the 10-minute block time and price, if block creation time suddenly becomes 3 minutes instead of 10 and the block reward doesn't change, then 3 times more coins than normal will be added to the network. That won't have an effect on price?
Definitely would have an impact on the price. Under the current implementation, if you want it to be more profitable, that's the only way.
newbie
Activity: 4
Merit: 0
December 02, 2017, 11:15:03 PM
#37
This by no means a polished solution (I'm just tossing it out there in hopes to improve the technology), but when on the same day Bitcoin makes the news for how much power it consumes and that a few guys in Teslas are running rigs off of Superchargers through their cars, something needs to change. There's no way you'll get everyone to agree to cut their hash power by 90% (which, if that would happen, everyone's earnings would remain the same or even improve while running on 10% of the power consumption). This is why I feel PoW is wasteful. There is little difference from a network with 10 GH/s and one with 10 TH/s other than the barrier to entry is higher. Litecoin difficulty went from 130,000 to almost 1,000,000 with no difference in price or functionality this past summer.

Just to be part of Litecoin mining initially cost me $1,500, and later over $7,000 to keep up with difficulty. That "cost of entry" keeps getting higher, which is a symptom of how processing power is controlled. Unfortunately, PoS isn't much better on its own as it still favors those with resources (coins instead of hash power). I feel my proposal limits the barrier to entry to having a half-decent internet connection. Hashpower and wallet size are pretty much irrelevant as long as the miner selection protocol is purely random. A computer only needs to be on and connected to be selected to mine, so even something low power could mine the same as a gaming rig. My only question right now is, what is the best way for miners to advertise themselves as available to the network? Would mining be handled by the core software itself, and either vote for itself as 1 of the 10 miners or simply sign-in/sign-out of a shared database when the software is opened or closed?

The controlling factor as to what groups and sends transactions to miners is a group consensus of all online nodes. When 50 transactions are present in the mempool, they are flagged with the block number they will ultimately end up in (previous block number +1) in order of datestamp, compiled into a work unit, and broadcast to the 6+n miners that won the vote (6 required miners plus n additional miners based on minting requirements). Only those miners receive the work unit to crunch. No further transactions and no other miners are crunching until the required 6 work units are returned and match. Once that's done, then the next 50 transactions are grouped and sent to 6+n different miners. Each node randomly selects miners and votes for them. Just like a public poll, you can participate even though you don't know or trust the others that participated. Under this new system, the block size is limited by transaction count, not MB size. And since block time depends on how fast a block can be assembled and verified and transaction load, I don't really see what gain spamming would have?

As for the 10-minute block time and price, if block creation time suddenly becomes 3 minutes instead of 10 and the block reward doesn't change, then 3 times more coins than normal will be added to the network. That won't have an effect on price?
member
Activity: 140
Merit: 12
December 02, 2017, 11:05:51 PM
#36
1). Currently, the market cap of bitcoin is not fixed at all !! In fact it's growing so fast that it blows many big corporations completely out of the water -  as of today bitcoin market cap is approximately ~ 185 billions usd !!
Well, I thought you would understand but I'm talking about the coin cap.
2). The total bitcoin being released per day is ~  1800 bitcoins -- do you understand anything about bitcoin blockchain??
Yeah? Aren't you talking about trying to make the difficulty constant to make it profitable for small time miners?

If you were to make the difficulty constant over a long period of time, the block frequency would become faster. With that, a 5 minute blocktime would double the total Bitcoins that would be created a day. Is that wrong?

Dude:  no increase hashpower, no increase on difficulty - just time delay !!
member
Activity: 140
Merit: 12
December 02, 2017, 11:02:13 PM
#35
@Anarc: I don't know what you're on, but it's rude not to share... Wink


Nah - I'm just a newbie, trying to learn 😉

How do we know you're not one of the Bcash's little soldiers - will have to keep an eye on you too 😉
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
December 02, 2017, 09:37:17 PM
#34
1). Currently, the market cap of bitcoin is not fixed at all !! In fact it's growing so fast that it blows many big corporations completely out of the water -  as of today bitcoin market cap is approximately ~ 185 billions usd !!
Well, I thought you would understand but I'm talking about the coin cap.
2). The total bitcoin being released per day is ~  1800 bitcoins -- do you understand anything about bitcoin blockchain??
Yeah? Aren't you talking about trying to make the difficulty constant to make it profitable for small time miners?

If you were to make the difficulty constant over a long period of time, the block frequency would become faster. With that, a 5 minute blocktime would double the total Bitcoins that would be created a day. Is that wrong?
member
Activity: 140
Merit: 12
December 02, 2017, 09:32:45 PM
#33
1). Consider the hash rate and its level of difficulty is within a black box:  from the end users standpoint, there are 12.5 bitcoins being produced every 10 minutes - no more, no less.  I cannot fatom or see any clear evidence that the higher hash rate, difficulty would directly correlate to a larger market cap of bitcoin ??
Currently, the market cap is fixed so I'm not talking about that. However, with a constant difficulty, you are bound to have blocks that would be faster and faster with a constant block reward. This would result in the total market cap increasing. If you decrease the block reward proportionately, then they won't achieve your aim.


Sir:  many things you said above are not true at all:

1). Currently, the market cap of bitcoin is not fixed at all !! In fact it's growing so fast that it blows many big corporations completely out of the water -  as of today bitcoin market cap is approximately ~ 185 billions usd !!

2). The total bitcoin being released per day is ~  1800 bitcoins -- do you understand anything about bitcoin blockchain??
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
December 02, 2017, 09:27:44 PM
#32
What I have devised so far is that each block is limited to 50 transactions (arbitrary number, could be higher or lower based on Bitcoin's throughput, but this figure works for Litecoin currently), and once there are 50 transactions in the mempool, they are grouped together into a work unit, and sent to a specific miner/pool for hashing.
Isn't that centralisation now? Bitcoin doesn't have a consistent mempool through the network. Every node has a differing mempool with differing rules. How would you know if a miner is not hashing transaction A at the same time as you?
With a fixed difficulty, crunch time is based purely on that miner's hash rate, but is ideally less than a minute. Once hashing is complete on that block/workunit, it is broadcast to the network and added to the chain. However, before being added to the chain, that block must be crunched and verified by 5 other, randomly selected miners. So, each time a work unit is created by the network, it is sent to at least 6 totally random miners (not based on hash rate, wallet balance, etc.), and the block must have 6 results that jive before being added to the blockchain. The miner selection is done by group consensus of all core nodes (each randomly votes 10 miners, top 6 are selected by popular vote). Additionally, the top 6 miners are prevented from working on the block following the one they worked on (same miner can't crunch two blocks in a row). This prevents an entity running several malicious nodes/miners from taking control of the blockchain.
The way Bitcoin currently works is that nodes and miners are treated the same. It is impossible to tell which node is a miner and which node isn't. Why can't a node be verifying it though? Just like how it is.

Just for the record, nodes currently do not trust each other and independently verify the blocks and its content.
The transaction fee is hard-coded at .1% of the transaction amount.
So I can easily send a 1BTC transaction with a 1MB transaction size with a 0.001BTC fee? That'll surely spam the network up.
The first 10 valid hashes submitted would get an equivalent BTC amount to what each of the 6 miners received in transaction fees. So, in total, 16 miners would receive .0041667 BTC each for a total reward of .0666667 BTC for that block, and of that, .0416667 BTC would be new to the network. As market cap reaches 100% in circulation, the number of "follower" miners would be reduced, similar to how the block reward halves currently. The timeline for market growth would then be tied to transaction activity, not time.
As said, there is no way of telling the actual transaction volume. The best would just be having a singular node with an extremely good peering. Even with that, its not accurate.

I don't get this part.
Blocks come as fast or slow as transactions are happening, and the next group of 50 transactions can only be confirmed once the previous block has been fully verified by the 6 random miners. And if there are insufficient transactions in the mempool, block creation has a backup timer that kicks out work units 5 minutes after the previous block in case 50 transactions haven't occurred since then. This transforms the network from having a fixed throughput to being driven by network activity (the bottleneck then becomes how fast 6 miners can be selected and for those miners to crunch the transactions and make a block). So, what does this mean for miners? While this part is above my knowledge, it likely means that CPUs would become dominant again, as they are likely to sit idle most of the time, making ASICs far too power hungry to be profitable. Even GPUs may not make financial sense.
If you don't eliminate the ASICs and only make CPU mining profitable, anyone with sufficient motivation could execute a 51% attack easily.
member
Activity: 98
Merit: 26
December 02, 2017, 09:21:46 PM
#31
@Anarc: I don't know what you're on, but it's rude not to share... Wink

Proof-of-Work is currently intrinsically wasteful,

Proof-of-work is not wasteful, its purpose is to prove the passage of time in a secure, verifiable and scalable way. It's actually very cheap when you consider that only the miner has to work, everybody else can verify that the miner has done all this work very quickly. Suppose P=NP, then this would not even be possible with any sub-exponential algorithm. So, we should hope that P!=NP and that the entire network does not have to replicate the work of the miners to be sure they are actually doing that work.

Quote
The way Bitcoin is coded currently, the 10-minute block is a constant that must be maintained to prevent block rewards from flooding the network and pushing the price down, as well as preventing orphaned blocks.

The 10-minute interval target has nothing to do with the price.

Quote
What I have devised so far is that each block is limited to 50 transactions (arbitrary number, could be higher or lower based on Bitcoin's throughput, but this figure works for Litecoin currently), and once there are 50 transactions in the mempool, they are grouped together into a work unit, and sent to a specific miner/pool for hashing.

Let's stop right here. Your model is assuming coordination beyond basic p2p relay. There must be someone who "groups" the transactions and someone who "sends" them to a miner, a miner who is the designated recipient, etc. In Bitcoin, all peers are symmetrical with respect to the mempool and the blockchain. The only variation from one peer to another is the peers they are connected to (and perhaps some local variation in the mempool as peers are not required to store transactions in the mempool in any particular order or even at all). So, you want to set up your network in such a way that you achieve this peer-symmetry if you intend to replace Bitcoin's PoW but not fundamentally alter Bitcoin's security/distributed model.

Quote
With a fixed difficulty, crunch time is based purely on that miner's hash rate, but is ideally less than a minute. Once hashing is complete on that block/workunit, it is broadcast to the network and added to the chain. However, before being added to the chain, that block must be crunched and verified by 5 other, randomly selected miners. So, each time a work unit is created by the network, it is sent to at least 6 totally random miners (not based on hash rate, wallet balance, etc.), and the block must have 6 results that jive before being added to the blockchain. The miner selection is done by group consensus of all core nodes (each randomly votes 10 miners, top 6 are selected by popular vote). Additionally, the top 6 miners are prevented from working on the block following the one they worked on (same miner can't crunch two blocks in a row). This prevents an entity running several malicious nodes/miners from taking control of the blockchain.

This is an attempt to do sharding with blocks but you really don't need to shard blocks because blocks are not the bottleneck of the network, consensus is.

Quote
Now, how do I account for eliminating the block reward?

Just a thought.

I don't want to rain on your parade but basically none of what you described would work. There is a proposal for a blockchain sharding system called ELASTICO. You would probably like it. It still uses regular proof-of-work mining, though.
member
Activity: 140
Merit: 12
December 02, 2017, 09:13:01 PM
#30
I've been giving a lot of thought to this lately. While I understand that Proof-of-Work is currently intrinsically wasteful, I've been trying to find a way that makes it much more energy efficient while maintaining security and functionality.

The way Bitcoin is coded currently, the 10-minute block is a constant that must be maintained to prevent block rewards from flooding the network and pushing the price down, as well as preventing orphaned blocks. However, what if difficulty was fixed, the block reward was eliminated, and block creation was driven by network transaction activity instead?

What I have devised so far is that each block is limited to 50 transactions (arbitrary number, could be higher or lower based on Bitcoin's throughput, but this figure works for Litecoin currently), and once there are 50 transactions in the mempool, they are grouped together into a work unit, and sent to a specific miner/pool for hashing. With a fixed difficulty, crunch time is based purely on that miner's hash rate, but is ideally less than a minute. Once hashing is complete on that block/workunit, it is broadcast to the network and added to the chain. However, before being added to the chain, that block must be crunched and verified by 5 other, randomly selected miners. So, each time a work unit is created by the network, it is sent to at least 6 totally random miners (not based on hash rate, wallet balance, etc.), and the block must have 6 results that jive before being added to the blockchain. The miner selection is done by group consensus of all core nodes (each randomly votes 10 miners, top 6 are selected by popular vote). Additionally, the top 6 miners are prevented from working on the block following the one they worked on (same miner can't crunch two blocks in a row). This prevents an entity running several malicious nodes/miners from taking control of the blockchain.

Now, how do I account for eliminating the block reward? That's simple. The transaction fee is hard-coded at .1% of the transaction amount. So, if someone sends 1 BTC (at the moment, valued at roughly $11,000), the transaction fee would be .001 BTC, or $11. If someone sends $5, the fee would be .5 cents. So, if a block's 50 transactions move a total of 25 BTC, the 6 miners that returned valid hashes would split the .025 BTC of transaction fees evenly (at current price of $11,000, each of the 6 miners would get $45.83 for solving that block). That accounts for miner rewards and transaction fees, but how does this add coins to the network? It would also be hard-coded that depending on the number of coins in circulation compared to the designed max coins, a certain number of additional miner hashes would be credited similar to the transaction fees. While I haven't pinned down appropriate numbers yet, say an additional 10 valid hashes are broadcast after the initial 6. The first 10 valid hashes submitted would get an equivalent BTC amount to what each of the 6 miners received in transaction fees. So, in total, 16 miners would receive .0041667 BTC each for a total reward of .0666667 BTC for that block, and of that, .0416667 BTC would be new to the network. As market cap reaches 100% in circulation, the number of "follower" miners would be reduced, similar to how the block reward halves currently. The timeline for market growth would then be tied to transaction activity, not time.

Blocks come as fast or slow as transactions are happening, and the next group of 50 transactions can only be confirmed once the previous block has been fully verified by the 6 random miners. And if there are insufficient transactions in the mempool, block creation has a backup timer that kicks out work units 5 minutes after the previous block in case 50 transactions haven't occurred since then. This transforms the network from having a fixed throughput to being driven by network activity (the bottleneck then becomes how fast 6 miners can be selected and for those miners to crunch the transactions and make a block). So, what does this mean for miners? While this part is above my knowledge, it likely means that CPUs would become dominant again, as they are likely to sit idle most of the time, making ASICs far too power hungry to be profitable. Even GPUs may not make financial sense.

Just a thought.
.

 Thank you Sir  for your thoughtful inputs - I still have to digest through your proposal as there is a lots of details to think it through.  But, this is exactly the kind of ideas and the "thinking out of the box" that this community could or should embrace !

From the very highest level (at the 30,000 feet) and looking down on to the current hashing, validation of the Bitcoin blockchain , it does not take much for someone to see that there have got to be better ways to make improvements.  I know it's easy to say than done !  But this exactly what I look forward to hear from the good people on this forum...

Thanks and Cheers,
-ding




legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
December 02, 2017, 08:39:56 PM
#29
1). Consider the hash rate and its level of difficulty is within a black box:  from the end users standpoint, there are 12.5 bitcoins being produced every 10 minutes - no more, no less.  I cannot fatom or see any clear evidence that the higher hash rate, difficulty would directly correlate to a larger market cap of bitcoin ??
Currently, the market cap is fixed so I'm not talking about that. However, with a constant difficulty, you are bound to have blocks that would be faster and faster with a constant block reward. This would result in the total market cap increasing. If you decrease the block reward proportionately, then they won't achieve your aim.

2). I don't believe for one second that more powerful and faster computers is the absolute single solution to have a secured blockchain, which would maintains its scarcity and holding its high value.  IMHO, higher hash rate is unnecessary and a completely waste of time and energy - its sole purpose is merely to give people a delusional
perceptions of some "intrinsic values" built in with the newly mined bitcoins with the higher hashrate and high level of difficulty !!  Which we all know is a complete BS !
Does it make sense for Bitcoin to be available to be mined for everyone in general? That's a question that has to be thought about.

Now, the main flaw of the blockchain is that any attacker with at least 51% of the hashrate could essentially damage the blockchain by modifying it or preventing transactions from being confirmed. If you were to make mining available for the general public, you would likely eliminate most of the bigger mining operations. This would in turn result in the network having a low difficulty.

3). More expensive equipment  and larger pool of miners do not equate to true technological innovation- let more general population in the task and soon there will be true competitition and innovation emerging...
True but do we really need innovation? This isn't a smartphone. We just need miners to have a high hashrate density and a increased efficiency is a nice cherry on top. There is a huge demand for miners by the big corporations.

Miners are available to the general public, at a decent pricing too. A lot of the time, it just doesn't make sense to throw a hot miner in your house where electrical pricing might be a lot higher than what big corporations can get.

You have jut described a text book definition of Centralization !
Mining itself is centralised right now. How would you address that problem while also addressing the problems I've stated?
Pages:
Jump to: