Social consensus is a menace in every blockchain community we have today, the in-fighting is off the charts and repetitive. This is supposed to be bad right? Well idk, i'm not smart enough to make that assertion so meh it's whatever. This article doesn't intend to specify how a blockchain should be run; it just posits that social consensus might not actually be as bad as it is usually presented using lots of hand waving at some points.
Social consensus to me is best viewed as a complementary layer for algorithmic consensus (the consensus mechanism implemented by any BFT SMR system). In this sense, blockchains are essentially social constructs; they don't make sense until a group of people can agree that it does. That sounds quite familiar eh? Pause, let's do this properly, from “first principles” (jk idek what that means… it seems provocative though)
PS: this isn't exhaustive and doesn't really present any novel concepts, it’s all incoherent. Have fun reading though☕.
Societies are commonly made up of different layers of individuals with different roles and contributions such that an individual is significant not in and off themselves, but rather in terms of their status and the behaviours associated with it and their position in patterns of social relations. Therefore, the structure of any society (families, friend groups, communities, countries etc etc) is that of a network of statuses connected by associated roles.
Societies are built on consensus theories; we construct communities in their simplest iterations around similar interests where according to Parsons -each individual has certain expectations of the other individuals' actions and reactions to their behaviours; behaviours which are derived from a reflexively common knowledge of accepted norms of the system within which they carry out their roles.
Societies are constantly in moving equilibrium. Interacting individuals in dynamic situations adapt by role bargaining where a role is the normatively regulated participation of a person in a social interaction process with specific role partners. Once roles are established in a society, norms are created which guide further action and ever so gradually become institutionalised, forming a somewhat stable basis for future social interactions.
In the previous article we addressed blockchains as complex systems with subsystems so interconnected the lines are often blurry; well you should know that all these work together to ensure stability and furtherance of the blockchain within the tenets of the most common sentiments and values of the participants. Participating in blockchain validation (running a full node at least) enables one to express their views on consensus issues and contribute to solve coordination problems.
However, unlike society as we know it at this point there is a relatively easier “opt-out” choice. Not feeling the vibez anymore and feel you can do better? Then take the code, build your cartel and do better.
Social consensus as seen on the Celestia blog (literal ctrl c + ctrl v) is the process by which individuals come to an agreement on a change that will be made to a blockchain; such changes are typically outside the scope of the [algorithmic] consensus mechanism, such as governance-led upgrades or responses to attacks/network outages.
You think they'll be biased to their bags innit? Say less!
According to this incredibly based (recommended reading but you probably have) Cambridge paper; Social consensus is about reaching agreement over the system's parameters and constituents, this includes how consensus is reached in the network over data entries. Quoting them directly
Social consensus implicitly affects [algorithmic] consensus, as the latter produces the latest system/state that is universally accepted by network participants and external stakeholders. It is thus important to point out that social consensus can always override [algorithmic] consensus, because changes to the rules can invalidate transaction ordering decisions taken by block producers…
In the words of the legendary Hasu; radical immutability serves no purpose. Creating code and letting it manage human resources unchecked by humans just seems like a recipe for disaster, a shroom trip at best. Algorithmic consensus makes no sense till at least one person agrees with the algorithm. Social consensus provides a means for agreement and establishment of common knowledge amongst multiple people required to coordinate towards better protocols.
Social consensus is everywhere in every blockchain (bitcoin maxis in disbelief😯🫡), just not as “formalised” or rather “normalised” as in ethereum hence the constant growth hacking by posting illogical fallacies about PoS and Ethereum decentralisation.
Well let's see who participates in these societies then and why they're likely to even participate.
Establishing Social Consensus
We previously established that individuals take on different roles in the generic model of a society, each with different incentives for participating. The base incentive for participation imo is the success of the society and a “sense of belonging”.
In blockchain societies, we generally have the same features but in its most perfect(?) form participants are able to prevent concentration of power in any particular role, especially seemingly advantaged roles (block producers come to mind naturally). Thus, the (not yet fully realised imo) novelty of blockchains is that we have algorithmically enforced economic “checks and balances” ensuring that “power” is constantly redistributed across roles.
Roles present in blockchains as we have it so far (not exhaustive) include the following
Core developers: these are the guys that contributed to the blockchain in its earliest form and/or work on the protocol layer of a blockchain. They are usually the “face” of the blockchain whenever it needs one considering they should know better about it than most. Core developers are incentivised by
• recognition for their work within and beyond the blockchain society
• community grants to ensure development goes on even in adverse conditions as well as equity.
• clout
Block producers(miners/stakers): these guys are responsible for securing the ledger, they are the wild card of the system as they’re the only roles that directly receive a form of “payment” to participate. They verify that transactions are ledger-fit and verify them by adding them to a block and appending the block to the blockchain. Block producers are incentivised through
• mining rewards whenever their proposed block is successfully appended to the canonical chain or staking rewards for securing the system with their stake
• transaction fees for the transactions contained in their blocks
Full node operators: the heroes seldom ever spoken of 🫡. Full nodes verify transactions and blocks directly against the validity rules of the consensus mechanism and hold a copy of the canonical chain. They secure the system from the wild cards. Depending on cost, almost anyone can run a full node; in fact it is widely encouraged, as the more full nodes a system has the more resistant it is to censorship and attacks. Incentives for this role include
• customisable RPC endpoints
• enhances network topology and lowers latency for other users
• better privacy as random users can't see your balances and onchain clownery
• higher priority for your transactions as they're broadcasted faster by your node.
Application developers: are responsible for developing the application layer of blockchains. They induce network effects in blockchains by building “everyday products” atop the blockchain and roping in retail. Their incentives include
• clout and recognition within the blockchain society
• product market fit for their apps/dapps
• community grants to continue building in adverse conditions.
Community/Bagholders: this includes the VCs, price speculators and everyday users of the blockchain who hold or use its token and/or its derivatives. This category is the most basic, it overlaps with almost all other roles. They are mostly the loudest in any society (maxis and all) and are responsible for continuity most times. They are incentivised by
• increase in blockchain token price
• increase in token functionality and uses besides payments within the blockchain aka real world use cases.
As was previously discussed, the base incentive for all these roles is the success of their society as a whole with maximum incentives for each role and they are to coordinate towards this goal (although this is almost never the case due to disjoint incentives).
There must be coordination within roles and amongst roles for maximum ev, and this coordination requires trust to an extent (absolute trustlessness maxis at my door with pitchforks and torches rn).
This probably reads like crap at this point, bear with me, but what if instead of boolean logic we use fuzzy logic models in evaluating blockchain features, spectrums instead of absolutes innit. Unc Vitamin has a great framework for this, contextually relevant part of the article (read it all tho) is that there are four factors to consider in trust problems
a) how many participants need to behave as expected per role?
b) how large is the total set of participants?
c) what are the intentions and incentives of coordinating participants?
d) to what extent is the whole system affected if your assumptions about any other participants' behaviour is violated?
This is why i believe the “don't trust, verify” mantra is mostly a perpetuated meme at this point to avoid accountability on the part of founders and developers, not every blockchain user is (going to be) 200iq. At the same time this doesn't mean absolute trust should be allowed, that's basically the opposite of the space's core belief. Verifiability must be prioritised first, no bargains on that one.
Trust is necessary but the difference from the previous paradigms is HOW we achieve this trust and ensure that the effects of a breach of trust is as minimal as possible or even non-existent and this (imo) is through complex math😵 and OPEN-SOURCE programmes with a splash of game theory. considering that abuse of trust (at least at the consensus layer so far) is ostensibly circumvented by enforcing indisputable punishments via algorithms the whole idea condenses into - “economically enforced distributed trust”.
Breaking Social Consensus
It is no secret that blockchains exhibit outstanding network effects i.e the more participants you have in a blockchain, the better (most likely) it is for everyone.
Established societies do everything they can to not lose a subset of their participants as this introduces new friction in trade and travel especially (e.g Brexit), while causing them to lose some of the benefits associated with the roles present in that subset. While participation in “real life” societies resemble a zero sum game more and more i.e you’re either a fully active member of a particular society at any point in time or not (you can be a passive member in another society ofc), blockchains aren't like that, at least not yet. You can fully participate in more than one role present in any one society (Bitcoin core devs can run full nodes, Ethereum app devs can be block producers etc) or two different societies (e.g Bitcoin vs Ethereum) with entirely different beliefs at the same time and it won't matter, to an extent at least.
Just like every other society known to us up to this point, perfect consensus is just not tenable. There'll always be disagreements and friction between roles (most common form being block producers vs other blockchain users) which will often resemble zero-sum games; what we want to do (i believe) is reduce the ability of any one advantaged role to impose unfavourable conditions on the other role(s).
However, when faced with unfavourable conditions aka conflicts, roles have two choices basically- “voice or exit”. The voice choice is mostly in the form of trying to convince counterparties to agree with your vision for the society and rallying dissent while the exit choice can be in the form of beginning a new society without your counterparties (permanent forks) or leaving the whole revolution entirely (Andre style). We're more interested in the former.
Conflict, Coordination and Collusion
There are two forms of conflicts in blockchains as regards to consensus
conflicts over ledger correctness which are mostly resolved through algorithms based on predefined validity rules of the ledger (algorithmic consensus). Optimally, resolution should be executed deterministically with minimal human interference.
conflicts over validity rules correctness which imo is often a morality/political issue that is almost always overcome by coordination.
Coordination can be towards non-hostile outcomes often in the form of “exit”. You can fork the code with relative ease, you can copy and paste the github repo of Ethereum and even employ a little performance art but ultimately you have nothing but abstract code without the Ethereum society or any other society behind you. You rally societies/cartels behind your new fork by coordination and -as much as i hate to admit - politics.
OGs remember the DAO incident of 2016, the chaos that ensued and its eventual resolution that spawned Ethereum Classic. You'll also remember the bitcoin fork wars that spawned Bitcoin Cash and Bitcoin Gold amongst others.
Coordination can also be towards hostile outcomes (referring to them as collusions here on) basically an abuse of trust or system properties. Collusions are headaches. The most generic form of collusion at the protocol layer is the majority attack aka 51% attacks; an attack vector that takes the form of a malicious actor gaining control of more quorum than is required to guarantee a blockchain's integrity.
Technically, like i (believe i) said earlier, users need at least a full node to fully participate in their favourite blockchains. Full nodes enable users to determine and stay on the canonical chain, the original chain, the chain which a correct majority of nodes and block producers accept as valid. They follow the preset validity rules so rigidly that in cases of multiple valid chains where a full node has a transaction originating from its client on a minor valid chain, it validates the major valid chain which doesn’t contain its transaction.
Want to know how much your favourite blockchain actually supports decentralisation? check the requirements for running a full node.
PROTOCOL LAYER GOVERNANCE
To avoid misunderstandings; the protocol layer referred to is the state machine with no applications (basically the data & network layers) and by governance i mean the process through which changes (state transitions absolutely not included) are coordinated and implemented at the protocol layer.
This section is heavily influenced by mr. Vlad Zamfir's writings on governance which you can read on his medium (recommended reading, full of gems).
Governance is about decisions that ultimately affect people (people called “stakeholders”). It’s about the processes that participants in governance use to make decisions. It’s also about how they coordinate around decisions and decision-making processes. It includes the establishment, maintenance, and revocation of the legitimacy of decisions, decision making processes, norms, and other mechanisms for coordination.
Venturing outside the system’s algorithmically enforced rules leaves one bare and makes everything seem… meaningless (matrix vibes), but it shouldn't, at least in my inexperienced opinion.
We have previously established that a blockchain is propagated using objective validity rules which are established by relatively subjective social consensus. Governance imo is how social consensus is established and enforced at the protocol level at least, through coordination. I struggled with this framing for a while (probably makes it even more wrong lmeow) but i think governance is best regarded as a layer/mechanism to enforce coordination towards social consensus.
social consensus is achieved by non-hostile coordination within the bounds of blockchain governance.
-me, a redard.
Governance must begin from an assumption of corruptible power and be structured on mutual distrust while maintaining stringent dynamism and adaptability. Governance should be able to evolve as the technology gets better. We shouldn't lean too far into ossification but we shouldn't move too fast either (move fast and break things not move too fast and break everything)
Governance as we have it now is mostly a dark forest till it isn't. This view is based on my opinionated perception that blockchain governance is partially autonomous and partially captured.
Governance is autonomic in the sense that there's mostly no one person or group “responsible” for defining roadmaps and enforcing changes or any other legalities. It's a “we're all figuring it out together” approach where everyone mostly makes sure that the protocol keeps working as predefined while identifying and eventually addressing issues.
On the other hand, governance is partially captured by founding “non-profit organisations” (eg BF, EF, LFG, Avalabs etc). However, this capture is mostly not evident till there are extreme cases of uncompromising parties in a conflict. Since the trademarks associated with the protocol are -more often than not afaik- registered with these organisations, any faction they signal support for, even in the slightest manner, is automatically advantaged and has a higher probability of being the dominant faction (BTC vs BCH, ETH vs ETC).
In the end, it's all about the people, it's all about social consensus, it's all about Layer Zero as it always has been.
You're a legend for coming this far, here is your complementary poap (not a bunny tho).
Shout-out to dr. Laurie, Lefteris and Eddie for proofreading and correcting all bad takes and assumptions, arigato senpais🫡
Any and all mistakes are mine, considering that i'm both inexperienced and low iq this shouldn't be a surprise.
Like, comment, subscribe, share etc etc and follow my twitter too! (i post cringe tho🏌️). tysm.