carlbeek / eth2.0-deposit-tooling Goto Github PK
View Code? Open in Web Editor NEWLicense: Creative Commons Zero v1.0 Universal
License: Creative Commons Zero v1.0 Universal
It is worth considering whether or not to use the existing (v3) Ethereum standard for keystores vs creating a new one.
Regarding BLS/ETH2.0 keys that are BIP44 compliant, there a few possibilities I have come up with:
We keep m / 44' / 60' / 0' / 0
and have no distinguishment between Eth1 and Eth2.
Pros:
Cons:
Start using the (currently unused) change
field (dependent on EIP84)
m / 44' / 60' / 0' / 1'
Pros:
Cons:
change
fieldchange
(Non BIP44 compliant)Chose a new coin type (my proposal is 60^2=3600) to indicate the new version:
m / 44' / 3600' / 0' / 0
Pros:
Cons:
According to specification the first byte of the withdrawal credential should be a prefix (see https://github.com/ethereum/eth2.0-specs/blob/dev/specs/phase0/deposit-contract.md#withdrawal-credentials) where here
https://github.com/CarlBeek/eth2.0-deposit-tooling/blob/master/deposit.py#L95 it's the plain hash without prefix.
I think a worthwhile goal is to have validator signing keys that can be derived from the corresponding withdrawal privkey. This gives the benefit of not having to keep track of two sets of keys. There are two alternatives, either unrelated keys are used or the withdrawal and signing keys are at the same (hardened) depth in the key-tree.
BIP44 defines the tree traversal path as (also see issue #2 for more discussion on the path):
m / purpose' / coin_type' / account' / change / address_index
address
in BIP44) is the signing keychange=0
; Signing: change=1
When the tests for BLS12-381 are released via the standardisation efforts, transition tests to use those tests where possible.
This is possible in:
hkdf_mod_r
tests can be lifted from KeyGen
in standardA declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.