<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Using Self-Sovereign-Identity principles to prove your worth in Decentralized Autonomous Organizations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vid Keršič</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andraž Vrečko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Urban Vidovič</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Domajnko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Muhamed Turkanović</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of electrical engineering and computer science, University of Maribor, Institute of informatics, Blockchain Lab:UM</institution>
          ,
          <addr-line>Maribor</addr-line>
          ,
          <country country="SI">Slovenia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Decentralized autonomous organizations (DAO) have many use cases and are becoming increasingly more popular in recent years. The paper analyses the disadvantages and problems of current DAOs (i.e., the Plutocracy problem) and presents a solution, in which the existing implementations of DAO are combined with the Self-Sovereign Identity (SSI) ecosystem to solve those issues. The solution is presented in the form of an extension to the crypto wallet MetaMask, using Snaps, which enables DAO users to create SSI-based identifiers (DID) and manage verifiable credentials (VC), which are later on used as a voting ticket in a DAO. We validate the solution by presenting the prototype of the SSI Snap and demonstrating its usage on the Snapshot decentralized voting system.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;decentralized</kwd>
        <kwd>DAO</kwd>
        <kwd>decentralized autonomous organization</kwd>
        <kwd>SSI</kwd>
        <kwd>self-sovereign identity</kwd>
        <kwd>verifiable credential</kwd>
        <kwd>MetaMask</kwd>
        <kwd>proof of concept</kwd>
        <kwd>Veramo</kwd>
        <kwd>Snaps</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Decentralized autonomous organizations (DAOs)[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] are slowly emerging as a new digital
