Thoughts On Complex System Design
This article is in response to a Smart Contract Research Forum podcast on complex system design. Link is here: https://www.smartcontractresearch.org/t/scrf-interviews-formal-methods-in-complex-system-design-jamsheed-shorish-and-michael-zargham-ep-16/2482
This was an insightful post on formal methods in complex system design. The “inward-looking” and “outward-looking” analogy helped me understand validation and verification more. Proper validation can have spill-over benefits like customer satisfaction metrics and easier marketing. The article does well in emphasizing how important mechanism design is in validation.
I liked the example MZ described when reflecting on the laws of conservation of mass and energy. It puts mechanism design into an easily-digestible form. In mechanism design, an agent (principal) chooses the payoff structure for the game other players are participating in. Whether the payoff structure is in equilibrium or not depends on the principal, but with new analysis strategies like compositional game theory [1], we can model equilibriums as new games are made. Compositional game theory also uses category theory (mentioned in the post as a tool for generalized dynamical systems). It would be interesting to see examples of category theory being applied in complex system design. Examples are always great for comprehension.
The conservation example given can be expanded to see the solar system as a mechanism / economic system of sorts. Let’s take life on Earth as an example. Here, energy and mass preserves itself. Energy and mass are transferred and transmuted at tremendous scales here mostly through living organisms. However, all life’s sustenance can be traced back to the Sun (and water/soil, but let’s keep the Sun). If the solar system was a mechanism, sunlight and energy from it would be the payoffs, while beings like humans are the mechanism designers. We’ve historically optimized our agriculture-based civilizations to capture as much Sun power as possible so that we can survive. This begs the question, can complex systems even work without some kind of life source?
One could say that in certain protocols, let’s say, AAVE, the “life source” comes from borrowers. When someone takes out a loan, the protocol can earn value by collecting interest or a liquidation event. Here lies a chicken-egg problem where a protocol must have users in order to have enough incentives for the mechanism to truly work. This brings us back to validation, where user research and product-market fit play a key role in determining whether a system fulfills customers’ needs. One thing is for certain: the complexity of the solar system dwarfs the complexity of a smart contract protocol. Efficiency requires innovation, and innovation requires change.
Composability plays a key role in web3 and it makes sense that mutable and immutable systems come with their own pros and cons. However, can we innovate to our maximum capacity with immutable systems? The bridge example in the article divides maintenance and adaptations well. Maintenance is expected and should be done as a part of the system upkeep process. Adaptations are not essential and should be carefully analyzed. Though maintenance typically doesn’t require a change to the protocol (Maker and RAI examples), is it realistic to imagine a system that has no need for adaptations in the future? For the bridge example, what happens when the area’s population spikes and traffic on the bridge gets congested daily? Would this adaptation be necessary? How would we decide whether to add extra lanes to the bridge or simply build another one next to it? In a blockchain protocol, we can visualize this example with a smart contract protocol being built on a layer 1 ecosystem. Of course the smart contract has maintenance, but what happens when gas fees are too high for users to effectively use the protocol? Do we do some type of proxy contract and gas golf to make the experience cheaper? Or do we just deploy the same project on an L2 (building a new bridge)? The payoffs of both options are different due the immutable nature of blockchains. If smart contracts were mutable, gas golfing would be the first option for many engineering teams. Since they aren’t, the L2 option looks better. Plenty of arguments can be made about this stance; what matters is that we know how important it is to choose permanent options wisely. Composability affects people’s decision making, and decision making is what runs the system. Depending on what the system can do, people will make different choices.
Governance is a critical part of system upkeep and adaptation. Governance is probably one of the best forms of validation because the customers & users are actively deciding on what should be done with the system. It is true that the system designer does not have the luxury of knowing what users will want and how people will behave in the protocol. However, a detailed forum post about a proposed upgrade with an active community can produce more user feedback and data than any email survey can. This is where we see how decentralized protocols are superior to traditional internet business models. By making the community participants, shareholders, bug bounty hunters, etc., web3 companies can outcompete several traditional web2 businesses with community. The question remains, even after verification and validation, what happens when the protocol itself just isn’t intuitive for people to use? How do you create something that is a seamless experience, but also an effective value generator? The podcast mentioned behavioral economics and sciences, but I think the answer is more elusive than we think. The entire paradigm of user research could change when governance involvement becomes more mainstream. What happens when more users demand more changes? Will governance push the ecosystem for a more adaptable tech structure?
Democratic processes for protocols will only get more complex. I think a unique approach for system design would be to somehow include governance in the system itself. We don’t want to become so complex that community members won’t participate, but I think we should also want decision making to play hand-in-hand with the protocol itself. Whether it be for giving power users more sway or simply aligning everyone’s incentives, governance is set to be an essential feature for decentralized protocols.
Lots of open ended questions were asked. To sum things up, here are the key questions that can be answered: How do you track value (energy, mass, etc.) in a general dynamical system? In any given system, what necessitates an upgrade vs. simply a new system? As governance becomes more popular, will mutable systems grow in popularity too?
[1] Compositional Game Theory: https://arxiv.org/pdf/1603.04641.pdf