You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the hasher is using strings which are concatenated and then hashed again.
We would like to change this behavior to use the binary representation of the hashes instead.
If a hash is not present (like signature or witness as optional input hashes) they are not added to the hasher-digest (input hashes for the verifiction_hash).
Example: using binary-representation of hashes and using a SHA3 hasher like this one to hash it.
metadata {
"AQUA" (exactly this),
version (exactly 4 characters / version number / string),
time ("YYYYMMDDhhmmss" / numbers only / string),
domain (variable length, maximum of 64 bytes / hex encoded / string),
}
content {
like currently
}
The text was updated successfully, but these errors were encountered:
Currently the hasher is using strings which are concatenated and then hashed again.
We would like to change this behavior to use the binary representation of the hashes instead.
If a hash is not present (like signature or witness as optional input hashes) they are not added to the hasher-digest (input hashes for the verifiction_hash).
Example: using binary-representation of hashes and using a SHA3 hasher like this one to hash it.
In PHP this is done via:
When calculating the different hashes we choose binary input or string input as follows.
binary
content_hash (sha3 / 64 bytes)
metadata_hash (sha3 / 64 bytes)
prev_ref_hash? (sha3 / 64 bytes)
merge_ref_hash? (sha3 / 64 bytes)
}
eth signature (libsecp256k1 signature + recoveryid / 65 bytes)
eth pubkey (libsecp256k1 public_key / 65 bytes)
}
left_hash (sha3 / 64 bytes)
right_hash (sha3 / 64 bytes)
}
domain_snapshot_genesis_hash (sha3 / 64 bytes)
merkle_root (sha3 / 64 bytes)
witness_network (uint64 / little-endian / 8 bytes)
witness_event_transaction_hash (eth tx hash / 32 bytes)
}
text
"AQUA" (exactly this),
version (exactly 4 characters / version number / string),
time ("YYYYMMDDhhmmss" / numbers only / string),
domain (variable length, maximum of 64 bytes / hex encoded / string),
}
like currently
}
The text was updated successfully, but these errors were encountered: