From d85cb48fef9d032fd1c1d921ab845de1e549704c Mon Sep 17 00:00:00 2001 From: Justin Date: Wed, 3 Oct 2018 10:28:15 +0100 Subject: [PATCH] Rework registration contract --- specs/casper_sharding_v2.1.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/specs/casper_sharding_v2.1.md b/specs/casper_sharding_v2.1.md index af4793862..86532fa3f 100644 --- a/specs/casper_sharding_v2.1.md +++ b/specs/casper_sharding_v2.1.md @@ -56,9 +56,17 @@ Note: the python code at https://github.com/ethereum/beacon_chain and [an ethres * **PENALIZED** = 128 (status code) * **WITHDRAWN** = 4 (status code) -### PoW chain changes +### PoW chain registration contract -This PoS/sharding proposal can be implemented separately from the existing PoW chain. On the PoW chain a contract is added; this contract allows you to deposit `DEPOSIT_SIZE` ETH; the `deposit` function also takes as arguments (i) `pubkey` (bytes), (ii) `withdrawal_shard_id` (int), (iii) `withdrawal_address` (address), (iv) `randao_commitment` (bytes32), (v) `bls_proof_of_possession`. The proof of possession is **not** verified on the PoW chain. +The initial deployment phases of Ethereum 2.0 are implemented without consensus changes to the PoW chain. A registration contract is added to the PoW chain to deposit ETH. This contract has a `registration` function which takes the following arguments: + +1) `pubkey` (bytes) +2) `withdrawal_shard_id` (int) +3) `withdrawal_address` (address) +4) `randao_commitment` (bytes32) +5) `bls_proof_of_possession` (bytes) + +The registration contract does minimal validation, pushing most of the registration logic to the beacon chain. In particular, the BLS proof of possession (based on the BLS12-381 curve) is not verified by the registration contract. ## Data Structures