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
Users next highest cost would be the calldata of proof verification/relay for the verification circuit. This issue is due to the static size nature of the circuit, we have to allocate some padded data to allow us to use account_ids. For example:
For requesting proofs, we need an array of:
pub struct TransactionOrReceiptIdVariable {
pub is_transaction: BoolVariable, // 1 byte
pub id: CryptoHashVariable, // 32 bytes, this is fine
pub account: AccountIdVariable, // 64, since MAX_LEN of account is 64, whilst in practice this is never true.
}
Thoughts:
do we even need an account for the sender/receiver? << in some cases not, for NearDA where the contract will always be the same, we can omit this if we only prove receipts. There is no real requirement to prove transactions for NearDA since the blob is in the receipt and we can't scale the input size beyond ~4.1mb. If we can do this in an external layer without coupling to the light client this would be a nice way to omit 2/3 of calldata.
can we take dynamic inputs? << this might allow us to be clever in the inputs we handle and expand them in-circuit instead.
Users next highest cost would be the calldata of proof verification/relay for the verification circuit. This issue is due to the static size nature of the circuit, we have to allocate some padded data to allow us to use account_ids. For example:
For requesting proofs, we need an array of:
Thoughts:
The results are:
The text was updated successfully, but these errors were encountered: