Bitcoin Forum
May 03, 2024, 07:23:05 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bitcoin Tic-Tac Coopetition mining  (Read 1385 times)
JFC (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 17


View Profile
December 09, 2016, 09:31:37 AM
Merited by ABCbits (1)
 #1

Hi,

I've had recently this idea for a more ecological and economical way of mining bitcoins and I'd like to contrast it with technical minded people.

I've written a small post at https://josefemenias.wordpress.com/2016/12/07/bitcoin-coopetition-mining/ with a little more detail, but I am presenting a brief description below.

The basic idea is to alternate bitcoin mining in two phases that use competition and cooperation (relative duration is just an example):

Tic Phase - Competition. 144 blocks long
During this phase (144 blocks long for instance) everything works as always. Mining pools compete to validate and add new blocks to the blockchain.
This phase is open to anyone. After the 144th block has been mined, the network enters the Tac Phase.

Tac Phase - Cooperation. 1440 blocks long
This phase is restricted. Only those who have solved at least one block during the most recent Tic Phase can validate blocks during the Tac phase. No hashing is performed during this phase, only signing.

New blocks are added to the blockchain following these rules:
  • The cooperation phase will last for 144 x 10 blocks = 1440 blocks.
  • The rewards during this cooperation phase (fees and new coins) will be fairly distributed among the winners of the previous competition phase. Fairly should be interpreted as proportional.  That means that a mining pool that solved 7% of the blocks during the competition phase will get 7% of the total proceedings from every block mined during the competition phase.
  • Every 10 minutes a new block is created and broadcasted to the network.
  • The new block is considered valid if:
    • 1.- All of its transactions are valid.
    • 2.- It transmits the newly generated coins and any fees due in a fair manner, as described previously.
    • 3.- The block has been signed by the winners of the Tic phase. The signatures must represent more than 50% of the total network hashing power, as proven during the competition phase.
  • No hashing at all will be performed during this phase; signing will be interpreted by the network as proof enough that the block is valid. (That is where the energy savings come from, obviously).
  • In case of conflict, the block with more valid signatures is considered the valid one.
  • After the 1440th block has been mined this way, the network enters again the Tic phase.

As you can see, this system would preserve most of the current Proof Of Work characteristics of bitcoin mining but with a twist that allow the mining pools to put their system to rest for a significant period of time, thus saving energy and money. I've chosen the duration of the two phases in an arbitrary manner, so that, for every day of competition we'd 10 have days of minimal energy consumption.

While I can't see any major drawbacks to this system, I know how tricky game theory can be, so I'd love to hear your feedback on the idea.
1714720985
Hero Member
*
Offline Offline

Posts: 1714720985

View Profile Personal Message (Offline)

Ignore
1714720985
Reply with quote  #2

1714720985
Report to moderator
1714720985
Hero Member
*
Offline Offline

Posts: 1714720985

View Profile Personal Message (Offline)

Ignore
1714720985
Reply with quote  #2

1714720985
Report to moderator
1714720985
Hero Member
*
Offline Offline

Posts: 1714720985

View Profile Personal Message (Offline)

Ignore
1714720985
Reply with quote  #2

1714720985
Report to moderator
"With e-currency based on cryptographic proof, without the need to trust a third party middleman, money can be secure and transactions effortless." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714720985
Hero Member
*
Offline Offline

Posts: 1714720985

View Profile Personal Message (Offline)

Ignore
1714720985
Reply with quote  #2

1714720985
Report to moderator
1714720985
Hero Member
*
Offline Offline

Posts: 1714720985

View Profile Personal Message (Offline)

Ignore
1714720985
Reply with quote  #2

1714720985
Report to moderator
1714720985
Hero Member
*
Offline Offline

Posts: 1714720985

View Profile Personal Message (Offline)

Ignore
1714720985
Reply with quote  #2

1714720985
Report to moderator
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
December 09, 2016, 01:43:31 PM
 #2

1) Tic state is one day long
2) Tac state is ten years long
3) aaaaaand each coinbase scriptSig must contains the pattern:
"Hello, Federal Reserve System!"
tromp
Legendary
*
Offline Offline

Activity: 978
Merit: 1080


View Profile
December 09, 2016, 03:13:04 PM
Merited by ABCbits (3)
 #3

As you can see, this system would preserve most of the current Proof Of Work characteristics of bitcoin mining but with a twist that allow the mining pools to put their system to rest for a significant period of time, thus saving energy and money. I've chosen the duration of the two phases in an arbitrary manner, so that, for every day of competition we'd 10 have days of minimal energy consumption.

While I can't see any major drawbacks to this system, I know how tricky game theory can be, so I'd love to hear your feedback on the idea.

Except that if you reduce all miner's energy costs by 90%, they will all use their vastly increased profits to buy many times more hashpower to maintain their share of the pie. You end up with 10x more hashpower sitting idle 90% of the time.

