2024-02-12 15:35:23 +01:00
|
|
|
from unittest import TestCase
|
2024-03-11 10:01:34 +01:00
|
|
|
|
2025-01-29 10:42:53 +00:00
|
|
|
from da.common import Column
|
2024-03-11 10:01:34 +01:00
|
|
|
from da.encoder import DAEncoder
|
|
|
|
|
from da.kzg_rs import kzg
|
|
|
|
|
from da.kzg_rs.common import GLOBAL_PARAMETERS, ROOTS_OF_UNITY
|
|
|
|
|
from da.test_encoder import TestEncoder
|
2025-05-21 13:17:05 +03:00
|
|
|
from da.verifier import DAVerifier, DAShare
|
2024-02-12 15:35:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestVerifier(TestCase):
|
|
|
|
|
|
2024-03-11 10:01:34 +01:00
|
|
|
def setUp(self):
|
2025-01-29 10:42:53 +00:00
|
|
|
self.verifier = DAVerifier()
|
2024-02-12 15:35:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_verify(self):
|
2024-03-11 10:01:34 +01:00
|
|
|
_ = TestEncoder()
|
|
|
|
|
_.setUp()
|
|
|
|
|
encoded_data = _.encoder.encode(_.data)
|
2025-06-04 13:58:18 +03:00
|
|
|
for i, column in enumerate(encoded_data.extended_matrix.columns):
|
2025-01-29 10:42:53 +00:00
|
|
|
verifier = DAVerifier()
|
2025-05-21 13:17:05 +03:00
|
|
|
da_blob = DAShare(
|
2024-03-22 10:36:00 +01:00
|
|
|
Column(column),
|
2025-01-29 10:42:53 +00:00
|
|
|
i,
|
2025-05-21 13:17:05 +03:00
|
|
|
encoded_data.combined_column_proofs[i],
|
2024-03-22 10:36:00 +01:00
|
|
|
encoded_data.row_commitments,
|
|
|
|
|
)
|
|
|
|
|
self.assertIsNotNone(verifier.verify(da_blob))
|
|
|
|
|
|
|
|
|
|
def test_verify_duplicated_blob(self):
|
|
|
|
|
_ = TestEncoder()
|
|
|
|
|
_.setUp()
|
|
|
|
|
encoded_data = _.encoder.encode(_.data)
|
2025-06-04 13:58:18 +03:00
|
|
|
columns = enumerate(encoded_data.extended_matrix.columns)
|
2024-03-22 10:36:00 +01:00
|
|
|
i, column = next(columns)
|
2025-05-21 13:17:05 +03:00
|
|
|
da_blob = DAShare(
|
2024-03-22 10:36:00 +01:00
|
|
|
Column(column),
|
2025-01-29 10:42:53 +00:00
|
|
|
i,
|
2025-05-21 13:17:05 +03:00
|
|
|
encoded_data.combined_column_proofs[i],
|
2024-03-22 10:36:00 +01:00
|
|
|
encoded_data.row_commitments,
|
|
|
|
|
)
|
|
|
|
|
self.assertIsNotNone(self.verifier.verify(da_blob))
|
|
|
|
|
for i, column in columns:
|
2025-05-21 13:17:05 +03:00
|
|
|
da_blob = DAShare(
|
2024-03-11 10:01:34 +01:00
|
|
|
Column(column),
|
2025-01-29 10:42:53 +00:00
|
|
|
i,
|
2025-05-21 13:17:05 +03:00
|
|
|
encoded_data.combined_column_proofs[i],
|
2024-03-11 10:01:34 +01:00
|
|
|
encoded_data.row_commitments,
|
|
|
|
|
)
|
2025-06-04 13:58:18 +03:00
|
|
|
self.assertIsNotNone(self.verifier.verify(da_blob))
|