Skip to content

discussion: azoth version divergence in Nomad nodes #69

@g4titanx

Description

@g4titanx

azoth is integrated into the Nomad network where nodes need to validate and reproduce obfuscated contracts deterministically. now, as azoth evolves with new transforms, version divergence across Nomad nodes creates consensus issues.
for example:

// Node A (v2.0) - has 2 new Transforms and removed 1 of the old one
transforms: [Shuffle, OpaquePredicate, SomeNewTransform, AnotherNewTransform]

// Node B (v1.5) - missing new Transforms
transforms: [Shuffle, OpaquePredicate, JumpAddressTransformer]

// Same seed -> different results -> consensus failure

one important thing is any node should be able to reproduce and verify obfuscation results

@ozwaldorf proposed a solution:

// current seed structure
[256 bits of pure randomness]

[8 bits version][248 bits randomness]
// reserve the first 8 bits (1 byte) as a version identifier, leaving 248 bits for randomness.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions