Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is there implemented block cementing? #1018

Closed
AlexeyAB opened this issue Aug 1, 2018 · 5 comments
Closed

Is there implemented block cementing? #1018

AlexeyAB opened this issue Aug 1, 2018 · 5 comments
Assignees
Labels
Milestone

Comments

@AlexeyAB
Copy link

AlexeyAB commented Aug 1, 2018

Is there implemented block cementing, or when it will be implemented?

https://github.com/nanocurrency/raiblocks/wiki/Attacks#50-attack---low-risk-completely-destructive

A final line of defense that has not yet been implemented is block cementing.

@renesq
Copy link

renesq commented Aug 2, 2018

Block cementing refers to irreversible blocks. That is not implemented yet.
If you need transaction finality, you need to monitor the voting status, or simply wait some seconds and look if the block is still in the checked blocks.
There's also the quorum setting in config.json - this will make callback only call your API after a certain vote % is reached. The blocks themselves will be moved to 'checked' blocks before reaching this though, not sure what effect the quorum has in that case.

@AlexeyAB
Copy link
Author

AlexeyAB commented Aug 2, 2018

@renesq Thanks.

  1. There is already online_weight_quorum = 50 in the default config, does it mean that any block will wait for voting of holders who have 50% of Nano 133 248 290 / 2 ? https://github.com/nanocurrency/raiblocks/blob/1eec79902a4365847e849c7598c6a4cf758dc0c6/docker/node/config/live.json#L52
    https://github.com/nanocurrency/raiblocks/blob/1eec79902a4365847e849c7598c6a4cf758dc0c6/docker/node/entry.sh#L28

  2. But if there will be 51% of Nano off-line, then no one block can't be checked?

  3. Do you mean that any block always wait for voting, since there is by default online_weight_quorum = 50 in the config.json? I thought that only conflicting blocks are waiting for voting.

  4. Or how can I requrest voting for my non-conflict transaction?


The blocks themselves will be moved to 'checked' blocks before reaching this though, not sure what effect the quorum has in that case.

  1. Are there several states of block?
  • not checked
  • checked - there is no conflicts
  • quorum checked - there is quorum voted
  • conflict - there is conflict
  1. So until block-cementing is implemented there can be rolled-back any non-conflicting transaction in any time (because non-conflicting transaction doesn't request voting by default). Those. There is no time, through which we can consider a transaction to be deterministically confirmed (as in Byteball) or probabilistically confirmed (as in Bitcoin), therefore, we can not safely transfer large sums.

Even in the Bitcoin with probabilistically confirmation based on PoW, there are also checkpoints that are hardcoded in the sourcecode which we can use as deterministic confirmation: https://github.com/bitcoin/bitcoin/blob/1b2460bd5824170ab85757e35f81197199cce9d6/src/chainparams.cpp#L133-L152

  1. Also, if there will be implemented block-cementing, the even if the nodes that own the amount necessary for the quorum were Hacked, they would brake only new non-cemented blocks. But currently, the Hacked quorum-nodes can brake whole Nano network.

  2. What approach is planned to use for block-cementing, is it something like Atomic-mass as in Radix?

@rkeene rkeene self-assigned this Aug 24, 2018
@rkeene rkeene added this to the V20.0 milestone Aug 24, 2018
@brunoerg
Copy link

brunoerg commented Sep 7, 2018

The online_weight_quorum is about the nodes rebroadcasters, isn't it @rkeene?

@zhyatt
Copy link
Collaborator

zhyatt commented Jan 26, 2019

Related to #1303

@zhyatt zhyatt modified the milestones: V20.0, V19.0 Jan 26, 2019
@zhyatt zhyatt assigned wezrule and unassigned rkeene Feb 12, 2019
@zhyatt
Copy link
Collaborator

zhyatt commented Mar 26, 2019

Resolved with #1770 and #1801

@zhyatt zhyatt closed this as completed Mar 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants