Wake: why we built an open source Swiss knife for Solidity developers by Josef Gattermayer
ETHDubai 2024 · 21 Apr 2024 · 7:28
Josef Gattermayer explains why Ackee combined Solidity development and security features in Wake. He discusses the motivation and design decisions behind this integrated open-source toolkit.
Speakers
Topics
From ETHDubai 2024, hosted by DeFi Dubai.
Transcript
hello everyone so uh I would like to speak about some developer tooling so if anyone is listening uh we are Aki and we'll be presenting uh open source framework that everyone can use it's called wake uh so hi I'm Joseph I'm CEO of Aki blockchain and uh we are basically Auditors but uh the good Auditors audit the best auditors create open source it's like trail of bits open Zeppelin and Ai and uh we are happy to be in this space thanks mainly to our clients and partners so all the open source couldn't be possible without uh our clients such
as 1 in Lio safe or Axel and also we received grants uh in the very past from eum Foundation uh we are getting grants from Sola foundation and from coinbase so thank you guys for supporting the open source so what is wake uh we call it uh sometimes a Swiss knife because it integrates basically all the tooling the ethereum developers need so the first thing the developer needs is a testing framework so basically if you know brownie for example or hardhead so uh this is something that we do as well but of course the motivation is not to be just another Tool uh something we do very
specifically is fuzzing I'll get it to it later and also we integrate into the tool static analysis so if you know tools such as slitter so you have it here in one tool you have the possibility to have a security detectors in in this tool and we also have something called language server which allows further UI enhancements uh how does it look V is written in Python maybe you will ask why python uh the trick we use is basically uh we are transforming the solid decode using p types to python that's what weigh us on the background and with this transformation uh the
deink can be then done on python tooling uh if you know uh solidity it's very hard to uh debug in solidity the debugger is not uh uh production ready so we transform this issue basically to Python and you can see it in action this is just a python debugger debugging solidity smart contract uh so if you are familiar with the python tool Ling you can very easily uh debug any smart contract written in solidity and you don't have to do anything extra so we wrote this because we needed this tool we as Auditors are debugging all the time and this is something we have been missing so it's the first part what what wake does
then we can do some crazy stuff of course there are fuzzers for example in hardhead uh but fuzzing is a very powerful technique for example in defi are there any defi builders in the room yes uh so what we what we do with the fuzzing is basically uh we can create a model of the defi protocol in our framework and then we can write a set of fastests and we can be fastest in uh the model against the deployed contract because for example uh rounding errors in defi is very hard to find it by just looking at the code so it's it's better to run some fast test and by this
approach basically we are testing the model we are testing the onchain uh deployed contracts and we are just looking if it's returning the same results sometimes it's not and then it's a problem so by this technique which is then very easy to implement we can basically test the things that that they usually do monitors Miss and everyone can do it it's open source uh then of course we have integrated the detectors so if you are a slitter uh we have I think much better UI and we are focusing on detectors that have very low false positive ratio uh so we have this kind of like output on the common line uh and it works this is the table of findings basically we discovered using wake not by manual code review but purely the tool found it so we have one
medium issue in Lio it was discovered like one months ago uh we have medium issues in Axel of course some critical issues in defi protocols so it kind of works and uh maybe you would be skeptical about the performance because it's in Python uh but uh we have R written all 271 unit test we Unis we3 tests uh in fre Frameworks so there's a massive test suite and basically we have Rewritten the tests in brownie ape and vake these are harder tests and we have tested the test suit against three chains and the result we are as a wake optimizing for envil so on envil we are the fastest framework that's running
over this whole massive test suit we are able to finish the 271 test in over 3 seconds so we have more like 10x to uh brownie for example so it's fast and here if you would like to see some uh kind of like big picture this is how it compares to other Frameworks I'll give you a second to take a picture of you if you want to and as I told we have also the language server which is kind of like possibility to create UI on top of V which is a command line tool and our UI is called tool Source solidity it's vs code extension you can find it on the vs uh code Marketplace of course for free as well and it's just front end for Wake
but uh we can then have such a nice outputs directly in the vs code that for example here on the left you can see uh the detections the Wake made uh on the background and uh the output is directly visible to the developer as he writes the code in vs code uh the installation is just one click you just install the extension and it on the background installs all the way dependencies so you don't have to do anything and you have this very nice output directly in the developer environment and also it allows to highlight the vulnerability so you see exactly which line uh is for example no possible Ry and also nice feature we are somehow visualizing the test
coverage so if you write tests in V you see which uh code uh is covered uh by visual uh indication and if you want to see how the extension stands against the other extension so this is also a kind of like summary uh of the VSS code extensions that are available on the market place if you want to you can take a picture and we think we are the most future Rich extension right now so this is it if you would like to try try the Wake framework use the QR code or just go to get wake and install the VIP package or install by compiling The Source thank you uh for listening and uh see you around
[Applause]