UPDATE 11 Feb. 2020: Telos Ratify/Amend Governance Voting is now referred to as “Telos Amend”.

No form of governance is ever perfect; even those that work well for a time need the ability to grow and change with the changing conditions of the world and the constituency. Blockchains are good at creating a consensus about the contents of a block or the balances of an address, but so far, they have been challenged to adapt to the changing needs of their users. Most blockchains adopt new rules by proposing a software change offered by developers and then seeing how many miners or validating nodes will adopt the new code. Often the users are left out of these technical discussions and forced to adopt whatever the developers and miners decide on. This has led to chain splits as part of a community goes a different way from the rest. If the blockchain were a country, this would be akin to a civil war or secession.

Telos recognizes that blockchains need a better way to build community consensus about governance changes and ensure that users have a strong voice in addition to developers and validators (block producers). To do this, Telos offers the Telos Amend governance voting process.

Amending Telos Governance

Telos is governed by the rules laid out in its core governance documents which all Telos users agree to abide by when they use the network. The most important document is called the Telos Blockchain Network Operating Agreement (TBNOA). It includes a process for allowing the Telos users to propose and vote on the adoption of new amendments, or to more formally approve the existing documents.

The rules for ratifying or amending Telos governance documents are addressed in Clause 38 of the TBNOA:

38. Amending

The Telos Governance Documents may be amended by a vote of the TLOS token holders using the “ratifyamend” contract. To ratify or amend any Telos Governance Document, any user may execute the “ratifyamend” contract, paying its contract fee of 700 TLOS (the “Ratify/Amend Contract Fee”), which may be returned if the contract receives a minimum of 1% of votes from all TLOS voters. This fee may be paid by one Member or collected from many Members over time to execute when the full cost has been collected. Once the fee has been fully paid, the full text of the proposed new document, or the existing document in the case of ratification, shall be recorded to the Telos blockchain. No Telos Governance Documents shall be ratified or amended except by a vote of the TLOS token holders, as recorded by the “ratifyamend” contract with no less than 15% vote participation among votable TLOS tokens and no fewer than 10% more Yes than No votes, at the end of a 5,000,000 block voting period (approximately 29 days).

In short, a proposal can be made by any Telos user who will pay the 700 TLOS contract fee and submits the proposal in the proper format for the contract. The proposer then opens the ballot for voting. Once the ballot is opened, users have 29 days to vote yes, no or abstain. At the end of this voting period, if there are more that 55% yes versus no votes (not considering abstain votes) and if the total number of votes is greater than 15% of all votable TLOS tokens (including abstain votes), then the amendment is adopted.

The Process in Practical Terms

Most democratic institutions and governments amend their governance in a process that includes various bodies and processes. Typically, legislators or community members propose new laws or rules. There is then a process to vote for these, either directly or through representatives. When new laws are approved, there is a stage where a bureaucracy has to implement the changes before they can take effect. (For example, if there is a new speed limit, the existing signs must be changed. If there is a new tax, stores need to be advised of this and the collection process must be put in place.) Telos is very much the same.

New proposals can come from any Telos user. Ideally, before there is an official proposal for voting, there will be discussions about the need for a change and ideas about how to implement a solution. This discussion period can go on for some time and bring in many stakeholders, including users, core developers, block producers and dapp developers: each discussing the problem and proposed solution from their perspective. At some point, a solution or solutions will be proposed and formally submitted for voting. There can be multiple proposed amendments up for voting at any time.

Telos governance documents are stored in IPFS as a series of pointers to each of the clauses of a given governance document. In proposing an amendment, the proposer adds these proposed replacement clauses to IPFS with new pointers to each. When an amendment passes, the eosio.amend smart contract (called “ratifyamend” in the TBNOA) will replace the pointers to the previous clauses with pointers to the newly amended ones. At this point, the law has been proposed and adopted, but it is still just words until it is enacted.

Some changes may require no new code, but to put most new governance rules into action, the core developers may need to write or revise the Telos software so that it performs as described in the new rule. These developers are paid by community-voted WPS, so if they fail to deliver the agreed changes, the community can stop paying them and pay another group to enact the agreed to changes. In this way, Telos is perhaps the only blockchain that allows the users to fire and replace the core developers.

