# Building with Intention: Achieving System Qualities through Design Choices | Devcon SEA

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2025-10-09
- Duration: 08:56
- Topics: Science & Technology
- Watch: https://streameth.org/watch/yt-ZPVXghNFj1I
- YouTube: https://www.youtube.com/watch?v=ZPVXghNFj1I

## Description

Technical and design decisions should be viewed as means to achieving broader system qualities rather than ends in themselves. This talk reorients our focus on the underlying goals of these decisions, exploring why we build the way we do, what we aim to achieve, and whether there are better ways to reach comparable outcomes. Through examples and case studies, attendees will learn to critically evaluate their design choices and understand the broader implications of their technical strategies.

Speaker(s): Auryn Macmillan
Skill level: Beginner
Track: Usability
Keywords: Protocol Design, Design, Design Thinking, Mechanism design, system

Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum, https://warpcast.com/devcon
Learn more about devcon: https://www.devcon.org/
Learn more about ethereum: https://ethereum.org/ 

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more.

Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. 
Devcon SEA was held in Bangkok, Thailand on Nov 12 - Nov 15, 2024.
Devcon is organized and presented by the Ethereum Foundation. To find out more, please visit https://ethereum.foundation/

## Transcript

[Music] maybe there we go uh so I'm going to talk briefly today just about uh building with intention I'm not going to do intros and everything because got five minutes and just want to quickly kind of wrap through everything um so when I say building with intention what I really mean here is being deliberate about uh the combination of tools and uh components that we use to construct systems in order to achieve specific qualities um and a critically overlooked part of this is understanding what qualities one actually wants to achieve in a system uh one is designing uh and so when you're designing systems uh perhaps the best shortcut I can offer for actually understanding what qualities you might need um is to mentally stray from the happy path uh so the default way that we typically think about building applications uh and systems is to consider the the affordances the features that we want to enable but a lot of our most critical design choices often don't make themselves apparent until we uh either mentally Traverse the kind of unhappy paths uh what happens when something goes wrong uh or they reveal themselves later uh they reveal themselves to kind of be critically absent when it's already too late um so it's it's this category of problems that where typically trying to solve for Via decentralization but in our industry I think uh decentralization is this kind of buzz word right it it's this commonplace descriptor expectation but it's near meaningless in a lot of cases um because it's treated as an end uh and in reality it's a means it's a means to achieving a handful of other qualities that are really valuable in in uh the types of systems that we're often building uh and so I want to quickly caveat that decentralization is this kind of spec it's not binary a system may be more or less decentralized than another system across various different axes and most complex systems make these really explicit kind of trade-offs at various layers of of their stack based on which priorities or which which uh qualities need to be prioritized but again decentralization is this means uh to achieving some other ends uh so let's talk briefly then about what those uh qualities actually are what we're looking for um I think there's four critical uh components that we're looking to achieve uh looking to achieve kind of guarantees around so this is censorship resistance correct execution availability and capture resistance um censorship resistance is essentially asking the question can one prohibit another from using the system uh and if so under what conditions and is that desirable so say Twitter taking Twitter for example one's interactions on Twitter can almost certainly be censored right Twitter can choose to arbitrarily uh allow or disallow an account allow or disallow some piece of content uh and this is perhaps a good quality in some scenarios uh for moderating things like hate hate speech um but it can also almost certainly be abused almost certainly is abused uh for you know to to suppress criticism to uh uh suppress conflicting political opinions um and so there's this uh kind of interesting design space to play with there for decentralized or more decentralized Twitter Alternatives uh things like farcaster to aim to find essentially a different balance between uh this censorship resistance uh and then content moderation um and so yeah interesting kind of design space to play in uh next one correct execution uh will the system essentially behave as expected could one coers the system into unexpected behavior um good kind of example here would be thinking about say airline miles right you would expect to uh earn Miles when you fly be able to redeem them to purchase a flight um but those things could be arbitrarily changed right um by by whoever's operating the uh the airline miles and unfortunately we've had a kind of trend towards similar patterns recently in uh in the web3 space uh essentially treating uh points right uh these arbitrary arbitrarily kind of controlled systems for for rewarding users that ultimately end up reintroducing some uh censorship or capture resistance or or correct exec ution uh vectors uh last one here sorry availability uhen can one rely on the system to to be online uh is the system dependent on any specific actors uh and what happens if they're unavailable um obviously the the the previous two correct exe uh yeah correct execution and censorship resistant are kind of subsets of or kind of tightly related to availability um but yeah another another kind of really important quality and then this last quality here uh capture resistance is asking like will the other guarantees hold indefinitely is there some party that could uh could arbitrarily change these rules in future or or kind of capture enough of the the mechanisms that control this thing to make changes in future um so again these the these four kind of key qualities censorship resistance uh correct execution availability and capture resistance uh in concert uh these are kind of best achieved via radical decentralization um however obviously legitimate decentralization is is notoriously difficult to achieve um and this is the whole kind of value proposition for the infinite Garden for for blockchains like ethereum is to enable applications to inherit these kind of features uh while focusing on implementing their own affordances um so I guess yeah the the kind of key question here that I'd encourage people to ask is when they're designing systems is what qualities what of these qualities can they inherit from uh the systems that they're building on on top of um and which qualities do they need to kind of explicitly engineer uh and and then kind of importantly are any of the design choices they're making about or you're making about the systems You're Building uh undermining the qualities that you would otherwise inherit um again you can you can largely inherit those four qualities from building on top of something like ethereum but it's it's very easy to unintentionally or intentionally undermine them and kind of reintroduce some of the problems uh so I'll leave it there for today necessarily super high level very quick talk uh happy to go deeper into the topic if anyone wants to chat again uh but just to reiterate big takeaways uh is really important to tread that on Happy path when you're designing systems uh think about the things that could go wrong how your system handles it what you uh what what qualities you can uh uh bake into your system in order to to avoid those unhappy paths or handle those unhappy paths um from those that have kind of trodden the unhappy paths before us a handful of the really critically important qualities censorship resistance correct execution availability and capture resistance uh and then obviously you can inherit those qualities by building on top of ethereum or something like ethereum um but be careful not to undermine them uh you can find me on Twitter at Orin McMillan thanks for the uh very brief talk awesome Morin we have time for one question who who wants to who wants to go next with a question someone just just one question not that many hints just we have space for one question cool everything clear or how you you you mentioned the role to um well let's just say full decentralization that it's quite far um what do you think like if you give us St a time frame oh so I'm notar saying like a road to full decentralization I'm saying if you're building uh a system from scratch it's it's very difficult to to build a legitimately decentralized system largely because it it implies having uh cultivating a a community of say node operators right and this is a this is a notoriously difficult thing to do is to to set up the incentive structure and uh and actually find rally the people to kind of run your nodes or or kind of participate in your EOS system and do you know anys that are and do you know any projects that are um that have that standard that you're looking at there ethereum it's great so like this is a great way to to inherit a bunch of these qualities this is is by deploying on ethereum or deploying on uh something that's that's kind of tied to ethereum thank you so much everyone please give him a great Applause I appreciate it