In the end, you'll always have: cost of total energy spent on mining = block reward + fees ...
JFC (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 17


View Profile
December 10, 2016, 09:22:11 AM
Merited by ABCbits (1)
 #4


Except that if you reduce all miner's energy costs by 90%, they will all use their vastly increased profits to buy many times more hashpower to maintain their share of the pie. You end up with 10x more hashpower sitting idle 90% of the time.

In the end, you'll always have: cost of total energy spent on mining = block reward + fees ...

Thanks for your comment.
You make a very interesting point here. However, I don't think the math totally adds up. In order to have 10x hash power, the miners have to invest 10x more in ASIC equipment.
10x more equipment running 1/10th of the time WOULD give you effectively the same energy consumption as the normal system, but with a few caveats:

  • The total capital investment would be (at least) 10x more, to reach the same level of rewards as today
  • In most places the energy cost would be more than 10x more, since you have to pay for the availability of that much power during much less time.
    Also infrastructure changes may be needed for the larger operations.
  • To make it more clear. At 10x the hashing power sitting idle 90% of the time you have the same energy costs and 10x more capital investment
  • Even it that were the case -which it seems to me it can not be- Tic-Tac mining would present have several advantages, namely:
    • Total hashpower of the system much larger than now, so more resiliency against rogue government attacks for instance.
    • Mining becomes more capital intensive, less reliant on cheap energy. Capital is available worldwide. Energy seems to be way cheaper in China. So...
    • The cooperation phase would bring a new block "exactly" every 10 minutes, thus having a more predictable system 90% of the time
    • The cooperation phase seems to me less prone to collusion than the competition phase. So 90% of the time the network is more secure.

Still, I think you made a valid point but -in the end- we would end up with less energy (most likely not in that factor) but more capital and hashing power.
For a Chinese miner with zero energy costs this could be a nightmare, I suppose. But in order to get a more decentralized network I think it could be positive.
JFC (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 17


View Profile
December 10, 2016, 10:14:08 AM
 #5

1) Tic state is one day long
2) Tac state is ten years long
3) aaaaaand each coinbase scriptSig must contains the pattern:
"Hello, Federal Reserve System!"

You are right.
A very long Tac state would go against competition.
And that is the reason why the Tac state should be short enough to allow new players to enter the system every few days.
Vorksholk
Legendary
*
Offline Offline

Activity: 1713
Merit: 1029



View Profile WWW
December 11, 2016, 09:07:20 PM
Merited by ABCbits (25)
 #6

Interesting. To start off with, a few questions:

