Skip to content

Commit abee8e4

Browse files
committed
docs: fix incorrect content in KMSVerifier section of contracts.md
Remove misplaced paragraph about input ciphertext verification from KMSVerifier section. That content incorrectly described InputVerifier functionality and referenced a non-existent function. Update InputVerifier section with accurate description of the input verification flow using coprocessor signers. Fixes zama-ai/fhevm-internal#797
1 parent 397f6fd commit abee8e4

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

coprocessor/docs/fundamentals/fhevm/contracts.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,15 @@ Data in the ACL contract grows indefinitely as new ciphertexts are produced. We
3232

3333
## KMSVerifier Contract
3434

35-
The [KMSVerifier](../../../contracts/contracts/KMSVerifier.sol) contract allows any dApp to verify a received decryption. This contract exposes a function `verifyDecryptionEIP712KMSSignatures` which receives the decryption result and signatures coming from the TKMS.
35+
The [KMSVerifier](../../../../host-contracts/contracts/KMSVerifier.sol) contract allows any dApp to verify a received decryption. This contract exposes a function `verifyDecryptionEIP712KMSSignatures` which receives the decryption result and signatures coming from the TKMS.
3636

3737
KMS signers addresses are stored and updated in the contract.
3838

39-
The KMSVerifier contract is also responsible for checking the signatures of KMS signers when a user is inputing a new ciphertext, since this process involves the user firstly sending a ZKPoK to be verified by the KMS nodes. If the proof verifies successfully at the KMS, each KMS signer will sign a hash of the new user input and the signatures will be returned to the user, who will then be able to input new handles onchain. This is done via the `verifyInputEIP712KMSSignatures` function.
40-
4139
## InputVerifier Contract
4240

43-
The InputVerifier checks the coprocessors accounts' signatures which include the computed handles (the KMS signatures only include the hash of the packed ciphertext, not the handles).
44-
We trust the handles computation done by the coprocessors before using them in transactions onchain.
41+
The [InputVerifier](../../../../host-contracts/contracts/InputVerifier.sol) contract is responsible for verifying signatures when a user is inputting a new ciphertext. When a user submits an encrypted input, they first send a ZKPoK (Zero-Knowledge Proof of Knowledge) to be verified by the coprocessor nodes. If the proof verifies successfully, each coprocessor signer will sign a hash of the computed handles and the signatures will be returned to the user. The user can then input new handles onchain by providing these signatures.
42+
43+
This is done via the `verifyInput` function, which checks the coprocessors accounts' signatures including the computed handles. We trust the handles computation done by the coprocessors before using them in transactions onchain.
4544

4645
## HCULimit Contract
4746

0 commit comments

Comments
 (0)