For everyone who has ever written Solidity before, you should know this pattern: require(msg.sender == owner, "Not the owner"); It works because the EVM cryptographically verifies the transaction signature. The protocol proves the sender knows the private key, so identity verification is free. When developers arrive at Midnight and discover ownPublicKey(), the instinct is similar, like with so