BitCode - Blockchain for HTTP Lambda Invocations
Imagine being able to keep a ledger of HTTP lambda invocations, cryptographically guaranteeing they originated from one specific client. What would be its use cases?
Join the DZone community and get the full member experience.Join For Free
BitCoin is basically a digital ledger system, allowing for keeping transactions based upon cryptographic signatures in a decentralised database, ensuring the transaction was initiated by the person owning the private key. From a philosophical point of view, it's simply authentication and authorisation based upon a private asymmetric key, period! What if I told you the same idea could easily be transferred to code in general. As in, keeping a ledger of invocations towards some HTTP endpoint, where the client decides what code the server should execute? The obvious example can be found below.
You'd have to be pretty stupid to not see the use case for the above snippet, especially considering it's arguably (probably) the foundation of Revolut, a FinTech company, threatening to driver every single European bank out of business these days.
If you take the above payload, and cryptographically sign it, for then to transmit it to the main ledger system, you basically have the bulk of both Revolut and your crypto wallet. Then imagine a client that exists on your phone for instance, which is capable of generating a key pair, and transmit the public key to some centralised server, and sign a bunch of KYC documents in the process, such as for instance ...
- Your passport
- Photo of you (selfie)
- Your SSID
- Etc ...
You now have on your server, a bunch of KYC (Know Your Clients) documents, proving that the private key on the client's phone belong to the person owning the passport, SSID, selfie, etc. Hence, according to international finance laws, you're now legally allowed to create a bank account for the above private key.
Then whenever the client wants to deduct money, pay bills, etc - All he's got to do, is to cryptographically sign a payload, containing a "to account" argument, possibly some additional text, and you've basically simplified the process of online banking by 2 orders of magnitudes. No passwords, no two factor authentication required, nothing complicating the client's ability to pay, for anything.
Then add up a QR code into the business, creating a payload dynamically, possibly integrated as a part of your restaurant bill - And you've got a no touch payment system, completely ridding the world of idiotic VISA terminals, and whatever. Do you think this sounds like science fiction ...?
Think again ;)
Opinions expressed by DZone contributors are their own.