Once new code has been offered, it is up to the block producers to adopt it. This requires a vote of 15 of the 21 active block producers. Typically, new software code will have been inspected and tested on the Telos Staging network to search for bugs or errors before being offered to the Telos mainnet. Only the block producers are able to replace the Telos system software and it is an important responsibility. Block producers should adopt the new software if it works as intended, or else explain why the new software does not properly reflect the intent of the amended governance. Fortunately, there are many people in the community who can help the less technically adept users understand whether or not the code works as promised and should be adopted. If the block producers refuse to adopt new software that complies with the amended governance, then they are not fulfilling their duties and the voters should remove those block producers in favor of those who will do so. In this way, there are numerous checks and balances on the various bodies of Telos governance with the users as the driving force.

Telos Amend Specifics

Some specifics of the Telos Amend process will help in understanding. First, each ballot can only apply to a single document, but may propose changes to several clauses within that document. A proposal to change any clause is an amendment. A proposal to accept the current text of a governance document without changes is a ratification. Governance documents do not require ratification, but the process is available if the community wishes to strongly signal their approval.

When proposing an amendment to a clause, the entire text of the proposed new clause is included in the proposal — even if only one word or character is changed. This is because the new clause will become the clause of record when an amendment is adopted, completely removing the old one.

Whatever amendment proposal is most recently passed will overwrite the any text for that specific clause. This is why the Telos Amend contract works with clauses instead of the entire text. There may be times when multiple amendment proposals are being voted at any given time. If the contract replaced the entire document each time it was adopted, then each new amendment would overwrite any others, even if they passed only a few minutes earlier. This would be confusing and counterproductive. Instead, amendments only overwrite the exact clauses being voted. This way, if one amendment only addresses clauses 6 and 7 and another only addresses clause 21, then they would not interfere with one another. Where two amendment proposals that address the same clause in the same document pass, the later amendment will overwrite the previous one.

While the voting is visible on the blockchain and, therefore, a running tally is available throughout the voting period, only the votes at the final block of voting will determine the outcome of the ballot. An amendment could be failing for most of the 29 days, but if it passes in the final block, then it passes. The contract updates each voter’s votes as they move TLOS tokens in and out of their accounts, so that an account cannot vote a lot of tokens-worth of votes in one way and then send those tokens to another account to vote again. This type of gameability is not allowed.

The TBNOA calls for 15% of the voteable tokens as a threshold for passage. This includes all tokens voted to yes, no, or abstain. In the current version of the Trail voting system, “voteable tokens” are measured as 15% of all accounts that have ever registered to vote using Trail. (Registering to vote on Trail is an invisible process that is handled behind the scenes by Sqrl wallet, Chainspector, and other voting tools each time an account votes for any Trail ballot.) This is not the ideal form of counting the threshold as it counts all accounts the same regardless of the number of tokens they hold. This is scheduled to change in an upcoming revision of Trail. It’s also worth noting that users who pledge their block producer votes to a proxy cannot vote through that proxy for amendments, worker proposals, or any other form of Trail voting. This is also scheduled to change in an upcoming revision of Trail. Because of these issues and the small number of accounts registered to vote, it is likely to be fairly easy to reach the 15% threshold for ballots to pass in the early days of the Telos network (This might even be a candidate for a future amendment ballot). As the Trail contract is improved and the number of Telos voters increases, 15% may be a more realistic threshold, as future voting is expected to be low for most issues.

Finally, the 700 TLOS deposit that a user must pay in order to propose an amendment is meant as a deterrent to tying up the system resources used by Telos Amend. If there were no cost to making a proposal, then a person could attack the network by making a very large number of proposals and tying up the network resources. Any proposal that receives votes from 1% of voteable tokens will receive its deposit fee back at the end of the voting period.

More about GoodBlock can be found at: www.goodblock.io

Join us on Twitter @GoodBlockio

Vote for GoodBlock on the Telos Blockchain Network @goodblocktls