# @Czar102

### <picture><source srcset="https://67142634-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVDeQxk13w6LLaqk8VRNs%2Fuploads%2FoexTy0YLirZNUEtBi9hl%2Fimage.png?alt=media&#x26;token=37136669-4ffa-4e5c-8b1b-37ce3a42855c" media="(prefers-color-scheme: dark)"><img src="https://67142634-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVDeQxk13w6LLaqk8VRNs%2Fuploads%2F6UuX7506T6D6jWfc9mI0%2Fimage.png?alt=media&#x26;token=07518bf0-fb67-4824-afc5-d83972c322ac" alt="" data-size="line"></picture> [@\_Czar102](https://x.com/_Czar102)

### ["Blueprints" founder](https://blueprints.finance/) | Security Researcher | prev. Head of Judging at Sherlock

<div align="left"><figure><img src="https://67142634-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVDeQxk13w6LLaqk8VRNs%2Fuploads%2FFuNoHIrjqXyu3wg5ASno%2Fimage.png?alt=media&#x26;token=b3fed3d1-b7a1-44c4-9a8f-60e5f54bf233" alt="" width="100"><figcaption></figcaption></figure></div>

## Words of Wisdom

***

<table data-card-size="large" data-view="cards" data-full-width="false"><thead><tr><th align="center"></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><h3>"Think in properties<strong>"</strong></h3></td><td>Whenever you see any behavior in code, try to think what properties it is trying to enforce and what properties you'd imagine the code should have that it would break. <br><br>For example, think in invariants: what should always be true about the contract?</td><td><a href="https://67142634-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVDeQxk13w6LLaqk8VRNs%2Fuploads%2FBBYe9agZ6JGsSwSH4nnc%2Fimage.png?alt=media&#x26;token=73104116-b3e2-4991-97e2-c4ad31c367e8">image.png</a></td><td></td></tr><tr><td align="center"><h3>"Ask yourself what's missing<strong>"</strong></h3></td><td>Checking that some code does what it should is usually relatively easy. <br><br>It's easy to notice what's wrong, but it's difficult to notice what's missing. Always consider whether any other action should be executed or a check done.</td><td><a href="https://67142634-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVDeQxk13w6LLaqk8VRNs%2Fuploads%2Ft6dCiKeQgNJLUil8gANs%2Fimage.png?alt=media&#x26;token=75248950-f93b-444b-9cac-96459703eec7">image.png</a></td><td></td></tr><tr><td align="center"><h3>"Audit restrictions<strong>"</strong></h3></td><td>In some reviews you'll do, you will find a lot of bugs and your client's fixes will be so huge, that it will require you to do a multiple of the work of the audit. <br><br>Make sure you set the timeline for receiving fixes and that there is an upper limitation on how large the fix diff is. <br><br>If any requirement is not fulfilled, the review requires a renegotiation. But don't be too strict about it.</td><td><a href="https://67142634-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVDeQxk13w6LLaqk8VRNs%2Fuploads%2Fg7H3UxcFBk1qDzD9ov6u%2Fimage.png?alt=media&#x26;token=152c591c-9bff-417c-8a2d-e20f0fc21bb5">image.png</a></td><td></td></tr><tr><td align="center"><h3>"A-, Arch-, Architecture!"</h3></td><td>Architecture is the most important thing about the codebase. If the developers thought about it enough, the codebase would be minimal. There will be few places to introduce bugs. <br><br>If the contracts are large, it usually means that the architecture wasn't well done and it can pay off to look from the higher level: what is wrong with the current design?</td><td><a href="https://67142634-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVDeQxk13w6LLaqk8VRNs%2Fuploads%2F2HLO8lmRHJojYnxE57wN%2Fimage.png?alt=media&#x26;token=c837f3e7-0d31-4bfd-bd6a-faf9721af2c4">image.png</a></td><td></td></tr></tbody></table>
