As part of a proprietary client project, we developed a completely custom blockchain, including integration of novel cryptographic algorithms for aggregating end-user data in a provably private way.
Using the SIA blockchain (implemented in Go) as a base, we adapted the custom blockchain contracts to meet the client's needs. In concert, we developed a backend application server and a mobile SDK that allowed end users seamless interaction with application functionality without having to deal with the underlying details of the blockchain transactions.
As a result of this work combined with our independent study and our use of several other blockchains (including Bitcoin), we have a deep understanding of the cryptographic foundations and detailed workings of blockchains and cryptocurrencies. We've done independent work on alternative proof-of-work algorithms, including "slow" / equitable hash functions (such as Argon2) -- nothing earth-shattering, but it's an interesting field.
As part of this project, we had to confirm that our custom cryptographic algorithms would scale with user adoption, anticipated to be in the millions of users.
To do this, we created a virtual environment with quasi-realistic agents communicating over a distributed network. We developed and deployed agent software to thousands of AWS virtual machines, configured with blockchain nodes and simulated end-user behaviors, including cryptocurrency transactions and application-specific end-user behaviors. Agents needed to be located on different VMs, including different AWS availability zones, to provide realistic network behavior.
We built the infrastructure to update and deploy agents, control behaviors, reset or revert simulation and blockchain state, and then measure agent, node, and server behaviors and response times. Our basic architecture proved sound; after identifying and addressing a few scaling issues, we had no problem handling a million user agents.
Our blockchain experience has trickled over into other development, including inspiration for both our ClearCrypto and Pipes projects. "Blockchain-style" thinking contains some real insights for software development, and we're continually exploring how to exploit those in new projects.