Skip to content
This repository has been archived by the owner on Aug 13, 2024. It is now read-only.

Commit

Permalink
Improve readability
Browse files Browse the repository at this point in the history
  • Loading branch information
hyeonLewis committed Sep 22, 2023
1 parent 73eab6b commit fa942df
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions KIPs/kip-149.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ This standard defines the separation of data and logic contracts in system contr

### Definitions

- System contract: A contract that affects protocol. The currently deployed system contracts are as follows: **AddressBook**, **Governance**([KIP-81](https://github.com/klaytn/kips/blob/main/KIPs/kip-81.md)), **StakingTracker**, **TreasuryRebalance**([KIP-103](https://github.com/klaytn/kips/blob/main/KIPs/kip-103.md))
- System contract: A contract that affects protocol. The currently deployed system contracts are as follows: **AddressBook**, **Voting**([KIP-81](https://github.com/klaytn/kips/blob/main/KIPs/kip-81.md)), **StakingTracker**, **TreasuryRebalance**([KIP-103](https://github.com/klaytn/kips/blob/main/KIPs/kip-103.md))

- System contract upgrade: Upgrade a logic contract while maintaining a proxy contract. The upgraded logic contract must maintain the previous interface.
- System contract upgrade: The process of updating an existing logic contract while maintaining a proxy contract. The upgraded logic contract must be compatible with the previous interface.

- System contract replacement: Deploy a new system contract and register it to the Registry with the same name. It will deprecate predecessor system contract.
- System contract replacement: The deployment of a new system contract that is then registered to the Registry using the same name as its predecessor. The new contract effectively deprecates the previous system contract.

### Smart Contracts Overview

Expand All @@ -45,7 +45,7 @@ The smart contract will have the following features:

- Register a new system contract with an activation block.

- Return the information of system contracts.
- Return the state of the system contracts.

2. Proxy

Expand Down Expand Up @@ -198,11 +198,11 @@ A Klaytn node will have a resolver to read the active addresses of system contra

## Rationale

### Bytecode Injection For Registry Deployment
### Bytecode Injection for Registry Deployment

In the future, all system contracts will be registered in the Registry, and a Klaytn node will read the active addresses of system contracts from the Registry. Not only for a Klaytn node but also for other ecosystem participants who will use the registry to read the system contracts they need, meaning the registry should be registered at an easily accessible reserved address.

### Separate Data And Logic Contract
### Separate Data and Logic Contract

This proxy pattern simplifies the process of system contract update because the existing data can be used even if the logic contract is changed. The main issue of the proxy pattern is the centralization and potential private key loss. But delegating ownership to upgrade a logic contract to Governance can solve those problems.

Expand Down

0 comments on commit fa942df

Please sign in to comment.