Author Topic: New Metric for Blockchain Confirmation  (Read 2974 times)

0 Members and 1 Guest are viewing this topic.

Offline emski

  • Hero Member
  • *****
  • Posts: 1282
    • View Profile
    • http://lnkd.in/nPbhxG
I like the flexibility of this.
With some tweaking we could have even faster confirmation times.

Offline bytemaster

BM mentioned the last ireversible transaction / block as the secret sauce for tx irreversibility. Does this have to do with this OP? Can someone give a simple explanation how that "last irreversible xy" works?

After 2/3 of all witnesses have signed, they cannot "go back" and sign something else.  We know a fork to an earlier point is impossible without malicious collusion of witnesses.
Quote
After 2/3 of all witnesses have signed, they cannot "go back" and sign something else.
Does that mean that 2/3 of all witnesses haved signed their respective block within the round? And how is it enforced that they can not go back?
If that can not be explained without a super detailed knowledge of how the protocol works don't mind it.

It means that 2/3 of the witnesses have signed a block that built off of the block in question.    It means that assuming the witnesses are cooperating they are all on the same page.

The entire protocol is based upon the assumption that the witnesses will not collude to produce a fake chain.  Thus the last irreversible block is the last block that you can prove 2/3 the witnesses agreed upon.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline santaclause102

  • Hero Member
  • *****
  • Posts: 2486
    • View Profile
BM mentioned the last ireversible transaction / block as the secret sauce for tx irreversibility. Does this have to do with this OP? Can someone give a simple explanation how that "last irreversible xy" works?

After 2/3 of all witnesses have signed, they cannot "go back" and sign something else.  We know a fork to an earlier point is impossible without malicious collusion of witnesses.
Quote
After 2/3 of all witnesses have signed, they cannot "go back" and sign something else.
Does that mean that 2/3 of all witnesses haved signed their respective block within the round? And how is it enforced that they can not go back?
If that can not be explained without a super detailed knowledge of how the protocol works don't mind it.

Offline bytemaster

BM mentioned the last ireversible transaction / block as the secret sauce for tx irreversibility. Does this have to do with this OP? Can someone give a simple explanation how that "last irreversible xy" works?

After 2/3 of all witnesses have signed, they cannot "go back" and sign something else.  We know a fork to an earlier point is impossible without malicious collusion of witnesses.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline santaclause102

  • Hero Member
  • *****
  • Posts: 2486
    • View Profile
BM mentioned the last ireversible transaction / block as the secret sauce for tx irreversibility. Does this have to do with this OP? Can someone give a simple explanation how that "last irreversible xy" works?

Offline pc

  • Hero Member
  • *****
  • Posts: 1530
    • View Profile
    • Bitcoin - Perspektive oder Risiko?
  • BitShares: cyrano
We intend to propose a new transaction type that will allow a witness to increase their last produced block number at will.   Then witnesses can determine how often to broadcast these extra operations.  If 2/3 of witnesses broadcast every block then it is possible for the blockchain to become irreversible after just 3 seconds and we can take the lead in this particular metric from Ripple.  By making this extra speedy confirmation optional, witnesses can choose to only broadcast when there is enough volume / transfers which will mean that the blockchain will not get bloated while there are no meaningful transactions (high value orders or transfers).

See also this thread: https://bitsharestalk.org/index.php/topic,13872.msg180455.html#msg180455

To avoid bloat, these new transactions should not be included in the blockchain (since they can be discarded after the witness signs a regular block). More precisely, they only need to be included if the witness misses his next regular block.
Bitcoin - Perspektive oder Risiko? ISBN 978-3-8442-6568-2 http://bitcoin.quisquis.de

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Sort N witnesses by the last block number they signed, then take the highest
block number that is lower than 66% of all other witnesses.  This will indicate
that said block has been confirmed by 66% of all witnesses and is clearly
irreversible.
Sounds great. How would you tell exchanges that metric? will this be a new key
in the transactions object?

Quote
If we have 17 witnesses and 3 second blocks then this will take an average of 34 seconds.
If we have 101 witnesses and 3 second blocks then this will take an average of 3.3 minutes.
Fair enough. Considering we may end up with (my assumption) 20-50 witnesses, we
have just over a minute for irreversible transactions. Good selling point here.

Quote
We intend to propose a new transaction type that will allow a witness to
increase their last produced block number at will.   Then witnesses can
determine how often to broadcast these extra operations.  If 2/3 of witnesses
broadcast every block then it is possible for the blockchain to become
irreversible after just 3 seconds and we can take the lead in this particular
metric from Ripple.  By making this extra speedy confirmation optional,
witnesses can choose to only broadcast when there is enough volume / transfers
which will mean that the blockchain will not get bloated while there are no
meaningful transactions (high value orders or transfers).   
Wow .. holy **** that is hell of an option!!!!
I guess this will be a worker proposal for after 2.0 launch

Quote
The delayed node used by exchanges will only process blocks up to the last
irreversible block number.
No more --number-blocks parameter I assume?

Offline bytemaster

Historically we have stated that a blockchain becomes irreversible after one round with greater than 51% participation.   This metric is a little bit fuzzy because of noise in how witnesses are ordered.  In an effort to provide stronger / absolute guarantees Ben and I have devised a new metric that will be used by all exchanges for determining the exact point at which a particular block becomes irreversible.

Sort N witnesses by the last block number they signed, then take the highest block number that is lower than 66% of all other witnesses.  This will indicate that said block has been confirmed by 66% of all witnesses and is clearly irreversible.

This particular metric is dynamic and can respond to changes in the order of witnesses and is immune to situations where the network fragments into more than two pieces.   In the event of a major disruption users are guaranteed that no block older than that number can ever be undone. 

If we have 17 witnesses and 3 second blocks then this will take an average of 34 seconds.
If we have 101 witnesses and 3 second blocks then this will take an average of 3.3 minutes.

We intend to propose a new transaction type that will allow a witness to increase their last produced block number at will.   Then witnesses can determine how often to broadcast these extra operations.  If 2/3 of witnesses broadcast every block then it is possible for the blockchain to become irreversible after just 3 seconds and we can take the lead in this particular metric from Ripple.  By making this extra speedy confirmation optional, witnesses can choose to only broadcast when there is enough volume / transfers which will mean that the blockchain will not get bloated while there are no meaningful transactions (high value orders or transfers).   

The delayed node used by exchanges will only process blocks up to the last irreversible block number.

Having this metric is important to give everyone in the network peace of mind in the unlikely event that a software bug or network issue causes all witnesses to fall out of sync and gives a clear measure of when they are considered back in sync.

Anyone accepting transactions as final prior to the most recent irreversible block is choosing to take some extra risk on their transaction.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.