Challenge Summary
Read the challenge specification carefully and watch the forums for any questions or feedback concerning this challenge. Let us know if you have any questions in the challenge forum!
Round 1
Submit your initial design for a Checkpoint Feedback01) Landing Screen (Web/Desktop)
02) Login Screen (Both Web/Desktop and Android)
03) Digital Identity Creation Screen (Android)
04) Dashboard Screen (Android)
06) Enterprise Dashboard Screens (Web/Desktop)
- As part of your checkpoint submission, you must upload your submission to MarvelApp so we can provide direct feedback on your designs. Please include the MarvelApp URL in your notes.txt.
- Make sure all pages have correct flow. Use the proper file numbers, (1, 2, 3, etc.)
Round 2
Submit your Final Design plus Checkpoint Updates01) Landing Screen (Web/Desktop)
02) Login Screen (Both Web/Desktop and Android)
03) Digital Identity Creation Screen (Android)
04) Dashboard Screen (Android)
05) Settings Screen (Android)
06) Enterprise Dashboard Screen (Web/Desktop)
07) Node/Network Provisioning Screens (Web/Desktop)
08) Management console Screen (Web/Desktop)?
- As part of your Final submission, you must replace your checkpoint submission with the final submission into MarvelApp so we can provide direct feedback on your designs. Please include the MarvelApp URL in your notes.txt.
- Make sure all pages have correct flow. Use the proper file numbers, (1, 2, 3, etc.)
Project Description
BeSecure is a Blockchain based Network designed specifically for Cybersecurity Applications.
BeSecure IdAMNet will have the following capabilities:
- Creation of Digital Identity based on the configuration either as a DID (Decentralized Identity) or SSID (Self Sovereign Identity).
- Enable Validation of DID using ZKPs (Zero-Knowledge Proofs)
- Attestation or credentials using anonymous Validators.
- Notarization of documents using Trusted Agents
- User Interface Design (Wallet Apps and Be Secure CLI)
BeSecure is a collaboration platform for enterprises and cybersecurity service providers. It wants to develop a Blockchain based Service for Identity creation, validation, attestation, and notarization. It will use KYC, EMR, and PII for identity-based processing.
In a service economy, identity information is the key connector between the service provider and the customer. For example, a customer who wants to open a new home mortgage account with a bank has to first submit Know Your Customer (KYC) details to the bank. The same customer will then need to provide KYC details to various utility providers for his new home. KYC details may vary based on the service provided, but all of them require a core set of details about the customer. In an ideal world, a centralized store of identity information may make the customer’s life easier, but in the real world, centralized control of identity information is not entirely desirable.
It is a Blockchain based Digital Identity management system having the following scope:
- Identifiers, Names, and Discovery
- Storage and Compute
- Claims and Credentials
Many organizations (companies and foundations) operate in the business of providing control of identity information to the customer/service seeker in a decentralized manner, but these do not interoperate with one another.
Here are some references to such organizations, both the identity provider space and in the setting of standards for such identity. Reading this before proceeding would provide the bigger context. This is not a comprehensive list, you are free to research more of them.
1. Identity Foundation
- http://identity.foundation/
- https://medium.com/decentralized-identity/a-universal-resolver-for-self-sovereign-identifiers-48e6b4a5cc3c
2. Some Implementation references
- Universal Resolver
3. Sidetree protocol
- https://github.com/decentralized-identity/sidetree-core
4. Self-Sovereign Identity
- Sovrin
- uport
BeSecure is a company that would like to build an application that would work with multiple identity providers and service providers that need this information, using recommended standards.
The intent of the application is to build a Blockchain adapter using all the available Blockchain frameworks for this purpose by extending or re-using them here as a complete bundle for the solution.
IMPORTANT Features for BeSecure application:
- Facilities for identity creation and management to the self-sovereign user.
- Facilities to add more information (claims) connected to the identity information and provide access to particular service providers. (For example - this could be a claim to property ownership)
- Storage facilities for credentials and claims (wallet)
- Methods to validate/authenticate (Zero-knowledge proofs provided by BlockChain technology) these identities for the service provider
- Methods to attest the identity and claims of a user
Challenge Forum
If you have any doubts or questions regarding challenge requirements, please ask in our challenge forum:
https://apps.topcoder.com/forums/?module=ThreadList&forumID=649620
Screen Requirements
For this challenge, we are looking for the below pages to be designed/considered in your concepts. The screen functionality details listed below are suggested functionality for consideration. Do not allow the suggestions below to impact the creativity of design. If there is a better way to accomplish the same goal, then feel free to take creative liberties.
General Screens
01) Landing Screen (Web/Desktop Screen)
- Potential User will arrive on this page and will be able to find information about BeSecure application and use the app
- Needs to marketing the BeSecure app purpose and it's capability to attract potential user to use it's service
- Open to any suggestion for the landing page content (might need to give focus on BeSecure main features)
- Some landing page references from the similar products:
02) Login Screen (Both Web/Desktop and Android Screens)
- All user needs to log in first before able to use the BeSecure application
- Need 2 login screen variations:
-- Web/Desktop Login Screen for Enterprise User and Network Operator
- Biometric login features (Scanning Face, Fingerprint)? Would nice to have this
- Error login scenario (wrong credential, etc)?
- Needs to have registration form features for Enterprise User and End User
End User (Android App)
03) Digital Identity Creation Screen (Android Screen)
- After registering in the web/desktop, the user can download the BeSecure mobile application and login from there
- For first time user, they will need to create their digital identity in the app before able to use other features in the app
- End User will need to create their Digital Identity based (based on ethereum or Hyperledger Fabric) on the configuration using either as a DID (Decentralized Identity, which basically is user's id/account on any Blockchain network) or SSID (Self Sovereign Identity, created using available blockchain framework like sovrin or uPort)
- User will need to gather their personal information, such as:
-- Picture of Valid ID (Social Security Card, Driver License, Selfie using Camera, Passport, Birth Certificate, ID card, etc) - more IDs information, more valid data
-- BeSecure will extract information from these IDs and create either DID or SSID for the user
-- Once it's extracted, the user will be asked to confirm the data for one more time and then do self certifies
-- All IDs information will be stored and encrypted into a user device
-- Once the data IDs being confirmed by the user, the next step will be building security action to ensure the only user can use the data (Biometric features, fingerprint or face)
-- Everytime user wants to give authorization to their personal data, it will need to pass this security action first
04) Dashboard Screen (Android Screen)
- The android application will act as a digital wallet for the user
- Some reference about wallet in the market can be found from this link: https://edge.app/
- Your wallet/dashboard design needs to be custom, it needs to have similar look and feel with the BeSecure app
- The wallet purpose is to manage all digital identities, claims, and asset related to the blockchain that belong to the user
- To access the wallet, the user will need to verify themselves (based on the security action earlier)
- The user will easily manage their IDs information from here (add new IDs, see existing IDs, Edit IDs, Delete IDs, etc)
- Multiple identities support - Potentially one can create multiple SSIDs for different purposes and to protect privacy - BeSecure will supports this, and it need a way to manage user multiple identities (driver license, passport, etc).
- The user can use the wallet when trying to apply for products and services and no longer need to upload the documents again
- All data and documents remain stored locally in user devices. No one has access to user information except the user themselves and it can never be shared without user consent.
- The wallet will also able to manage claims (add more information)
- The wallet also will be able to manage all cryptocurrency that the user has (Ethereum, Bitcoin, etc) - it needs to be able to simulate how much crypto asset that user currently have, request/received funds, etc (similar to the crypto wallet out there)
- Trusted Agent List Features Sub-Screen:
-- If the user needs Notarization of documents, they will use Trusted Agents service for this
-- Given how many groups of people are trying to tackle the identity problem, the Decentralized Identity Foundation, which counts more than 50 partner organizations, is coordinating various attempts at decentralized identity with the goal of making these systems interoperable so users aren't left with their personal data fragmented across multiple protocols. The user will have the Ability to see how many Trusted Agent available
-- In this screen, the user will be able to ask/request transaction to a 3rd party or doing ID verification trust from the available Trusted Agent
-- Need to have the ability to ask for 'Request Trust' to a Trusted agent, which will bring the user to fill the Trust form before it sent to Trusted Agent
- Transaction Features Sub-Screen:
-- This screen purpose is to give the user a way to explore Proofs and Credentials to identify their ID
-- One of the Validation methods that available is by utilizing DID using ZKPs (Zero-Knowledge Proofs), With Zero-Knowledge Proof (ZKP), we have a prover, who is the individual, and a verifier, who needs to verify an individual's identity. In this case, all the prover needs to show a verifier is the value of X, without showing the actual information. All this requires is a proof of knowledge to verify that the individual is who they claim to be. This is a form of digital fingerprint that can prove an individual's identity. The validity of the proof lies in using a cryptographic hash function that proves without a doubt that the identity is valid.
-- Attestation or credentials using anonymous Validators. attestations are the backbone of trust and reputation in a decentralized identity system. If the user needs to verify and build trust for their ID, they will provide which information that needs to be verified and put a request to a 3rd parties to be able to make claims about the user ID
-- Claims are attributes such as name, address, email, etc
-- Basically, we need some way for the user to request a trust for their identity and also some way where the user can claim about an identity in the system.
05) Settings Screen (Android Screen)
- An ordinary setting screen like another app
- Update security action (login account, biometrics, etc)
- Arrange Application UI layout screen
- Etc
Enterprise User (Web/Desktop)
06) Enterprise Dashboard Screen (Web/Desktop Screen)
- Enterprise user will be able to see all activity that related to the enterprise and end-user
- See all Pending, Complete, Cancelled actions (ability to approve or reject the pending actions)
- If the pending action gets approved, enterprise user will be able to ask for Trust Form (Invoked from Request Trust Button)
- Credential Form (Invoked from Request Credentials Button)
Network Operator (Web/Desktop)
07) Node/Network Provisioning Screens (Web/Desktop Screen)
- This screen is for Network Operator staff from the enterprise to configure all installation and setup
- This screen is a placeholder description screen that will be used for writing the commands for installation and setup of the application And how different type of Blockchain can be integrated to use this ID
- It is merely for documentation to describe the processes and commands
- A sample of the Provisioning flow is listed below:
-- Select blockchain based processes (KYC,EMR,PII etc)
-- Show blockchain network options (permissioned/ public /hybrid)
-- Prompt /Save credentials Def
-- Prompt/ Save contracts
-- Prompt/ Save ZKPs
-- Show deployment options
-- Wallet App and Agent Service Generators
-- Generate Edge Apps and save distribution link
-- Generate Enterprise node App/Agent and save install scripts link
-- Generate member onboarding scripts and save script links
-- Emulate network based process
-- Deploy blockchain network
-- Gather and share configuration details
-- Launch management console screen
08) Management console Screen (Web/Desktop Screen)
- This screen will be used by Network Operator staff to do Remote connect, Add Edge Users, Add Actions, Specific Permissions
- REPL
Important:
- Keep things consistent. This means all graphics styles should work together.
- All of the graphics should have a similar feel and general aesthetic appearance
Some Terms:
- Attestation: Any user can sign (attest) the claims and credentials of a user
- Notarization: Only Trust Agent/Anchors can sign the claims and credentials of a user
- Trust Agent/Anchors: A user who has been assigned this role and is trusted by the community. This could be a government agency, for example.
- Wallet: A logical store of identities and claim ids.
Documentation
- userflow-wireframe.zip (Rough User flow)
Marvel Prototype
- We need you to upload your screens to the Marvel App.
- Please send your marvel app request to fajar.mln@gmail.com (Challenge Copilot)
- You MUST include your Marvel app URL (in your marvel app prototype, click on share and then copy the link & share it with your notes/comment this link while you upload).
Branding Guidelines
- Open to designers (Typography, Colors, Style, Etc)
Target Devices
- Responsive Web (focus on Desktop): minimum 1366px Width with Height adjusted accordingly
- Android Native App: 1080px x 1920px
Target Audiences
- End User (Public Society, You, Me, anyone who needs ID privacy protection)
- Enterprise User (Corporate Employee)
- Network operator (BeSecure Staff, Admin)
Judging Criteria
Your submission will be judged on the following criteria:
- Overall idea and execution of concepts
- How well does your design align with the objectives of the challenge
- Execution and thoughtfulness put into the solving the problem
- The overall design and user experience
- Cleanliness of screen design and user flow
- Ease of use
Submission & Source Files
Preview Image
Please create your preview image as one (1) 1024x1024px JPG or PNG file in RGB color mode at 72dpi and place a screenshot of your submission within it.
Submission File
- Submit JPG/PNG image files based on the challenge submission requirements stated above
- MarvelApp link for review and to provide feedback
Source Files
All source files of all graphics created in either Adobe Photoshop, Illustrator, XD, or Sketch and saved as an editable layer
Final Fixes
As part of the final fixes phase, you may be asked to modify your graphics (sizes or colors) or modify overall colors.
Please read the challenge specification carefully and watch the forums for any questions or feedback concerning this challenge. It is important that you monitor any updates provided by the client or Studio Admins in the forums. Please post any questions you might have for the client in the forums.