Lava Wallet 'King Of The Hill' Concept


#1

Lava relaying network does not want conflict and reverting blocks. Therefore, it must only allow a single eth address to be a relayer for transactions at a time. In order to accomplish this, 0xBitcoin mining will be used to achieve limited scarcity since 0xBTC is a Proof of Work engine for Ethereum as a whole.

When a 0xBTC block is minted, it can be (usually will be) proxyMinted through a proxy smart contract. Many pools already do this. However they will be able to proxy mint through a method which is embedded in the LavaWallet contract. This proxyMintWithKing method will assign an eth address X as the ‘king of the hill’ of relaying forever, until another king is assigned.

This address X is not the ‘msg.sender’ since that is usually a pool. Instead, this address X will be derived from the first 160 bits of the nonce of the minted block. Since the nonce is 256 bits, this will work perfectly.


#2

Here is the formal tested specification


#3

Deployed Ropsten Contracts
0xBTC - 0x9D2Cc383E677292ed87f63586086CfF62a009010

MintHelper (must deploy your own as they are owned / personal) - 0x6ffcad89b80bfa3064437c3fbaefef31b1e90f85

MiningKing - 0x2a20403757ffa6b4e5c613026b7a7308f8722db7

LavaWallet - 0x0af4991829fc81cbb4789bee85d958b72d1f4436 (NEW)
LavaWallet - 0x30d3c27d23173230d575adce6e8c2e8c9814d1e7 (Old EIP712)

Deployed Mainnet Contracts

MiningKing - 0x0b98f937f6edd6f66b0f0a210d3dcd8ec1063cb6

LavaWallet - 0x69a02e511e027e5c26d2fbe4192e45b41db32819

DoubleKingsReward (Token Mining Pool) - 0xfd6be1247a5d32ee83aad9d1b09b5df9e2988d6f

Relay.Lavawallet.io:3000 - 0xb0a84c52c7a701a2e87bcb6e28cd79d12e8df490