Time for another update on Synapse development. Read through to the end to get caught up on our development progress.
As we have been working towards our next testnet run, we have been doing internal testing and found some issues that needed to be resolved before a full testnet run could be successfully completed. These include some bugs that needed to be addressed to improve reliability and stability, changes to better secure the blockchain protocol, and new functionality to tie together several parts of the Synapse architecture (e.g., beacon chain, validator, and shard modules).
Our synapse development team is still working away at getting the next testnet run operational. As it stands, shard module chains are finalizing correctly, based off of cross-links with the beacon chain. We are still resolving some issues with shard blockchain syncing, and enhancing overall stability prior to launching a testnet.
One example of protocol security changes includes adding a validator index to the beacon chain block header. This allows the protocol to verify that the block proposer matches what is expected when going through block transition operations. The validator ID has also been added to the shard block header. We have also added appropriate tests for these new code changes.
One of the recent developments is related to the BLS (Boneh-Lynn-Shacham) signature aggregation library. This protocol is something Phore implemented very early, in fact, the Prysmatic Labs team who is developing the Go version of Ethereum 2.0 has used and even contributed to Phore’s implementation for BLS. This is a new protocol and has been going through a standardization process with the IETF (Internet Engineering Task Force) standardization body. As the BLS standard has evolved and reached agreement, we have made changes to update our implementation to match the IETF specifications.
We have also added more tests for the P2P code to help verify that it is all working as designed and that we can easily detect if future changes unexpectedly break things.
Current work is focused on increasing stability of the Synapse shard blockchain. Design has been underway for the shard proposer election system. Part of the implementation for this requires changes to shard proposer selection so that it is based on the last finalized block hash. We are also considering adding aggregated attestations on the shard chain so that they can use that to ensure that validators match what is shown in those attestations.
Another key piece we are looking at is state management on the beacon chain, including the RANDAO (random number decentralized autonomous organization) protocol that is used to shuffle validators and randomly assign tasks to them, as well as determining which blocks are proposed by which validators.
In addition to this work on the core Synapse blockchain protocols, we will be doing further work on the design for the wallet user interface and related functions. Much of this had to wait until the core blockchain protocols were mostly complete so that we had a more concrete set of protocols and APIs to use to build the user interface that interacts with the blockchain, shows blockchain information to users, and allows the user to perform blockchain actions like setting up validators and the routine wallet operations like sending and receiving funds and voting on proposals.