A gamified learning app utilizing DIDs and VCs without storing key material or credentials on end devices or within the system.
SuperSkills! is a learning game ecosystem and digital wallet for kids, developed in partnership with LEGO Foundation, to showcase W3C's Universal Wallet, a packaging of draft standards and open source frameworks by DCC, Transmute, Learning Economy Foundation, and others.
Background
Learning Economy Foundation is a U.S. based non-profit organization with a global mission to accelerate the world toward next generation education and workplace infrastructures.
We’ve partnered with the LEGO Foundation to build a gamified learning experience — “SuperSkills!” (iOS and Android) — for children aged 5–12. A closed beta version has been released in November 2021.
SuperSkills! tl;dr — children go on quests (playful experiences) to learn core skills, collect resources and creations, and adventure in seasonal narratives.
Beyond directly helping children learn in playful ways, this partnership was forged to assist in championing the importance of three learning primitives of tomorrow’s educational landscape: decentralized identifiers (DIDs), verifiable credentials (VCs), and digital wallets.
I will be discussing why and how we incorporated them in this article, as well as where we’re headed next.
First, what’s wrong with existing education infrastructure?
Learning is often not a formal process, but it’s still viewed that way.
Think of learning across a few dimensions—
- Formality: University → MOOCs → Long form → Short form
- Atomicity: Bulk credentials (diploma) → Certificate → Skill
- Ownership: Owned by institution → Co-owned → Owned by learner
- Authoritative trust: All → some → none
- Timing: Premeditated → On demand
The following set of properties is most understood as learning:
{ university, diploma, owned by institution, all, premeditated}
and this is least treated as such but often most conducive to learning and our lives in general:
{ short form, skill, owned by learner, none, on demand }
So there are efforts exploring how to capture the latter as actual learning, and three relevant primitives have emerged — DIDs, VCs, digital wallets.
Decentralized Identifier (DID)— a new type of identifier that enables verifiable, decentralized digital identity. A DID refers to any subject (e.g., a person, organization, thing, data model, abstract entity, etc.) as determined by the controller of the DID. In contrast to typical, federated identifiers, DIDs have been designed so that they may be decoupled from centralized registries, identity providers, and certificate authorities.
Verifiable Credential (VC) — a specification that provides a standard way to express credentials on the Web in a way that is cryptographically secure, privacy respecting, and machine-verifiable.
Digital Wallet — a digital wrapper for utilizing cryptographic key material to sign, send, store, prove VCs, etc.
Learning Economy is co-owners, with DCC and Transmute, of a proposed W3C wallet specification for defining a portable and interoperable interface —Universal Wallet
Triangle of Trust — These primitives enable a future where we a) all have an identity b) define standardized, digitally-native credentials and c) participate in their exchange and use through active ownership and cryptographic trust, commonly referred to as the Triangle of Trust
SuperSkills! Game
SuperSkills! falls into the category of informal learning, but with the use of DIDs, VCs, and digital wallets, we are able to issue provable credentials for children that persist outside of the game. They can be presented and verified without having to communicate with our systems or LEGO, capturing the learning and putting control into the learner’s hands.
Let’s contextualize these terms in the app a bit:
DIDs
We rely on the did:key method which consists of creating a cryptographic key pair and encoding the public key. The creation of a DID document is also performed by taking the public key value and expanding it into DID document, used for signing and encrypting.
This lets learners control credentials received while playing without relying on the issuer themselves.
Importantly due to the demographic (children 5–12), we did not want to be custodians of key material nor rely on a learner’s end device.
VCs
We defined verifiable credential data models that conformed to Open Badges 2, which is the world’s leading format for digital badges. Think of the VC as the container, and OB as the credential itself.
(this pattern of plumbing OB into a VC is proposed under Open Badges 3)
Two VC types issued within the game:
- Quest Completion Credential — a basic achievement credential for completing a quest
- Skill Credential — a skill credential issued when sufficiently completing a unit of learning in a verifiable way.
Both of these credentials are issued to a subject represented by a learner’s DID.
Similarly to above, we did not want to store VCs within our system nor rely on a learner’s end device.
Digital Wallet
Standalone digital wallets are being built to support VCs, but for two reasons we decided to incorporate a wallet directly into our application:
- SuperSkills! is a mobile application, so the popularized bring-your-own-wallet (BYOW) web3 pattern was not used.
- As mentioned above, we did not want to store material on the end device.
As co-owners of the Universal Wallet Interoperability Specification with DCC and Transmute, we incorporated an implementation of it and built out some important functionality around issuing and storing credentials remotely.
The spec is designed in a pluggable way, where implementors can instantiate a wallet object that utilizes specific functionality and omits others thanks to a suite of plugins developed by the community. This is especially useful regarding storage mechanisms, which is being actively iterated on across the industry right now. Without choosing winners & losers, it’s important functionality exists to resolve credentials stored in various locations.
To address above VC storage concerns, we built out plugins to support a new storage layer discussed below.
So, how to handle these common storage issues of neither wanting to store content with custodians nor on an end device? We address it using the following innovative technologies.
Torus
To avoid having to manage key materials, we integrated with Torus — an SDK for authentication and key management, powered by a decentralized non-custodial PKI infrastructure that is maintained by users themselves and large stakeholders in the blockchain ecosystem.
Torus lets us real-time compute key material for a user, preventing managing permanent storage mechanisms.
We run a CustomAuth verifier that uses domain-specific identifiers from the system as input and computes a deterministic key pair. This lets users sign-in using standard web2 auth patterns and is a clear way for onboarding users into web3.
This key material is then used within the digital wallet to create DID documents.
Ceramic Network
To avoid having to store VCs, we integrated with Ceramic Network — a decentralized, open source platform for creating, hosting, and sharing streams of data.
Ceramic uses IPFS and IPLD to link content identifiers together to enable mutable data on a persistent stream identifier. So mutable data can keep immutable identifiers.
It also uses DIDs for authentication, providing necessary ownership flexibility. We publish credentials to the network using the issuer’s DID, which allows issuers to revoke a credential without having to force relying parties to separately query a revocation registry when being presented a credential.
Learning Economy Foundation is part of their Early Access Program and supporting the network by running our own node.
IDX
To provide learner’s with the flexibility of choosing what VCs to associate with themselves (much like is granted with end-device storage through choosing to store or not), we integrated with IDX — an open source decentralized identity protocol that replaces app-specific user tables with a single user-centric index that is shared by all applications. It’s built on the Ceramic Network.
IDX allows a user to associate VCs with their profile by storing Ceramic-stored VC IDs. The combination of storing a credential using an issuer’s DID and referencing the credential against a learner’s is a form of co-ownership, a pattern likely to gain in popularity.
Bringing it together
These protocols have allowed us to build a VC exchange protocol that does not rely on end devices nor custodianship of data. And it’s not limited to SuperSkills! or Learning Economy. The bulk of exchange will soon be open source through the Universal Wallet, contributing to the suite of tools for handling credentials across platforms.
What’s next?
Contribute plugins to open source Universal Wallet
The operations shown in this post are not meant to be limited to the SuperSkills! game or Learning Economy. They are intended to be open source contributions to the credentialing community because we believe digital credentials have the potential to revolutionize how we relate to learning and skills, and are not platform-specific. We focused on the use case first and foremost though, so there is slight cleanup to be done before merging in (the plugins already exist and are being used).
Work with LEGO Foundation to construct quests that inform pedagogy and issue truly valuable skill credentials
re: “{ short form, skill, owned by learner, none, on demand }”, we’ve demonstrated the technology is there to start using less-formal skill credentials in useful ways. The effort of truly standardizing skills, measuring downstream impact, informing educational material, etc, requires a network of skilled and talented groups, not just this game! While this effort is already ongoing, we hope what we’ve built becomes a useful contribution.
First Proof of Quest (PoQ) redemption use case
We will be working with LEGO Foundation to integrate with the Universal Wallet so learners can redeem a gift (like a LEGO set) by proving they’ve completed a seasonal quest (PoQ).
Open Beta Program
SuperSkills! will be made further available to children!
Sign-up now for closed beta access
Gamification improvements
Learners will only learn as long as the game is interesting enough. We have plans to open up various mechanisms like resource collections and creations to the community at large using tokens, to further improve the flywheel.
Additional use cases
This post was not about the game itself but it’s worth mentioning — the platform we’ve built is not specific to the SuperSkills! app. It’s been built to allow quest builders to construct their own courses, credentials, content, etc and be provided ways to issue credentials that can be utilized outside the platform.
If you have a use case you think would benefit from this, reach out to me nathan@learningeconomy.io or contact Learning Economy Foundation.