Poseidon
const Poseidon: {
Sponge: typeof Sponge;
Unsafe: {
hashToGroup: Group;
};
hash: Field;
hashPacked: Field;
hashToGroup: Group;
hashWithPrefix: Field;
initialState: [Field, Field, Field];
update: [Field, Field, Field];
};
Defined in: lib/provable/crypto/poseidon.ts:57
Type declaration
Sponge
Sponge: typeof Sponge;
Unsafe
Unsafe: {
hashToGroup: Group;
};
Unsafe.hashToGroup()
Low-level version of Poseidon.hashToGroup().
Warning: This function is marked unsafe because its output is not deterministic. It returns the square root of a value without constraining which of the two possible square roots is chosen. This allows the prover to choose between two different hashes, which can be a vulnerability if consuming code treats the output as unique.
Parameters
input
Field[]
Returns
hash()
Parameters
input
Field[]
Returns
hashPacked()
Hashes a provable type efficiently.
let skHash = Poseidon.hashPacked(PrivateKey, secretKey);
Note: Instead of just doing Poseidon.hash(value.toFields()), this
uses the toInput() method on the provable type to pack the input into as few
field elements as possible. This saves constraints because packing has a much
lower per-field element cost than hashing.
Type Parameters
• T
Parameters
type
WithProvable<Hashable<T>>
value
T
Returns
hashToGroup()
Hashes a list of field elements to a point on the Pallas curve.
The output point is deterministic and its discrete log is not efficiently computable.
Parameters
input
Field[]
Returns
hashWithPrefix()
Parameters
prefix
string
input
Field[]
Returns
initialState()
Returns
update()
Parameters
state
input
Field[]