Get the latest cryptocurrency news, updates, values, prices, and more related to Bitcoin, Ethereum, Dogecoin, DeFi and NFTs with pakcoinworker crypto ...

Post Top Ad

Friday, 25 October 2019

How to guarantee a consistent 10 min block time?

Here is an idea to guarantee 10 min block time, every block. Remember guys, this is just an idea, this is NOT any whitepaper or an English paper. This is like a concept scribbled down on a brown paper bag. Think of it conceptually.

First, just Scrap the DAA. Scrap the 2 week block difficulty adjustment idea. The goal is to have a certain reward every 10 minutes. This is so simple it might even work.

Basically, whoever has the largest difficulty solution at 10 min mark, is the block reward winner. There is still a race, it is just who did the best in 10 min vs who found and acceptable solution first. Thinking about it, it works fine for an average number over 2 weeks, but it does not produce consistent confirmation times. (I think this also hurts on boarding, imagine the first time you use something it takes an hour to confirm vs it will confirm in 10 minutes or less, guaranteed)

How would this work?

At the beginning of the new block, miners will start submitting their block solution. All the miners/nodes will keep a running tab of the highest difficulty solution that has been submitted on the network. Since I am going to refer to this many times, lets call the current highest difficulty solution “Best”. Since there will be no best from the start, to minimize the enormous amounts of “Best” submits, there will be a node configurable minimum limit, some % of the previous block, before you make a “Best” submission. You know your mining pool and what difficulty level is good for you to eliminate crazy high submissions in the first few minutes. Maybe we just say, no submissions until new block time is greater than 2 or 3 minutes, at that point you submit your pools “Best”, IF it is better than the one on the network.

During mining of the block, as better “Best” are found they are broadcast and all the nodes/miners keep a running tab of the “Best”.

It will take some time (seconds) lets call it 30 seconds, for the “Best” to be shared, validated and consensus reached. Consensus could be when 70% of nodes/miners have confirmed “Best”. As soon as consensus is reached, the block has been confirmed or found.

There will be a variable needed to represent this consensus confirmation time. Since the block is found at the point of consensus confirmation, we need to subtract this from 10 minutes. Since we are saying this takes 30 seconds, we need to start the confirming the consensus process at the block time of 9:30 mark. So after 9:30, no better Bests will be accepted. The consensus confirmation takes 30 seconds. Block time = 10 minutes.

This consensus confirmation time can be adjusted every 2 weeks based upon the 2 week average block times. For example, the 2 week blocktime average= 9:52, now the “offset” consensus confirmation time on Best would be reduced by 8 seconds, to 22 seconds and the nodes will start consensus confirmation time at 9:38 block time. Hence if avg 2 week block time = 10:15, the offset will be increased by 15 seconds so the consensus confirmation time would start at 9:15 block time).

As the number of transactions/block increases, this consensus confirmation time will need to be increased because it will take longer to verify all the tx in the Best. Imagine a new best submitted at 9:29 with 1,000,000 transactions to confirm. Might take a few more seconds than a best with 1000 tx. I think this might be what is needed in BSV to keep the mega blocks from being orphaned due to the amount of time it takes to transmit and confirm the mega blocks.

There will still be a variance in block time, but we will not have short block times of 10 seconds and others of 90 minutes. Now shortest/longest block times will be 9:31 and 11 minutes – speculative.

How do we get the 9:31 block time if the consensus confirmation starts at 9:30? Imagine this new block time adjustment system has been running for a year or so. Miners/nodes learn statistically when a very good best has been submitted early, they will know if it is not probable to determine a better best. At this point, after they have verified the Best, they get a head start and start mining a new block on top of this best. So at the 9:30 mark, everyone already has their vote submitted and immediately have unanimous decision on that block best.

How do we get the longer 11:00 minute block? Remember earlier, I mentioned what if you do not accept a better best after the 9:30 time? Well lets say you have 40% of the hashpower/consensus vote and 65% is needed for consensus. They can never get it without you. You can’t go rouge, but you can game the system a little. Imagine you keep mining and at 9:40 you find a new best. So you change your vote and say this is the new best. If concensus is not reached in the first iteration, another confirming round is made and this later “Best” works it’s way in, consensus is confirmed and the block is found. These iterations will not go on forever, eventually, a better best will not be found during the consensus confirmation time and the block will be confirmed. These will be calculated risks that the miners will determine if it is worth it to keep mining or to start on the next block. (Maybe the consensus confirmation is strictly a minimum % of nodes in consensus of the best. No way a miner could hold up the confirmation by holding on to a lessor best.)

This will eliminate the problem of splitting/orphan the miners on two different chains, as there are no fast/empty blocks in this system. If you have a tie, you go into sudden death race, you either find a better best that everyone confirms or everyone confirms the current best. Pitty the small pool that has the best at 9:30 and at 9:45 the big pool pushed their new best in the mix. But it is worse under current conditions for the small pool, correct?

Does this make the network less secure?

• No it makes it more secure. No miner competing orphan forks as there are no fast, zero time blocks. Zero time blocks are the only way the orphan forks can happen.

• No empty blocks, block time must be 10 minutes so no benefit unless you really do have 20 seconds to mine on nothing and you really get a Best that no one is willing to compete with. This may not eliminate zero blocks, but should eliminated 90% of them.

• Will this type of system loose hashrate? No. It is the same reward/10 minutes. Actually, it should attract more miners, as it is a fairer system. Not as many games to cheat the system.

• Reorgs are now impossible. Un doing the blockchain is no longer possible as you can not speedup the blocks to get ahead of the current chain. Once you go back in time to reorg a block, you are now stuck back in time.

In addition to all the good technical reasons, Imagine all the new gambling games that could be played, betting in real time on the block winner, watching the race as it unfolds, seeing who has the current best, who tops that one, as the time ticks down, will there be a new best, etc etc.

just an idea.

submitted by /u/steve_m0
[link] [comments]

from Bitcoin - The Internet of Money https://ift.tt/2Pjj7GO

No comments:

Post a Comment

We have received your message and would like to thank you for writing to us, we will reply by email as soon as possible.

Talk to you soon,
[Pakcoin Worker]
[Pakcoin Global]