Blockchains have been decentralized and programmable since 2015, but concerns about the public nature of the technology have restricted its wider adoption. Midnight addresses those issues while empowering developers to build applications that protect individuals’ and organizations’ sensitive data.
Because Midnight is in a development phase, some features are still being explored. Some of the features described here may not be accessible in pre-production releases.
The first issue Midnight seeks to address concerns data protection. Financial, insurance, and e-commerce applications need a lot of data, most of which should not be made available on a public ledger. Midnight gives developers the ability to build DApps that can control which data is made public and which data is made private, thus enabling selective disclosure.
Midnight also protects metadata – the data about data. For example, phone calls’ metadata can be used to reveal both parties’ identities, when, and for how long the call was made. Blockchains commonly disclose transactions’ metadata to everyone with a suitable application, including good and bad actors. Midnight provides features like shielded tokens which allow for interactions to occur without metadata leakage (eg, wallet addresses and transaction details are kept safe). As a result, DApps can give sensitive metadata the same level of protection as other confidential data.
Meeting regulatory requirements
Most, if not all industries are impacted by regulation related to data. It is the role of application builders to ensure that their solutions are compliant with appropriate regulations, depending on such things as the nature of their activities, the jurisdiction they operate in, and their audiences. Midnight’s flexibility to compose DApps that can operate anywhere on a spectrum from fully public to fully private gives developers the freedom to build data protecting applications, while complying with regulatory obligations. Midnight’s data protection capabilities further enhance DApps’ ability to comply with privacy laws and meet customers’ expectations for keeping their data safe.
Access to a wide talent pool
Midnight is designed to make the developer’s journey as easy as possible. Developers familiar with TypeScript will be comfortable writing DApps on Midnight. Most of the business logic and front-end code is written in this well-known language, and critical contract elements are written in a domain-specific language specifically designed to integrate seamlessly with TypeScript. There's even a plugin for Microsoft Visual Studio Code so that people can work with a familiar IDE.
Once DApps are running, they use Midnight’s data protection features to balance safety and compliance.
Building with Midnight to protect user data
Zero-knowledge (ZK) cryptography is the technology that enables the protection of data while allowing others to access it. ZK lets one person (the prover) make a claim that another person (the verifier) can know is true without the prover having to share any other info.
In general, ZK proofs can be used to make statements such as:
- A company is not on a sanctions list (AML use cases)
- An individual is over a certain age (KYC use cases)
- A customer has purchased over €1m of product in the past year
In cases like these, the assertion can be proven without the need to reveal the underlying information.
Midnight’s key features
Midnight provides the tools to build regulation-compliant DApps that use these innovative features to achieve their ends:
- The Midnight programming model, including its domain specific language and the midnight.js client library, is a realization of the ideas first published in the Kachina research paper
- This configuration allows a smart contract to manage two states at once: a private state on a local machine, and the public state that exists on the public blockchain
- Critical parts of smart contracts are written in a domain-specific language that works with TypeScript
- A Microsoft Visual Studio Code plugin means this free, powerful, familiar IDE can be used in development
- Zero-knowledge proofs in Midnight use ZK Snarks, which have the advantages of a constant proof size and minimum traffic between prover and verifier
- Midnight’s ZK proofs allow selective disclosure of information while preventing leakage of information that could benefit malicious actors
- These ZK proofs are based on a theoretical foundation of Universally Composable (UC) Framework – universally composable privacy, and universally composable security.
But Midnight is more than just technology. Its creators are bringing together industry leaders, developers, content creators, and organizations who want to promote responsible data management worldwide. This group of innovators will spark ideas, create content, contribute code, and organize events that everyone can join, encouraging education, inspiration, and accelerating change across different sectors and places.