Proposed Upgrade: Allowances

Andrew Levine
koinosnetwork
Published in
3 min readDec 12, 2023

--

Koinos is getting even better (and safer) thanks to an upgrade submitted by community developer Julian Gonzalez.

The Evolving Chain

Arguably the most innovative feature in Koinos is its modular and fork-less upgrades, which means upgrades can be made to the system by anyone through the same kind of smart contract that would power a dApp.

Because upgrades are just smart contracts, this makes creating them accessible to anyone who knows how to write smart contracts on Koinos. Since Koinos has both TypeScript and C++, this makes contributing to the core codebase accessible to practically every developer on the planet!

Julian’s upgrade is the perfect example. While Julian has now made many important contributions to Koinos (like the Kondor web wallet) he was not one of the creators of the chain or a member of the Koinos Group.

Adding Allowances

You can read more about it in his post (https://peakd.com/koinos/@jga/improve-security-koinos), but what it comes down to is that Koinos has a fundamentally different design than Ethereum so that it can have that ability to evolve. It gives developers the freedom (or “authority”) to upgrade their smart contracts which is the very same feature that enables the decentralized governance contract to upgrade the system (as Julian is currently attempting to do).

Building an innovative system means making different decisions than the status quo knowing that there will be downstream consequences. The good consequences are the reason why you make the changes and the bad consequences are the cost you bear for the good.

One consequence of the design is that the existing token contract doesn’t have a feature that Ethereum does called “allowances” and the purpose of Julian’s upgrade is to add the feature to Koinos to make token contracts safer for users.

Some teams might be embarrassed to admit that something in their protocol needs to be improved, but not us! There is always something missing or broken that needs to be fixed, that’s precisely why we designed Koinos the way we did!

Go vote!

Voting begins tomorrow, December 13th and ends December 27th. If over 60% of block producers vote in favor of the proposal, it gets applied to the chain on January 3rd, no hard fork necessary!

Koinos Group has inspected the proposal and it appeared correct, so we have set our block producer to cast votes on the upgrade. You can learn more about the upgrade by reading Julian’s post here: https://peakd.com/koinos/@jga/improve-security-koinos.

Adding the get_contract_meta data system call to Koinos is just the first step in this process. If approved, the next step will be updating the KOIN and VHP contracts to integrate the new system call. Julian already created a token contract with allowances which is being used by KoinDX as a reference, so all that would be necessary is adding the system call. You can view that contract here: https://github.com/joticajulian/koinos-contracts-as/blob/main/contracts/token/assembly/Token.ts.

--

--

Andrew Levine
koinosnetwork

CEO of Koinos Group, inventors of Koinos, developers of Koinos Pro