Great news today - out of the Parallelcoin Development Journal - Friday 17 August 2018
Parallelcoin Wallet Development ProgressWallet import and security model now complete...The wallet.dat data import and security/privacy protection elements are now fully complete. In the process of development an aggressive security policy was created.
Sensitive data, not just obviously valuable data like private keys, but all potentially identifying information in the wallet is kept in its main in-memory repository, and in the database, in encrypted form.
The secrets are only ever exposed in the memory of the application while they are being worked on. If the wallet client (CLI, RPC or web app) merely wants to read the data, the fields do not need to be encrypted in the server, as the client can do this. The server back-end of the wallet only requires the wallet to be unlocked in order to update the key pool and write transaction, script and accounting data, all of which require the server to have the public keys to search with.
But as soon as it gathers all the updated data, it can burn the key again because sending it to the client does not require decryption. When the data is decrypted for whatever use, the sensitive data is stored in a tamper-resistant memory container that kills unauthorised processes that attempt to access the memory, and changed and new data once generated is immediately encrypted and written back into the main store, and flushed to the database.
The next immediate step is to implement all the read/write functions for the store. For this, a fully functioning blockchain node with RPC available will be required, for retreiving balances and updated UXTO information. Since building this part of the client is far bigger and more complex than the wallet, in the intermediate term we can develop a proof of concept, and usable, new GUI wallet client, before the rest is built.
It will not be as secure as ideal, unless the user is proxying through Tor or similar, but for testing purposes and to generate interest in the project, it will be a set-piece to show off, a hint towards the next phase with the full node and fixed network consensus parameters. It will also have a built-in block explorer, since it makes absolutely no sense why a wallet does not have this capability.
Parallelcoin will become an Internet in itselfAn underlying, non-cryptocurrency related goal of the team is to develop a decentralised, peer to peer overlay on top of the available network routing protocols. The idea of applications which you can access both through a web browser and from within a framework like Electron is decoupling the application logic from the user interface.
With this model, it becomes possible to create an entire computer environment based primarily on the webkit composition back-end, but only presentational logic lives inside the app. This logic is cached by the user's browser, so subsequent visits are faster.
Within the application that will house the wallet and block explorer, the outer shell, though at this point will be wafer thin, and do nothing except create abstraction overhead, will eventually be built that handles a lot of other things, and runs inside a thin electron shell running on the user's machine. Electron grants access to controlling I/O and network devices, so potentially a system can run this app alone, it will have its own configuration management and the primary reason for building the initial shell environment, is to create the application metadata structures, as relates to configuration, for controlling application access to local resources.
This app will be available to anyone who connects to a running Parallelcoin duo server, and eventually we build several further apps that integrate further services, such as access to publicly shared files on an IPFS network, to custom web applications with potentially a back-end server for heavier processing requirements or more complex local data storage than available within a javascript execution environment, in fact any and all types of applications could be created.
So, the upcoming light wallet GUI being built is part of a longer development process to create what is essentially a web operating system, allowing users to seamlessly combine heavily or solely local resource utilising applications with apps that load from peers on the networks all the way to fully remote, thin interfaces in the style of older websites (where no logic is client side).
We will essentially be replacing filesystem based applications with an on-demand networked applications caching system. Instead of a download URL and an installer, you just have a simple URL. Instead of a complicated mess of local files spread across several devices plus several off-site hosted databases, each application has its own filesystem namespace and data is cached as necessary and distributed amongst various off-site and network-attached storage and application service systems.
Next steps...Because this is a very large undertaking, we do not intend to do it alone, even with a million dollar team of scores of people. It is for this reason that the development schedule is progressive and builds foundations for later elements. The schedule looks like this:
- Complete all local wallet storage functionality and build RPC API and ability for wallet to send out requests to a remote server for updating local data, including CLI interface, which comes last.
- Build application registry shell skeleton, GUI wallet interface and block explorer, the first two apps that live inside the shell.
- Continue to expand shell to full user application database along with further application development.
- Complete the full blockchain client back-end and develop the consensus changes required to achieve full usability of the network, difficulty adjustment, merge mining and likely, shorter blocks, possibly also SegWit.
- Build a Bitmessage-derived email system into the network that uses wallet key cryptography and wallet addresses for addressing, with rate limiting from per-address relaying time limits and secondary Proof of Work to limit spamming via multiple addresses.
Beyond this we are developing a new decentralised distributed consensus protocol based on SporeDB (similar to Avalanche) that will be used as the platform to build a decentralised exchange, social network (media sharing, evaluation, monetisation), and self-governing concurrent versioning system for software and any kind of media production development, including encyclopaedias, knowledgebases, and a marketplace system with anonymous, pseudonymous, reputation scored classifieds, auctions and digital media delivery.
The list of items above indicates the milestones towards the first phase of development. At this stage I am hesitant to put a timeline on it exactly, but I would think that by October the wallet and block explorer app will be 100% complete and battle tested. We will also be providing services for users to painlessly manage their own full nodes for better privacy with the new wallet with Bitnodes. Possibly the full blockchain client revamp and hard-fork will be ready by January, and new email system by February.
Loki
https://gitlab.com/parallelcoin/duo/blob/master/notes/20180817-wallet.md