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

Loading player…

DAOs in gno.land — ​​Lav Leon Hudak | gno.land

ETH Belgrade CommunityTue, Oct 7, 2025, 12:00 AM

gno.land, a next-generation open-source smart contract platform designed for transparency, efficiency, and composability. Powered by Gno, an interpreted and fully deterministic variation of the Go programming language, the platform enables succinct and reusable smart contracts. Resources to get started: Website: https://gno.land GitHub: https://github.com/gnolang Discord: https://discord.gg/RbRqe9tzPH Docs: https://docs.gno.land/ Gno Playground: https://play.gno.land/ Recording from ETH Belgrade Meetup #19

Transcript

okay cool want to take another one okay uh all right hi everyone how's it going thank you for coming um I'm going to make it relatively short because uh I know you guys want to chitchat and talk with everybody and have a beer and everything and it's uh 7 so uh I'm going to be talking about Dows in Gand now just a quick introduction my name is Leon or in Serbian love um I'm a engineer atland and I've been in web 3 for about 3 and a half years uh this is my GitHub if anybody wants to check it out please do uh why because everything we do we do open source so all of my work and all of our work uh can be found online um and today's agenda is going to be relatively short again it's going to be a little bit about what Gand is just so I can give you a bit of a context of uh you know why why we exist what we're trying to do uh I'm going to talk about why go and you'll realize why I'm tell telling you this in a second then why G which is our language and then about Dows the the first three are going to be relatively easy and simple so um not going to spend too much time we're going to focus on the DS afterwards uh okay cool so Gand Gand is a new blockchain um it's running a custom virtual machine called ovm and uh basically what it does is it allows us to write smart contracts in Gano ganno is a interpreted and deterministic version of go now before I go on can you guys raise your hands if you're developers at all okay how many of you have heard of go okay and how many of you have written anything in go so far okay that's a decent amount nice cool um and then finally uh the last Point that's really important for Gand is that all deployed code so anything you deploy to the chain is essenti completely transparent and viewable via this thing we built called gnow Web um as you know or may not know uh in ethereum and usually in other blockchain systems what you need to do after writing a smart contract is you also need to write a front end somehow you don't need to do it but realistically speaking if you want your app to be used you kind of want to build a frontend and you know that can kind of be painful sometimes because you have to handle all these clients and all these libraries you have to write JavaScript and all in all it's not a really fun experience and G know is basically an universal front end uh gab allows you to uh if you know go and if you know markdown I guess everybody here knows markdown yes okay I hope uh basically allows it to just write a smart contract and then write a markdown version of its render so to say so you can take the state out uh whatever whatever is happening in your smart contract and then you can just parse it into markdown and return it and gab will be uh this universal front end that you can just basically browse the the block blockchain within it um yeah that's that's a super important topic because um we really care about transparency and you'll see see letter Y okay so why go uh this is the slide uh why go uh go again is uh super super simple and straightforward is a language it's it was built uh way back like 2009 I think um and anybody who knows at least a little bit of about coding can probably get a lot about go go is a very straightforward very very minimalistic language and it has a very large developer Community um it has a lot of readily available resources so again it's been 16 years right since it's it came out so there's a lot of things that uh uh can be reused especially for gno because gno is essentially identical to go except a few minor things soow is a subset of go um it has a solid collection of very performant and very well-known standard libraries so you don't have to learn about these new standards and libraries you have to import and this and that you just know that you can do strings dot whatever or uh string conversion do whatever um Etc but it's super super simple and that's why we chose go go is a straightforward language that we really like writing and that was the basis for our project essentially um it gives lots of power to developers uh because it was based on C essentially it's a it's a better version of C so to say um but it's still very simple okay so a little bit about G just short um it's model have to go 118 uh the newest one is 123 I believe so we're a little bit behind we don't have everything in the language but uh uh basically it's interpreted instead of compiled uh and that basically allows uh seamless composability on chain and you'll realize in a bit uh what I'm talking about and currently does not support again as I said all go features uh such as generics and go routines for anybody who knows what those are uh but that's really not really too important uh this is G know I mean I think you guys can pretty much understand what's going on here um just like in solidity uh you have a top Lev variable variable at top left um which is just an INT and you can set it and get it but the really cool thing is that once Alice deploys this to blockchain it lives on a specific package path like like like an address let's say but but this is more human readable in some sense so imagine like you have an ens for for your uh for your um smart contract by but by default uh then what Bob can do and this is not something you can directly do in ethereum is you can literally import the package from the chain itself so you don't have to download uh everything that you want to use in your in your smart contract and then compile it locally and then publish The Bu code which essentially then you have copies of this piece of code that you're reusing that everybody's reusing like for example the erc20 uh everybody every smart contract that reuses the erc20 uh code has a bite code version of it somewhere packed inside and it's kind of um uh it's you know populating more memory it's redundant right in this case you literally import Alice and you get it from the chain after execution or during execution so Bob can just import Alice's contract and then he can get a public function public functions and go are just uh with the first letter Capital so it's export it's like a public one and then basically you can get the X and then you can set the x perfect okay it's super super simple just wanted to give you a brief overview of like what G know is so you kind of catch the catch the the the context right okay so let's move on to DS okay so why why the hell do we make DS can anybody tell me okay let me let me move back does anybody want to tell me why did we create DS like why why are they nice why why do we want them anybody okay because of Regulation because of Regulation what do you mean regulation okay okay sure never mind okay so basically the centralist governance structures um Can fail right I mean in the end daas are an alternative um centralized governance the traditional governance what whatever you want to call it it works sometimes sometimes it doesn't and people said okay well if we can build something new if we can build something different why not try to do it and for example you can take very very specific cases that's that are happening currently in the world like here or like in in America for example um uh people think that decentralized systems should provide resilience they should Pro provide a lot of transparency and they should be adaptable they should be able to change um for example I think um we've been locked in this state in Serbia specifically for 12 years right and it's not good right um that's why people started building Dows this is a very brief context intro to why Dows uh but yes essentially maybe Dows currently lack the uh efficiency uh of centralized systems right as we talked in the previous presentation as well they do provide a framework to over time uh reach the levels of efficiency um that the centralized governance systems do have but also have more features more they're better in some way right they're more accessible they're more easy to monitor to be transparent for them to be transparent Etc um but yeah so essentially the philosophy of governance that we have is that governance should be adaptable that's what I mentioned previously so it should be able to change should be able to be upgraded it should be able to be trashed and completely rebuilt uh it should also be inclusive uh unless you get what's going on on Twitter for example right now um you know you want to welcome uh all kinds of voices and if not then you make an adaptable system that can Fork you say okay well we have one one uh one system that works one way but all of a sudden we have these two big groups that don't really want to work together so okay let's make the system super easy to fork and then they can have their own separate worlds and do whatever you want right that's what happened with the Schism as well right um again then they need to be uh built for sustainability so they do need to have some sort of way to uh be um stable in the long term and also be transparent um so we actually know what's going on and not have not repeat the same mistake right um which is a general blockchain philosophy of course but that's that's fine and then in the end I think or we think that um they should be customizable and again that's a bit different than adaptable because uh adaptable allows it allows Dows to evolve while customizable means from the start you can make different types of dows you can make a dow that's completely flat you can make a dow that's uh that has some sort of hierarchy you can make a DA that is tiered and we'll see a bit about that in a sec so these are the three Dows that we are working in Gand that we're working on in Gand um and more to come obviously but I'm going to just give you a brief overiew of what these are and how they work and maybe we're wrong about them and we want you to tell us about it because um this is all a big experience for us for everybody realistically speaking uh but okay so let's get uh let's start uh basically go da it's governance da obviously this is a DA that essentially going back to the whole thing we're Bing a chain um govow is a a governance system that comes baked in with the chain so anybody who also Forks the chain will also get a version of gova um it decentralizes the responsibility of managing the chain uh over time so for example you can manage um essentially anything at this point in time we we had proposals for new validators proposals for budgets proposal for this for that and really doesn't matter but it's related to the chain so you talk to the people running the chain essentially uh then we have a common da this is a name it came up it's a common da because it's common so we want anybody to be able to make a common da very easily uh and it's a general purpose framework that I'll show you in a little bit and we have gomi da and this is again another uh use case specific Dao uh it's specifically used for Content management and ecosystem development in the sense that we have a platform called gomi and we do need a dow to manage it but we realize that having one big flat Dow isn't really going to make it isn't really going to uh do the job that we want so we're creating for example something like a dow of dows for example and I'll talk a bit in a I'll talk about it in a bit okay so um to go over the specific ones um now governance baked into the chain is what go of Da is uh and in this case it's an invite system so we don't really have a token um the idea with go Dow is that you basically earn your place through your own reputation and going back to um how do you how do you get a reputation where do you get the reputation right we go back to this point of being open source so anything we do so the chain itself anything on the chain is open source so publishing any kind of code must be open source uh it's like that by default but also anything that we do for the chain for the tech for the whole tech tech from from the bottom layer all the way to the app layer uh everything is open source so you can just go to GitHub and check out exactly what I did today in my work hours if you want to which is kind of scary honestly but uh uh it's okay uh we're prepared for that um and then basically we have this whole uh teering system so we have tier one tier two and tier three and this is a very opinionated obviously way of doing a dow uh tier one has the biggest power the biggest voting power in the whole Dow uh and they can invite a tier two so basically you move up the ranks to somewhere so this is kind of an I'm not sure how to say that in English never mind um but essentially you have tier one with the most voting power tier two with a little bit less and then tier three for the general uh population so it's reputation based and essentially tier two can invite tier three and tier three would be people who just kind of start getting involved and at one point you uh building up on your reputation to by contributing to the project by um either on GitHub either on the Chain whatever you want uh and being noticed by the governance uh you essentially gain the permission to not permission you gain the you gain the opportunity to be invited right and again there are no tokens involved in this case um then you know maybe the only tokens that will be involved are for example the renumeration down the line for participating in the da which is I think one of the most important things when you want to actually have a DA particip have that be active right uh okay let's move on uh so Gom Dow so again this is a organizational framework but also an implementation where we have a management platform we have a Content management platform and we kind of want to make it into something that's Dow managed and the thing that we're trying to do is make a tree based Dow like a dow of dows and the idea is that you want to kind of create uh a d for each subsection of this whole platform so in the case of say um um we want to be able to publish tutorials about how to do something on G know uh we want the we want the team uh who's uh in the main Dow so whoever the people are and realistically speaking right now it's us right it's the core team but as far as we uh open up the da more and more or or as we open up the down more and more we'll get more people in and for example be able to create a smaller D which is going to be specifically for marketing or specifically for event management or specifically for this so basically in in some sense you kind of making a company but it's based on dasas right so so this is going back to the initial premise that Dows aren't only supposed to be flat in our opinion we should be able to create different types of structures and see how they work so in this case you create subd Dows uh to create more structure and remove remove overhead uh time overhead for example for um if you have one big Dow you can kind of partition the the the the proposals by type or by this or by that but in the end they go through the same pipeline well in this case you can say okay well I want to make an event and I'm in event Dow but for this I need approval from marketing Dow and I need approval from the higher up Dow that handles the budget right so the budget Dow whatever and then you can say okay well I can make a proposal in my Dow that I can programmatically list to invite the Dows and propose to them as well that uh what I'm doing is is uh you know is is supposed to be approved um or for example you can automatically essentially say I propose this and then because the topic is this and this you'll automatically push proposals to other d or for example in the end if you only want the higher Dow to uh to be able to say yes or no you can push D push proposals between the the smaller Dows and then in the end you have to say I need a sign off on this from the big Dow yeah ask just can you programmatically do something like two subs want to finance some progr like one sub want to pay 10K the other 10K for the same thing so is there a way that if the V passed you also programmatically have that V sub down can somehow find the same thing yeah you could probably do that yeah okay yeah yeah um can you just repeat the the question so let's imagine I'm organizing event cost me 10K but like a marketing team budget is to pay5 the Dow Steam on a pay yeah so if we pass the proposal we would like to automatically from treasury of sub a and treasury of sub B to allocate 5K and pay to the cment yeah for sure why not yeah definitely after the vot yeah I mean part of this is that realistically speaking everything that's happening isn't only on chain right in the end you communicate with people you know so if you know somebody from this da and from this da and say hey can you put in a proposal for me that's that's also fine right um but yeah that's very possible um and then Comm da which I'll give you a bit about uh I'll give you a bit Co bit of code to actually showcase what what this is about is uh uh it's a modular governance framework again it's very opinionated uh but the idea is that anybody who writes any sort of application can literally import a package that's on chain so you can just import a package and you can do dow. new and you'll get a get a dow all of a sudden um this is used in Nan's boards app so a boards app is kind of our Flagship application uh it's a redit like form app it's basically a an app where you can um well do it's a decentralized social media app right to degree but the only thing is that um so you have the main app which has the ability to create boards like subreddit and then in each board you actually get a DA by default and then based on uh based on the the uh different people that are in you can create a DA for I don't know for ethereum a DA for Gand a DA for this a DA for each topic that's going on and they can do the moderation they want and then down the line because this is using commond da which is the framework you can actually have have a a subreddit or a board right which um then can create a subow of its subd which is going to handle the the content man agement and then the the the whatever else so you can you can go all the way all the way down if you want uh but the logic is this so look this is this is a very simple snippet of code this is an app that I wrote this is not the full app obviously this is like the Dow part of the app so I have a package and a package is an organizational unit of code and go so it's like you can make as many files as you want but they're within the same package so it's like you put them in one big file it's going to be the same uh essentially the logic is this is a social media application it's like super super simple it like handles posting and removing posts and deleting posts but I want to create a dow that's going to be able to remove posts uh to moderate it basically right so the logic is this we have some imports and the STD import is just a standard library for for G which you don't really need to know about but these two are very important so here we have uh an import path so this is actually where the code lives actually if you like Google this uh you'll get the common D um the common D source code so the logic is okay okay well this is a pure package it means it's literally just functionality so we don't have any state and we're importing all the things that we need so for example the definitions of structs of of the functions of everything but we also import this R which is a common do and this is the factory so R is basically uh short for Realms and Realms are essentially State uh stateful applications right so they're smart contracts as you would know and then what you can do is you can say hey Factory can can I make a new Dow and then it's going to give you this object and I have the object somewhere here this is the object so it has a couple of things here but it's relatively simple it has an ID it has a slug does anybody know what a slug is yeah yeah okay a slug is essentially when you browse uh the internet you create sub folders and sub uh sub items on your page and a slug is the string that identifies it essentially it's like an ID uh then you have a name you have a parent so this is the really cool thing is that you can do recursive uh you can do recursive definitions in G know uh which is a you know it's it's a function of go essentially so it's inherited uh and IDE the idea is that you can make a DA that has a parent that has a parent that has a parent and then you do whatever you want and then you can split them up and you can connect them in different ways as well it doesn't have to be necessarily apparent even um okay then you have an address set this is a simple uh simple set it's a it's a it's a simple package that we have that doesn't um doesn't allow duplicates in the Set uh then we have this ID generator nothing special and then we have these two trees and these are like Maps right like maps in in mapping and solidity so you basically take this the proposal ID and you give it the proposal and then you do the same thing for the proposal except this one is the one these ones are the ones that are finished they have been voted on already and this is basically what what a dow is in practice it's relatively simple uh but going back to this so what I do is I create this and I get this object and it's exported and that's really important then I'll try to explain to you why uh essentially the logic is that um does anybody know what happens if you make a variable in solidity public like it gets a getter it exposes a getter automatically yes so basically when you make it public you have a uh in the ABI you get a getter for that specific variable automatically right the logic with G is that you do that for um as I said any struct you can also Define methods on the struct and this this is a this is a a feature of go essentially where you can basically Define a bunch of features a bunch of methods in the package that's going to be reused and then once you exported you automatically get all of these functions by default so that's why you can actually just import this and this is like what not even 50 lines of code this is like 20 lines of code you import this and you make this and you automatically expose a dow to your to your uh to your application um this for example is a very specific because I'm owning I'm the owner of this application so I'll add myself cuz why not um and then these are the two other things that we kind of need to do uh in this case we need to define a proposal so this is a definition of a proposal I want to create a proposal I want my da to be able to create a proposal to remove a post and this is what I was talking about methods so this is a method on top of this object right on top of this struct so when this type of proposal is executed this is what I'm going to do I'm going to take the post that is a state able somewhere that contains all these posts and it's just going to remove the post that was proposed in the um in the uh in The Proposal right uh and then in this case what I also do is you make a uh function that can be called from the outside world uh anything that's exported is essentially public right so you can just call it and then we get the caller and the caller puts in the ID of the post and the reason why he wants it to deleted why they want it deleted and then you do dow. propose you give it the caller you give it the definition of the proposal and then you error and then everything else happens automatically you have a you have a page with the da where the da says okay this is a new proposal it popped up you can vote on it you you can also there's a couple of other things obviously here like you have to define the Quorum you have to define the uh voting period etc etc but this is the gist right and this isn't too complicated I mean does everybody understand more or less what's happening here okay cool right this is an experiment maybe I'm a bit boring maybe this is all a bit boring but you came to a DA Meetup uh but essentially you know um this is a continuous learning process everybody's doing it uh nobody knows really what they're doing um and uh yeah I think uh I'm going to wrap up my uh my presentation with basically this uh Dows are hard uh creating them involves a lot of organizational skill you need to know how organizations work because you're making an organization uh you need technical expertise to actually write the code that I showed you um and a lot more uh you need to have some knowledge of world history of governance etc etc um you know Dows essentially strive to create a better governance in the world and maybe we wouldn't have um problems that we have in the world if we had Dows functioning and then in the end just a small reminder to participate in your DS uh of Interest that's the only way to keep them alive and don't do it only for the money please thank you thank you any questions any questions yes just a short one can you make infinite Loops like you have the Dow that has a and you can probably do that you can probably do that but we we'll we'll put some checks in yeah I have an interesting one yeah simply put is U why do you think DS are so autistic if I in the sense of you know we have Dows for protocol like n Dow votes on what happened on nid but what I would call a nonautistic dow is for instance we had a few Pizza D the job of this D was to organize pizza parties or you know a dow that we put fun together and we try to I don't know provide house to the homeless people doing something real in the real world using on ESS Y what do you see that happening because it's been you know six seven years now yeah and we've seen grow to nothing of those kind of We Are B doing things down why is that so you think I think uh you know one of the biggest problems is we've only recently started making it easy for people to interact with do right that's I mean that's the general problem with blockchain you know blockchains are hard to get into to a degree especially if you're not a developer you know um Dows are not different in my opinion they need ways to make them super simple in the end like the end goal I believe for every blockchain should be to for the user that's using whatever app is they whatever the app they're using they shouldn't know that the blockchain is beneath but you always have this moment of well if you don't know what what you're doing then you don't know what a pneumonic is you know then you go back and forth between well you need to be Sovereign but then you also don't want to ruin experience so to say right so I think the final the final STW in all of that is education you know in the end and it's not only education about blockchain it's a general education about um about computers in the end right yeah do you think Ai and AI agents will like improve ux and [Music] interact disaster so what I saw in the previous presentation was that the lighter crew created these Bots that notify you about Dows and about stuff that's happening and that I think that's really really cool and I think that uh that's one of the most important things that we can do for Dows is make it super super easy for people to know that something is going on right that's a form of Education in the end right so you like imagine if everybody in in in the world had a phone that had access to this specific Dow that's important for them and then you just like you get like a like a lost person alert right maybe not to that level obviously but uh you get a message hey like you there's something we need your opinion on and then you also need to kind of educate people on why they should do it uh which is you know it's a it's a really big problem because why should you vote for for whatever right a yeah yeah that's true but in the end I think that's that's education making making you it's education and making information easily accessible that's it they're super hard Dows are super hard like again like even from the technical side even from the non-technical side it's super super hard to make it you know it took thousands of years to make a proper proper governance system in the traditional world so thank yeah um

Automatic transcript — names and jargon may be misspelled.