Author

Topic: oPoW (optimized Proof of Work) (Read 485 times)

full member
Activity: 193
Merit: 121
Just digging around
July 17, 2021, 11:49:13 PM
#36
this opens up 2 attacks
1. PoS mine all blocks in 7 hours secretly. broadcast publicly at prescribed times
2. because they're the only miners allowed to mine for next fortnight.. they can just all NOT broadcast anything for whole fortnight
(yes 2 means loss of reward revenue due to not making blocks to have rewards)
but its still a stall event for a fortnight

1: You can't build blocks sooner than the previous block was broadcasted as you need the hash of that block. But even if you got hash rate winning you 100 blocks and you also was the creator of the proof block and you ordered yourself inline (eg. your 100 blocks are one after each other) you still can't do much. You can stop doing anything and someone else will (see point two). You can create the 100 blocks in advance of course (I mean right after the -1 block's hash is available), but who cares? I mean building the block needs you PrivKey and the transactions only at this point of time.

2: As long as there is one single honest miner you can't delay as all miners have to right to produce (and broadcast) the next block if the PoW pre-selected/prof-block included miner failed to do so at the right time range.
full member
Activity: 193
Merit: 121
Just digging around
July 17, 2021, 11:42:36 PM
#35
i said HM will have 1
you said 'no as [HM] would have more then one' but then you explained it by saying no one said [hm] should stop when getting a 'good enough' hash..
.. weird explanation.. because by your suggestion.. not stopping means continuing 1 hash but even stronger
.. you then said no point splitting hashrate.. meanign you also suggest not working on second hash
...
[hm] templates his own list 1key. and his preferred 2016 keys he has had relayed to him from competitors
and he makes his own attempt at special block
[mmp] template ignoring competitors relayed to them.. and just list their own 2016 keys, meeting min diff.
and they pool mine [mmp1to8] and make their own special block with more combined hash than [hm]
It's simple as this:
If you find a good enough hash to get you the right to mine one block that's it. There is no reason find "stronger" hash. Why would you do/need that?
You broadcast what you found and continue working to find the second hash which gets you the right to mine one more block. No reason to split your hashrate unless you have 1000x more than needed, but shouldn't be the case as difficulty would have adjusted. If this is a one time case when you fired up 1000x times more ASICs (how?) than the previous diff was based on than yes, you can work on 1000x hashes and gain the right to mine 1000x blocks in that period. But this is the same as today's PoW.
[mnp] can only do this if he has way more hashrate than 51%. Interesting point though, as in this proposal adjusting for hashrate changes could be a big problem. As you only see the winning hashrate included in the winning proof-block that miner can hide <50% hashrate by not including them at all.
But: I believe PoW solves this as % wise the smaller hashrate miner will win the right to create the proof-block and include too. So I think PoW would solve the lower hashrate problem as random hash distribution should even out and the larger hashrate will loose whole(!) proof blocks if disregarding competitor good enough hashes. By doing so he will delay the time he has all the 2016 hashes and the lower/honest miner has more chance to find a good enough hash and broadcast his own proof-block.
legendary
Activity: 4410
Merit: 4766
July 17, 2021, 11:22:27 AM
#34
at day 13 hour 23:40 prev session
[MMP] made 2016 key:hash associated to block2008 to be used as nest session block maker keys
[HM]and all the [AJ's] have 1 key/hash associated to block 2008.. [AJ] is too low. [HM] has one super strong
I believe no as [HM] would have more than one as no one said that you as an HM should stop mining when you found one good enough hash. So no point splitting your hashrate as one private key can have more than one blocks or you can create separated PK for all blocks you intend to mine.
Because of this a proof hash's accumulated and listed in the proof block would be distributed by hashrate. If your hashrate is too low [AJ] you should join a pool as happens today.
Because of this there is no reason to withhold as hashes will be coming relatively quick, so if you don't create a proof block as fast as possible someone else will and that will be the block => you lost.

i said HM will have 1
you said 'no as [HM] would have more then one' but then you explained it by saying no one said [hm] should stop when getting a 'good enough' hash..
.. weird explanation.. because by your suggestion.. not stopping means continuing 1 hash but even stronger
.. you then said no point splitting hashrate.. meanign you also suggest not working on second hash

meaning you ended up explaining yourself into a scenario where [hm] does infact end up with 1 key:hash proof of block 2008
(you talked yourself into agreeing with what my scenario suggested in the first place)

sooo.. going with my first scenario suggestion of [hm] sticking with one key:hash proof of block 2008 that is super strong. rather than splitting his hash for multiple attempts of the 1hour 2008 proof of weaker key:hash

as you then say the special 'proof block' lists 2016 key:hash by hashrate.
so knowing [MMP] has been making 2016key:hash
[mmp] gets more listings in the special block and [hm] only has 1 chance

..
then when forming the special block.
[hm] templates his own list 1key. and his preferred 2016 keys he has had relayed to him from competitors
and he makes his own attempt at special block
[mmp] template ignoring competitors relayed to them.. and just list their own 2016 keys, meeting min diff.
and they pool mine [mmp1to8] and make their own special block with more combined hash than [hm]

thus [mmp] win as they done most work on the special block
thus their listed preferred key:hash of 2016 keys get to be the PoS signers for the next fortnight

and now mmp can do their own gaming of the system in secret.

..
again for a reminder all the 2016 keys of the next session of the winning special block are [mmp] managed
meaning only their listed keys can make blocks.
this opens up 2 attacks
1. PoS mine all blocks in 7 hours secretly. broadcast publicly at prescribed times
2. because they're the only miners allowed to mine for next fortnight.. they can just all NOT broadcast anything for whole fortnight

(yes 2 means loss of reward revenue due to not making blocks to have rewards)
but its still a stall event for a fortnight
full member
Activity: 193
Merit: 121
Just digging around
July 17, 2021, 07:03:54 AM
#33
An interesting thought experiment is: what should honest miners do when they see conflicting chains? Like, lets say one chain has block receipt 300 skipped but contains a block for receipt 301 and the other chain doesn't have 300 skipped but doesn't contain block 301? Which chain should that miner choose? I suppose this would be like any orphan situation where the miner would choose the chain they saw first, since they're both the same length. Maybe there isn't a problem here.

In any case, this is an interesting idea and was fun to think about. But I don't think the benefits are enough to make it worth the effort and risk of other issues.
There can not be no missing blocks. If the original winner won't broadcast a valid block in the proper time range the next minute will allow for miners of the prev/next block to do so the next minute allows any miners in the epoch.
full member
Activity: 193
Merit: 121
Just digging around
July 16, 2021, 07:58:32 AM
#32
at day 13 hour 23:40 prev session
[MMP] made 2016 key:hash associated to block2008 to be used as nest session block maker keys
[HM]and all the [AJ's] have 1 key/hash associated to block 2008.. [AJ] is too low. [HM] has one super strong
I believe no as [HM] would have more than one as no one said that you as an HM should stop mining when you found one good enough hash. So no point splitting your hashrate as one private key can have more than one blocks or you can create separated PK for all blocks you intend to mine.
Because of this a proof hash's accumulated and listed in the proof block would be distributed by hashrate. If your hashrate is too low [AJ] you should join a pool as happens today.
Because of this there is no reason to withhold as hashes will be coming relatively quick, so if you don't create a proof block as fast as possible someone else will and that will be the block => you lost.
jr. member
Activity: 33
Merit: 73
July 13, 2021, 12:20:08 PM
#31
I think the idea is an interesting one. I think it could likely work. However, the benefits are limited. Yes, you'd save some electricity, but as has been previously mentioned, miners will always be willing to spend up to the amount of the block rewards in order to mine blocks. So this wouldn't save money, because miners would buy enough extra mining equipment to offset the cost they would be spending on electricity. It would also mean that miners would use their ASICS for something else the rest of the time, if possible, which might mean that electricity isn't actually saved. In order to actually save electricity, the PoW algorithm would need to be designed such that the ASICS could not be used for other things (not sure how possible that is).

The mining scheme should be workable tho. Let me recount the way I would do this:

1. At the beginning of each retargetting period, the first block mined is basically the starting gun,

2. then everyone mines a receipt on top of that block at greatly reduced difficulty (1/2016th the difficulty) for 10 minutes,

3. as soon as anyone collects 2016 receipts (adding up to a full normal block of work) they put those receipts into a block and hash that until its been mined at the normal difficulty. This step should exist so the race continues, rather than having a point of failure of the miner that mined the first block in the retargetting period (what if they refuse to sign and broadcast a list?). Also, this ensures that its difficult to create a different list of receipts.

4. once the step 3 block has been mined, it locks in the receipts, and therefore the order of the next 2016 blocks

5. The miner who owns the first receipt in the list must include the hash of the commitment block containing that list as its previous block.

6. For each of the next 2015 blocks, the miner will basically have a time limit to mine their block (rather than racing). If they create their block within the time limit, they get to create that block. If they miss their window, the next miner in the lineup can broadcast their block on top of whatever the most recent block is.

While in normal PoW, miners are racing to mine and broadcast as fast as possible. In the pre-ordered block creation, miners actually have an incentive to wait until their time is almost up to broadcast their block, because they want to include the highest-value transactions they can (and they want as many mempool options as possible before committing to a block). However, because the next miner can skip them if they miss their window, they also have an incentive to broadcast their block well enough before their window ends that they don't risk being skipped. So miners would probably wait until say 10 seconds before their window ends to broadcast their block, but if the previous miner missed their window, they would probably broadcast ASAP (at the beginning of their window) to capture the transactions that miner missed.

An interesting thought experiment is: what should honest miners do when they see conflicting chains? Like, lets say one chain has block receipt 300 skipped but contains a block for receipt 301 and the other chain doesn't have 300 skipped but doesn't contain block 301? Which chain should that miner choose? I suppose this would be like any orphan situation where the miner would choose the chain they saw first, since they're both the same length. Maybe there isn't a problem here.

In any case, this is an interesting idea and was fun to think about. But I don't think the benefits are enough to make it worth the effort and risk of other issues.
legendary
Activity: 4410
Merit: 4766
July 12, 2021, 08:42:01 AM
#30
assume those wanting to be added to special block will have more hash power than average joe. and able to do more then one PoW process concurrently to have more then one address committed to special block
The whole process is PoW so if you have more hash power you will be able to mine more blocks just as today. The only way to be added to the special block is mine a good enough hash.
but thats a good hash of a single block in the entire fortnight.. block number 2008 (your special block minus X)
which you PRESUME can only be mined at the 13th day at the 22:50 hour.. not before or after
which you PRESUME honour of only making 1 attempt per miner to have a utopia of 2016 different miners listed

ok tweaking the scenario
still the same problem

lets make some assumptions
[AJ]average joe hashrate : 330thash+ (3 asics+) (-9,000x of MMP each)
[MMP1to8]malicious mine partner1to8: 2.97Ehash(27,000 asics) each
                                                          23.76Ehash(216,000 asics) combined
[HM]honourable miner: 19.8Ehash(180,000 asics)(+6x of MMP each)(0.83x of MMP combined)
also assume
the difficulty of hash of block2008 'list entry requirement' would be lower than the special block hash difficulty
(to ensure there is always over 2016 possible entries to choose/include(give all the AJ's & HM's a chance))
also assume
the special block maker has full discretion of who he chooses to include, what order, etc

..
so lets run the scenario again

before next session (day 13 hour 22:50 of prev session)
[MMP1to8][HM][AJ] all are working on block 2008 hash
[MMP] have 9,000x each more then [AJ],
  but whilst [AJ] is making 1 hash for an hour
  [MMP1to8] split their efforts
  so [MMP1to8] split their 216k asics into 107 asics per hash attempt for each new entry
  ensuring they have 2016 key:hash primed with hashpower, each over 100x more then [AJ]
  (sorry AJ youll never be a normal PoS block maker)
 
at day 13 hour 23:40 prev session
[MMP] made 2016 key:hash associated to block2008 to be used as nest session block maker keys
[HM]and all the [AJ's] have 1 key/hash associated to block 2008.. [AJ] is too low. [HM] has one super strong

at day 13 hour 23:40:05 prev session
there are thousands of different [AJ]'s with 1 key:hash each and 1 [HM] key:hash with a acceptable difficulty
[HM] (main competitor) adds is own single key. and 2014-5 keys of next highest..
                                   AKA [MMP] keys to his [HM] template (such an honourable man)

[MMP] ignores [AJ]&[HM] keys associated with block 2008.(like pools ignore transactions currently)
[MMP] special block template includes 2016 [MMP] key:hash with 100x hashpower attached to each

at day 13 hour 23:40:10 of prev session
[MMP1to8] combine hashpower as a pool to work on a 10minute hash of special block using 23.76Ehash
[HM] spends 10minutes hashing his special block template using 19.8Ehash
hundreds of [AJ] spending 10 minutes on their special block using 330Thash

[MMP][HM][AJ] all are working on special block 2016 hash. for 10minutes(all honourable mining)

at day 13 hour 23:59:55 of prev session
[MMP] have a hash for special block(with preferred strong keys). and broadcast it
at day 13 hour 23:59:59
[MMP] got lucky their 'special block' got accepted to the network as valid win with 23.76Ehash effort
(stronger then [HM] 19.8e special block)
....
note if MMp lost and [HM] won. honourably [HM] would add the highest difficulty keys it seen
(aka MMP keys)
so even if MMP losses this session ability to be special block creator. he still has alot of blocks in the next session. which if [hm] added them consecutively, [MMP] can still make several blocks ahead of broadcast..
especially if [HM] put a long batch of keys preceeding/leading upto and including block2008-2015
now im digressing

...
at next session day0 hour0 - assuming still [mmp] won
[MMP] makes 60 blocks in 10minutes from his list and share them in secret only with [MMP1to8]
[MMP] only broadcasts block1 at the 10th minute to [AJ] [HM]
[MMP] makes another 60 blocks in 10 minutes share them in secret only with [MMP1to8]
[MMP] only broadcasts block2 at the 20th minute ([MMP]now secretly 118 blocks ahead)
.. and so on and so on, building up a buffer of blocks before required broadcast times

at day0 hour5:35
the rest of the network[HM]&[AJ] has only received 33 blocks at their prescribed times so far
[HM][AJ] treat them as valid, because the list of miner keys in the special block match the signed blocks
and they were broadcast at the right time

[MMP] has made 2008 blocks.. (secretly)
[MMP] can now make lots of concurrent hashes of block 2008 for his key:hash of next session listing
[MMP] split their 2016 public key associated with block 2008 attempts into each key has 107 asics and runs for 2 days meaning each entry for the next session list is over 5000x stronger hash then [AJ]
(again sorry to all the AJ's youll never get to be a miner)
(sorry HM even you are not the highest has for your key:hash entry)

at day2 hour 05:36.
[MMP] have now all 2015 blocks of the session waiting secretly.. and all very strong keys of block 2008
[MMP] has only broadcast by now 312 blocks to [HM]&[AJ]
[HM][AJ] treat them as valid, because the list of miner keys in the special block match the signed blocks
and they were broadcast at the right time

at day2 hour 05:36.
[MMP] can start hashing the special block template including their preferred keys
[MMP] for 11 days and 18 hours they can make the special blocks hash with a super strong hash
which due to them combining as a pool can have a hash of 23E running for 11 days. will be alot stronger than [HM] 10min 19.8Ehash effort later on
...
note MMP have been continuously hashing for 11 days to beat HM 10min hash
..
at day 13 hour 22:50
[MMP] finally gives out block 2008 to [HM]&[AJ]
[HM] & [AJ] can finally start their 1 hour hash of block 2008 to get a public key for possible list entry
[MMP] has already got all prefered keys with strong hash each and a 11day strong hash for special block

thus [MMP] win the next round
now MMP has full control and win every block and every session

..
now here is the thing
because you made it a point that only the 2016 key owners inside special block get to be miners
you have caused this opening to malicious miners to do empty block, for fast block creation
especially if each block(bar2008 and special) is PoS
note: to win a special block. does not require a 51% attack. malicious pools can just get lucky with less hashpower. or combine efforts to pool higher hashpower to increase chances.. worse case. they just have to wait another 2 weeks and try and get lucky before implementing their strategy

..
now imagining they got lucky and implemented their strategy
now if you were to put a rule in that invalidates 'empty block'.. but whereby all malicious miners are the listed miners for the session
you end up stalling the network. because the only people able to mine are also the only people your rejecting. and no one else outside your special block list can take over..

so you are going to need a second rule where if there is a network stall. you have to orphan all blocks back to and including the special block. so that someone else can have a chance to make a honourable special block

but here is then the next error in this rule
the malicious pool could have another hash of another special block of slightly less than first (now orphan win) but still higher then if [HM] was given another chance
full member
Activity: 193
Merit: 121
Just digging around
July 12, 2021, 07:51:06 AM
#29
I doubt it would save miners money. Remember that mining -- even if "optimized" -- always reaches an equilibrium of money being spent vs money to be made. So as long as there's money to be saved -- which in the end is profit to be made -- miners will pour in.
That's something I didn't think this way. Not easy to increase XXXX MW capacity, but doable with time and money for sure. We could end up with 100x times more load used by 100x more miners with huge intermittent load for the grid Sad  So my idea looks good for mining manufacturers only at the end (which I am not). As most of the time it's better to stick with the devil/algo you know.
legendary
Activity: 3108
Merit: 2177
Playgram - The Telegram Casino
July 12, 2021, 06:24:21 AM
#28
Non mining nodes have their own internal clock (thousands of independent clocks) so they would simply refuse to accept in advance/too late/invalid signature. And as a punishment for cheating the prev/next/any? signer would have to right to send the block with this blockheight in the right timeframe.

I agree this is a tough/impossible problem. Although I think that all the nodes have a decentralized time of it's own. Attacking all the NTP servers at once (especially as the clients don't update too often probably once a day, and use their own internal clock always) is probably impossible.

This is still prone to Sybil attacks though. Bitcoin avoids this by having the timestamp protected by PoW.


But as an idea it has some validity IMHO. So maybe battle testing for years on a testnet/alt would would be interesting as this is not a huge change and would save a lot of money for miners.

I doubt it would save miners money. Remember that mining -- even if "optimized" -- always reaches an equilibrium of money being spent vs money to be made. So as long as there's money to be saved -- which in the end is profit to be made -- miners will pour in. Accordingly even if a workable system could be conceived that would reduce constant mining to just a few hours every two weeks, miners would simply spent all the resources they'd use over two weeks in just those few hours. So you end up with a system that not only does not use less resources, but to make matters worse, uses the resources it does have at its disposal way less efficient than it could (ie. stress on hardware and infrastructure due to mining operations going on and offline, assuming they don't simply switch to a different blockchain during "idle" periods).
full member
Activity: 193
Merit: 121
Just digging around
July 12, 2021, 04:57:55 AM
#27
The clock is an oracle in fact.
All protocols that require exact time measurement and the consensus of users as to whose clock gives the correct time are inevitably centralized.


I agree this is a tough/impossible problem. Although I think that all the nodes have a decentralized time of it's own. Attacking all the NTP servers at once (especially as the clients don't update too often probably once a day, and use their own internal clock always) is probably impossible.

Implementing this on bitcoin is impossible for several reasons (never thought that), also risky and I would hate it myself.

But as an idea it has some validity IMHO. So maybe battle testing for years on a testnet/alt would would be interesting as this is not a huge change and would save a lot of money for miners.

For the grid though it would be worse than the current continuous 100% load as this is probably much easier to handle than having all the miners firing up for a few hours/months.
full member
Activity: 193
Merit: 121
Just digging around
July 12, 2021, 04:55:16 AM
#26
3. assume the special block creator (address listed for position 2016) will not want to lose its control and continue to put his address and PoW proof at the next 2016th slot to remain in control as list manager
The creator of the special block would not be a special or selected entity, but pure PoW selected. So to get right to mine a block you would need to find a hash and assuming you collected enough PoW hashes AND you find a 2000-3000-10000 times larger hash you (or anyone else who finds a good enough has) can create this block.


3. assumssume the special block creator (address listed for position 2016) will not want to lose its control and continue to put his address and PoW proof at the next 2016th slot to remain in control as list manager
The block creator is PoW selected for each epoch/proof-block not designated by anyone.


assume those wanting to be added to special block will have more hash power than average joe. and able to do more then one PoW process concurrently to have more then one address committed to special block
The whole process is PoW so if you have more hash power you will be able to mine more blocks just as today. The only way to be added to the special block is mine a good enough hash.


non-mining nodes only given the blocks at the prescribed time
Non mining nodes have their own internal clock (thousands of independent clocks) so they would simply refuse to accept in advance/too late/invalid signature. And as a punishment for cheating the prev/next/any? signer would have to right to send the block with this blockheight in the right timeframe.

i thoroughly understand the premiss of the utopian honour system you imagine.
No honor system in this proposal just pure PoW and nodes for consensus enforcement (~as today).
member
Activity: 162
Merit: 19
July 12, 2021, 02:52:08 AM
#25
The clock is an oracle in fact.
All protocols that require exact time measurement and the consensus of users as to whose clock gives the correct time are inevitably centralized.
legendary
Activity: 4410
Merit: 4766
July 10, 2021, 11:51:10 AM
#24
or more simply
(imagining difficulty started at GPU solomining levels again(another utopian dream))

user has beenn selected randomly as slot 2016 honourably
he has  10,000x more then average joe and when he seen block 2008 he ran
2016 concurrent PoW processes using 4x average joe hashpower.
because he has specil block status he also ensures he gets to be special block manager each session
meaning al blocks become his. forever

or he and 15 friends with 10,000x average joe colluded to have
126 concurrent PoW of 80x more then average joe
16 people getting 126 blocks per session. where they are 80x more power then other solominers
at the end of their session one of them is specila blocker. to ensure inclusion of all 16 for each session
legendary
Activity: 4410
Merit: 4766
July 10, 2021, 11:38:30 AM
#23
i thoroughly understand the premiss of the utopian honour system you imagine. but put the blackhat/collusion competition hat/bug finding hat on and run scenarios on your algo where by users are trying to game the system

i know you are living on the assumption of utopian honour of how the algo SHOULD work.
but when it comes to finding bugs and loop holes. dont assume utopian honour by default.
assume competing adversaries finding any efficiency possible for own selfish gains.
including assumptions of collusion of multiple parties. or replication of single parties multiple times

bitcoins beauty is the assumption of competition. and so bitcoins current algo solves the competition in a way that makes them play by the rules(byzantine generals rule, and other game theory)
your assumption is they play honourably by default to make your rules work.. (the opposite)

so under as natural assumption of competition. you do need to consider bad actors and also groups colluding.
and then try to see where the bugs/loopholes in your algo are

so possible assumptions you do need to consider:
1. when nodes get the 2008th block (special block-7) the assumption is any/all nodes can start a PoW process on that 2008 header and attach their address to be included in next special block
whereby the special blocker adds in the highest 2016 hashrate proofs
-assume that all parties wanting to be in special block will want as early a head start as possible
-assume the special blocker can select and ignore anyone he wants, even if they have good hashrate
(EG tx fee. paying most fee does not guarantee you access into next block. the block maker decides)

2. assume those wanting to be added to special block will have more hash power than average joe. and able to do more then one PoW process concurrently to have more then one address committed to special block

3. assume the special block creator (address listed for position 2016) will not want to lose its control and continue to put his address and PoW proof at the next 2016th slot to remain in control as list manager

4. assume the special block creator chooses which slot listers to have as he is the one writing the block template and signing it.


you also have to assume other competitions. where by your utopian narrative THINKS alice will only broadcast at her prescribed time to avoid bob from stealing her slot. where your utopian honour thinks your algo works.. however if alice and bob are the same person. or alice and bob are friends collaberating.
your algo wont work

...
so now run the scenario.. imagine there are 1million users. and say 10,000 elite users with more then average hashpower
and of the 10k there are 504 super 'farms' that want to collude together..(corporate/buddy group)
imagine they have 10,000x more power then average joe
so each of the 504 use the scenario in which i played out in my previous post.

all secretly handing each other their blocks ahead of time to make all 2016 blocks in about 7 hours.
non-mining nodes know nothing of this,
non-mining nodes only given the blocks at the prescribed time

so lets dig deep into the scenario
so these 504 have all 2016 blocks early.. and have 13days and 17 hours SPARE to make their PoW proofs of block 2008 which they already have waiting..

they can use all 10kxAJ hashpower consecutively in 4 attempts of 3 days each.. so that they all have 4 listings each when it gets time to submit their proofs
where the hashrate will be of 3days work at 10,000x more then average joe, per address.. to secure 4 slots in the special block each

or they can split their 10,000x hashpower into 4xof 2500x and run 4 concurrent runs of 2500x for 13 days

either way. this group of 504 users are now guaranteed 4 blocks a month. and average joe has no chance of being a miner in the future

..
and now assume the miner at listing 2016 (special block) gets to pick which 504 miners to be listed in the block. as he is the one that creates the template and signs it..

.
i thoroughly understand the premiss of the utopian honour system you imagine. but put the blackhat/collusion competition hat/bug finding hat on and run scenarios on your algo where by users are trying to game the system
full member
Activity: 193
Merit: 121
Just digging around
July 10, 2021, 02:16:08 AM
#22
EG if order was
0001 Aliceminer  12:00
0002 Bobminer   12:10
0003 Chadminer 12:20
0004 Daveminer 12:30
0005 EricMiner   12:40
0006 Fredminer  12:50

alice makes block at 11:50:10.. (timestamped 12:00) send to bob at 11:50:11
bob makes block at 11:50:20..(timestamped 12:10) send to Chad at 11:50:21
chad makes block at 11:50:30..(timestamped 12:20) send to Eric at 11:50:31
eric makes block at 11:50:40..(timestamped 12:30) send to Fred at 11:50:41

now lets say fred is the 'honourable one
its still only 11:50:41 so fred has the opportunity to make his own block by 11:50:50 based on eric header.
I believe this is not the case. As soon as 0001 was broadcasted (and signed) early all honest nodes disregard (doesn't matter what the timestamp is as all node know the time). In addition Aliceminer's signature and right to mine would be banned (by the honest nodes) because of cheaiting and the next/prev miner would have the mint the block around the correct time.

next flaw
 the person listed to be the 2016 blocker. who accumulates all the 'willing participants' of the next fortnight session. can easily put in his own 2016 (looks random) public keys as the list of 'who' gets to make the next blocks
thus winning all rewards
Of course not, I am not -this- dumb Wink. The miner creating the proof block can only decide the order of the miners not who mines. This is PoW so each miner needs a signature AND a PoW proof of hashrate (hash as today). So the builder of the proof block can only build a block if collected all the mined hashes (PoW) and ordered them properly. This PoW would be the same as Bitcoin's today meaning adjusting to mining power. So the proof-block would take an approx. 60 minutes to mine. Could be more or less, but needs enough PoW attached. Miner of the PoW block would be forced to be honest (eg. not delaying broadcast to show it was harder) by the fact that anyone else can build this block who finds a good enough hash (again PoW) so delaying the block would risk loosing the block reward.
legendary
Activity: 4410
Merit: 4766
July 08, 2021, 08:47:18 PM
#21
firstly there is no 'absolute' in regards to a 10min rule.
bitcoin has a special mechanism to control this. which this topic is missing

but anyways lets play the topics scenario out:
so delaying a broadcast of a block that can be made in 10 seconds. and telling it to wait another 9minutes 50 seconds is meaningless.  and not really achievable

as the next block signer onlist will happily love to see the previous block header early. because they can then start their own block signing before they should.
thus starting a chain of events where the next inlines get their blocks accepted by the next in line.
and the other nodes are then the ones waiting
EG if order was
0001 Aliceminer  12:00
0002 Bobminer   12:10
0003 Chadminer 12:20
0004 Daveminer 12:30
0005 EricMiner   12:40
0006 Fredminer  12:50

alice makes block at 11:50:10.. (timestamped 12:00) send to bob at 11:50:11
bob makes block at 11:50:20..(timestamped 12:10) send to Chad at 11:50:21
chad makes block at 11:50:30..(timestamped 12:20) send to Eric at 11:50:31
eric makes block at 11:50:40..(timestamped 12:30) send to Fred at 11:50:41

now lets say fred is the 'honourable one
its still only 11:50:41 so fred has the opportunity to make his own block by 11:50:50 based on eric header.
 
but now he is just honourably ignoring and pretending A,B,C,D,E dont exist yet(pretend ignorance for honour). and is waiting pretty much an hour twiddling his thumbs before he 'honourably' admits they already exist to then honourably broadcast his block at 12:50

reality is that all the 2016 designated miners would just make all 2015 blocks within 5 and a half hours of their first block session. and the rest of the network are then waiting upto 2 weeks before admitting the blocks already exist

this is a mega "empty" blocker risk/opportunity.. of 2015 blocks scheme in under 6 hours for the designated miners.. and then 2week self 'only seen at set time' pretend delay. for the rest of the network


.....
next flaw
 the person listed to be the 2016 blocker. who accumulates all the 'willing participants' of the next fortnight session. can easily put in his own 2016 (looks random) public keys as the list of 'who' gets to make the next blocks
thus winning all rewards
or
at very least ensure he puts his own key as the last key (the next 2016th block) to remain in control of the list each time(many exploits can be done here)

heck he could even do his 1 "hour" mining 13 days 19hours and 20 minutes before his special block is to be accepted. and already be working on the next 2016 block session he designated to himself. way way way before the rest of the network decide to admit the blocks existed for most of the fortnight
his only job for over 13 days is to just re-broadcast the set at the right time

and before you say it.. the 'special' blocker can have 2016 GPU(i presume you also trying to devolve back the hashpower to solo mining gpu) so that he can make all 2015 designated keys attached to an hours worth of hash labour each
and do that all within an hour(concurrent) of the 2008th block(end-7) which was created only under 7 hours from the start of the new 2016block cycle


in short
the designated miner(s) have the future 2015 blocks and the 2016th 'special block' with its 2016 separate 1 hour mining hashpower work.. all waiting in under 7 hours of the start... where the rest of the network are playing ignorant and only updating their blockheight in a slow timely manner over 2 weeks. finding out each block is an empty block in most cases
member
Activity: 75
Merit: 22
July 08, 2021, 06:15:31 PM
#20
Proof of concept
- After each period (lets say 2016 blocks) there would be a special/different block of which would include all the miners wishing to mine and their best hash. Using low enough difficulty miners "boost mine" for let's say an hour and would include all the calculated hashes in this "proof-block".
- The miner mining the 2016th block would create and broadcast the proof-block. This block would include the PublicKey of the miners for each 2016 future blocks in order of creation and expected time of creation.
- After this all mining would stop and order of miners who allowed to create a block would be sealed in the proof-block

--snip--
Following the chain with the longest history, there could be two conflicting chains with the same amount of blocks which would cause a consensus problem. The system you're describing resembles a lot to ethereum's PoS.

To clarify my point any miner could thrick the timestamp on the proof-block and all the nodes may not agree on what time it was posted so we may end up with a consensus problem. I think the solution is a PoW/PoS hybrid system where all the coins have to be mined in the first place then every holder has a vote on the next block. Unfortunately, Bitcoin's cultist can't understand that simple concept and Bitcoin's cultist don't like PoS for no reason but they can't stop anyone from creating a fork and call it "Bitcoin" because it'supposedly decentralized Cheesy
full member
Activity: 193
Merit: 121
Just digging around
July 08, 2021, 01:14:16 PM
#19
Wouldn't that just mean that a single mining operation (ie. the one that finds the special block) would then control the blockchain for the next 2016 blocks? What incentive is there for including other miners if you're the one actually mining the 2016th block?

Also miners would just use their hardware and infrastructure to mine different coins inbetween those special blocks, so PoW would not get "saved", rather moved to different coins. Remember that Bitcoin does not exist in a vacuum.
No, the miner of the proof-block have collect all the hashes mined by all the others and order it (as he likes as order is not there until, well ordered). He needs all the hashes miners broadcasted in this one hour to produce a proof-block with all the 2016 blocks and attach the correct PublicKey of each miner to the select blockID. The incentive could be to have the right to mine first block of 2016 inlcuded to this miner of the proof-block. If this miner delays broadcasting the proof-block other will seconds later and he looses.

Indeed, miners could move to other SHA256 chains. But I doubt that any other chains can offer nearly enough reward to accommodate such a huge hash rate. I think most miners would just wait for the next proof-of work period to start in two weeks.
full member
Activity: 193
Merit: 121
Just digging around
July 08, 2021, 01:09:09 PM
#18
There is nothing worse than someone inventing something (that is nothing new or special) and calling it brilliant himself  Roll Eyes

In reality this idea would have so much flaws in real life that it would probably be unusable or in best case heavily abused by someone, but we don't have to wait and see what happens, because I am sure that some altcoin will gladly test your ''invention''.

Indeed, I forgot the quotes around brilliant. But I added a smiley Wink.
full member
Activity: 193
Merit: 121
Just digging around
July 08, 2021, 01:07:11 PM
#17
this sounds like proof of work without the work  Shocked

I’m technically challenged, but that’s how I understood it as well. If it is that, then OP is removing the best part of Bitcoin and replacing it with something else that could weaken the Sybil Attack protection mechanism, and weaken the very thing that makes everything stick together in Bitcoin. Satoshi’s utilization of POW is pure genius.

No it's not removing PoW. Current PoW is genius and is simple and is elegant, not to be replaced (maybe improved). It has some issues like fluctuation in block time and lot of work which I believe could be replaced without weakening the PoW. Again you would need the same amount of miners to earn the same amount of coins as today.
full member
Activity: 193
Merit: 121
Just digging around
July 08, 2021, 01:03:06 PM
#16
- The miner mining the 2016th block would create and broadcast the proof-block. This block would include the PublicKey of the miners for each 2016 future blocks in order of creation and expected time of creation.
- After this all mining would stop and order of miners who allowed to create a block would be sealed in the proof-block

You'll need to elaborate on this point.  What determines this "order"?  Are you just expecting everyone to form a neat and orderly queue or something?   

The miner would decide the order who mines the proof-block. But that's the only thing he can decide. Not who mines and how many as he can't withhold any mined results (without risking someone else will mine the correct proof-block) he has to broadcast ASAP to get the bonus (miner of the proof-block could get the right the first block of 2016 for example).
legendary
Activity: 3948
Merit: 3191
Leave no FUD unchallenged
July 08, 2021, 12:48:27 PM
#15
- The miner mining the 2016th block would create and broadcast the proof-block. This block would include the PublicKey of the miners for each 2016 future blocks in order of creation and expected time of creation.
- After this all mining would stop and order of miners who allowed to create a block would be sealed in the proof-block

You'll need to elaborate on this point.  What determines this "order"?  Are you just expecting everyone to form a neat and orderly queue or something?   
legendary
Activity: 2212
Merit: 7064
July 08, 2021, 08:13:50 AM
#14
There is nothing worse than someone inventing something (that is nothing new or special) and calling it brilliant himself  Roll Eyes

In reality this idea would have so much flaws in real life that it would probably be unusable or in best case heavily abused by someone, but we don't have to wait and see what happens, because I am sure that some altcoin will gladly test your ''invention''.
legendary
Activity: 2898
Merit: 1823
July 08, 2021, 07:00:47 AM
#13
this sounds like proof of work without the work  Shocked


I’m technically challenged, but that’s how I understood it as well. If it is that, then OP is removing the best part of Bitcoin and replacing it with something else that could weaken the Sybil Attack protection mechanism, and weaken the very thing that makes everything stick together in Bitcoin. Satoshi’s utilization of POW is pure genius.
full member
Activity: 193
Merit: 121
Just digging around
July 08, 2021, 02:10:55 AM
#12
Wouldn't that just mean that a single mining operation (ie. the one that finds the special block) would then control the blockchain for the next 2016 blocks? What incentive is there for including other miners if you're the one actually mining the 2016th block?
Also miners would just use their hardware and infrastructure to mine different coins inbetween those special blocks, so PoW would not get "saved", rather moved to different coins. Remember that Bitcoin does not exist in a vacuum.
No as they have to build a proof-block which has 2016 blocks with enough PoW. So basically everybody could build a proof-block and broadcast and the one with the most PoW wins. So as long as there is one honest miner proof-block is fine. Even if they can find 2016 blocks themselves someone else would create a proof-block with more PoW - assuming there are more miners around.


It should be fairly trivial to just force whatever hash is putting you at an advantage for the next special block though. Especially since you... you know... already got the hardware lying around.
I think not as the hash of block at N-7 blockheight (which you have to use to start calculating the proof-block) hash is not predictable in advance as it depends on the previous which depends on the previous, etc.
legendary
Activity: 3108
Merit: 2177
Playgram - The Telegram Casino
July 07, 2021, 09:54:48 AM
#11
- After each period (lets say 2016 blocks) there would be a special/different block of which would include all the miners wishing to mine and their best hash. Using low enough difficulty miners "boost mine" for let's say an hour and would include all the calculated hashes in this "proof-block".
- The miner mining the 2016th block would create and broadcast the proof-block. This block would include the PublicKey of the miners for each 2016 future blocks in order of creation and expected time of creation.

Wouldn't that just mean that a single mining operation (ie. the one that finds the special block) would then control the blockchain for the next 2016 blocks? What incentive is there for including other miners if you're the one actually mining the 2016th block?

Also miners would just use their hardware and infrastructure to mine different coins inbetween those special blocks, so PoW would not get "saved", rather moved to different coins. Remember that Bitcoin does not exist in a vacuum.


As for the proof of hashrate, there isn't any mechanism or any that I can think of that can ensure that the miners do not find those hashes that you've mentioned before that hour.

We would use the hash of the end-7 block of the previous epoch which was not know earlier. There is the proof that you did not/could not mine earlier in the given hour.

It should be fairly trivial to just force whatever hash is putting you at an advantage for the next special block though. Especially since you... you know... already got the hardware lying around.
full member
Activity: 193
Merit: 121
Just digging around
July 07, 2021, 07:48:42 AM
#10
As for the proof of hashrate, there isn't any mechanism or any that I can think of that can ensure that the miners do not find those hashes that you've mentioned before that hour.

We would use the hash of the end-7 block of the previous epoch which was not know earlier. There is the proof that you did not/could not mine earlier in the given hour.


Margin of error is within 2 hours. The entire network has to decide whether to agree or disagree on a block. A slight deviation of the time on each of the nodes could potentially result in some accepting the blocks and some rejecting it.
If it's 2 hours then it's too long, but the block order is still there. So you can't cheat, the best you can do is introduce your rightful block a few minutes earlier. You can't create more etc.

But yes, it's indeed a big endeavor and almost impossible to implement on Bitcoin.

Well, all ideas die eventually. This one a bit faster Wink
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
July 07, 2021, 02:07:15 AM
#9
BUT;
You do have to prove you have the hashrate periodically and once, so you can't just "vote twice".
Proof of some work. Assuming constant profit margin, miners will start purchasing even more ASICs to mine on other PoW chains and only shift the ASICs to your chain as and when it is required. The effective profits of the miners increases, without any actual decrease in the electrical consumption overall. In fact, the chain becomes less secure because the miners are only sacrificing a lower portion of opportunity costs by mining for only an hour on your chain. There is no way miners would ever just let their ASICs sit there.

You still need the hashrate, same as today. You can't just "create keys". You need exactly the same hashrate as you do today to get in the proof-block and to earn exactly the same amount of bitcoins as you do today. The PKs are only needed to prove that you are the miner who had the hashrate when creating the actual block.
Proving that you have the hashrate only at a period of time, ie start of the epoch isn't very helpful for PoW. Your security of the chain effectively comes from an hour of mining, and subjected to the interests of the miners as they don't stand anything to lose by supporting a rogue fork afterwards. As for the proof of hashrate, there isn't any mechanism or any that I can think of that can ensure that the miners do not find those hashes that you've mentioned before that hour. There has to be an included secret embedded in those hashes that is only revealed by the hour, which is quite difficult considering how nodes are independent and the lack of consensus on that would make this a difficult task.

Since your inclusion of your low difficulty hashes is in your proofblock, it'll be quite big and difficult to relay through the network. Ideally, the entire network should see each of the 'calculated hashes' to ensure that the proofblock miner isn't biased and specifically excluding certain data. The bandwidth requirement would be quite big in this case. Variance can also be a potential issue, where an hour isn't ideal to eliminate the possible variance from miners being able to find more hashes than others with less resources.


Timestamp is a problem indeed. But it's not true that bitcoin doesn't know the actual time. As far as I know the client does know the ~time "for sure" time by averaging the last X blocktime. In addition each client knows it's time, so if the rightful creator of the next block does it at the right time each client has to right to accept or reject if it's out of the time slot. You also know the previos block height, so any attacked can only play after and before the blocks of his own block and if it fails to create a correct block at the correct time others will take over.
Margin of error is within 2 hours. The entire network has to decide whether to agree or disagree on a block. A slight deviation of the time on each of the nodes could potentially result in some accepting the blocks and some rejecting it.
full member
Activity: 193
Merit: 121
Just digging around
July 07, 2021, 01:25:18 AM
#8
It would save ~99.8% percent of power cost (1 hour mining time vs 336 hours today)

But, the mining for the previous 2015 blocks happens normally. You aren't saving anything. You're describing that special block more than you should, or more than the explanation of other details.

No it doesn't. I mean yes, once at the switch over, but from that point the first "proof-block" would set the order of the next period. Than the next proof-block would do the same for the next and so on.



What you mean is that a special block will be generated every 2016 block. This block will pre-set which miner will account for the next block 2016. To achieve the purpose of saving electricity.

However, there is no proof of work here.One of the purposes of pow is to solve the Byzantine generals problem and make it more
difficult to do evil.

In POW, all computing power must not only compete for the right to bookkeeping, but also verify the results of each bookkeeping.

If other miners shut down after selecting which miners will account for the 2016 blocks, to save electricity. Is likely to suffer a 51% attack.

So I think OP your idea can neither save electricity, but also destroy the decentralization of the blockchain.


But your idea is a bit like SOLANA's POH.

Nope. You can't do 51% attack any easier than today as you still have to have the hashrate to get the right to create blocks.
You can still verify all the blocks as the digital signature proves that the miner who had enough hash power to be included in the proof block is the one signing the block (and doing so at the right time and order).
It won't just save electricity but also would improve predictability of the blocks. Also would make the two weeks two weeks long. Not almost three what happened recently.



Bitcoin doesn't have a standardized timestamp that is anywhere accurate. The network allows for a significant deviation from the median time. Any concepts like this requires a hard fork, current clients will validate to check it the block hash satisfies the current target.

Fundamental problem with these concepts which attempts to reduce the resource usage is highlighted in the first reply. As there is no way to restrict the number of unique miners, the concept fails as anyone can create as many keys as they want to lock in the rewards. The 2016th block's miner effectively holds total control over the network, and to decide who is able to mine the next 2015 blocks.



You still need the hashrate, same as today. You can't just "create keys". You need exactly the same hashrate as you do today to get in the proof-block and to earn exactly the same amount of bitcoins as you do today. The PKs are only needed to prove that you are the miner who had the hashrate when creating the actual block.

Timestamp is a problem indeed. But it's not true that bitcoin doesn't know the actual time. As far as I know the client does know the ~time "for sure" time by averaging the last X blocktime. In addition each client knows it's time, so if the rightful creator of the next block does it at the right time each client has to right to accept or reject if it's out of the time slot. You also know the previos block height, so any attacked can only play after and before the blocks of his own block and if it fails to create a correct block at the correct time others will take over.
full member
Activity: 193
Merit: 121
Just digging around
July 07, 2021, 01:23:44 AM
#7
this sounds like proof of work without the work  Shocked

Yes and no. Yes, because you don't have to do the work for while.

BUT;
You do have to prove you have the hashrate periodically and once, so you can't just "vote twice".
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
July 06, 2021, 10:01:18 PM
#6
Bitcoin doesn't have a standardized timestamp that is anywhere accurate. The network allows for a significant deviation from the median time. Any concepts like this requires a hard fork, current clients will validate to check it the block hash satisfies the current target.

Fundamental problem with these concepts which attempts to reduce the resource usage is highlighted in the first reply. As there is no way to restrict the number of unique miners, the concept fails as anyone can create as many keys as they want to lock in the rewards. The 2016th block's miner effectively holds total control over the network, and to decide who is able to mine the next 2015 blocks.

member
Activity: 98
Merit: 173
July 06, 2021, 08:39:51 PM
#5
What you mean is that a special block will be generated every 2016 block. This block will pre-set which miner will account for the next block 2016. To achieve the purpose of saving electricity.

However, there is no proof of work here.One of the purposes of pow is to solve the Byzantine generals problem and make it more
difficult to do evil.

In POW, all computing power must not only compete for the right to bookkeeping, but also verify the results of each bookkeeping.

If other miners shut down after selecting which miners will account for the 2016 blocks, to save electricity. Is likely to suffer a 51% attack.

So I think OP your idea can neither save electricity, but also destroy the decentralization of the blockchain.


But your idea is a bit like SOLANA's POH.
member
Activity: 75
Merit: 22
July 06, 2021, 03:44:38 PM
#4
Proof of concept
- After each period (lets say 2016 blocks) there would be a special/different block of which would include all the miners wishing to mine and their best hash. Using low enough difficulty miners "boost mine" for let's say an hour and would include all the calculated hashes in this "proof-block".
- The miner mining the 2016th block would create and broadcast the proof-block. This block would include the PublicKey of the miners for each 2016 future blocks in order of creation and expected time of creation.
- After this all mining would stop and order of miners who allowed to create a block would be sealed in the proof-block

--snip--
Following the chain with the longest history, there could be two conflicting chains with the same amount of blocks which would cause a consensus problem. The system you're describing resembles a lot to ethereum's PoS.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
July 06, 2021, 02:55:35 PM
#3
It would save ~99.8% percent of power cost (1 hour mining time vs 336 hours today)

But, the mining for the previous 2015 blocks happens normally. You aren't saving anything. You're describing that special block more than you should, or more than the explanation of other details.
full member
Activity: 154
Merit: 177
July 06, 2021, 01:51:05 PM
#2
this sounds like proof of work without the work  Shocked
full member
Activity: 193
Merit: 121
Just digging around
July 06, 2021, 01:33:28 PM
#1
Hi,

I came up with a great enhanced proof-of-work concept, I call it optimized Proof of Work and I think it's brilliant Wink
I am not removing any PoW. PoW will still be needed to create blocks, so you would earn the same amount as today with same hashrate. The only difference would be the 99.8% electricity saved.

The Goal
Save 9X% percent of power used for mining without lowering the security mining provides.

Proof of concept
- After each period (lets say 2016 blocks) there would be a special/different block of which would include all the miners wishing to mine and their best hash. Using low enough difficulty miners "boost mine" for let's say an hour and would include all the calculated hashes in this "proof-block".
- The miner mining the 2016th block would create and broadcast the proof-block. This block would include the PublicKey of the miners for each 2016 future blocks in order of creation and expected time of creation.
- After this all mining would stop and order of miners who allowed to create a block would be sealed in the proof-block
- The miner would have a +/- 1 minute range (relative to the expected time the given block should be created) to build, sign and broadcast the block. This signing would be without actual PoW, just using his PrivateKey corresponding to the PublicKeyHash in the proof-block. PoW would be referenced only in the proof-block.
- If the miner didn't broadcast the block in time then the next miner would have the right for 1 minute, after the next miner after the next, etc.. This way it would be guaranteed that a block will be created even if the miner is not available. for any reasons.


Advantages
It would save ~99.8% percent of power cost (1 hour mining time vs 336 hours today)
Block structure would be the same so as the coinbase transaction and creation speed, transactions, etc.
It would keep the chain safe, I believe the same or more as today (maybe more as the two weeks block production is "locked" so no slowing down/speeding up under the period)
It would keep blocks almost exactly 10 minutes apart
It would keep Bitcoin mining the same or more diversified than today

Disadvantages:
You need to have at least 1/2016 of the total hashrate to mine (who is mining with less today?)
Miner needs to be online at the time you are needed if not loosing the slot (so be online: redundancy, etc.). I belive 200K$ is incentive enough to invest into 2-3 distributed servers.
Those creating replacement blocks (if someone missed his slot) would get free(ish) blocks, but they provide a service so I think it's fair.

I know that changing the consensus and hard forking is though/almost impossible, but it may be doable with the voting like with taproot.
 
Please shoot and let me know why this wouldn't work Wink
Jump to: