CIP No. | Title | Author | Status | Type | Created | Required CIPs |
---|---|---|---|---|---|---|
80 |
Align Conflux and Ethereum Address Generation Rules |
Chenxing Li (lylcx2007@gmail.com) |
Superseded |
Spec Breaking |
2021-08-31 |
72 |
Currently, all the private-key-controlled addresses start with 0x1
in hex format. This CIP plans to remove this constraint. So Conflux can produce the same address as Ethereum with the same private key.
CIP-72 introduces Ethereum-Like transactions, which make it possible to interact with Conflux Network by Ethereum wallet like metamask. However, Conflux has a different way to recover sender address from signature, and thus the same private key may produce different address. It significantly introduces the risk that the users transfer their assets to a dead address by mistake, and further impedes users experience Conflux by Ethereum wallet.
This CIP plans to make Conflux and Ethereum have the same address with the same private key, while the existing Conflux address will not be effected. Conflux has two types of transactions: normal transaction and Ethereum-like transaction. The normal transaction will retain the original signature recover process and the Ethereum like transaction will recover signature in the same rule as Ethereum. If a user has address 0x40a...
on Ethereum, it will control both address 0x10a...
(by sending normal transaction) and 0x40a...
(by sending Ethereum-like transaction) on Conflux.
Explained in abstract.
- For the other internal contracts except
AdminControl
, each time we want to check if an address is a contract, we check itscode_hash
and whether the target address is in the call stack. - For
AdminControl
, we accept any address as admin.
Currently, the world state stores the private-key-controlled account and contract account in different format. This format will influence the state root. Even if an address started with 0x8
has not been initiated, it will be stored in format of a contract account. After CIP-80, we apply the following rule:
- If an address starts with
0x8
, it will be stored in format of a contract account, even if it is a private-key-controlled address. - For the other address, it will be stored in format of a contract account only if it has code.
The following address validity check will be removed.
- The receiver address of a transaction or a message call.
- The refund address for suicide.
- The admin address.
We never checked the following address before, because they are always valid.
- The sender of a transaction.
- The sponsor of a contract.
If a transaction has invalid receiver address, a block packing such transaction will not be regarded as invalid. So this CIP does not have block validity issue.
TBA.
TBA.
TBA.
TBA.
TBA.
Copyright and related rights waived via CC0.