Starting with Chrysalis Part 2, the IOTA protocol will remove support for W-OTS signatures and addresses. As such, there needs to be a migration process of moving funds from W-OTS addresses in the old network to Ed25519 in the new network.
The proposed solution involves moving funds to a legacy address uniquely generated from the desired target Ed25519 address. This documents describes how this migration addresses are computed.
According to Draft RFC-8 an Ed25519 address A consists of 32 raw bytes. This needs to be converted to a 81-tryte address:
b1t6
encoding (as described in RFC-15). This results in Atri consisting of 72 trytes.TRANSFER
to Atri.9
to get a legacy 81-tryte address.Since Atri is an arbitrary address generated without any underlying private key, it will be practically impossible to access funds on the address and, thus, those funds are effectively burned.
The 9-tryte address checksum can be computed and added as usual.
TRANSFER
and end with 9
.TRANSFER
represent a valid b1t6
encoding of 36 bytes.6f9e8510b88b0ea4fbc684df90ba310540370a0403067b22cef4971fec3e8bb8
TRANSFERCDJWLVPAIXRWNAPXV9WYKVUZWWKXVBE9JBABJ9D9C9F9OEGADYO9CWDAGZHBRWIXLXG9MAJV9RJEOLXSJW
Example Go implementation in wollac/iota-crypto-demo:
- Address generation and decoding: pkg/migration