Added verifier attestation build

This commit is contained in:
Daniel Sanchez Quiros 2024-03-11 16:08:01 +01:00
parent 1961cdda68
commit a07d92cc0a
2 changed files with 11 additions and 6 deletions

View File

@ -11,7 +11,7 @@ from da.verifier import Attestation, DAVerifier, DABlob
class TestVerifier(TestCase):
def setUp(self):
self.verifier = DAVerifier(b"")
self.verifier = DAVerifier(1987)
def test_verify_column(self):
column = Column(int.to_bytes(i, length=32) for i in range(8))

View File

@ -7,9 +7,9 @@ from eth2spec.eip7594.mainnet import (
KZGCommitment as Commitment,
KZGProof as Proof,
)
from itertools import batched
from py_ecc.bls import G2ProofOfPossession as bls_pop
from da.common import Column, Chunk, Attestation
from da.common import Column, Chunk, Attestation, BLSPrivateKey
from da.encoder import DAEncoder
from da.kzg_rs import kzg
from da.kzg_rs.common import ROOTS_OF_UNITY, GLOBAL_PARAMETERS, BLS_MODULUS
@ -27,7 +27,7 @@ class DABlob:
class DAVerifier:
def __init__(self, sk: bytes):
def __init__(self, sk: BLSPrivateKey):
self.sk = sk
@staticmethod
@ -70,8 +70,13 @@ class DAVerifier:
return False
return True
def _build_attestation(self, _blob: DABlob) -> Attestation:
return Attestation()
def _build_attestation(self, blob: DABlob) -> Attestation:
hasher = sha3_256()
hasher.update(bytes(blob.aggregated_column_commitment))
for c in blob.rows_commitments:
hasher.update(bytes(c))
message = hasher.digest()
return Attestation(signature=bls_pop.Sign(self.sk, message))
def verify(self, blob: DABlob) -> Optional[Attestation]:
is_column_verified = DAVerifier._verify_column(