Author: Matt McKinney (ArcBlock Marketing & BD Director)

ArcBlock has released the DApps Workshop developer tool that allows any product manager, user or developer to easily and quickly build a Proof of Concept (POC) for various DApp scenarios including the use of decentralized identity and trade-related transactions.

Proof of Concept

As many folks already know, a POC (as defined by Techopedia) is a demonstration, the purpose of which is to verify that certain concepts or theories have the potential to work in a real-world application. POC is therefore a prototype that is designed to determine feasibility, but does not represent the actual deliverables required to build the app itself.

Today, blockchain isn’t a mature industry and in fact is rapidly evolving. Over the last several years we have seen blockchain 1.0, 2.0 and 3.0. I would even suggest that companies like ArcBlock and other interconnected blockchain networks like Cosmos and Polkadot and building next generation capabilities that move us beyond 3.0. Because of that rapid evolution many companies are focusing on the tools to build DApps at scale with a focus on making an app work quickly.

Decentralized Applications and Testing

However, as any developer will tell you testing and building POCs are critical to the success and usability of any application especially when you are integrating and adopting new technologies that are so far untested in production. Moreover, testing requires developers to build POCs and to spend developer hours on non-core functions. A great example of this is the use of decentralized identity. Recently, we’ve seen updates from Sovrin, Uport, Microsoft and ArcBlock discussing the use of decentralized identity including the potential benefits and impact it can have for users. However, while these services are all using the same design specs from W3C or CCG the commonalities end there and implementations of these different identity solutions has historically required some effort including validating that it works.

Introducing DApps Workshop

Because of this we created DApps Workshop. The easiest way to build POCs for DApps and decentralized identity.

workshop

DApps Workshop is a tool that allows a developer or product manager to quickly create and test your POCs for your decentralized applications including creating and testing different types of transaction workflow and DID-based authentication requirements and supports:

  • Trade-related transactions
  • Prebuild workflows and process/rules for all supported Tx types including multi-transaction scenarios
  • DID-based authentication including identity Types, DSA (Digital Signature algorithm) algorithms and Hash functions
  • Configurable metadata
  • Defining required claims including profiles and agreements
  • ABT Wallet mobile authentication

So, enough writing let’s try building some POCs.

Build a POC - Adding DID-based Authentication to a DApp

DApps Workshop allows anyone to build and test the authentication process using a DID-based authentication protocol. For example, I want to see how my decentralized identity wallet (ABT Wallet) and a new DApp built using Forge Framework will interact with each other.

Step 1 - Generate Your DID

For authentication, there are 3 steps to get through to create “Application DID” that can include different DID types such as:

did type

As you can your application represent different DID types such as an account, node, device and more. This is important as the use cases for decentralized identity are numerous including websites, apps, IoT, licenses and many more.

Now, you can pick your digital signature algorithm, a standard for digital signatures originally implemented by NIST as a preferred method for creating signatures. In this drop down you have several options available:

did dsa

For my example, we will use the popular standard ed25519. (there is a lot of documentation about these standards online if you want to learn more)

Now that we have our type and DSA Algorithm set let’s confirm our Hash Function. The Hash Function is used to map data of that is an arbitrary size to a fixed size and is a one way function that is very difficult to invert.

did hash

For our POC, we will select SHA3, the current NIST standard originally published in 2015. At this point, we can “Save & Continue.”

Step 2 - Configure Your Metadata

In this step you can provide some details about your application including name, description, copyright and more. One of areas to focus on is the “publisher” text box as this is the previous DID that you just generated in the previous section. For our example, we also use the deeplink path for the ABT Wallet but you can provide whatever the appropriate link is.

metadata

Step 3 - Setup your Claims

Now, the last step to configure your “authentication” is claims. These are any required claims that you need to interact with your application. For example, do you require the user to share their name, email, phone and so on. You can add more options based on your requirements.

Additionally, you have a section for “required agreements.” This area allows you to require users to agree to different policies or requirements needed to use your service. In our example, we have options for data policy and terms of service, which are commonly required when signing up for an application.

did claims

Save your work! Now, you have successfully created your application that contains a DID and provides you with several key pieces of data including your Deep Link, Application DID, Application Public Key and Application Secret Key. Now, try it out. Use your ABT Wallet and scan the QR Code to login.

did success

Success!

Success, you’ve used decentralized identity to login to an application using your decentralized wallet. From here you can begin testing other attributes easily by simply “editing” your application, or remove it and start a new one. It’s that easy.

To learn more about the DApps Workshop page you can visit the website, or if you want to get started building your own DApps take a look at Forge Blockchain Application Framework the easiest way to build DApps and blockchains.