filecoin与以太坊地址映射

本文主要讲filecoin地址与以太坊地址的映射关系,不涉及filecoin具体编码细节

具体讲地址之前,需要先了解一下filecoin的actor。actor可以看做是硬编码的filecoin合约。actor类型有system、init、reward、cron、power、market、verifiedRegistry、datacap、eam、paych、miner、multisig、account、placeholder、ethaccount、evm

其中一些是单例actor,目前包system、init、reward、cron、power、market、verifiedRegistry、datacap、eam。单例合约是预先创建的,这些actor只有f0地址。

一些是多例actor,目前包括paych、miner、multisig、account、placeholder、ethaccount、evm。多例actor都是由用户创建。其中paych、miner、multisig地址f2开头,account地址f1、f3开头,placeholder、ethaccount是f4开头,evm地址比较特殊,evm地址同时拥有f2、f4地址

filecoin地址目前有5种地址类型

f0地址,是filecoin链上编号地址,每个多例actor第一次在链上创建时都会分配一个uin64类型的编号,这个编号就是f0地址。一般情况下多例actor有唯一的编号。除了evm类型actor

f1、f3地址,是account类型地址,地址是由公钥生成,里面有公钥是所有信息。f1、f3地址可以链下生成,只有第一转账后才会在链上创建这个地址,同时分配一个f0地址

f2是 paych、miner、multisig类型的actor地址,在创建这些actor时,会通过一些算法生成一个f2地址,这些f2地址都有相应的f0地址。

f4开头地址,目前f4地址与以太坊地址一一对应,里面包含了完整的以太坊地址信息。每个以太坊地址可以直接转换为一个f4地址,第一次向这个地址转账时,链上生成placeholder类型actor,同时分配一个f0地址。使用placeholder类型的actor生成只能合约时,这个地址类型由placeholder转化为ethaccount。生成的以太坊智能合约是evm类型的actor。这个actor同时有f2、f4地址,这两个地址对应了同一个f0地址。

以太坊地址转为filecoin地址时,每个以太坊地址可以直接转换为f4地址。

filecoin地址转为以太坊地址时,如果是f4地址或者与f4地址相对应的f2、f0地址,根据f4地址转化为以太坊地址。

其他和f4无关的filecoin地址根据其f0地址转化为以太坊地址,转化规则是0xff0000000000000000000000+8位的f0编号组成20位的以太坊地址。

猜你喜欢

转载自blog.csdn.net/u013259665/article/details/129583341