How blockchain and zero knowledge proofs can improve military airforce logistics and training
Last week, the Italian Airforce opened an airbase to a group of startuppers, universities and high tech companies to understand how augmented/virtual reality and blockchain can speed up some of its most burdensome processes. I was lucky enough to be invited!
Disclaimer: it was just a prototype and brainstorm activity to streamline training and maintenance operations, no investments, no products, no projects are ready or will be ready that you or I will ever know about.
The challenge had three main areas to plug innovation into: mechanics training, logistics and maintenance itself.
- During training you have to teach how to upkeep jet engines and what not of dozens of different vehicles. Basically every vehicle has its own certified maintenance workers and to become one of them there are special courses. Some lessons are expensive because they lock up vehicles, personnel and resources in order for students to visit and use. Moreover also teachers are quite specialised and the final outcome is that there are various bottlenecks in this education process.
- The logistics of airbases is a complex problem I won’t even begin describing, imagine thousands of expensive component parts moving around, not only inside one base but also between bases.
- Finally the maintenance itself is a serie of difficult operations that must follow specific procedures, operators need assistance during the tasks and also a certification that tasks have been carried out in the proper order.
The invited parties were all expert either of blockchain, which was seen as a certification authority, or of augment/virtual reality. The sketch idea was to use blockchain as a certification layer and augmented reality to help the operators. Our team, Delta (the tough ones!), had me and Luca Vaccaro as blockchain experts and impersive.com as provider of virtual reality. Impersive produces unique 360° videos which are very immersive and realistic experiences.
The problem we tackled initially was the training: in fact 360° videos can be recorded for any aircraft, with perfect meteo conditions and with the best trainers, so that every student can enjoy the most outstanding learning experience possible. 360° videos, once recorded, just require a simple smartphone for the playback, with respect to other, more advanced, augmented reality solutions the initial investment in hardware for this part is really low. To complement the video we built a simple smart contract (see Luca’s repo) that asses who has seen a video, for how long, why, etc. We then brainstormed about how to extend this initial concept to a broader vision:
We want to make the knowledge base of the Airforce more realistic and distributed.
The realistic part comes from the videos of course, the distributed part goes further than automating students’ curricula. We want to have this library of contents available even outside of the usual airforce network, even in theater of operations where connection integrity is not guaranteed, to do so, we will employ zero knowledge proofs.
Notice that the maintenance information “I am requesting landing gear manuals to fix a break” becomes sensitive information because it implicitly states that there is a vehicle unable to fly. On one side you want to be sure that people accessing contents are authorised to do so, on the other side you don’t want to make known what info is involved and the reason why it’s needed. This is almost the perfect scenario for a zero knowledge proof, in fact in normal blockchain it’s like: “I want to show that I can pay X, without showing how much money I have [1,2]”.
While building the prototype we took it easy (there were only 20hrs available!) and we just hid in a Pedersen commitment  a mesh of the information. We assumed that the HQ and the mission shared, before the deployment, the setup parameters and a way to decide the random numbers to hide the commitments. If I have to think about “really” hiding stuff, I’d probably build a support vector machine (which is basically a bunch of inner products with carefully pre-computed parameters) whose inputs are confidential data and whose outputs are the level of access you have for a given content. This thing can be packaged in an “algebraic circuit” and therefore tested via zkSNARKs . The overall idea is that the library of contents goes encrypted on the theatre, to access its contents the personnel must require permission via such hidden proofs. The proof could travel also on public infrastructure since there is no sensitive information inside. On the receiving end you have to check that the proof of the computation has been performed “right” and to check the output value (which in general is also a secret). To do so you may want to use range proofs, but there is some work to be done to bind the output of the zkSNARK to the range proof, otherwise I can send a zkSNARK proof and then a range proof of something else (this could be as simple as sharing the initial setup between the two, but I want to think and research about this more, I am sure this is an already solved problem). The whole point is to avoid handshake-like protocols as much as possible because you are communicating over a public wire and handshake-things are very susceptible to MITM attacks. The sender and the receiver must be able to check what the other is saying without excessive ping-pong and to detect immediately if something is off.
One exciting task is explaining what is the difference between this approach and current encryption. For commitments its quite easy since for every number you want to hide you create its own key, such keys can be created real time if you want to, so in a way: “there are no keys to steal”. Notice that hiding numbers is not a limitation because digital communication is just 0s and 1s, you can hide all of them. The zero knowledge part is a bit more tricky because the whole point is that even if you possess all the keys the payload doesn’t contain any reference to actual data therefore you can even have it “in clear”, it makes no difference.
Finally the most interesting part for me was actually explaining the above concepts to the jury, which, as you can imagine, was not exactly familiar with Zcash and Monero. The easiest way was to start with the money example, it’s simple and very clear: “I want to show you I can pay without telling you how much I have”. From there the parallelism with the access problem was straightforward: “I want to show you I can access some content without telling you exact details on the reasons why”. Everyone grasped immediately the power of “not knowing” and it’s one of the reason I believe privacy coins are here to stay, maybe not in the form they are today, but they represent a solid response to very sensitive problems.
- Italian Airforce, for being the first to blend the public world with the military world in such an open way
- EY, for organising the event and being awesome, Azure for the machines were we developed
- Pratica di Mare research airbase and all its personnel for the great hospitality https://twitter.com/ItalianAirForce/status/1005842253997334528
- Delta Team!
- Impersive.com for the incredible videos
- Luca for not sleeping and being the hackaton soldier as always
- Infura.io for the architecture and Ropsten for finally behaving (although the demo went live on a private chain)
Ethereum was just something quick to work with, it’s still not my favorite for plenty of reasons. ZCash and Monero may or may not have a future as they are. Nothing in this article is investment advice.