This is a draft, published early for the Townhall, still proofreading and adding to it.
So we're getting to an organisation level where broadcasting communication is probably the most effective to reach everyone, and often I take it for granted that I've been with the project for longest, and quite frankly there was a many years of experience, reading, thinking and research that lead to our project's creation. And I realize now my role should be mostly that of an educator, at least what I (think I) know, and I certainly don't know much at all.
I'm going to take a few weeks off, mostly just to pause and reflect on Status and life, but before I check out I wanted to write up a little bit about the world as I see it and provide some thoughts on various aspects, this is about as close to the strategy/north star document will get from my contributions, I do encourage for you to take these ideas and make them your own.
So here I am, writing a letter to you (and to myself).
Before I continue, you need to know that what I say isn't gospel, Status is just as much yours as it is mine. You are an active participant and I invite you to actively shape it as your own. That is the nature of an open source project, and that idea extends beyond just code. What I can only do, is do my best to guide and give suggestions. Remember, you via Status are entrusted by the greater community to build a collective good. Let's do right by them and by our own self-determination.
tldr: it's a memory dump, read it.
Why does any of this matter at all ?
There's many lenses to view why what we're doing matters, you may have a reason that's more compelling than the one I've outlined, if so please write up and share it.
In the natural world, who/what has power creates the rules is largely determined by their ability to coerce, if it's not humans, it's Nature. This is not an inherently evil property, and while I personally lean towards the voluntaryism ideal, I can recognize that there is an argument to be made that (physical) enforcement of law is/was an arguable necessity in scaling human civilization, mass coordination in the past just wasn't easily feasible without the ability to do so. (Think Dunbar's Number)
We each individually run social software that teaches us how to behave in a society, this software is called culture. We are continuously updating our cultural software and verifying integrity of that software in our communication with others. This is our cultural narrative, an interplay of actors and their self-beliefs, their traditions and customs.
This works well in the smaller-scale society our human hardware is designed for (culture evolves faster than biology), our hardware has limits when navigating in larger populations. So we invented law and order. Our submission to law gave legitimacy to an entity to govern and coerce us. It's not too hard to view the entities of State and Church as a substitute of 'God', in the sense that we erect a super-organism made of humans to govern us, but I digress.
What if there was a way where we could better coordinate and at larger scale, without physical coercion?
What if we could build rules directly into the human-to-human communication protocol, that one we use to talk to one another? ...
Our technological progress, and especially the invention of the Internet has dramatically reduced the cost of communication, massively reducing transaction costs (in the abstract conceptualization). Allowing us to build more and more complex ways of communicating.
But to get people to participate without coercion, they must voluntarily enter a system, and for that to happen, that system must either appeal to a higher ideal they've formulated in their mind, and/or it needs to be within their self-interest. Ideally you want both.
However, even if we have a system run on self-interest, it means little to a coercive adversary. Which is why for a successor system, it must adequately defend itself from coercion.
Now a world where an individual can assert themselves free of involuntary coercion is a very strange one indeed! Coercive bodies will highlight the bad as a justification for their destruction. Don't be fooled however, because this new world is a world where the individual's rights can actually exist, a world where communities can define and preserve their own laws, their own money, their own culture. Their own way of life.
Mechanism Design recognizes that the heart of every actor is self-interest. Peer-to-Peer technologies and Cryptography allows us to raise the cost of Coercion.
Together, Crypto-economics allows us to design the next generation of scalable coordination games. The next generation of institutions, forget fintech, this is fucking legaltech and it's going to completely stratify how we coordinate as a species.
Liberty, Coercion Resistance, Privacy, Security and Decentralization are necessary to uphold an individual's right, their community's right to preserve and self-determine their cultural identity, their cultural practices, their collective story.
Armed with our Principles and the technology we aim to bring to the world, we can allow for the disintermediation of corrupt institutions, we can allow for more certainty with trustless digital institutions, and with peace of mind - to transact across borders. Ultimately this will lead to greater economic prosperity and provide a strong foundation for greater civilizations.
In summary public programmable blockchains represent a paradigm shift, one that demands a new way of thinking and offers the opportunity to experiment with new ways of socially organising. We are on the cusp of, and active participants in the evolution of the man-machine symbiosis, of Web 3.
What's our role?
So thankfully, alot of the hardwork has already been done. Praise our modern human artifact, the public programmable blockchain! But where Ethereum really shines is the community that surrounds it. If you are part of Status and not part of the Ethereum community, let me tell you, you're seriously missing out on one of the most amazing experiences by not talking and engaging with that wonderful, intelligent and welcoming group of people.
Our job is pretty straightforward. We initially started and still hold onto the phrase, Mass adoption of Ethereum.
It's our job to on-board as many people as we can onto Ethereum, without violating what enables the magic to happen in the first place. But now things have evolved, it's becoming clear to me that we are a community, one that is dedicated to advancing Web 3.0 Ecosystem, by:
- Growing the community dedicated to advancing the Web 3.0 ecosystem
- Getting Web 3.0 to run on resource-restricted devices (IoT)
- Stimulating DApp development
- Making Web 3.0 easy and accessible to use
- UX Research & Testing
- Mobile & Desktop Clients
- User Acquisition & Education
- Making Crypto usable in the real world (Hardwallet tap-and-pay)
We're a community that has a set of values & principles. btw, please read the ones that came out of the Basel event, please give your feedback on it because every core contributor will be required to sign a pledge that will include these. (btw I want you guys to make this pledge before I come back from my break, this is my test to see if any of you read this far, check Swarmwise for a pledge/constitution example)
And the means by which we move forward matters, we all need to pay close attention to how the organisation is constructed, because we're all active participants and the organisation structure we manifest is a product of our way of life, our way of thinking.
I would argue the organization design and its construction is just as, if not even more critical than the software we develop. It is a system that itself should be imbued with the properties as described above, it should provide an ideology and an incentive to participate, we should be striving to create a thriving open source project, a community, a social movement around our goals. The current trajectory we're on is reminiscent of a technology company, and not a free to participate network.
This is not about fault, this is about education, it's about letting people have the freedom to try things their way, to see if things work or not. In my life experience, often words fall on deaf ears until people come to a point in their experience where they are open to solutions or ideas, ways of doing things differently.
I believe there are enough core contributors in the organisation who now recognize this, that it is my hope that we start focusing on methods and practices of open source, of community building and even a dash of activism; as a means of producing the collective good that is Status.
Not only do we get closer to the ideal of making the software for the people by the people, we encode our culture into the software and we also make our organisation highly resistant to adversaries... the future is not bright if we stay on the current trajectory.
It requires all of us to think about this and act in what they think is best. Don't think it'll come from someone else, it comes from you.
What's the game plan?
These steps aren't necessarily sequential, but it's pretty simple really.
Step 1 - Build out the software
The software is only the catalyst, it's the reason we come together. But it's also our vehicle for onboarding more people into this way of life.
It's important to highlight the manner in which we build this has to be an open source project, at the moment, if you want to think the old school way, we're effectively giving up all our intellectual property and not reaping any of the benefits of being open source. We've failed to develop a strong open source community around Status. Hey, I've even seen core contributors that get pissed off at people contributing, that's not cool.
Status should be easy to setup and build if you are a developer.
While security, the base platform and on-chain interactions is something we must do our best to provide quality code on. For non-critical features we don't actually need a pure PM function to mandate the direction of the software, instead, we can rely on open source ways of creating incomplete features by design, so it attracts other users-who-are-developers to come fix it.
I decided to playing with Vyper & Embark last Friday night, and it was such a joyful experience for me, and all those guys were so great and chill. We should be trying to create more and more of those good vibe experiences for everyone attracted to the project.
We can be listening to the market, our users, the Status Network, we should let them be active participants in the projects creation, whether that's testing unfinished features or requesting new ones. We're slowly getting better at this now, but we have a long way to go. If the users are skilled in fixing non-critical features, they'll probably help out and we will thank them for it.
Step 2 - Decentralize ourselves
While stewardship of the project will require a structure, rules of engagement, it is folly to enshrine individuals with responsibilities. We should create a functional 'org chart' and tasks they perform, that anyone has fair access to, and can do with little to no permission.
This ensures longevity of the project and minimizes the risk of the project failing should the legal entity or individuals are coerced.
Step 3 - Stimulate the ecosystem
A rising tide lifts all boats.
Status aims to be a clean window onto Ethereum, a thriving ecosystem of interrelated dapps and ideas, the more of the ecosystem there is to see, the more reason people have to onboard into crypto, and the more reason they have to
The stronger we can make the ecosystem, the stronger the ecosystem will make us.
Step 4 - User acquisition
Everyone in Status must understand that the vast majority of the capital Status has, is to be used for user acquisition.
This is where mass adoption happens. None of the previous steps mean much unless we can get the software and the ideals to the people that need it.
The more capital we burn doing Step's 1-3 has a direct measurable impact on the amount of people we can onboard onto crypto.
While there are many ways to talk about acquisition, we can talk in terms of a traditional paid user acquisition strategy, for each core contributor we have on, we are prevented in reaching about 25,000 people, every year. Status has about 100 people in the organisation now, that means every year we reduce our capacity to reach ~2,500,000 people, I'm talking monthly active users here, not unique installs.
It helps to visualize that 2.5 mil people as about the size of medium-sized city that could be using Status, that we are no longer able to onboard, every year. That's the entire population of Barcelona or 70% of the Berlin population that could be using Status, but can't.
It's helpful to view your own actions through this lens, and I hope you care about reaching as many people as possible as I do. We'll work to fix the incentives so it's a win-win for everyone involved, but in the meantime, it's definitely a useful thought experiment when working on the project.
What do we build?
First and foremost, we work on a communication tool that enables community law, money and free speech while operating under the assumption of a hostile environment.
Since then, out of necessity, our scope has broadened to having a more active role in Web 3 infrastructure. Simply because certain needs didn't exist at the time.
Status Mobile Client
We are mobile first because smartphones are the current personal computer, we will adapt our software to future personal computing form factors (probably mixed reality devices next). If we get this right, we can reach mass adoption while maintaining system integrity.
Ultimately, maybe many years from now, but Status will be like a mini-operating system, but not in the conventional sense of managing resources of a machine, but one that manages the interaction between the real and physical world, between humans and machines. Today is something like a window manager between dapps, and built-in applications of wallet and chat (something I've never thought should have been hardcoded in btw)
Connect directly to the Ethereum network
We are a light client that connects directly to the network, as soon as you introduce intermediaries or more importantly a trust relationship, we've failed, especially if the user is unable to setup or configure that intermediary himself.
Depending on resource restrictions of the device, the manner on how we connect to the network can degrade, from full client to LES to ULC to JSON-RPC (ideally federated). We're getting better at this but it's been painfully long to explain this, and we even completely regressed on this point where LES that worked didn't work at all for far too long.
Remember we're a p2p, decentralized communication tool.
A Web 3.0 Browser / ''Window' Management / OS
This is pretty straight forward, as it's the most immediate feature of Status for everyone involved. However we do need native Light Swarm support to say it's truly a Web 3 browser.
IPFS is another candidate here, but it doesn't build incentivisation directly into the protocol, would require connecting to another network (at least until we switch to libp2p)
Ultimately this should look more and more like a window manager, overtime transiting into a 3D scene graph, which we'll get to next generation operating systems like Google Fuchsia. You could imagine the Web connecting WebAssembly objects by on-chain meta-data system and applications exist as compositions of these WebAssembly modules.
We handle transaction signing, whether that's using our hardware wallet, another hardware wallet, or keys on device.
While it is not the same as a Wallet, we have them somewhat intertwined, that's okay for now, the original idea was that anyone could use their preferred Wallet DApp, and we just handled the signing of transactions.
Decentralized Private Chat
Pseudo-anonymity by default, darkness, and perfect forward secrecy. High degree of message reliability while at the same time being able to earn SNT by running a mail server running in Status Desktop or on server (DAppNode).
We should also be working to create a chat protocol spec so anyone can make chat clients that can interoperate with Status, infact we need to be formalizing our protocols and software and demonstrating our security guarantees.
Initial Keysharing is something we need to solve here.
Unless you've been under a rock, chatbots are dead, this is not about chat bots, this about mini utilities/apps you use in chat. You could imagine a restaurant menu where everyone in the group chat can view and order from, or a RANDAO based coin-flip sticker.
Recently we removed the JS jail, which I'm fine with, but what I'm not fine with was the reasoning. The implemented commands didn't fully use the jail, so poor implementation of certain command justified the removal of a feature, two wrong's don't make a right. Which again, would be fine if there was a plan forward, I've asked on several occasions what is the replacement? ... I've heard no word.
Usernames & Identity
Having ENS usernames makes it easier to prove who you are in UI, it also allows us to create an on-chain Identity (ERC725) and make more useful recovery mechanisms. There are some caveats with this, a user should be allowed to have as many identities as they want.
We should be careful about implementing KYC, it's been argued to be used as a tool for coercision, and we should look more towards reputation systems, as well as off-chain data privacy in identity attestations.
We have to do chat moderation tools in ways that don't require individuals being moderators. It could require some SNT staking similar to Tribute to Talk, it could involve multi-party voting against bad actors. It would be great to make a chat topic 'constitution' that anyone can publish rules to and anyone can sign, with clients following those rules if they trust signatories on those rules.
Private Group Chats
Not a Public Chat, but encrypted communication among multiple peers. fix it fix it!
Inclusivity & Community
Opening up to an empty chat application is a miserable experience. It feels dead & lifeless. Chat is a social experience.
We should have an opt-in welcome party or a direct social experience with other users of the application. They should feel welcomed, and if not loved at least finds new friends quickly and enjoyably.
Every user should be encouraged to participate in the creation or continuance of Status, and they should feel like they want to.
This extends well beyond the initial user experience, and also applies to the Status organisation itself, we should be working to create tasks for other people to participate in building the public good.
Finding content whether it is a DApp or another person offering services or a simple user directory lookup requires a different way of thinking to solve search in a decentralized manner. We used to have a feature called Discover that was a gossip protocol which was based on Tribler's decentralized search ideas. I would highly recommend reviving this, and certainly before looking at Token Curated Registries.
Light Swarm Client
There is a limit to the amount of data that is usefully sent over our communication protocol like Whisper, for this and application database recovery, we should deploy to Swarm, Ethereum's decentralized file storage.
Running a p2p application is hard enough on devices as it is, careful consideration and mass simulation is need to prove that Whisper can scale and to minimize the resource load over devices. I'm not convinced we're doing our best here.
Status Desktop Client
The Desktop client came out of a recognition that, we spend alot of time at our workstations. Building and testing new ideas can happen faster on a desktop dev environment, plus we can use Status itself to coordinate. Of course alot of other people like this, so it's great.
It should have complete feature parity with the mobile client, as well as offering incentive to support the network (earning SNT for being a mailbox, for example).
React Native Desktop
We had the option of doing React-Native Web but were concerned of some of the security flaws of Electron-based applications. So we revived an abandoned attempt by Canonical to bring react native to desktop and serves not only the foundation of Status Desktop, but can allow anyone to port their React Native application to Desktop.
A hardware wallet can provide the user with arguably stronger security. We are future caretakers of value, the same way banks are. Stats wallets may very well hold $100's of millions of value, and with that we must always do our best to provide the user with the means to able to secure their assets.
We should treat the pc device as part of the hostile environment (especially closed hardware, just see the drama around CPU manufacturers atm), or at least disposable (either being lost or stolen).
Our hardware wallets should have a portable form factor, not dissimilar to a credit card that can fit your wallet/purse.
This is the relatively cheap to manufacture, physical separation security device that is paired to a device, but also supports exporting whisper keypair to be used in memory by application, and a pin-less HD leaf for tap-to-pay functionality for real world point-of-sales systems.
This is a more laborious endeavour with a higher cost-per-unit, but doesn't just offer physical separation. it allows for transaction inspection on-device with physical screen, button, Bluetooth (iOS support) and rechargeable battery.
Nimbus is our applied research Ethereum 2.0 Sharding Client for IoT, it is our attempt to bring lessons learned in running Ethereum on resource-restricted devices and take that knowledge to IoT manufacturers so Ethereum can be accessed by public transport turnstyles, to autonomous vehicles and even your fridge and laundry.
The reason for more clients in the ecosystem is it becomes easier to identify on-chain bugs as a result of poor implementation in a dominant client. It's also a resource problem where most initial chain developers are doing maintenance for the existing chain.
It will be light-client first and is very exciting as a project, it will be a long 2 year journey before we realistically start seeing this deployed in production.
Incubate & DApps
Incubate is our means of finding worthwhile projects to advance the Web 3 ecosystem and increase the content offering of Status. We have produced a list of "cryptolife" DApps, trustless alternatives to existing applications we use on a daily basis.
This allows us to scale out horizontally and create an environment where a user could live their daily life without having to leave the system.
Education - Embark & Status Studio
One thing that has become clear to me is that the ceiling of adoption of Ethereum (and even Status' growth) is bounded by a well informed public. We have a responsibility to create a training program for the community, a place where they can learn of philosophy and ideology, of DApp development, contributing to status, mechanism design & cryptoeconomics and even on evangelism - how to introduce others to crypto.
Status Studio will be the next major evolution of Embark (which will also still support CLI and Web Interface), it will be a fork of VS Code and most likely a set of extensions for VS Code and built-in education program consisting of tutorials, references and examples on how to do the topics of interest.
We will also hold workshops that will serve as recruitment and education, as well as get people thinking about building out ideas that would advance Web 3.
My hopes for core contributors is to raise our technical and philosophical literacy.
Decentralized Autonomous Organisation & Open Bounty
The Status DAO is a permissionless procurement mechanism dedicated to advancing Web 3.
This will be something we will be making a focused effort into constructing when I get back.
The DAO is essentially a system of smart contracts that lives on-chain allowing us to separate the functional roles of an organisation from the individuals that carry out the roles tasks. It is the ultimate mechanism in which we can scale out the organisation, one that blurs the distinction between a producer and consumer, it is the next evolution of the 'Gig Economy' as so portrayed by entities such as Uber or Airbnb, the difference is the intermediary is instead of a company with shareholders, it is a smart contract with a network (and ideology). It can and will be designed to have limited powers in it's ability to gate keep and extract fee's, becoming fairer for those who access it (and doing so without permission).
By ascending into the blockchain and giving our organisation over the DAO, we signal that what we're doing is bigger than us, that this software is a public collective good. That communicating privately, securely and transacting on a public programmable blockchain is a new human right, a human right that offers stronger guarantee's to the policies that user subscribes to.
We can build continuance into our project; we ensure at least the mechanism to continue the public work beyond our involvement exists. It will be a new entity that the world has to exist with. If there are any cryptoeconomically sound reasons (and there are) to 'burn' SNT to the DAO, we will instead create an SNT recycling system that then allocates it back to the DAO for further development funds.
We need to recognize the constituents of our network and facilitate their ability to participate with the DAO.
Open Bounty was our first iteration on doing this, and I would consider it our first failure, it lacked people who really understood it, or cared about it enough to understand it. Thankfully Gitcoin provides this service better than we can.
But not all is lost, we learnt alot, and those lessons are being carried over to the DAO, a much more elegant and generalized solution that can apply to more tasks than Git PR's.
The actual design of the DAO is still in-flux but we will probably do it in layers/stages. Starting off with working on our culture and then with funding. Here are some very preliminary notes on the topic;
Layer 0 - Culture & Network Thinking
Pretty much what this whole letter is about.
The creation of a Public Good, built by the people for the people. Build Status with Status.
- Self Determination
- Active Voices / Personal Brands - Status banner for Ideology/Release Notes/ Not contested decisions.
- Deeper Connections
- Active Inclusivity, Encouragement Participation
- Permissionless Participation
- Stovepipe vs Network Thinking
- Shapes thought
- Community is Synonymous with Organisation
- No External vs Internal
Layer 1 - Communication (Chat)
For any coordination involved we need to be able to communicate in a hostile environment / p2p
Layer 2 - Identity & Voting
- Proof of individuality
- KYC (Requires foot in old-world)
- Voting (non-binding, only for signaling)
- Carbonvote Style Polls
- Topic Democracy
Layer 3 - Proposals & Funding
- Salary-based Model, transaction costs and incentives
- Liquid Pledging & Fund Delegation
- Flexible funding dependency hierarchies
Layer 4 - Soft Governance
- Attaching Documents to Liquid Pledging
- Functional, Permissionless, 'Org Chart' as a Buffet of functions/tasks to be performed
- Procurement / Competitive Bidding / Tendering
- request for information, request for proposal, request for solutions, request for tender
- Partitioning Nodes, Mostly cosmetic grouping of nodes for reasoning
Layer 5 - Profit from Knowledge
- Prediction Markets
- Traders/Testers can bet against developers, developers can bet against testers on Funding decisions.
and voting outcomes
- Traders/Testers can bet against developers, developers can bet against testers on Funding decisions.
Layer 6 - Dashboards
- Views on Organisation, curated
- Tags on all entities,
In the end, Status will be on every personal computing and IoT device in some manner, it'll be a public good owned by everyone and enables all to use this new infrastructure, becoming the backbone of Smart Cities and uplifting developing countries.
If there's any questions or wanting more clarity, let's start a discussion and have an open dialogue in #general.
I hope I don't come off too critical, we've achieved alot and we're certainly doing better than most. It's a joy to watch everyone working on making the vision come a reality to their best of their abilities. We're just by no means done yet.
I've tried so many ideas in the past, I never really expected one to take off like Status has, yet here we are :)
Thank-you for contributing to Status, thank-you for making it a reality.