Flexible & self-governing architecture

A discussion thread for our research problem centred around flexible & self-governing architecture:

Overview

We are designing modular architecture to allow markets high flexibility to choose their configuration and blockchain behaviour, updates to be efficiently handled on-chain, and dynamic adaption to the network and environmental factors.

Details

While the progression of a blockchain is usually well distributed among a number of validators, the factors that cover governance - setting various operational parameters, performing updates in the code or the algorithms, etc - are often far less distributed. To make things worse, many decisions cannot be voted on by the same structures the validators use - for example, validators might have an economic interest in keeping other validators out, and thus should not be responsible for membership decisions. Another issue is voting competence - some stakeholders may be in just as an investment and have little motivation to obtain all the knowledge needed for a competent vote. Other decisions that a self-governing blockchain needs to be able to make include for example

  • The reward scheme: how are validators paied in a way that keeps them motivated to do their job, without increasing the transaction cost or motivating validators to be too big or too small ? How can we avoid validators to do a good job and not try to get away getting paid for the minimum work possible? (see also: #12)
  • Validator Membership: How can we keep a validator set of validators that have sufficient performance, are well distributed, and can’t end up having a monopoly that can dictate prices ?
  • Code updates: When and how is the implementation changed in a way that there is no single entity dictating the code and while avoiding hard forks ?
  • Runtime parameters, such as timeouts

Features

  • Modular design with on-the-fly exchangeable components
  • Self-governing update & parameter
4 Likes

@witold, of the details you’ve shared, what do you think are the most challenging aspects to implementing this kind of architecture? Are there any real-world examples that could serve as a model, or is this entirely new territory?

2 Likes

@candida apologies for the late reply.

From my corner I believe the biggest challenge from the above list are the code updates. Making sure that enough parties with appropriate voting rights have enough time and expertise to review code change which can have potential unintended (or even malicious) side effects definitely won’t be easy. However, developing appropriate toolkit and procedures (code analysis tools, release cycle involving mandatory testing period on testnet(s) etc.) will definitely mitigate this risk.

However, that’s just a comment from a crypto-literate quant. @klaus will be able to provide a more detail and knowledgeable answer to your question.

3 Likes