New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Ditcraft: dit is the new git - Developing CODE in a DAO - by Sebastian Gajek

DevconWed, Oct 9, 2019, 12:00 AM

Berlin Ethereum Meetup 2019/07/24

Transcript

all right guys hi I'm Sebastian I am a member of a dead craft team and I gonna introduce you're a tool which we called it's it's a decentralized version prominent get clients so who of you guys is an active developer wonderful who of you is familiar with git perfect so then you're right target group to introduce you a decentralized version of executives kind of clients and the reason why we came up with the idea that the word needs a decentralized git client it's effectively that we added craft belief and dowse if you guys heard about those yes okay good so fortunately I have some slides where I gonna introduce you what the meaning of $1 but in fact if you add au is nothing else than the idea of lifting the blockchain principles of decentralization of democracy to the next level and the next level is where we the humans are the people and I think what does have in particular a lot of value to add when it comes to software development so enough teast let's dive a bit more into the details so as mentioned the big password and the blockchain community these days is a decentralized autonomous organization and the ideas of a Dao actually boil down to the fact that whatever we learned from blockchain network's namely that nodes can freely you know come and go participate in and consensus protocol and just agree on the next state of common truth this principle you know could be effectively lifted - a lot of applications where we humans you know also participate in consensus and we added craft at some point started to think okay a Dow is actually a wonderful concept you know a lot of people talk about that but let's build it yeah let's build it and then we started to figure out that actually whoo what is actually a Dow yeah so a dog could for example be you know a family you know we're all members of a family just you know try to do their own things but still you know because we're a family we need to reach a consensus and agree for example that what we're gonna do today or tomorrow what they're gonna eat whatever then a European Union is also a great example for a dowel we have like a lot of countries you know which belong to the member countries of the European Union's all of them function stand alone but the European Union is just some kind of framework like a dowel framework that you know puts all those countries say in one Union and then they democratically decide what is good say for the European Union when we talk about the Dow we're actually interested of course in software yeah so the question is how can we build and then decentralized incentivized and democratic way software yeah so we're rather trying to look you know at the googles but rather from a decentralized autonomous point of view and this is the mission of did craft so we're building the tools in order to make the idea but at some point you know all the developers so most of you guys here can at some point you know contribute with your code to an organization and this will be of course be valued and appreciated yeah and some people started to define you know how one could build a dowel so there's a lot of you know discussions going on and I think soon in a month there's gonna be a blockchain week here in Berlin and I think what number one topic will be how to build out so from our point of view adele is nothing else when standards say funnel of software development start from the bottom up so normally when we build software we develop we code and ideally we test our code prior to that of course we design what we want to implement so we design maybe an architecture or an algorithm whatever it needs and prior to that and the final we of course first of all we analyze four requirements you know our software should realize and in order to do that of course we need you know some kind of resources so either we do it you know as a full-time developer for account up we're freelancers or we are you know lucky that we received some kind of grants and order you know to implement the software rule we were interested in so this is a standard funnel which is necessary in order to build software and when we for example achieve to decentralize this process then something magical might have yeah okay forget that good so I mean we're developing software for years why should we change something why spare you know hang up of something different do you guys have maybe from your experiences any ideas what goes wrong these days maybe with open-source developments no they're not Kenneth's work many times getting to his question too many requests or that they doing it in this bedtime they have a job all right I can't maintain importantly maybe it's used by thousands of projects yeah problems that depict it okay other problems you guys might have a security security yeah good point I mean incidents where the handover to the co2 maintainer was bad yeah so heartbleed is I think a wonderful example right but but maintain their didn't really check the contribution of the heartbleed feature and then it turned out and one of the biggest security disasters I think of that century I would call it ok ok so let me start with a controversial statement I believe that coding these days is meta governance and you know meta-god means that for example there's only one project owner that you know has to do all the hard work yeah and a gradient example is this guy I mean don't get me wrong I really liked that him he did a lot but we all of us also know that he's a very special project maintainer project owner right and this is really a quote that he apologizes for being you know such an within the last decades because he was really you know I think killing a lot of good feature ideas because they didn't comply with his vision how the Linux kernel should look like and you know this kind of centralized project ownership you know not only leads you know to burnouts or security vulnerabilities but it also sometimes leads you know to development of a very good project but unfortunately you know in the wrong direction yeah so there they have been a lot of examples with Linux kernels but people suggested really good features but he just blocked them yeah another problem I think today is what coding is Miss incentivized I think you know a lot of you people just you know program in your spare time you know put a lot of passion into your ideas but at some point you know those I good ideas turn maybe in something really really cool a good example I think is the vasila project yeah so those guys really did you know something great you know back in the days they came up with a wonderful browse but at some point there was another cup Google that came up with idea ah we need our own browser and do you guys know this story how started with what kind of code yeah and what is within Safari yeah so I'm not sure whether it's Safari because I remember that they used a lot of features from the Mozilla project so for example the whole web rendering packages that's been taken from Mozilla good but anyways so the problem is you know would have a problem I want to mention here is the problem which is called the browser battle yeah so there used to be this wonderful open source project then at some point you know a competitor came up and he reached more and more markets chairs right now I think Google is I think having most market shares among all Brahe browsers and one of the reasons and I mean just you know Google ironically you know for that article it really you know gives some kind of clues that Google you know continuously made life harder for Mozilla and they conjecture that that's one of the reasons why for example Silla just you know lost more and more market shares yeah so my point is that you know due to the fact that at some point good ideas you know that you know have been incubated in the open source community have been you know taken and then you know commercialized with the consequence that now people that contributed to this open source project suffer from good so these have been just you know some problems with existing or at least from our point of view with the way software and open-source software is developed these days so let's start to think you know how can we you know change for situation using principles of a Dao and the basic principle of a Dao is that no one really owns four projects it's the community that owns a project so there is no Santa Claus project owner and in order to reach that we need a lot so that kind of consensus protocol and thus presence is perfect so what we need in order to now decentralize project ownership is as mentioned a consensus protocol and this consensus protocol among humans is normally referred as a voting protocol implementing voting protocols on say a blockchain network is actually not that trivial so the de facto voting protocol in the theorem community is something which I call the one stake one vote protocol if you guys heard about that okay so let me show you how it works so it works that every voter stakes some kind of tokens maybe some Eve then a quorum is decided and the majority so the winners of a decision you know / mistake of losers and the idea behind this protocol is that you know it's game theoretic which means that you know we assume that all voters are of course interested in maximizing the utility which means maximize there are a number of tokens so whenever they contribute with their vote to something they don't want to lease lose first stake so this is the main idea behind that protocol there's anybody of you also have an idea year what is the weakness of his protocol and [Music] and what is the intention of collusion huh still okay yeah so if if I'm going to vote on a feature I'd rather make like I'd rather be sure that I'm not losing my coins right so I'm probably going to do a lot of politics outside of the voting I mean politics is always part of voting right yes okay the other thing I was wondering is what if you don't vote at all if I decide to it's no one yeah let's just see you you nevertheless want to vote but ideally you know the attack would be but you would like to bias the outcome of the vote right how can you do that what kind of extra power do you need it's a it's also the standard problem of fruit or of a fear with proof of state protocols in general that if there's a party that is overly rich it can easily bias the outcome of an election yeah simply by just out staking or others yeah very very simple attack and as simple as this attacks might sound it also happened recently in an arrogant voting yeah so there have been examples where in the last second there was one guy who just you know outnumbered and particular questions and particular proposals or others and this is a severe problem you know to this consensus mechanism so what we then thought can we do something better something which really you know meets say the spirit of a community and particularly say open source of blockchain community can we design a protocol which also allows us to reach consensus but maybe which is not based on wealth but aren't something different and this something different is knowledge yeah no let's just something which I think one has you know to somehow acquire over time what it's not possible to buy knowledge say on an exchange it's also independent of say your origin it doesn't matter whether you have been a rich kid or not knowledge is really something which I think is more suitable to decide on very important questions for example very specific questions which actually only knowledgeable people which are normally experts in the very particle field should decide on so we came up with a new voting protocol and it works very similar to that first protocol I showed you guys of a kind of staking protocol but here the differences but first of all everybody every voter proposes with the same amount of stake so all the golden coins is visas for example Eve so all of the players stake first of all the same amount of collateral and now the difference is that we introduced a second token which we call the knowledge token and this token is something which you can only acquire by participating in elections by participating for example in voting's which you know define for example is that a good feature or is that a bad feature or this was good code yeah so we mentioned that for example code testing it's like a huge problem yes so for example you know only if you for example proved but you validated enough code and this code was proper you received in a very special knowledge which is quantified in knowledge tokens and with that knowledge token you now can wait your vote yeah so the number of knowledge tokens give you some extra power and the governance of a very practical project or an you know influencing with decision in a very particular matter this is the key idea of knowledge extractable voting do you guys have questions do you can lose knowledge tokens of course you lose knowledge tokens if you lose a voting then your knowledge is burnt and this is exactly you know the crypto economic incentives behind behind us protocol there if you assume that knowledge is really like you know the highest say value valuable token in an and in a Dao then of course losing knowledge means that for example you lose reputation you lose government's power you lose you know features for example like you're not gonna get admission to very very delicate elections and you could think about that and the only way to again mint knowledge tokens it's proving to the community but you do understand what we are talking about because you know you have to you know win in those elections otherwise you will never mint just burn knowledge I mean how many tokens knowledge token do yet because I can be very good at testing but not architecture exactly so there is not a single knowledge token and knowledge token is something like a label so for example there is a knowledge token for go there is the knowledge token for latex there is the knowledge token for HTML and whenever you define an election you know of the community defines what kind of say knowledge tokens you know characterizes a project and two votes for the knowledge token knowledge level how do you how do you define this level who define it so right now we just you know made it simple so we defined I think 10 or 15 knowledge tokens which are predefined but in an ideal though the community itself what first of all define you know what what are saved the important knowledge tokens for this project but in the current implementation we just you know selected some prominent ones hi thanks I really like this idea of quantifying knowledge anchors I mean money by itself is not why we are doing this right yeah and I would I mean as much as you can share I would love to learn more because I find it difficult to imagine how you actually gonna quantify knowledge without being corruptible without being may be able to trade knowledge tokens for theorem you know I could imagine all these kind of things I have never yet found something where everybody is anonymous and you can still validate that this person has done a certain thing how can fun dessert not excited Apple radiant one of the questions and exactly those kind of questions has been in spur of the inspiration for this protocol so first of all let me answer that simple question well why can't you for example trade knowledge tokens and that's the beauty of saving a theorem network that you can define smart contracts in such a way that you don't have the ability to define whether you want to for example transfer your knowledge tokens to someone you know buy them on an exchange so this is not implemented yeah I had a question but also comment on the on that just because you can't transfer the token doesn't mean you can't sell your private key so but that's a different topic I just wanted to ask if you could explain like a little bit like they actually you like you haven't actually explained really the use cases and what people would be voting on like ideally like in my project I prefer as little boating as possible like usually only just do it like to you know resolve a dispute but there shouldn't be like disputes every day like you don't want to go voting every day on something you're working on right so maybe okay what you envision this to be useful okay today camps on one two slides okay let's go back to the original idea of knowledge so you could definitely share or sell your private key but this way you would give away say your whole reputation right I mean you're absolutely right that everything is anonymous yeah and no one can really tell you know who is who absolutely possible but normally you know and here's again the kind of say game-theoretic incentive argumentation that you build over your time you know something like your reputation in terms of knowledge tokens this gives you some kind of extra power in a dowel yeah because yeah your vote voting votes weight more when maybe people that recently started it's quite comparable to a computer game right so in the beginning of the first level of your week but you know after you know spending hundreds and thousands of hours and you know training your character moving to the next level next level next level you of course get more powerful and then the idea is that selling now so your character and starting from scratch is is disincentivizing people another feature we implemented is that we have something like a small kyc which you know links profiles with a twitter account because this way we want prevent that for example people clone their identities and you know just you know create multiple profiles and this way you know maximize this strategy as you mentioned you know that you know I trained some pro fights get and make sure that they have a decent amount of knowledge and then sell them on an eBay marketplace and so on right in order to avoid that you know you're effectively only able to do have one profile and you need to decide whether you want to sell it or not I mean just just as a comment I mean I don't think with with assume that would be posit that would be possible to do but something like a network of trust is usually used in that kind of situations where you say even if I train a thousand profiles that are all like highly skilled I have another of knowledge tokens if they don't refer to anything outside it would be like a bubble and would rate it down and while if you have incoming trust from many parties from around the world from different communities that are trusts from other communities you know what I mean right yeah well is there something that would be feasible I'm not sure if I understand technologically if that would be possible but that could kind of increase the value or represent it yeah I mean we try to somehow reach a similar goal like the goal of web of trust by you know linking if addresses to a very particular profile namely that of a Twitter account but say in the next say iterations it would definitely make sense also you know decentralized where vets say authentication service or vet kyc service I told you get your point yeah but we just started some months ago so we cannot provide you a SuperDuper perfect solution so actually the reason why I'm here and I'm presenting to you guys is because I very much sold aside those discussions as feedback and inspiration for maybe you know implementing the right features because the decentralized gets you know is effectively a tool for a community for you guys you know we're not having you know any commercial interests it's really you know we would like to understand whether principles you know of decentralization incentivized visualization you know could be transferred to our daily life or software development yeah and that's why you know I'm here and I'm very happy to you know get those fruitful discussions so we definitely need to drink some beers offline yeah I apologize if this is a very specific question but I've been watching this loop for a while yeah and after the vote is decided the losers stake is divided amongst the winners yeah and I'm wondering if you've given thought to the rules on that last step yeah so I put all my very some math formula behind and the ideas that you use you know some kind of quadratic factor you know of the knowledge tokens multiplied by mistake you given okay this is something we can yeah but this is definitely a second beer and I hope I stick it before for me they're together yeah just took a couple questions so first if I am a developer like let's say okay I'm working for Google I have a C++ background so I have a lot of C++ tokens I decide to you know poison was Mozilla they also I mean okay they're switching to Russ but they have a big C++ code base so I can overrule everybody because I have a lot of tokens like of C++ tokens how do you prevent from second question you'd say this is not it's not clear to me why it wouldn't be the same problem as the rich gets richer because what I can do I can just spread all my tokens into many accounts yes if it's connected to a Twitter account it's just a script away from being and for not being a problem so I still see the rich get richer maybe you know at a slower pace but you still because the the decision will be spread among always make against something something that we will never prevent this for example but I start with say 10 prophytes you know 10 accounts and then I train them continuously so right now say the only protection mechanism we have implemented this but we do something like a kyc so we just really want to make sure that the guy you know who is behind but if a dress has an active say Twitter profile and shows that he's not a boss so we tried to implement not in a perfect way because everything is not working progress but at least the idea is that we would like to do something like a capture test through that kyc yeah in order to exactly prevent that you know you have like one real account and 10 20 bots that work for you that you know participate in elections that of course accumulate knowledge and this way get more and more powerful yeah so the idea is that prove the Twitter kyc we you know implement something similar to a capture and some this way hope that you know those automation attacks you have in mind you know are prevented [Music] making sure differently example leaving me versus simplification one of them is the fourth of the other those guys just had a big fall outs and they each other's guts and yeah kill the other so my hope is that and this is the 51% hope but there's still a large enough say c-plus best community that when they notice that there is was hijacking happening but at least when they participate in an election make sure that this kind of hijacking attack doesn't really happen and the nice swing is we implemented the burning mechanism of knowledge tokens in a very very radical way so effectively you really lose quadratically the number of knowledge tokens so the math behind us of saying that gaining knowledge is really really taking a lot of time but if you really you know participate in an election where you know you're gonna lose because this is not what the community wants you know you're gonna be punished by you know getting a lot of your knowledge burns yeah so it might happen you know maybe you know at some point that there might is was hijacking attack but if a community is really online and believing and the whole principle of adèle then in that moment you know they should really team up you know really decide what the community wants and then make sure that when would Silla you said mozilla whoever writes so will not you know hijack any project yeah good let's get more into the use cases so let me first of all tell you what we have implemented and we went for two directions first of all we developed in a very old-school way a standalone client like the get client but the differences that the whole protocol was taking the labeling you know everything is you know part in our debt client then we also came up with the user interface just in order to make sure or to simplify the presentation of existing votes as well as you know giving you an better overview how many tokens in what labels you have and your mind the key message is still that if you behave honnestly then you will gain knowledge and you will maximize your stake but if you're you know a badass you know then at some point you will lose much of your stake and this way also lose power in the software down there are two versions so a test net version where you can just you know play standalone with the clients have your elections and we you know create it you know free for bots that will vote randomly for you this is just you know for playing you know playing with the tool and then there is a maenad version where we use the power network so where you can use you know excite open and mint main that knowledge tokens good server demo so all the details so you can call download the client as well get access to to the Explorer through either a website or just go to our Twitter account I would very much appreciate you know that some of you guys maybe try it out because we want you know your feedback and what would be a use case just in order to justify why a decentralized version makes more sense so first of all I think one of the fundamental problems we mentioned this security so and the reason why you know we have security problems with existing code is that testing you know sometimes you know it's the last think you know in the development cycles and time you know forces us sometimes to really reduce the test cycles to just do it as paradius lee with the dead client you know one idea is that maybe the community is more incentivized now you know to validate certain code contributions and why should people do it because you know they get tokens and since you know introduction of blockchain networks we know that you know people like tokens more or less then with that knowledge token you would you know get from participating in an election of course you could quantify yourself right so one of the things which you know I think the open source community is full of brilliant people but it's really really hard to identify who are the real experts in what fields knowledge tokens is nothing else when a quantifier yeah we could now come up with rankings like you know in the game where we could define who are say the top five developers with that knowledge label and we could then have really you know a community vetted ranking and that's a nice thing because knowledge is always you know the result of community vetting so this way ranking but would allow us to know you know rank developers would also be based on you know community values and I think these are two important features which we believe could help you guys just in having more fun creating code yep I think this is all from a technical point of view one thing I would like to just you know throw in the air so as mentioned blockchain week Berlin is coming soon to town and we're gonna have a meet-up only dedicated to the question can we somehow change the way software is developed today and can in particular you know the idea of say a dhow influence our daily business so whoever wants to join just drop me a line I think it's gonna be an amazing meet-up also of you know some copyright cooperate it's piggybacking us because they are also very interested in that topic thanks guys so please download and let me know what you think

Automatic transcript — names and jargon may be misspelled.