1. What happens with P2Pool blocks?
P2Pool blocks (ex: https://blockchain.info/block/000000000000000001a1a36ada43fb03b4eb05f30cbe94a206a4a457fb4d71e5) pay out the coinbase + transaction fees to a bunch of addresses, proportional to each's contribution to mining the block. If a P2Pool block was included in the Tic phase, would all of those miners be signing new blocks in the system?

2. Does the Bitcoin network enforce proper payouts to the miners of the 144-block Tic phase as a hard consensus rule?
It appears from your post ("The new block is considered valid if: ... 2. It transmits the newly generated coins and any fees due in a fair manner") that this is the case, but I wanted to make sure that this wasn't just the validity check that other miners do before signing the block.

3. Who initially assembles the block for the network to approve?
Whoever assembles the block gets an advantage (get authority over transaction inclusion, can choose to include their own zero-fee transactions). If you create a system where block n in the Tac phase is assembled by the miner who mined block (n mod 144) from the Tic phase, what happens if that miner is offline? If there isn't a particular miner/signer responsible for creating any particular block, how do nodes resolve which block to sign?

4. How is the 10-minute timing enforced?
Do peers on the network simply not accept a blockn+1 if the timestamp from the blockn plus 600 seconds isn't the same as the timestamp in blockn+1, and the timestamp of the new block is within a margin of error of their current (local) clock? What would prevent 'whiplash' where miners/signers see it in their best interest to sign the new block as soon as it is proposed (regardless of whether it has actually been 10 real minutes since the last block), which causes them to be creating blocks that, based on their embedded timestamp, appear as if they were made in the future? As they approach the (fairly unknown) maximum allowable clock drift that the large majority of the network will support, they slow down (or even halt) block creation for a while. Even worse, if they overstep the allowable clock drift such that some peers on the network see a new block as barely-in-range compared to their local timestamp, but other peers see the block as barely-out-of-range, is there a desynchronization problem? The cost of performing PoW generally mitigates this problem, since a miner's primary goal is getting the network to accept their block, but in this model (where producing multiple valid blocks has a cost of nearly zero, and a block that gets rejected could have the timestamp adjusted, or could just be re-broadcast later to the network again), these limits could be continually pushed without any significant cost to the miners/signers.

5. What happens when the last block of a Tic phase is contested, with two equally-valid blocks proposed by different miners?
Is strong subjectivity lost? If the two miners who created competing blocks for the last block of the Tic phase both had significant mining power in the entire Tic phase, they would actively not vote for blocks that resolve the fork against their favor, which weakens the strength of the Tac blocks against reorganizations.

6. If no block at height n reaches 51% mining approval, what happens?
In case of conflict, the block with more valid signatures is considered the valid one.
What if two blocks are proposed, and one gets 40% approval, one gets 45% approval, and there is 15% (current) non-participation. The network decides, somehow, to accept the one with 45% approval. Then, 6 of the previously-non-participatory 15% comes online and signs the block that previously only had 40% approval (making it now 46% to the accepted block's 45%). Does the network then switch to the 46% block? What if another block has already been stacked on the 45% block; do we have any strong subjectivity to convince bootstrapping nodes of the invalidity of the rejected block despite its' higher approval?

7. What about the opportunity cost for miners/signers to create deep reorganizations during the Tac period?
The opportunity cost of performing a deep reorganization is drastically lower and much easier to perform during the Tac period, as a majority signature power could collude to create a deep reorganization which they sign together. They could also get unfair leverage on their signature power, because they would not sign blocks for the entire period they intended to fork later, so that they don't compete against themselves. Miners might not be particularly opposed to signing onto a reorganization, because they don't forfeit their reward by doing so (the reorganization would still pay them the same amount as before).

Scenario: 25% of block signers all agree to, during the first few Tac blocks, send 1000 BTC total to an exchange and sell it. They wait for confirmations on the exchange, sell the BTC, withdraw the value in alt-coins. They then create new transactions which pay out those 1000 BTC differently (back to themselves, and some sent to the block signers who aren't part of the collusion), and create a new fork with these transactions instead. The non-colluding miners are enticed to accept the fork by signing it, because they get paid additional Bitcoin which they don't own under the current valid chain, and they don't lose their block rewards for doing so, because the new chain will still pay out the coinbase + fees proportionally to the miners. The miners also can't simply embed that spend transaction they benefit from in the current chain at a higher height, because it spends a transaction (or transactions) which were already spent in the legitimate chain.

8. What happens if miners/signers sign multiple competing blocks simultaneously?
A punitive system which punishes miners who submit multiple competing signatures could be implemented (see the Slasher proposal for PoS), but then the punishment of those accounts would be embedded in some way in a future block, which the miner(s) being punished would not vote for, further antagonizing the mining/signing power.

9. What encourages miners/signers to sign at all, rather than go offline and hope other miners/signers don't?
If a miner doesn't have to be online to get their deserved reward from each block, why would they bother validating blocks and signing? If they don't get their deserved reward from each block if they don't sign the block, then it encourages miners/signers to selectively not broadcast other miners' signatures (either so that they can get a higher reward, or to undermine other miners' profitability and get a leg up).

10. What would this change do to blockchains merge-mined with Bitcoin?
Since for the Tac period, they can't use regular PoW mining, would the miner responsible for creating a particular block be the one who gets to merge-mine other chains? In the event that there isn't one delegated miner of each block, miners would all propose blocks in which they receive the merge-mining rewards from merge-mined chains, and wouldn't vote on anyone else's.

VeriBlock: Securing The World's Blockchains Using Bitcoin
https://veriblock.org
iamnotback
Sr. Member
****
Offline Offline

Activity: 336
Merit: 265



View Profile
December 12, 2016, 01:26:57 PM
Merited by ABCbits (3)
 #7

The rewards during this cooperation phase (fees and new coins) will be fairly distributed among the winners of the previous competition phase. Fairly should be interpreted as proportional.  That means that a mining pool that solved 7% of the blocks during the competition phase will get 7% of the total proceedings from every block mined during the competition phase.

Congrats, you've just reinvented essentially Byzcoin, which is incentives incompatible:

https://bitcointalk.org/index.php?topic=1319681.msg16861492#msg16861492

https://github.com/cosmos/cosmos/issues/46#issuecomment-266235696

Who will invent the next NAOD?



NAOD = nonsense algorithm of the day which repeats mistakes already in the prior art, because the author is too uninformed to cite the prior art.
JFC (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 17


View Profile
December 12, 2016, 05:19:00 PM
 #8

Vorksholk, thanks for your insightful comments. My answers below.

Interesting. To start off with, a few questions:

1. What happens with P2Pool blocks?
P2Pool blocks (ex: https://blockchain.info/block/000000000000000001a1a36ada43fb03b4eb05f30cbe94a206a4a457fb4d71e5) pay out the coinbase + transaction fees to a bunch of addresses, proportional to each's contribution to mining the block. If a P2Pool block was included in the Tic phase, would all of those miners be signing new blocks in the system?
There should be a signature per block to avoid bloating the chain.

2. Does the Bitcoin network enforce proper payouts to the miners of the 144-block Tic phase as a hard consensus rule?
It appears from your post ("The new block is considered valid if: ... 2. It transmits the newly generated coins and any fees due in a fair manner") that this is the case, but I wanted to make sure that this wasn't just the validity check that other miners do before signing the block.
It should be part of the block validation, although mining pools would not sign an unfair block for obvious reasons.]

3. Who initially assembles the block for the network to approve?
Whoever assembles the block gets an advantage (get authority over transaction inclusion, can choose to include their own zero-fee transactions). If you create a system where block n in the Tac phase is assembled by the miner who mined block (n mod 144) from the Tic phase, what happens if that miner is offline? If there isn't a particular miner/signer responsible for creating any particular block, how do nodes resolve which block to sign?
Miners should take turns. If the current one responsible fails to deliver a new block, the next one will take his place and so on.

4. How is the 10-minute timing enforced?
Do peers on the network simply not accept a blockn+1 if the timestamp from the blockn plus 600 seconds isn't the same as the timestamp in blockn+1, and the timestamp of the new block is within a margin of error of their current (local) clock? What would prevent 'whiplash' where miners/signers see it in their best interest to sign the new block as soon as it is proposed (regardless of whether it has actually been 10 real minutes since the last block), which causes them to be creating blocks that, based on their embedded timestamp, appear as if they were made in the future? As they approach the (fairly unknown) maximum allowable clock drift that the large majority of the network will support, they slow down (or even halt) block creation for a while. Even worse, if they overstep the allowable clock drift such that some peers on the network see a new block as barely-in-range compared to their local timestamp, but other peers see the block as barely-out-of-range, is there a desynchronization problem? The cost of performing PoW generally mitigates this problem, since a miner's primary goal is getting the network to accept their block, but in this model (where producing multiple valid blocks has a cost of nearly zero, and a block that gets rejected could have the timestamp adjusted, or could just be re-broadcast later to the network again), these limits could be continually pushed without any significant cost to the miners/signers.

There is an incentive to keep mining blocks within a reasonable time delta. Generating blocks too quickly would leave fees for the next competition phase. Stalling the block generation would keep the miners from getting new rewards from the next Tic phase

5. What happens when the last block of a Tic phase is contested, with two equally-valid blocks proposed by different miners?
Is strong subjectivity lost? If the two miners who created competing blocks for the last block of the Tic phase both had significant mining power in the entire Tic phase, they would actively not vote for blocks that resolve the fork against their favor, which weakens the strength of the Tac blocks against reorganizations.
Once one of the two blocks is signed by the majority of the mining pools, the conflict is resolved. Some margin for collusion exists though.

6. If no block at height n reaches 51% mining approval, what happens?
In case of conflict, the block with more valid signatures is considered the valid one.
What if two blocks are proposed, and one gets 40% approval, one gets 45% approval, and there is 15% (current) non-participation. The network decides, somehow, to accept the one with 45% approval. Then, 6 of the previously-non-participatory 15% comes online and signs the block that previously only had 40% approval (making it now 46% to the accepted block's 45%). Does the network then switch to the 46% block? What if another block has already been stacked on the 45% block; do we have any strong subjectivity to convince bootstrapping nodes of the invalidity of the rejected block despite its' higher approval?
A possible solution would be to accept a block with hash proof instead, but sharing the rewards in a similar manner. However a situation like this would imply most likely a cataclism in the network since it is in the best interest of all of them keeping signing blocks

7. What about the opportunity cost for miners/signers to create deep reorganizations during the Tac period?
The opportunity cost of performing a deep reorganization is drastically lower and much easier to perform during the Tac period, as a majority signature power could collude to create a deep reorganization which they sign together. They could also get unfair leverage on their signature power, because they would not sign blocks for the entire period they intended to fork later, so that they don't compete against themselves. Miners might not be particularly opposed to signing onto a reorganization, because they don't forfeit their reward by doing so (the reorganization would still pay them the same amount as before).

Scenario: 25% of block signers all agree to, during the first few Tac blocks, send 1000 BTC total to an exchange and sell it. They wait for confirmations on the exchange, sell the BTC, withdraw the value in alt-coins. They then create new transactions which pay out those 1000 BTC differently (back to themselves, and some sent to the block signers who aren't part of the collusion), and create a new fork with these transactions instead. The non-colluding miners are enticed to accept the fork by signing it, because they get paid additional Bitcoin which they don't own under the current valid chain, and they don't lose their block rewards for doing so, because the new chain will still pay out the coinbase + fees proportionally to the miners. The miners also can't simply embed that spend transaction they benefit from in the current chain at a higher height, because it spends a transaction (or transactions) which were already spent in the legitimate chain.

This level of collusion and crooked behavior you imagine means that the miners are destroying the underlying value of the bitcoin from which they profit, so I would not expect this situation.

8. What happens if miners/signers sign multiple competing blocks simultaneously?
A punitive system which punishes miners who submit multiple competing signatures could be implemented (see the Slasher proposal for PoS), but then the punishment of those accounts would be embedded in some way in a future block, which the miner(s) being punished would not vote for, further antagonizing the mining/signing power.
I don't see the advantage of signing multiple blocks at once since the reward would be the same

9. What encourages miners/signers to sign at all, rather than go offline and hope other miners/signers don't?
If a miner doesn't have to be online to get their deserved reward from each block, why would they bother validating blocks and signing? If they don't get their deserved reward from each block if they don't sign the block, then it encourages miners/signers to selectively not broadcast other miners' signatures (either so that they can get a higher reward, or to undermine other miners' profitability and get a leg up).

The miners would get the reward anyway. Signing is an almost zero cost operation. Being good citizens should be enough to motivate the miners to sign.

10. What would this change do to blockchains merge-mined with Bitcoin?
Since for the Tac period, they can't use regular PoW mining, would the miner responsible for creating a particular block be the one who gets to merge-mine other chains? In the event that there isn't one delegated miner of each block, miners would all propose blocks in which they receive the merge-mining rewards from merge-mined chains, and wouldn't vote on anyone else's.
I haven't considered merge mining at all, so I can't really say anything meaningful about this point.
JFC (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 17


View Profile
December 12, 2016, 05:48:17 PM
Last edit: December 12, 2016, 06:20:56 PM by JFC
 #9

The rewards during this cooperation phase (fees and new coins) will be fairly distributed among the winners of the previous competition phase. Fairly should be interpreted as proportional.  That means that a mining pool that solved 7% of the blocks during the competition phase will get 7% of the total proceedings from every block mined during the competition phase.

Congrats, you've just reinvented essentially Byzcoin, which is incentives incompatible:

https://bitcointalk.org/index.php?topic=1319681.msg16861492#msg16861492

https://github.com/cosmos/cosmos/issues/46#issuecomment-266235696

Who will invent the next NAOD?



NAOD = nonsense algorithm of the day which repeats mistakes already in the prior art, because the author is too uninformed to cite the prior art.

Dear Iamnotback,

Thank you very much for your tone and sarcasm.
This is exactly the kind of spirit that promotes open discussion and sharing of ideas.


On the other hand, you are right; there are many similarities between this idea and the Byzcoin algorithm (I didn't know about it previously) and there is a problem with incentives regarding the fees.

I am not sure the matter is settled however. The under-the-table fees problem both proposals present does not imply there is no merit in the system at all, IMHO.

Fees could be given in full to the miner responsible for creating the next block. This would further incentivize said miner not to dissappear during his turn(s). This could encourage a market for fees between the miner and the user, since the mining turns would be deterministic.

Or fees could be removed completely from the Tac phase de facto if all the miners decide to cheat.
All the fees could be negotiated out of band. So what?

Or maybe other possibilities (like enforcing a fair insertion rule of transactions in full blocks).

Or maybe someone will come up with a bright idea.

It is comforting to know that you will be here, encouraging people to share it with us with your nice tone and praise.

Keep up the good work!

Regards.

Vorksholk
Legendary
*
Offline Offline

Activity: 1713
Merit: 1029



View Profile WWW
December 12, 2016, 06:52:55 PM
Last edit: December 12, 2016, 07:05:07 PM by Vorksholk
Merited by ABCbits (3)
 #10

I'll make this a Christmas-themed thread Smiley

Vorksholk, thanks for your insightful comments. My answers below.

Interesting. To start off with, a few questions:

1. What happens with P2Pool blocks?
P2Pool blocks (ex: https://blockchain.info/block/000000000000000001a1a36ada43fb03b4eb05f30cbe94a206a4a457fb4d71e5) pay out the coinbase + transaction fees to a bunch of addresses, proportional to each's contribution to mining the block. If a P2Pool block was included in the Tic phase, would all of those miners be signing new blocks in the system?
There should be a signature per block to avoid bloating the chain.
Alright, so P2Pool is probably incompatible with this system, correct?

2. Does the Bitcoin network enforce proper payouts to the miners of the 144-block Tic phase as a hard consensus rule?
It appears from your post ("The new block is considered valid if: ... 2. It transmits the newly generated coins and any fees due in a fair manner") that this is the case, but I wanted to make sure that this wasn't just the validity check that other miners do before signing the block.
It should be part of the block validation, although mining pools would not sign an unfair block for obvious reasons.]
Alright, cool.

3. Who initially assembles the block for the network to approve?
Whoever assembles the block gets an advantage (get authority over transaction inclusion, can choose to include their own zero-fee transactions). If you create a system where block n in the Tac phase is assembled by the miner who mined block (n mod 144) from the Tic phase, what happens if that miner is offline? If there isn't a particular miner/signer responsible for creating any particular block, how do nodes resolve which block to sign?
Miners should take turns. If the current one responsible fails to deliver a new block, the next one will take his place and so on.
How would that type of failover work? Would the network need a stricter timestamp?

4. How is the 10-minute timing enforced?
Do peers on the network simply not accept a blockn+1 if the timestamp from the blockn plus 600 seconds isn't the same as the timestamp in blockn+1, and the timestamp of the new block is within a margin of error of their current (local) clock? What would prevent 'whiplash' where miners/signers see it in their best interest to sign the new block as soon as it is proposed (regardless of whether it has actually been 10 real minutes since the last block), which causes them to be creating blocks that, based on their embedded timestamp, appear as if they were made in the future? As they approach the (fairly unknown) maximum allowable clock drift that the large majority of the network will support, they slow down (or even halt) block creation for a while. Even worse, if they overstep the allowable clock drift such that some peers on the network see a new block as barely-in-range compared to their local timestamp, but other peers see the block as barely-out-of-range, is there a desynchronization problem? The cost of performing PoW generally mitigates this problem, since a miner's primary goal is getting the network to accept their block, but in this model (where producing multiple valid blocks has a cost of nearly zero, and a block that gets rejected could have the timestamp adjusted, or could just be re-broadcast later to the network again), these limits could be continually pushed without any significant cost to the miners/signers.

There is an incentive to keep mining blocks within a reasonable time delta. Generating blocks too quickly would leave fees for the next competition phase. Stalling the block generation would keep the miners from getting new rewards from the next Tic phase
As long as the block subsidy is significantly higher than the transaction fees, I could see miners generating blocks quicker than desired to get to the next Tic phase sooner (and more total coins per unit of time during Tac).

5. What happens when the last block of a Tic phase is contested, with two equally-valid blocks proposed by different miners?
Is strong subjectivity lost? If the two miners who created competing blocks for the last block of the Tic phase both had significant mining power in the entire Tic phase, they would actively not vote for blocks that resolve the fork against their favor, which weakens the strength of the Tac blocks against reorganizations.
Once one of the two blocks is signed by the majority of the mining pools, the conflict is resolved. Some margin for collusion exists though.

6. If no block at height n reaches 51% mining approval, what happens?
In case of conflict, the block with more valid signatures is considered the valid one.
What if two blocks are proposed, and one gets 40% approval, one gets 45% approval, and there is 15% (current) non-participation. The network decides, somehow, to accept the one with 45% approval. Then, 6 of the previously-non-participatory 15% comes online and signs the block that previously only had 40% approval (making it now 46% to the accepted block's 45%). Does the network then switch to the 46% block? What if another block has already been stacked on the 45% block; do we have any strong subjectivity to convince bootstrapping nodes of the invalidity of the rejected block despite its' higher approval?
A possible solution would be to accept a block with hash proof instead, but sharing the rewards in a similar manner. However a situation like this would imply most likely a cataclism in the network since it is in the best interest of all of them keeping signing blocks
Even though it is likely in the best interest of all miners to keep signing blocks, I think it's reasonable that there would be times when, say, three blocks all split approval, particularly if some somewhat-adversarial party were to carefully introduce different blocks to different parts of the network simultaneously. How would the hash proof work?

7. What about the opportunity cost for miners/signers to create deep reorganizations during the Tac period?
The opportunity cost of performing a deep reorganization is drastically lower and much easier to perform during the Tac period, as a majority signature power could collude to create a deep reorganization which they sign together. They could also get unfair leverage on their signature power, because they would not sign blocks for the entire period they intended to fork later, so that they don't compete against themselves. Miners might not be particularly opposed to signing onto a reorganization, because they don't forfeit their reward by doing so (the reorganization would still pay them the same amount as before).

Scenario: 25% of block signers all agree to, during the first few Tac blocks, send 1000 BTC total to an exchange and sell it. They wait for confirmations on the exchange, sell the BTC, withdraw the value in alt-coins. They then create new transactions which pay out those 1000 BTC differently (back to themselves, and some sent to the block signers who aren't part of the collusion), and create a new fork with these transactions instead. The non-colluding miners are enticed to accept the fork by signing it, because they get paid additional Bitcoin which they don't own under the current valid chain, and they don't lose their block rewards for doing so, because the new chain will still pay out the coinbase + fees proportionally to the miners. The miners also can't simply embed that spend transaction they benefit from in the current chain at a higher height, because it spends a transaction (or transactions) which were already spent in the legitimate chain.

This level of collusion and crooked behavior you imagine means that the miners are destroying the underlying value of the bitcoin from which they profit, so I would not expect this situation.
This might particularly be a problem if Bitcoin mining becomes unprofitable, and miners are desperate to cash out. I suppose the concern here is largely that a fork can be proposed which all miners benefit from particularly easily.

8. What happens if miners/signers sign multiple competing blocks simultaneously?
A punitive system which punishes miners who submit multiple competing signatures could be implemented (see the Slasher proposal for PoS), but then the punishment of those accounts would be embedded in some way in a future block, which the miner(s) being punished would not vote for, further antagonizing the mining/signing power.
I don't see the advantage of signing multiple blocks at once since the reward would be the same
Generally, signing multiple blocks wouldn't disadvantage a miner, so if a miner is offered a small extra payout, they might happily sign the new block too.

9. What encourages miners/signers to sign at all, rather than go offline and hope other miners/signers don't?
If a miner doesn't have to be online to get their deserved reward from each block, why would they bother validating blocks and signing? If they don't get their deserved reward from each block if they don't sign the block, then it encourages miners/signers to selectively not broadcast other miners' signatures (either so that they can get a higher reward, or to undermine other miners' profitability and get a leg up).

The miners would get the reward anyway. Signing is an almost zero cost operation. Being good citizens should be enough to motivate the miners to sign.
In light of the previous discussion about incentivized reorganizations, a miner electing to not participate might make the chance of such a fork (which they would benefit from) higher, without incurring any risk. In my opinion, this point/question is mostly relevant if those incentivized reorganizations are a legitimate concern.

10. What would this change do to blockchains merge-mined with Bitcoin?
Since for the Tac period, they can't use regular PoW mining, would the miner responsible for creating a particular block be the one who gets to merge-mine other chains? In the event that there isn't one delegated miner of each block, miners would all propose blocks in which they receive the merge-mining rewards from merge-mined chains, and wouldn't vote on anyone else's.
I haven't considered merge mining at all, so I can't really say anything meaningful about this point.

Also, what about the case of compromised signing keys? If some adversarial party were to quietly compromise two or three large pools, they could use those identities at some point to cause a deep reorganization at nearly no cost to themselves.

VeriBlock: Securing The World's Blockchains Using Bitcoin
https://veriblock.org
JFC (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 17


View Profile
December 12, 2016, 07:48:32 PM
Merited by ABCbits (1)
 #11

I'll make this a Christmas-themed thread Smiley

Vorksholk, thanks for your insightful comments. My answers below.

Interesting. To start off with, a few questions:

1. What happens with P2Pool blocks?
P2Pool blocks (ex: https://blockchain.info/block/000000000000000001a1a36ada43fb03b4eb05f30cbe94a206a4a457fb4d71e5) pay out the coinbase + transaction fees to a bunch of addresses, proportional to each's contribution to mining the block. If a P2Pool block was included in the Tic phase, would all of those miners be signing new blocks in the system?
There should be a signature per block to avoid bloating the chain.
Alright, so P2Pool is probably incompatible with this system, correct?
Not necessarily. As long as they find a way to have a single signature for the block, maybe using the highest paid contributor?

2. Does the Bitcoin network enforce proper payouts to the miners of the 144-block Tic phase as a hard consensus rule?
It appears from your post ("The new block is considered valid if: ... 2. It transmits the newly generated coins and any fees due in a fair manner") that this is the case, but I wanted to make sure that this wasn't just the validity check that other miners do before signing the block.
It should be part of the block validation, although mining pools would not sign an unfair block for obvious reasons.]
Alright, cool.

3. Who initially assembles the block for the network to approve?
Whoever assembles the block gets an advantage (get authority over transaction inclusion, can choose to include their own zero-fee transactions). If you create a system where block n in the Tac phase is assembled by the miner who mined block (n mod 144) from the Tic phase, what happens if that miner is offline? If there isn't a particular miner/signer responsible for creating any particular block, how do nodes resolve which block to sign?
Miners should take turns. If the current one responsible fails to deliver a new block, the next one will take his place and so on.
How would that type of failover work? Would the network need a stricter timestamp?
If the miner responsible doesn't show up on time and produces a new block (let' say 10 minutes + 10%) the next in turn can sign and present another block for signing to the rest of the miners. After that the next has its chance and so on.
4. How is the 10-minute timing enforced?
Do peers on the network simply not accept a blockn+1 if the timestamp from the blockn plus 600 seconds isn't the same as the timestamp in blockn+1, and the timestamp of the new block is within a margin of error of their current (local) clock? What would prevent 'whiplash' where miners/signers see it in their best interest to sign the new block as soon as it is proposed (regardless of whether it has actually been 10 real minutes since the last block), which causes them to be creating blocks that, based on their embedded timestamp, appear as if they were made in the future? As they approach the (fairly unknown) maximum allowable clock drift that the large majority of the network will support, they slow down (or even halt) block creation for a while. Even worse, if they overstep the allowable clock drift such that some peers on the network see a new block as barely-in-range compared to their local timestamp, but other peers see the block as barely-out-of-range, is there a desynchronization problem? The cost of performing PoW generally mitigates this problem, since a miner's primary goal is getting the network to accept their block, but in this model (where producing multiple valid blocks has a cost of nearly zero, and a block that gets rejected could have the timestamp adjusted, or could just be re-broadcast later to the network again), these limits could be continually pushed without any significant cost to the miners/signers.

There is an incentive to keep mining blocks within a reasonable time delta. Generating blocks too quickly would leave fees for the next competition phase. Stalling the block generation would keep the miners from getting new rewards from the next Tic phase
As long as the block subsidy is significantly higher than the transaction fees, I could see miners generating blocks quicker than desired to get to the next Tic phase sooner (and more total coins per unit of time during Tac).
That is a good point. I am not sure of an easy solution for that. Maybe forcing a difficulty recalculation every time the system enters a new Tic phase will suffice. If miners produce the blocks too quickly all of them will be penalized with an increase in difficulty of the next phase, proportional to their sin.

5. What happens when the last block of a Tic phase is contested, with two equally-valid blocks proposed by different miners?
Is strong subjectivity lost? If the two miners who created competing blocks for the last block of the Tic phase both had significant mining power in the entire Tic phase, they would actively not vote for blocks that resolve the fork against their favor, which weakens the strength of the Tac blocks against reorganizations.
Once one of the two blocks is signed by the majority of the mining pools, the conflict is resolved. Some margin for collusion exists though.

6. If no block at height n reaches 51% mining approval, what happens?
In case of conflict, the block with more valid signatures is considered the valid one.
What if two blocks are proposed, and one gets 40% approval, one gets 45% approval, and there is 15% (current) non-participation. The network decides, somehow, to accept the one with 45% approval. Then, 6 of the previously-non-participatory 15% comes online and signs the block that previously only had 40% approval (making it now 46% to the accepted block's 45%). Does the network then switch to the 46% block? What if another block has already been stacked on the 45% block; do we have any strong subjectivity to convince bootstrapping nodes of the invalidity of the rejected block despite its' higher approval?
A possible solution would be to accept a block with hash proof instead, but sharing the rewards in a similar manner. However a situation like this would imply most likely a cataclysm in the network since it is in the best interest of all of them keeping signing blocks
Even though it is likely in the best interest of all miners to keep signing blocks, I think it's reasonable that there would be times when, say, three blocks all split approval, particularly if some somewhat-adversarial party were to carefully introduce different blocks to different parts of the network simultaneously. How would the hash proof work?
I am not sure I understand the problem.. Any such attacks from within the miners would be obvious and have a great reputational cost for little if any benefit. Miners are nowadays anonymous but mining pools are not. I would only expect the miners failing to sign blocks in an orderly manner in case of a large attack. In that case the system would use the hashing proof as a fall back but with a penalty for the winner to discourage a miner attacking other pools (hacking their signing computers, for instance)

7. What about the opportunity cost for miners/signers to create deep reorganizations during the Tac period?
The opportunity cost of performing a deep reorganization is drastically lower and much easier to perform during the Tac period, as a majority signature power could collude to create a deep reorganization which they sign together. They could also get unfair leverage on their signature power, because they would not sign blocks for the entire period they intended to fork later, so that they don't compete against themselves. Miners might not be particularly opposed to signing onto a reorganization, because they don't forfeit their reward by doing so (the reorganization would still pay them the same amount as before).

Scenario: 25% of block signers all agree to, during the first few Tac blocks, send 1000 BTC total to an exchange and sell it. They wait for confirmations on the exchange, sell the BTC, withdraw the value in alt-coins. They then create new transactions which pay out those 1000 BTC differently (back to themselves, and some sent to the block signers who aren't part of the collusion), and create a new fork with these transactions instead. The non-colluding miners are enticed to accept the fork by signing it, because they get paid additional Bitcoin which they don't own under the current valid chain, and they don't lose their block rewards for doing so, because the new chain will still pay out the coinbase + fees proportionally to the miners. The miners also can't simply embed that spend transaction they benefit from in the current chain at a higher height, because it spends a transaction (or transactions) which were already spent in the legitimate chain.

This level of collusion and crooked behavior you imagine means that the miners are destroying the underlying value of the bitcoin from which they profit, so I would not expect this situation.
This might particularly be a problem if Bitcoin mining becomes unprofitable, and miners are desperate to cash out. I suppose the concern here is largely that a fork can be proposed which all miners benefit from particularly easily.
That is correct, I think. But if that is the situation, can really miners cash out by destroying the confidence in the system? Also, maybe the exchanges can refuse to admit such a fork since their value will also be destroyed with those shenanigans. I think exchanges will need to bear an important role in the future to counter balance the power of miners.

8. What happens if miners/signers sign multiple competing blocks simultaneously?
A punitive system which punishes miners who submit multiple competing signatures could be implemented (see the Slasher proposal for PoS), but then the punishment of those accounts would be embedded in some way in a future block, which the miner(s) being punished would not vote for, further antagonizing the mining/signing power.
I don't see the advantage of signing multiple blocks at once since the reward would be the same
Generally, signing multiple blocks wouldn't disadvantage a miner, so if a miner is offered a small extra payout, they might happily sign the new block too.
Every different block would need re-signing of enough participants to form a stronger majority. If 51% of the miners are willing to collude to promote a double spend we are doomed anyway, aren't we?

9. What encourages miners/signers to sign at all, rather than go offline and hope other miners/signers don't?
If a miner doesn't have to be online to get their deserved reward from each block, why would they bother validating blocks and signing? If they don't get their deserved reward from each block if they don't sign the block, then it encourages miners/signers to selectively not broadcast other miners' signatures (either so that they can get a higher reward, or to undermine other miners' profitability and get a leg up).

The miners would get the reward anyway. Signing is an almost zero cost operation. Being good citizens should be enough to motivate the miners to sign.
In light of the previous discussion about incentivized reorganizations, a miner electing to not participate might make the chance of such a fork (which they would benefit from) higher, without incurring any risk. In my opinion, this point/question is mostly relevant if those incentivized reorganizations are a legitimate concern.
I doubt we would see that kind of behavior. A possible solution would be that those not signing a block can't redeem their output until n-blocks have passed.

10. What would this change do to blockchains merge-mined with Bitcoin?
Since for the Tac period, they can't use regular PoW mining, would the miner responsible for creating a particular block be the one who gets to merge-mine other chains? In the event that there isn't one delegated miner of each block, miners would all propose blocks in which they receive the merge-mining rewards from merge-mined chains, and wouldn't vote on anyone else's.
I haven't considered merge mining at all, so I can't really say anything meaningful about this point.
iamnotback
Sr. Member
****
Offline Offline

Activity: 336
Merit: 265



View Profile
December 13, 2016, 03:38:42 AM
Merited by ABCbits (1)
 #12

To make it more clear. At 10x the hashing power sitting idle 90% of the time you have the same energy costs and 10x more capital investment

Nope. They'd be mining 10+ such coins simultaneously so their capital investment is constant and the duty cycle remains ~100%..

You don't seem to comprehend Coase's theorem and Economics.
iamnotback
Sr. Member
****
Offline Offline

Activity: 336
Merit: 265



View Profile
December 13, 2016, 03:54:28 AM
 #13

I am not sure the matter is settled however. The under-the-table fees problem both proposals present does not imply there is no merit in the system at all, IMHO.

Fees could be given in full to the miner responsible for creating the next block. This would further incentivize said miner not to dissappear during his turn(s). This could encourage a market for fees between the miner and the user, since the mining turns would be deterministic.

Or fees could be removed completely from the Tac phase de facto if all the miners decide to cheat.
All the fees could be negotiated out of band. So what?

Or maybe other possibilities (like enforcing a fair insertion rule of transactions in full blocks).

Or maybe someone will come up with a bright idea.

It is comforting to know that you will be here, encouraging people to share it with us with your nice tone and praise.

Keep up the good work!

You are the one who needs to do more work on proving the security of your idea before you bring it public for discussion. Do you think our expert time is free and unlimited to peer review every NAOD. The problem with posting undeveloped ideas is you cause other n00bs to proclaim that you've found a Holy Grail. It is a mad n00b epidemic of disinformation.

As you dig into the game theory of sharing fees and minted block rewards, you will find out why your idea can't be incentives compatible. You need to factor in all the game theory of attacks that those who create blocks can do. For example, do you share minted block rewards equally between blocks that have no transactions from those who do? Then study the problem with Bitcoin when rewards become dependent on fees. And pull all that together say, "Kaboom". It is left as a homework assignment for you.
ArcCsch
Full Member
***
Offline Offline

Activity: 224
Merit: 117


▲ Portable backup power source for mining.


View Profile
December 14, 2016, 01:21:17 AM
 #14

As you dig into the game theory of sharing fees and minted block rewards, you will find out why your idea can't be incentives compatible.
The problem I see with sharing fees is that a miner can start prioritizing transactions with fees paid "under the table" directly to the miner.

If you don't have sole and complete control over the private keys, you don't have any bitcoin!  Signature campaigns are OK, zero tolorance for spam!
1JGYXhfhPrkiHcpYkiuCoKpdycPhGCuswa
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!