and management structure without a typical real-world organizational hierarchy, hence the
decentralized prefix. Since the DAOs are running on public permissionless blockchain networks
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], the barrier to joining and contributing to an organization (and being paid for the work)
is more accessible than in a typical setting in the real world. While the mentioned structure
provides many new opportunities and advantages, it comes with several problems. One of the
problems is the so-called Plutocracy Problem, described by Serto [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and Vitalik Buterin [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ].
This problem afects tokens-based (ERC20, ERC721, or ERC1155) DAOs, which are currently
the dominant form of DAOs, by a wide margin.
      </p>
      <p>In a plutocracy, the wealthiest members of the organization/society are the people with the
most power and influence, regardless of their expertise on the given topic. Adding to that, most
proposals are decided by only a few members who control the majority of tokens. Therefore,
most token-based DAOs are not decentralized and give their holders a false sense of security,
leading them to believe that they hold any weight in the decision-making process, while it
actually is in the hands of few. The problem lies in the possibility of obtaining and transferring
the reputation that represents your worth in the DAO. The plutocracy problem can never be
solved if the reputation can be bought. Suppose we want to make DAOs more aligned with the
web3 ethos and strive for meritocracy, where the power of members is determined based on
their skills. In that case, diferent ways to represent reputation must be implemented.</p>
      <p>
        Imagine a made-up metaverse DAO. There are several decisions that the community can
make: changes in the smart contracts [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], connecting and creating new partnerships, designing
new worlds, creating new graphical content for the project, etc. Who should be able to vote on
the changes in a smart contract code, and who on the future of marketing? The former should
be decided by the proficient developers in Solidity [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], while the latter by the digital marketing
experts. The question is, how to verify the potential voter’s specific skills?
      </p>
      <p>
        Reputation should be gained through experience, achievements, and other successful
contributions to some cause (e.g., DAO). This could be anything from completing a quest on Rabbithole,
committing new code to a project, or being active in the DAO communities. A credible third
party should then give a reputation to the contributors in the form of proof of contribution or
attestation to their skills and knowledge. It’s only natural to do that in a digital,
cryptographically verifiable, and tamper-proof way. And the best way to do that in a structural and reusable
way is to use verifiable credentials (VC) and verifiable presentations (VP), which are one of the
main concepts behind the Self-Sovereign Identity (SSI) paradigm [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ]. But specialized software
must first be developed to bring together web3 structures (DAOs), where data resides on public
blockchains or other networks, and SSI principles, such as ofline and local private data.
      </p>
      <sec id="sec-1-1">
        <title>1.1. Aim and contribution</title>
        <p>The aim of our research was to solve the above-presented challenge of plutocracy. The main
idea was to enable DAOs to use a fairer way of operating and decision calling, which however
should still be based on digital and decentralized principles and enable secure verification of
voters’ skills and knowledge. For this, we analyzed the possibility of using SSI principles.</p>
        <p>
          As such, we had to enable the integration of SSI and DAOs in a web3 user-friendly way, which
would enable seamless binding of the two ecosystems. Currently, there is no straightforward
way to operate within SSI and DAOs on the same terms and conditions, i.e., solutions on the
market require separate mobile/web applications for blockchain (DAOs) and SSI operations.
Therefore, in this research, we define the solution to these challenges in the form of software
architecture and components, which would enable seamless integration of the two ecosystems.
Our solution is based on the MetaMask wallet, which is one of the most adopted crypto wallets
in the market, especially in the Ethereum ecosystem [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. As such, we leverage the MetaMask’s
extension, called Snaps, which we designed and implemented in a way that supports the core
SSI workflows. To showcase and validate the prototype in the real-world setting, we connect
the most popular dApp for DAO governance Snapshot to our SSI Snap [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. Adding the voting
mechanism based on decentralized identifiers (DIDs) and VCs, representing people’s expertise
and experience, blockchain projects and organizations can target people with specific skills to
decide on the organization’s future direction. Our approach enhances the decentralization of
DAOs since the currently most adopted token-based voting mechanism is heavily influenced by
large shareholders, thus making DAOs centralized and controlled by a small group of people.
        </p>
        <p>The paper has the following structure: Chapter 2 provides an overview of applied technologies,
Chapter 3 describes the proposed solution, Chapter 4 showcases the performed validation, and
Chapter 5 discusses the advantages and disadvantages of the approach. The paper is concluded
in Chapter 6.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <p>Our proposed solution builds upon several concepts and technologies. This chapter provides
their definition, description, and role in the solution.</p>
      <sec id="sec-2-1">
        <title>2.1. Decentralized Autonomous Organizations (DAOs)</title>
        <p>
          Decentralized autonomous organizations (DAOs) are community-controlled organizations,
where rules are enforced and governed by a computer program, instead of a central government.
The computer program is usually represented as a smart contract, which is a program for the
automated execution of agreements stored on a (decentralized) blockchain and run on the
underlying virtual machines (e.g., EVM) representing the blockchain network. Their main
purpose is to provide a way for autonomous, decentralized, and transparent governance of
organizations. The first point is achieved by the usage of smart contracts, while the other two
points are provided by the underlying blockchain technology on which the smart contracts
are run. There are diferent types of DAOs supporting a wide range of use cases from Protocol
DAOs, Investment DAOs, Grant DAOs and Gaming DAOs [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. DAOs can run on diferent
voting mechanisms, the most popular being token-based single-choice quorum and quadratic
voting. In both types of governance, voting power relies on token balances of voters, such
as ERC20 or ERC721 tokens. In single-choice voting, voters can vote only for a single choice,
and each token represents a voting power of 1. Therefore the voter with a higher balance has
more voting power than one with a lower. Quadratic voting enables voters to vote on several
choices, with the results being calculated quadratically, giving the number of diferent voters
more influence on the final result than the number of tokens [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>
          Snapshot plays a vital role in the decentralized world and DAOs [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. Snapshot is a
decentralized voting platform that provides flexibility and supports various voting mechanisms. It is
also user-friendly and does not cost gas, as the voting process is done of-chain and based on
decentralized file storage like (IPFS).
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Crypto Wallets</title>
        <p>
          One of the key components for interacting with blockchain technology are crypto wallets.
Their primary functionality is secure storage of cryptographic keys, with which we control
the blockchain addresses, support transaction signing, and in some cases also data encryption.
When compared with digital wallets, the major diference is that crypto wallets are focused
on the management of blockchain addresses and thus the control over their coins and tokens,
while digital wallets have a more general purpose, enabling users to control (qualified) digital
identities and identifiers, and as such use those for purposes of authentication, digital signing, as
well as the collection and management of attestations in the form of digital documents [
          <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
          ].
Crypto wallets also enable users to create several accounts, each with its own key pairs, between
which they can easily switch.
        </p>
        <sec id="sec-2-2-1">
          <title>2.2.1. MetaMask and MetaMask Snaps</title>
          <p>
            The most popular wallet, MetaMask, introduced Snaps, which makes building plugins for
additional functionality possible [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ]. MetaMask is a crypto wallet and gateway to blockchain
apps, providing a simple interface for users to interact with EVM-based blockchains, sign and
send transactions, etc. Snaps make a wide specter of new applications possible. They can enable
support for previously unsupported chains like Polkadot, Solana, Bitcoin, etc. They allow dApps
to modify MetaMask’s state to store and retrieve data, like VCs. They also enable access to the
web and the possibility to leverage practically any API and much more. New functionality is
only limited by the creativity of developers.
          </p>
          <p>Technically speaking, MetaMask Snaps is a system that allows anyone to expand the
capabilities of MetaMask safely. It is a JavaScript program that runs in an isolated, sandboxed
environment inside the MetaMask. In addition to the existing MetaMask RPC methods, Snaps
can create new RPC methods for websites to call. Unfortunately, that is the only way to interact
with the Snaps, as modifying MetaMask UI is not possible (at least at the moment).</p>
          <p>
            Snaps are currently only supported in the MetaMask Flask, a separate desktop browser
extension for developers. But it is expected that the Snap system will be integrated into the
main MetaMask in the future, with much more information found in their documentation [
            <xref ref-type="bibr" rid="ref17">17</xref>
            ].
          </p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Self-Sovereign Identity (SSI)</title>
        <p>There are three main components to a digital self-sovereign identity: DIDs, VCs, and VPs.</p>
        <p>
          Decentralized Identifiers, or DIDs in short, are the new type of unique and persistent identifiers
(URI) that enable verifiable and decentralized identity [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. They are entirely controlled by the
identity owner and are independent of centralized authorities. Each individual can create as
many DIDs as they wish and use each in diferent contexts to prevent data correlation.
        </p>
        <p>DID Document forms the root record for a DID and is a set of data that describes a DID,
including mechanisms, such as public keys and pseudonymous biometrics, that an entity can
use to authenticate itself as the DID. While a public key can be obtained from the DID document
by anyone, a private key used for proofs and digital signatures is safely stored in the user’s
wallet. DID Document may also include other attributes or claims describing the entity, such as
service endpoint, delegates, etc. These documents are often expressed using JSON-LD.</p>
        <p>DIDs are verifiable, their corresponding DID documents are usually stored on a trusted data
registry (typically a blockchain) and can be accessed by anybody. There are multiple methods
for storing and resolving DIDs. For example, the method did:ethr uses a Smart Contract on
Ethereum to store the DID data. Similar to blockchain addresses, DIDs are pseudonymous,
however, they ofer additional capabilities such as key rotation, delegation, and a way to link a
service endpoint (social media account, etc.) to the identity.</p>
        <p>However, DIDs are not enough to represent our entire identities as they merely provide a
“basket” for them. This basket must be filled with all kinds of data, usually presented in the
form of credentials in the real world. Credentials are ubiquitous in our daily lives they take the
forms of passports, various licenses, and certificates, ownership of bank accounts, and much
more. The problem with credentials is that until recently, there had been no standard ways of
representing them organized online.</p>
        <p>
          Verifiable Credentials, or VCs for short, are an open standard for digital credentials to solve
this issue [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. They are digitally signed and can be verified cryptographically, which makes
them tamper-proof. VCs work well with data privacy, which goes well with data regulations
pushed by the European Union (GDPR) and some other countries.
        </p>
        <p>VCs are interoperable and can use a lightweight Linked Data format. It is an extension of an
already successful JSON format that provides a way to include object and data typing, JSON-LD
keyword aliasing, creating links via nesting or referencing, and internationalization features
(describes how to express data values in diferent languages). Another format for VCs is (JSON
Web Token), a popular internet format for transferring data with digital signatures. Because of
that, current SSI tools often provide better support for JWTs.</p>
        <p>Verifiable Presentation, or VP for short, expresses data from one or more VCs and is packaged
so that the authorship of the data is verifiable. The data in a VP, which is often about the same
subject, could have been issued by multiple issuers.</p>
        <p>
          There is a lot of ongoing work on further enhancing data privacy when presenting VCs. This
can be done with Selective Disclosure and Zero-Knowledge Proofs (ZKP). Selective disclosure
enables generating proofs from only a few attributes of a credential. Using ZKPs, one could
prove the necessary condition for the attribute without revealing the actual value. In practice,
this means one could prove that they are above the age of 18 without showing their ID card,
and third parties would instantly be able to verify that data [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
        <p>Now that we have a base understanding of the individual SSI components, we can look at
how they work together.</p>
        <sec id="sec-2-3-1">
          <title>2.3.1. VC Trust Model</title>
          <p>SSI completely changes the paradigm of online data sharing and brings it closer to the physical
world. There are three entities in the VC trust model:
• Issuer that issues the credential
• Holder that is the owner and subject of the credential
• Verifier that receives and verifies the credential</p>
          <p>As seen in the Fig. 1, the issuer is the entity that issues VC to the holder whom the VC is
about. The holder then presents the VC to the verifier, who verifies the validity of the VC and
checks if it meets the established criteria. For example, a government issues an ID card in the
form of a VC to Alice. Alice is the holder of the VC. Alice wants to go to a concert at a club.
Alice has to prove that she is 18+ and does so by presenting a VP, which she generates using
her VC. The club then verifies if Alices VC is valid and if she is indeed older than 18. The
verification process is based as follows. When the government issues a VC, they add into the VC
their DID and sign the VC with their private key of the coresponding DID. The DID document
of the corresponding DID is registered on a blockchain. When the club wants to verify the
authenticity and validity of the VC and its proof, they can check the DID and its associated
public key on the blockchain to see who issued it without contacting the issuing entity. DIDs
enable VCs to be verified anywhere, at any time.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Solution</title>
      <p>At the core of our solution is the so-called SSI Snap. A Snap as already mentioned in Chapter
2.2.1, is a plugin-like extension of the popular crypto wallet MetaMask. As shown in Fig. 2, the
SSI Snap resides inside the MetaMask wallet. The idea of the Snap is to provide blockchain-based
accounts, that are controlled with MetaMask, handling the core functionalities of SSI wallets,
i.e., generation and control of DIDs, management of VCs, etc. With such a solution, a possible
DAO stakeholder, which currently is only able to participate in voting through the management
of blockchain-based tokens, would now be able to vote using the same tools (MetaMask) by
passing VPs as the voting ticket. To enable such functionalities, the Snapshot, which is the
decentralized voting system for DAOs, also needs to support the management of votes based on
VCs and not just tokens. In this example, the VC-based votes are then validated using Snapshot
and Ethereum and stored inside IPFS to make the experience fee-less.</p>
      <sec id="sec-3-1">
        <title>3.1. SSI Snap Design</title>
        <p>
          Every user in the system needs to have a unique id and full control over his online identity.
As previously mentioned, in the SSI world, this identity is called DID. To work correctly, DIDs
require a DID method, which specifies how DIDs and DID documents are created, resolved,
updated, and deactivated [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>There are various DID methods. One of the most popular methods is called did:ethr. This
method uses Ethereum addresses as fully self-managed DIDs. In other words, every Ethereum
account is a DID (DIDs are Ethereum addresses with a “did:ethr::” prefix). Ethereum accounts
in MetaMask, used daily by millions, are essentially DIDs. What is missing is the functionality
to use them and leverage their potential correctly.</p>
        <p>Our demo will use SSI Snap to store Solidity Course Completion VC, proving that the user
controlling the MetaMask account has completed a Solidity course and is qualified to vote on
Snapshot governance proposals.</p>
        <p>
          In order for the SSI Snap to handle functionalities related to DIDs, VCs, and VPs, we decided
to use a Veramo framework. Veramo is a performant and modular API for Verifiable Data and
SSI [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. Essentially it’s a client that allows the creation and management of DIDs, VCs, and
VPs and makes developers’ lives working with them much easier.
        </p>
        <p>Veramo is used to generate and store DIDs and additional keypairs. The team behind Veramo
implemented plugins called DIDManager, KeyManager, and PrivateKeyManager to do precisely
that. However, these plugins do not come with a way to store data inside the MetaMask State.
Luckily, due to the extendable nature of these plugins, it made it easier to implement a custom
datastore plugin that allows the Managers to store data inside the MetaMask State.</p>
        <p>Veramo is also used to verify and store VCs and generate VPs. Unfortunately, Veramo does
not have a VCManager plugin. Nevertheless, we developed the VCManager plugin with an
additional datastore plugin to save VCs in the MetaMask state.</p>
        <p>The ability to create additional datastore plugins is also great for future implementations. In
the future, we plan to implement additional ways to store data, starting with storing everything
(of course encrypted) in a cloud. This will make syncing with other MetaMask wallets possible.
Having multiple ways of storing data and quickly changing between them will create a better
user experience. The final SSI Snap architecture is shown in Fig. 3.</p>
        <p>To maintain as much security as possible, we have decided not to expose private keys
from existing MetaMask accounts but to create and use an additional DID (Ethereum account)
exclusively for generating VPs. Private keys are needed for digitally signing VPs with Veramo,
since core MetaMask RPC methods do not ofer a way to sign them properly. Essentially, this
means that a separate DID is generated for every MetaMask account that wants to store and
manage VCs. This DID lies in the MetaMask state and is only used for generating VPs.</p>
        <p>However, a DID can only use its own VCs, and since VCs are issued to a MetaMask account
DID, the newly generated DID can’t use them. To make things right, we authorize the new DID
to use VCs explicitly. Thus, the DID has to be registered as a delegate to the DID document of a
MetaMask’s account. We hope this won’t be necessary in the future as MetaMask is constantly
updated with new features and tighter Snaps integrations are on the horizon.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Validation</title>
      <p>To showcase the workflow of the SSI Snap, we have designed a proof of concept (PoC) and
developed a demo platform. The PoC is designed with the Ethereum blockchain platform.
One of the main reasons for this is the fact that: (1) it’s one of the decentralized and public
permissionless blockchain platforms, (2) the most popular and most commonly used blockchain
platform for smart contracts, (3) designed and tested did:ethr method, (4) plenty of already
established frameworks, including various SSI &amp; DID frameworks and, (5) DID Documents do
not need to be changed often (or even never in some cases). A more detailed description of the
prototype is accessible on the GitHub repository (Online Resources).</p>
      <p>In PoC demo, a user will install and approve the SSI Snap, add a delegate to the DID Document
of the selected MetaMask account, get and store a VC after completing a straightforward course
and display the VC on the profile page.</p>
      <p>The demo can be tested freely (Online Resources). To follow it, you need to use MetaMask
Flask (version &gt;10.9.2) and have some ETH on Rinkeby testnet.</p>
      <p>To start using the platform, the user needs to connect to the platform using the MetaMask
crypto wallet. After the connection is established, the user gets a prompt to install and Connect
to the SSI Snap. The user needs to give it specific permissions for the Snap to work. Besides the
standard permissions, SSI Snap also needs permission to manage the MetaMask state. When
the user has successfully installed the Snap and connected to the platform, they can start the
Solidity course (Fig. 4). First, the SSI Snap needs to initialize for the current account.</p>
      <p>Adding a delegate will cost the user some ETH, as it modifies the blockchain state. Once the
transaction is confirmed, a new delegate is added to the DID document. To make sure a new
delegate has been added correctly, we can resolve the DID Document using the DID Universal
Resolver. You can see that the delegate has been added to the DID Document of the user’s
account.</p>
      <p>The next step is to fill out the form and request the VC. We also use the Veramo in the
platform’s backend to generate a VC. The user will be prompted to save the VC in the MetaMask
state. Currently, this is done in a non-standardized way, but we are looking into OpenID Connect
standards for VC Issuance.</p>
      <p>A VC should appear under ‘My VCs’ on the profile page if everything goes well. This VC can
then be used to create a VP when the user votes on the Snapshot platform.</p>
      <p>To use the SSI Snap, dApps only need to implement a Connect MetaMask button and call our
custom RPC methods.</p>
      <p>As a next step in the PoC we have to expand the demo with the Snapshot voting mechanism
that only allows those users to vote on specific proposals within a DAO, who can provide a valid
VP. As seen in Fig. 5, the user voting on the Snapshot platform selects a valid VC, for which a
VP is generated, and signs a transaction containing the content of the vote, including the VP.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Discussion</title>
      <p>Our main goal was to bring support for SSI principles to DAO, i.e., enable DAOs to leverage
stakeholders’ proofs of skills and knowledge as a ticket for DAO voting. This had to be achieved
with the notion of bringing DIDs and VCs to the MetaMask crypto wallet. The MetaMask
Snaps system allowed us to add those functionalities to the most popular crypto wallet. With
our SSI Snap we provided MetaMask users access to SSI without the need to install redundant
applications or software. Existing MetaMask accounts become DIDs and users can store VCs
directly in MetaMask and generate VPs when needed. The SSI Snap leverages the security of
MetaMask, a secure and tested wallet, used by millions, so there is no need to worry about the
security of storing data in a new application. Another advantage is the ability to create additional
DIDs that are not necessarily MetaMask accounts and the ability to implement additional ways
of storing data. The SSI Snap will be configurable, giving the users an option to decide where
their data should be stored (e.g. IPFS) and which VC serves what purpose.</p>
      <p>A disadvantage we see in the MetaMask Snaps system is the lack of support for developing a
custom user interface, hence any interaction with SSI Snap requires a dApp. There is currently
also no way to choose a single VC inside MetaMask which means that all VCs need to be sent
to the dApp where the user gets to select one and a dApp receives more data than necessary.
Regarding configurability, another disadvantage is again the need for dApp for a user to configure
the Snap to his needs. The SSI Snap also currently does not provide any way to synchronize
data with other MetaMasks applications - all data is stored locally.</p>
      <p>Overall, the SSI Snap enhances the MetaMask with SSI principles and provides unified support
for DIDs and VCs without the need for users to install and use any additional applications.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>Decentralized autonomous organizations are community-controlled organizations. The
currently dominant form of DAOs, token-based DAOs sufer from the Plutocracy Problem. DAOs
should strive for meritocracy, where the power of members is based on their skills. To achieve
meritocracy, DAOs have to evolve from token-based form to a form that uses self-sovereign
identity with credentials. SSI enables individuals to create and control their identities online. SSI
consists of unique decentralized identifiers, verifiable credentials, and verifiable presentations.</p>
      <p>With the goal of meritocracy in DAOs, we developed a MetaMask snaps application that
allows users to securely store and use SSI in their existing MetaMask wallet. This application
gives millions of existing MetaMask users easy access to the SSI.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>This work was supported by the Slovenian Research Agency (Research Core Funding) under
Grant P2-00577.</p>
    </sec>
    <sec id="sec-8">
      <title>A. Online Resources</title>
      <p>To learn more about the SSI Snap, its architecture, and how to use it, a GitHub repo and the
course demo are available.</p>
      <p>• GitHub: https://github.com/blockchain-lab-um/ssi-snap,
• Demo: https://blockchain-lab-um.github.io/course-dapp/,
• MetaMask Flask: https://metamask.io/flask/.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Ding</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Yuan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Ouyang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.-Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          , Decentralized autonomous organizations:
          <article-title>Concept, model, and applications</article-title>
          ,
          <source>IEEE Transactions on Computational Social Systems</source>
          <volume>6</volume>
          (
          <year>2019</year>
          )
          <fpage>870</fpage>
          -
          <lpage>878</lpage>
          . doi:
          <volume>10</volume>
          .1109/TCSS.
          <year>2019</year>
          .
          <volume>2938190</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Yaga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Roby</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Scarfone</surname>
          </string-name>
          ,
          <article-title>Blockchain technology overview</article-title>
          , ArXiv abs/
          <year>1906</year>
          .11078 (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Serto</surname>
          </string-name>
          ,
          <source>The dao plutocracy problem</source>
          ,
          <year>2021</year>
          . URL: https://serto.medium.
          <article-title>com/ the-dao-plutocracy-problem-a8841546a0f2.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>V.</given-names>
            <surname>Buterin</surname>
          </string-name>
          , Soulbound,
          <year>2022</year>
          . URL: https://vitalik.ca/general/2022/01/26/soulbound.html.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>V.</given-names>
            <surname>Buterin</surname>
          </string-name>
          , Moving beyond coin voting governance,
          <year>2021</year>
          . URL: https://vitalik.ca/general/ 2021/08/16/voting3.html.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>Luu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.-H.</given-names>
            <surname>Chu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Olickel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Saxena</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hobor</surname>
          </string-name>
          ,
          <article-title>Making smart contracts smarter</article-title>
          ,
          <source>CCS '16</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2016</year>
          , p.
          <fpage>254</fpage>
          -
          <lpage>269</lpage>
          . URL: https://doi.org/10.1145/2976749.2978309. doi:
          <volume>10</volume>
          .1145/2976749.2978309.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C.</given-names>
            <surname>Dannen</surname>
          </string-name>
          , Introducing Ethereum and
          <article-title>Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners</article-title>
          , 1st ed., Apress, USA,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Preukschat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Reed</surname>
          </string-name>
          ,
          <article-title>Self-sovereign identity</article-title>
          ,
          <source>Manning Publications</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Š.</given-names>
            <surname>Čučko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Turkanović</surname>
          </string-name>
          ,
          <article-title>Decentralized and self-sovereign identity: Systematic mapping study</article-title>
          ,
          <source>IEEE Access 9</source>
          (
          <year>2021</year>
          )
          <fpage>139009</fpage>
          -
          <lpage>139027</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Wood</surname>
          </string-name>
          , et al.,
          <article-title>Ethereum: A secure decentralised generalised transaction ledger</article-title>
          ,
          <source>Ethereum project yellow paper 151</source>
          (
          <year>2014</year>
          )
          <fpage>1</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hussey</surname>
          </string-name>
          ,
          <article-title>What is snapshot? the decentralized voting system</article-title>
          ,
          <year>2021</year>
          . URL: https://decrypt. co/resources/what-is
          <article-title>-snapshot-the-decentralized-voting-system.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>U. W.</given-names>
            <surname>Chohan</surname>
          </string-name>
          , The decentralized autonomous organization and governance issues,
          <year>2017</year>
          . URL: http://dx.doi.org/10.2139/ssrn.3082055. doi:
          <volume>10</volume>
          .2139/ssrn.3082055.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Wright</surname>
          </string-name>
          ,
          <article-title>The rise of decentralized autonomous organizations: Opportunities and challenges</article-title>
          , Stan.
          <string-name>
            <surname>J. Blockchain L.</surname>
          </string-name>
          &amp;
          <article-title>Pol'y 4 (</article-title>
          <year>2020</year>
          )
          <article-title>1</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Hassan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Shukur</surname>
          </string-name>
          ,
          <article-title>Review of digital wallet requirements</article-title>
          ,
          <source>in: 2019 International Conference on Cybersecurity (ICoCSec)</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>43</fpage>
          -
          <lpage>48</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICoCSec47621.
          <year>2019</year>
          .
          <volume>8970996</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Schwalm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Albrecht</surname>
          </string-name>
          , I. Alamillo, eidas
          <volume>2</volume>
          .
          <article-title>0: Challenges, perspectives and proposals to avoid contradictions between eidas 2.0 and ssi</article-title>
          , in: H.
          <string-name>
            <surname>Roßnagel</surname>
            ,
            <given-names>C. H.</given-names>
          </string-name>
          <string-name>
            <surname>Schunck</surname>
          </string-name>
          , S. Mödersheim (Eds.),
          <source>Open Identity Summit</source>
          <year>2022</year>
          ,
          <article-title>Gesellschaft für Informatik e</article-title>
          .V.,
          <string-name>
            <surname>Bonn</surname>
          </string-name>
          ,
          <year>2022</year>
          , pp.
          <fpage>63</fpage>
          -
          <lpage>74</lpage>
          . doi:
          <volume>10</volume>
          .18420/OID2022_
          <fpage>05</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Y. K.</given-names>
            <surname>Chaturvedi</surname>
          </string-name>
          , A quick guide to metamask snaps,
          <year>2022</year>
          . URL: https://etherworld.co/
          <year>2022</year>
          / 01/19/a
          <article-title>-quick-guide-to-metamask-snaps/.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>MetaMask</surname>
          </string-name>
          , Introduction | MetaMask Docs,
          <year>2022</year>
          . URL: https://docs.metamask.io/guide/ snaps.html.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <fpage>W3C</fpage>
          ,
          <article-title>Decentralized Identifiers (DIDs) v1</article-title>
          .
          <fpage>0</fpage>
          ,
          <year>2021</year>
          . URL: https://www.w3.org/TR/did-core/.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M.</given-names>
            <surname>Sporny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Longley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chadwick</surname>
          </string-name>
          ,
          <source>Verifiable credentials data model v1.1</source>
          ,
          <year>2022</year>
          . URL: https://www.w3.org/TR/vc
          <article-title>-data-model/.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>O.</given-names>
            <surname>Goldreich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Oren</surname>
          </string-name>
          ,
          <article-title>Definitions and properties of zero-knowledge proof systems</article-title>
          ,
          <source>Journal of Cryptology</source>
          <volume>7</volume>
          (
          <year>1994</year>
          )
          <fpage>1</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Veramo</surname>
          </string-name>
          ,
          <article-title>Veramo - A JavaScript Framework for Verifiable Data | Performant and modular APIs for Verifiable Data</article-title>
          and
          <string-name>
            <surname>SSI</surname>
          </string-name>
          ,
          <year>2022</year>
          . URL: https://veramo.io/.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>