Name: Ale dev (April) Term: 1 Cycle Cycle Amnt: 25,000 Total Amnt: 25,000 Author: Alessandro Rezzi Receiver: Alessandro Rezzi Address: D7ySMkdHbgoUPVx921knSpfjapn6XL8sYW Created: 09-03-2023 Status: Active Vote Hash: 2d3862110a1cc1d68401fe0bec0ed81ec3f5691acf902ab2dbc81acb27f4558c
This proposal is an analytic continuation of the first one (https://forum.pivx.org/threads/lrp-shield-dmns.1292/) and will cover my development cost for the month of April. I will keep working mainly on Deterministic Masternodes on the Core Wallet and continue the Shield support for My PIVX Wallet (MPW).
Regarding Shield support on MPW me and Duddino finally managed to create a fully working rust library that can interact with the PIVX core wallet, this means that the library can:
- Generate Shield addresses following the zip32 protocol.
- Serialize/deserialize a PIVX core shield transaction and eventually decrypt a note and see if it is spent or not.
- Create all possible types of shield/ transparent transaction combinations. (so shield to shield, shield to transparent, etc...)
The library is public on the Labs github: https://github.com/PIVX-Labs/pivx-shielding
For what concerns Deterministic Masternodes last month I have added 2 main features:
- Full support for ipv6 and TOR. This means that, contrary to the initial idea, people will still be able to run masternodes on different networks when v6.0 comes out.
- Implementation of the DIP7 protocol which covers signing sessions, a fundamental pre-requisite for chain locks and future possible addition like instant send.
Apart from my work on DMNs and shielding I have also found a vulnerability in the voting system and continued my integration of seed phrases in the Core Wallet (a full list of PRs can be found here https://github.com/PIVX-Project/PIVX/pulls/panleone)
A possible roadmap:
Since the shielding rust library is completed we will focus on integrating it in MPW using web assembly, an updated list on how the work is going can be found here:
As a brief recap we can say that our implementation of deterministic masternodes (at least for v6.0) will be made up by 4 main features:
- DIP3, which enables creation and payment of a deterministic masternode (DONE by old devs and we only added to that ipv6 and TOR support)
- DIP6, which implements long living masternode quorums (DONE by old devs)
- DIP7, i.e. signing request (DONE by me this month)
- DIP8, chainlocks <-- this is the last missing piece that I will complete within the end of April
You maybe are asking, why there is no instant send in v6.0? Well deterministic masternodes are already a huge amount of code and instant send cannot naively be implemented as a particular signing session but needs also the addition of quorums rotation to avoid a possible vulnerability that would allow double spend. So we prefer to keep instant send for a future v6.x version in order to make testing easier and minimize the risk of potential bugs.