V1 smart contracts natively support a number of common cryptographic primitives. Compared to implementing the same functionality in the smart contract, using primitives is substantially cheaper. At the same time, smart contract developers benefit from using a single, high-quality implementation of the primitives provided by the chain.
Since all contract inputs, as well as the contract state, on the Concordium blockchain are public, it is only reasonable to have primitives that take public inputs. The currently supported primitives are:
Signature verification for the
ed25519signature scheme, and
Secp256k1signature scheme (Bitcoin/Ethereum signatures).
SHA2, SHA3, and Keccak digests with 256 bits of output.