# Audits

## Audited for zkLink Nova

<table><thead><tr><th width="148" align="center">Auditor</th><th width="157" align="center">Time</th><th width="201" align="center">Report</th><th>Description</th></tr></thead><tbody><tr><td align="center"><p>Secure3 </p><p></p><p></p><p></p><p></p><p></p><p></p><p>ABDK</p></td><td align="center"><p>Mar. 8th, 2024 </p><p></p><p></p><p></p><p></p><p></p><p></p><p>Mar. 27th, 2024</p></td><td align="center"><p><a href="https://github.com/zkLinkProtocol/zklink-audit-report/blob/master/zkLink%20Nova/Secure3_zklink_Nova_2024.3.pdf">Secure3_zklink_Nova_2024.3</a></p><p></p><p></p><p></p><p></p><p><a href="https://github.com/zkLinkProtocol/zklink-audit-report/blob/master/zkLink%20Nova/ABDK_zkLink_Nova_2024.3.pdf">ABDK_zkLink_Nova_2024.3</a></p></td><td><p>zkLink Nova is built upon ZK Stack, which uses the same code of zkSync Era. </p><p>For the <a href="https://github.com/zkLinkProtocol/era-contracts">codes </a>deployed on the primary chain used for ZKP verification, the auditors only audited the difference versus zkSync Era's source code.</p><p>The auditors audited all the <a href="https://github.com/zkLinkProtocol/zklink-evm-contracts">codes</a> deployed on the secondary chains used for hosting users' fund and execute on-chain transactions. </p></td></tr><tr><td align="center"><p>Secure3</p><p></p><p></p><p></p><p></p><p></p><p>ABDK</p></td><td align="center"><p>Apr. 8th, 2024</p><p></p><p></p><p></p><p></p><p></p><p>July. 1st, 2024</p></td><td align="center"><p><a href="https://github.com/zkLinkProtocol/zklink-audit-report/blob/master/zkLink%20Nova/Secure3_zkLink_Nova_mergeToken_2024.4.pdf">Secure3_zkLink_Nova_mergeToken &#x26; bridgeUpdate_2024.4</a></p><p></p><p></p><p><a href="https://github.com/zkLinkProtocol/zklink-audit-report/blob/master/zkLink%20Nova/ABDK_zkLink_Mergetoken_2024.7.pdf">ABDK_zkLink_Mergetoken_2024.7.pdf</a></p></td><td>Multiple tokens with the same value can be merged into one token via the <a href="https://github.com/zkLinkProtocol/zklink-l3-contracts">smart contracts </a>deployed on the Nova network. Users can automatically merge and redeem tokens when depositing or withdrawing through the <a href="https://github.com/zkLinkProtocol/era-contracts/compare/zklink_testnet...zkLinkProtocol:era-contracts:zklink_testnet_merge">official rollup bridge. </a></td></tr><tr><td align="center"><p>Secure3</p><p></p><p></p><p></p><p></p><p></p><p>ABDK</p></td><td align="center"><p>Apr. 8th, 2024</p><p></p><p></p><p></p><p></p><p></p><p>June. 28th, 2024</p></td><td align="center"><p><a href="https://github.com/zkLinkProtocol/zklink-audit-report/blob/master/zkLink%20Nova/Secure3_zkLink%20Nova%20Arbitrator%20Upgrade_2024.4.pdf">Secure3_zkLink Nova Arbitrator Upgrade_2024.4</a></p><p></p><p></p><p><a href="https://github.com/zkLinkProtocol/zklink-audit-report/blob/master/zkLink%20Nova/ABDK_zkLink_CostOptimisation_2024.6.pdf">ABDK_zkLink_CostOptimisation_2024.6.pdf</a></p></td><td>This upgrade optimized the cost of synchronizing the batch root hash from the primary chain to the all other secondary chains. Batch root hashes are compressed to a single hash, so that the number of messages that forward via Ethereum can be be greatly reduced.</td></tr></tbody></table>

## Audited for zkSync Era

<table><thead><tr><th width="156" align="center">Auditor</th><th width="155" align="center">Time</th><th width="192" align="center">Report</th><th>Description</th></tr></thead><tbody><tr><td align="center">OpenZeppelin</td><td align="center">Jan. 2024</td><td align="center"><a href="https://blog.openzeppelin.com/december-diff-and-governance-audit">zkSync Era Governance Audit Report</a></td><td>zkLink Nova applies the same <code>Governance</code> contract used by zkSync Era. It is implemented to slow down the execution of protocol changes.</td></tr></tbody></table>
