Self-sovereign crypto accounting
ETHCC 6 · July 2023 · 23:54
Lefteris Karapetsas examines what self-sovereign crypto accounting means. The speaker discusses transaction tracking, user privacy and ways to give users more control over accounting information.
Speakers
Topics
From ETHCC 6, hosted by Ethereum France.
Transcript
[Music] Hey, hello everybody. Uh, thanks for coming. I'll talk to you about self-s sovereign crypto accounting. Uh, first of all, a little bit about myself. Um, I'm Leeris. I've been Ethereum since 2014. I worked on the solidity language and then the C++ client and then um I worked with uh Christoph on something called the DAO and the cleanup of that. Maybe you've heard of it. Then uh I was a tech lead for many years for the network. It's what um the lightning network was for Bitcoin or is for Bitcoin was supposed
to be for Ethereum but uh um we prefer in Ethereum right now rollup so that didn't work out. and I'm the founder of ROKI, which is um uh basically accounting portfolio management tool, open source, and I'm going to talk to you about accounting today. So, um this is one of my favorite memes. You probably have seen it. I'm going to try to explain like the the absurdity of it. Like, yes, hello IRS. I I my client bought crypto digbats for 0.2 E. He then used some kind of NFD trader to exchange them for crypto digbats. uh for free winter bears. Then the winter bears they were sold for 1.7th profit. Then they were exchanged for sold to mint crypto
dick bats but devs rugged projects and left the client because they were and I quote in it for the art. So and the question that the accountant has is even though they ragged can the client deduct the gas fees. So this may sound stupid, this may sound absurd, but these are questions that uh we see daily both from our users and we try to explain to accountants that we have worked with um like curve bribing or stuff like this. The accountants think that we are joking but uh yeah this is the reality of doing accounting for crypto. Um it's a lot of info. uh you have many jurisdictions, you have um many uh so many many
exchanges, many uh protocols, many chains and then on top of that it's one of us lives in a different country and even in the union here, even the European Union, each country has a completely different way of uh doing accounting. Um also information is very hard to query. So we have um uh let's say uh chains very very small that um have no more nodes that are running. So it's not possible to query this information. Then we have exchanges like most recently FTX that no longer exist yet. You have traded a lot, maybe you have made profit, maybe you have made loss, you want to declare this, it's not possible anymore.
Uh how what do people do? Well, what people do right now is use Narqu. So it's basically always centralized. software that are running on a server whose data can be sold or leaked. Um you do not have ownership of your data. Um it can cease to exist and um it's not it's not something that um like it's just fear muring. This is something that can actually uh happen. It has happened to people in this industry like um Amin from um SpankChain like the accounting platform that they use at some point went out of business. Fred from Gnosis um the sat they were using went out of business and the transaction data was
gone. C can you imagine that like if anybody of you has actually had any significant amount of transactions that they spend time doing accounting for or um uh labeling tagging maybe for days, maybe for weeks and then at some point you uh just lose access to everything. you like every like every day that you worked on labeling those beautiful transactions, it's just gone. Um on top of that, most of this is closed source. So I I I find this is an oxymoron that we use uh closource um uh tools in order to do accounting for open source um decentralized finance. Um, the biggest problem with this is that you
have no idea how everything is calculated and you need to you cannot just trust them because you will need to be able to take this number and take it to the IRS to the finan wherever you live and um you also need to be able to challenge the tool which is something that has happened multiple times with us. Uh and then users go and look at the code and then they say okay this is not how it should be done or this is how it should be done. And we have had cases where um we talked with some users uh they audited our code because they wanted to make sure that the number is correct and then they went to other tools and corrected them told them that they are doing something wrong. They can't see how but uh that the open source tool like rod key does it
correctly so they should just copy our code and figure out how we do this. So the point of being um closer what's problem is that you cannot challenge the result. So why does everybody build closers? Like why does everybody build in this sector closer software as a service? People are not evil. There is there is valid reasons to do this. Um if anybody here is a developer, you probably know it's much much easier to write like um you target only a single architecture. It's also much easier to update when you have um um a browser. Let's say you have to download the new version. They fix the bug. That's the only way in order to be able to get your your your fixes in.
But if you um if you are a server, you just update your server and there is a new version and uh you don't target Mac, Linux, Windows, uh MacM1, you target the architecture of your server. um another so these are all kind of valid reasons that you would want to uh use uh closers uh sorry SAS but then people also do closers and one of these reasons that they give is the preservation of their mode you know like they say this is our IP this is my intellectual property I will protect it with my life the the source should be closed the source should be proprietary the source should be business license or whatever um in reality
In most of the cases your mode is something that you don't realize which is the technological knowledge of your team and not your uh source code and also your reputation which can be uh destroyed by um using closour licenses. So uh a lot of uh apps a lot of accounting apps even try to call themselves D apps. D apps in our day be accounting or not means those things unfortunately. It means you have a centralized server architecture. All data is stored remotely. There is complete lack of privacy, lack of data control. Um you can lose as we said at any point access to the data. Um it's like your SID app but it's our data. All of the data is in
our server. So we share the data. Um and you are at the mercy of leaks and hacks always. Uh but then then left what what are you talking about? Uh, we have a privacy policy and the privacy policy, what does it say? Do you know what the privacy policy says, Anon? It always says that we respect your privacy. Like this is this is what every single privacy policy starts with. We we we we love you guys. We respect your privacy. So let let's see what how people respect your privacy. This is one accounting um u software as a service called a coin linking. Um I don't single them out for any particular reason. Most of the such software are the have the same privacy
policies. So what data do they process? Technical data such as IP logs or anything else that they can see about you from your system. If anybody has run a server, you can see you know that you can find locations, you can find uh operating system versions, browser versions, basically everything you want to know about the user. Then registration data. So how did you go to the particular um um server? How did you manage to uh authenticate? Um communication data like emails, uh DMs, um uh letters, whatever have you.
Um master data. So this this is basically them the core of what you should be afraid of. master data in most of the privacy policies and in particular for uh them. It means everything they everything you give them. So they keep everything like your uh accounts, your API keys, your um u then your net worth and then you combine that with contract data. Contract data is pretty standard for businesses. So what is your name? Where do you live? Uh how much are you paying me? But combine that also with your entire net worth in crypto and where is it and then you start to get a very very ugly picture of data that they have about you. As if that wasn't enough, they also get the behavioral and preference data. So they
see how you use the app. So how does a rich guy that lives in Spain uses my app or a poor guy that lives in, I don't know Italy. And again, as if that wasn't enough, at the end they have other data. And the other data has four paragraphs which um is underlined at the very end. What they try to say is that they will collect everything they can about you from public sources also as far as is it not unlawful but they respect your privacy your privacy so you should be uh you should be happy. Um this is like the Harold meme with um you try to use the website and then after some time someone comes and uh you know some people with black suits wants to talk to you.
Um so what is the solution? The solution is to remove the need for trust like privacy policy doesn't matter. I don't give a fly u yeah I don't know if I can search here uh you yes that thing um I don't care what the privacy policy says it can actually say that they keep no data I don't care I don't trust you um we should remove the need for trust um it just doesn't matter what it says I don't care if you have a privacy policy it means the same exact exact thing to me you should not fear the privacy policy but you should um instead fear the internet with DB access because uh they can accidentally do a lot of things. They can open DB access to the public which is how most of the leaks
have happened even though I'm pretty sure it wasn't the internet was some software engineer senior probably. Uh they can drop the database. They can delete or tables. Um we should be choosing that an app or a platform or anything cannot be evil over um um not being evil. So don't give them data and just command them you should just be good and not leak my data. Just don't give them the data. Um so how can we build this? We can build this with uh what I like to call self- sovereign applications.
Perhaps you have heard of self- sovereign identity. It's kind of the same thing but applied on data and applications that use this data. So um sole ownership over the ability to control your data. That means that we don't just send data to uh Narquare and hope they uh respect their own privacy policy. Um but we have an app that is uh open and um we can control how we share our data. So we have complete agency and say over the data uh handling and sharing. What's more uh you should have the ability to audit the code so that um you don't need to trust lefties. You know, you can't
say okay has been in this field for very long. I trust him. That's like really don't trust me. Don't trust anybody. Trust that the code that you see does what I'm saying it does like sorry does what it does. Basically either you yourself or find someone who can read code and um just see that everything that someone is telling you so that no data is phoned home, no data is leaked. Um so that this is actually the the right case you can achieve that through local first software many people uh especially in Twitter hear me talking about local local doesn't mean that we should use offline apps we are not like in the '9s of course uh we live in an interconnected world but something that
Martin Kleman uh made in this seminar paper uh local fair software you own your data in spite of the cloud is to introduce the idea of local first software that means software that is um basically keeping their majority of the functionality local. So that's the guy that's uh Kleman. He's a really smart engineer and has many nice books about um engineering in general. Um the data should be stored locally. Um the majority of the functionality should be local. We focus on privacy and security of the user. uh the network will be used because we live in an interconnected world but it's not going to be I don't know like these cloud apps now that you press a keystroke and that is basically
a round trip to some server this is not how apps should be built um so self-s sovereign applications should also be open source open source is beautiful open source is is is magic in my opinion I'm a very very very strong proponent of open source uh tomorrow we'll be debating at 320 I think with Julian um open source versus closource I think here in the Bastil room um but what is open source so let's start with something that like I have been saying since forever and it's crazy that we have to repeat this uh even with people that have been in the field for a very long time if your source code is open that does not make your uh code
open source it may sound like it because it's open source but that is something called source available So again really important if you remember anything from this conversation is that uh readable source code does not mean open source. What is then open source? It's these 10 things. And there are people who have argued with me that um oh you know no no you're talking about the free and open source software while we are talking about open source software. That's that's Uh you should read the sources that you're quoting the foss and oss. They are exactly the same thing and you should just read the definitions like if you if someone sends me the FSF definition of open source and they don't read it they
I don't know what to say. So what is open source? Open source means that yes the source code is open but also it can be freely redistributed. So this freedom is the most important part about what open source means. You can create derived works. You need to preserve the author source code. There should be no discrimination. um you it should not be specific to a product and blah blah blah blah but it's generally about freedom. Uh so as we said everything else is source available like unis swap a all of that stuff that have uh put the uh business source license they are source available they are not uh open source um what is the benefit of open source then it's transparency with this
transparency you can actually audit the code you can see what it does um but then you'll say left there is this is also what source available does open source what is the good about the ability to copy why why should you let someone copy. So it's not black and white. You shouldn't let everybody copy and not every kind of software needs this kind of license. But if you want to involve community, if you are creating a protocol, if you ask people to uh contribute to your project like Unisop does for example, um then uh you need open source because um this is how you involve your community and you attract talent.
uh you also prevent things like what we have right now with the big giants like Apple for example. Uh open source um creates this freedom that by definition does not allow uh vendor locking and data capture and um we are all building on soldiers of giants right like uh Linux is open source Ethereum is open source the first protocols of Ethereum are open source each one is a new giant that is building on top of other giants then you come and you close this that's leing that's that's really like as Gabriel Sapiro uh put it it's a tax on inov ation because you are saying okay I'm going to build on top of you guys but um that's it so um we have uh 5 minutes yeah so I'm
going to show an example of such an app and that's rod key we're fighting for the sanity and privacy in crypto so what is rod key rod is a portfolio tracking tool um that also allows management and it protects your privacy uh it's a local application all of the data is local this is like for example how the dashboard looks like It gives you a bird eye view uh of all of your assets. So say how much you have in Kraken in uh various blockchains in um in your bank and gives you historical data graphs. For example, like this is your net worth. Here you can also get a per asset breakdown. So how much of my network is in ETH? And then you can also click it and see how much is in mainet, how much
is in optimism and so on and so forth. And you can use your local currency like you can see it in euros or if you are in uh Britain in pounds etc. One of the things that we are most proud about is these kind of views the historical events where we saw all events uh that we can decode about uh you. So how many um deposits you have, how many uh staging withdrawals u all of the your transactions how they are decoded. So optimist transaction here um a mainet transaction for left to uh also transactions in exchanges and a lot of other events.
uh all that cultivates into the accounting part that basically allows you to create a P&L report that with some massaging. It's it's not like perfect um can be given to um uh a tax accountant through a CSV export that basically just gets imported and spread it like this and then you give it to your your accountant. Um what's more with some protocols you have more details like here liquidity you can see details uh like where is your staking how much you have in staking liquidity how much you have in stability pool for Ethereum staking right um this is something that most of our users uh like and it's completely filterable so say you want to see how much from the May 1st to May 15th uh was withdrawn from
validator 1337 Seven, you can also manage identities because um if you want to represent a different category, so you have private um uh addresses and public addresses. Uh you can tag them and like for example left, this is my public let's say and then this one is let's say is my private. So you can know what is what. Uh you can also add friendly names of addresses and then you will see them in the history events and you you need to take control like we we allow customization of how things are done. Um say that you have your own node you customize it and you customize its probability um for optimism to be the highest then you have something like
defy lama for example or um where do you get the prices from? Where do you get the historical prices? Where do you get the current prices? Generally, it's about owning data. Everything is local. We do uh we have a backup manager and we sync for the premium users encrypted data remotely as a backup. But this is only opt-in. It's not something that we force on you and the data is always encrypted. So the idea of of self-s sovereign apps is to always allow the user to make choices that will make their life better. Never enforce anything on them.
Um so yeah, I try to go a bit faster towards the end. Um so this is a call to action if anything of the stuff that I uh spoke about uh resounds with you like uh resonate sorry uh we're hiring do you like um python do you like maybe rust because we are also doing some modules in rust now um and you want to contribute into open source uh privacy local self-s sovereign apps please uh talk to me either in DMs or or later in the conference I will be here all We also welcome open source contributors.
We don't need to hire you. Uh we can't hire everybody. We are very small. Um so uh please go to GitHub uh find issues. Uh join our discord. We really try to help everybody. Um use roti daily. This is how you find bugs and this is how you say hey this is so great but you know what this and this and this doesn't work. Um so um we really need this because this feedback really helps us. uh buy premium. This is how we you unlock our features and help a options project that relies on a premium model and spread the word because um we are just builders. Um we don't have a marketing department like I am the marketing department here. Uh so if you
like what you hear and if you like um how rodkkey looks like then please uh be our marketing like talk to other people about it. Uh and in this QR there is basically link tree that has all the links for everything that I said. Um, thank you. I guess that's all. [Applause] Yeah. Do we have questions? Um
well it depends on the data. I guess if it is data that should be shared between multiple apps then they should be like a package in the operating system for something like rod key. If you use uh every chain and want to run every chain locally, absolutely not no like um and I don't mean run so loy also connects to to other uh services like we would not be able to I mean nobody could be able to run optimism mainet kusama substrate and everything all in one uh machine even if you have a huge dup node like unless you just use a few
Yeah. Okay. Thanks a lot. [Applause] [Music]