{"id":570,"date":"2023-09-19T15:13:11","date_gmt":"2023-09-19T13:13:11","guid":{"rendered":"https:\/\/ackeeblockchain.com\/blog\/?p=570"},"modified":"2024-05-16T11:13:53","modified_gmt":"2024-05-16T09:13:53","slug":"why-we-need-to-start-using-erc-7512-onchain-audit-representation-right-now","status":"publish","type":"post","link":"https:\/\/ackee.xyz\/blog\/why-we-need-to-start-using-erc-7512-onchain-audit-representation-right-now\/","title":{"rendered":"Why We Need to Start Using ERC-7512: Onchain Audit Representation Right Now"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">92 out of 157 protocols listed on Rekt resulted in being hacked because of Unaudited or Out of Scope while often having \u201caudited by\u201d logos on the website. This makes the auditing process untrustworthy, not only for the users. Both users and auditors suffer from intermediate audit representations that misinterpret the results. Enter ERC-7512: A standard to store auditing information on-chain.\u00a0<\/span><\/p>\n<p><!--more--><\/p>\n<p><span style=\"font-weight: 400;\">The<\/span><a href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-7512\" target=\"_blank\" rel=\"noopener\"> <span style=\"font-weight: 400;\">ERC-7512<\/span><\/a><span style=\"font-weight: 400;\"> enables users to verify not just who audited a protocol but also whether the audit is up-to-date or valid. Let\u2019s deep dive into ERC-7512.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">The Problems<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">As highlighted, the auditing flow doesn\u2019t really work for end users who often rely only on interpreted information:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Discover Protocol:<\/b><span style=\"font-weight: 400;\"> Users find a new protocol.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Audited Assurance<\/b><span style=\"font-weight: 400;\">: Seeing an &#8220;audited by&#8221; logo, users gain confidence that the protocol is secure.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Using the Protocol:<\/b><span style=\"font-weight: 400;\"> Trusting the logo, users use the protocol, putting in their funds.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Security Breach<\/b><span style=\"font-weight: 400;\">: The protocol experiences a hack.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Funds Lost:<\/b><span style=\"font-weight: 400;\"> Users lose their funds, which were considered safe.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Trust Broken:<\/b><span style=\"font-weight: 400;\"> This experience makes users think &#8220;audits don&#8217;t work.&#8221;<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">But it doesn\u2019t work for the auditors as well. See the auditor&#8217;s perspective:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Initial Audit<\/b><span style=\"font-weight: 400;\">: The protocol undergoes an audit.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Branding<\/b><span style=\"font-weight: 400;\">: The protocol displays an &#8220;audited by&#8221; logo of the auditing company.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Protocol Evolution:<\/b><span style=\"font-weight: 400;\"> Changes or new versions are introduced to the protocol, altering the audited codebase.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Misleading Branding:<\/b><span style=\"font-weight: 400;\"> The protocol continues to display the initial &#8220;audited by&#8221; logo, misleading users into thinking that the current version is as secure as the audited one.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Hack and Blame Game:<\/b><span style=\"font-weight: 400;\"> In the event of a security breach, the first thing is to blame the auditing company, particularly if their logo is still displayed on the protocol&#8217;s website.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Reputation Management:<\/b><span style=\"font-weight: 400;\"> Clearing an auditing firm&#8217;s name is difficult because of the first Tweet \/ Article \/ Blog.<\/span><\/li>\n<\/ol>\n<h2><span style=\"font-weight: 400;\">The ERC-7512 Solution<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The solution is to remove any intermediate representation and offer a verified and easy way for the user to check the validity of the audit report. To be valid, the audit process must include:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Corresponding scope: <\/b><span style=\"font-weight: 400;\">The audit covers the deployed code base.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Reaudits: <\/b><span style=\"font-weight: 400;\">The audit is up-to-date, covering the latest release.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Applied fixes:<\/b><span style=\"font-weight: 400;\"> The development team fixed all identified issues in the audit.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">ERC-7512 addresses these criteria by submitting all audit parameters on-chain in a standardized format that is verified and signed by the auditing company. This will allow anyone to use a simple RPC call to get all the information instead of downloading a PDF, searching for an executive summary, and verifying the audit scope against the code base by hand.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The ERC-7512 flow is simple as:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The protocol undergoes an audit.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The protocol implements ERC-7512 and adds a first &#8220;audit summary&#8221; item (there can be many of them).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The auditor signs the audit summary, the property of ERC-7512.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The user (or any website such as Rekt) queries the protocol to get this signed audit summary.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">So, in the age of ERC-7512, don&#8217;t check the logo on the website. Just look for ERC-7512. Ackee Blockchain will pioneer this by encouraging our clients to implement ERC-7512 in all future audit reports.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the next articles, we will talk about:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">integration into tooling for mass adoption,<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">automation of the on-chain data submission, leading to minimal overhead and only benefits,<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">use cases in smart contract flow to strengthen the ecosystem.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>92 out of 157 protocols listed on Rekt resulted in being hacked because of Unaudited or Out of Scope while often having \u201caudited by\u201d logos on the website. This makes the auditing process untrustworthy, not only for the users. Both users and auditors suffer from intermediate audit representations that misinterpret the results. Enter ERC-7512: A standard to store auditing information on-chain.\u00a0<\/p>\n","protected":false},"author":5,"featured_media":575,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,10],"tags":[99,24,100,101],"class_list":["post-570","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-audits","category-ethereum","tag-erc-7512","tag-ethereum","tag-onchain-audit","tag-safe"],"aioseo_notices":[],"featured_image_src":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2023\/09\/ERC-7512-by-Ackee-600x400.png","featured_image_src_square":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2023\/09\/ERC-7512-by-Ackee-600x600.png","author_info":{"display_name":"Josef Gattermayer","author_link":"https:\/\/ackee.xyz\/blog\/author\/josef-gattermayerackeeblockchain-com\/"},"_links":{"self":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/comments?post=570"}],"version-history":[{"count":0,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/570\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media\/575"}],"wp:attachment":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media?parent=570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/categories?post=570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/tags?post=570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}