In the earliest days of Ethereum, a novel concept emerged — instead of only signing codified transactional data with our Ethereum accounts, what if we made it easy to sign ANY piece of data? Though signing messages with private keys to make statements / attestations / pieces of data “cryptographically verifiable” was not a novel concept, the proliferation of consumer-centric PKI in the form of “blockchain accounts” made this a potential consumer-facing experience for the first time.
This concept was radical. It was transformative. It had the potential to change nearly EVERYTHING — every industry vertical, every user experience. Identity, we quickly realized, was a foundational layer for EVERY use case we were focusing on with blockchain technology.
This concept seemed to be maybe as big as Ethereum itself. Some people even lost the forest for the trees, and abandoned Ethereum entirely in their identity architectures — but we’ll get to that later.
This concept quickly enamored the few folks who understood the potential.
What if ConsenSys could sign an attestation claiming that an individual was a ConsenSys Employee, and that person could immediately have cryptographically verifiable access to our offices or our systems?
What if a reputable bank could cryptographically sign an attestation saying they KYC’d an individual, and that individual could present the credential - digitally - to anyone who needed to verify their identity?
What if governments could create verifiable credentials representative of digital passports, and we could easily prove the authenticity of these digital documents for the first time?
And what if the individual themselves could maintain sovereignty over these credentials / this data, without relying on centralized custodians?
Verifiable, self-sovereign cryptodata.
Attestations about things.
Using these attestations for ANY arbitrary purpose.
Access control. Reputation. Sybil resistance. Trust. Certainty.
Aggregating data at the focal point of the user, rather than in application-specific silos.
The potential to revolutionize nearly every industry.
Along came uPort to address the issue.
In the early days of Ethereum, most people building anything interesting were somehow affiliated with the ConsenSys Mesh — a global, decentralized, loosely affiliated cohort of brilliant, radical revolutionaries on a quest to build out the Ethereum ecosystem.
While the Ethereum Foundation focused on the Ethereum protocol, ConsenSys set out to start to populate the middleware and application layers. A venture production studio backing all of the wild ideas required to kickstart this brand new revolutionary ecosystem of the decentralized web / “world computer”, as it was called at the time (I still like using the “world computer” analogy).
One spoke of ConsenSys was uPort.
Many of the brightest minds in the Ethereum ecosystem at the time set out to solve this problem of self-sovereign identity and user-centric data — to make it easy for people to obtain, issue, and manage these “Verifiable Claims / Verifiable Credentials / Attestations” — under the uPort banner.
Stepping into this problem space, a few learnings were very quickly discovered:
Your identity is possibly even more sensitive than monetary value. Imagine instead of losing your 32 Bored Apes, losing your private key resulted in you losing your ENTIRE IDENTITY?
To address this, uPort leveraged “Proxy Contracts” — a smart contract that was representative of your identity, enabling programmable ownership. The first “Smart Contract Wallet” — the first of many now-blossoming ecosystems that uPort helped kickstart.
This allowed users to rotate keys & use different recovery mechanisms to recover their identity. Social recovery. Multisig with some trusted custodian(s) on the other side. Limitless programmable options.
Now that we established the need for Smart Contract identities, there was an issue — users had to PAY to create these smart contracts because there was an associated Ethereum gas cost for deployment!
At the time, Ethereum mainnet was all that existed. And although ETH was cheap and gas fees were even cheaper, the costs were not negligible — especially for many of our target markets, which were people in underprivileged environments.
So, uPort built Meta Transactions.
(fun fact — my team won the Eth Denver hackathon 4 years ago with a permissioned Meta Transactions system called Meta Cred!)
A transaction relayer service that would pay the gas costs of creating these proxy smart contracts on behalf of the user, where WE (uPort / ConsenSys) would subsidize the gas costs.
These ended up blossoming into another entirely new ecosystem once open-sourced, but that’s another story for a later time.
Initial iterations of attestation infrastructure maintained all attestations on-chain. Although creating an attestation was far cheaper than deploying a new proxy smart contract, there was still a cost associated with the process.
As attestation schemas got more complex, this cost would only increase.
What if an attestation / verifiable credential should have a picture?
What if it should have a whole plethora of fields?
What if it should have a long-form descriptor?
With each new attribute and use case, the cost of fully on-chain attestations scaled prohibitively.
So — what if we instead just stored, on-chain, the URI or hash of some off-chain file or data?
Enter the precursor to the current NFT architecture.
Again, initial iterations of attestation infrastructure consisted of storing and indexing all attestations on-chain. However, the need for private data was quickly realized.
What if, instead, we only used the chain for storing hashes of encrypted off-chain data?
Blockchains are very good at creating an immutable record of sequenced canonical events.
What if we just used Ethereum for this purpose? To help do things like show the time of issuance, and time of revocation (if applicable)?
The next leap that was made was — we must operate under the assumption that all present cryptography will someday be broken.
What if we didn’t store ANY attestation-related data on this timeless, immutable ledger so that people’s PII would not one day be decrypted by things like quantum computers?
What if we built an entirely off-chain ecosystem for this verifiable cryptodata?
As the surface area of the problem expanded, the identity efforts of ConsenSys began to fragment.
There were so many directions the group could go, and each direction was OBJECTIVELY a good idea.
There were TOO MANY problems to solve.
And staying true to our decentralized, non-hierarchical ideals, the group had no single leader to point the ship in a single direction.
So things began to splinter.
uPort became Serto and Veramo. Folks from other teams around the ConsenSys ecosystem joined up to form the “identity blob”.
Notabene, 3Box/Ceramic/Self.id, Spruce, and Disco spun-out to start their own companies.
Each solving their own portion of the identity puzzle. Each correct. Each building critical lego blocks to eventually be composed into something beautiful.
As time passed, core pieces of infrastructure finally started to emerge.
Watching this play out, it seemed like the time was nigh. The identity wave was cresting. The pieces were taking shape. The puzzle could be built.
Not just from identity pieces, but from the decentralized finance and NFT pieces as well. We could finally start to build something truly meaningful — that could draw from all of these various streams to pull the masses into a truly meaningful experience built on the shoulders of giants.
It just needed someone to build it.