Giter Site home page Giter Site logo

Comments (8)

Geod24 avatar Geod24 commented on September 27, 2024 1

Where signature by Validators means signature of BlockHeader

Yes

Does frozen UTXO check the UTXO of the enrollment K (UTXO key) ?

That's a different issue

from agora.

AndrejMitrovic avatar AndrejMitrovic commented on September 27, 2024 1

This issue #205 only deals with the validation part of a block.

So if we have a block header which is signed, in order to validate the block then the signature must be checked. We need to make sure:

  • The signature is actually valid.
  • The key it was signed with belongs to a node that has frozen 40,000 Boa. If the node hasn't frozen 40,000 Boa then it has no right to sign the block, therefore the block is invalid.
  • The height of the block that contains the signature of a node, it must be at least N blocks after the block height where the node staked 40,000 Boa. The "N" is defined in the Yellow paper. So, a node first freezes UTXO, then after N blocks it can start signing blocks.
  • If the UTXOs for that node are actually melting, the signature is considered invalid.

I suggest implementing this issue #205 in several steps, depending on what kind of approach you want to take:

  • At first, assume the block header can only contain one validator signature. This makes it easy to implement the checks for the frozen UTXO. You could just store a PublicKey validator; Signature signature; in the block header, and change isInvalidReason for blocks so that it tests the conditions that I listed in the previous paragraph (see also the Definition of Done).
  • Then, if that works, try to extend your function so it works with multiple signatures. For example, you could write struct ValidatorSigs { PublicKey key; Signature sig; } and add that to the block header struct BlockHeader { ValidatorSigs[] validator_sigs; }. For example, all the signatures in the block header must be valid. As soon as one is invalid, the block is rejected.

Then later, once #365 and #406 are implemented, we can adapt your solution and change the block header so it works with the Schnorr signature scheme and with the Enrollment process.

If that doesn't help, I can only suggest waiting for input from @Geod24.

from agora.

Geod24 avatar Geod24 commented on September 27, 2024

Depends on #204

from agora.

Geod24 avatar Geod24 commented on September 27, 2024

Unblocked

from agora.

TrustHenry avatar TrustHenry commented on September 27, 2024

I need to make sure that signatures by validators are done using a frozen UTXO in order to make sure the validator has stake in the system.

Where signature by Validators means signature of BlockHeader or enrollment.S ?
Does frozen UTXO check the UTXO of the enrollment K (UTXO key) ?

from agora.

TrustHenry avatar TrustHenry commented on September 27, 2024

When a block is received or signed
Validators signed BitField...
The frozen UTXO shall be found and verified in utxo_db?

from agora.

TrustHenry avatar TrustHenry commented on September 27, 2024

A melting UTXO cannot sign blocks

a melting UTXO cannot sign blocks" The requirements should be deleted.

Frozen UTXO can sign the block as a validator up to the "freezing period / 2" block during the transaction occurring and melting period.

from agora.

TrustHenry avatar TrustHenry commented on September 27, 2024

ping @Geod24

from agora.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.