From 2840d01de46d886c5c4ea418160234c0ce33ffa9 Mon Sep 17 00:00:00 2001 From: six <51x@keemail.me> Date: Tue, 6 Dec 2022 00:54:24 +0100 Subject: [PATCH] Main Challenges --- Main_Challenges/CCTF/Challenge.md | 19 +++ Main_Challenges/KILT/Challenge.md | 16 +++ Main_Challenges/Momentum/Challenge.md | 11 ++ .../OnlyForJudgesMentors/Challenge.md | 14 ++ Main_Challenges/Privacy_Research/Challenge.md | 23 ++++ Main_Challenges/Proposal.md | 14 ++ Main_Challenges/RMRK/Challenge.md | 18 +++ Main_Challenges/Unit/Challenge.md | 130 ++++++++++++++++++ 8 files changed, 245 insertions(+) create mode 100644 Main_Challenges/CCTF/Challenge.md create mode 100644 Main_Challenges/KILT/Challenge.md create mode 100644 Main_Challenges/Momentum/Challenge.md create mode 100644 Main_Challenges/OnlyForJudgesMentors/Challenge.md create mode 100644 Main_Challenges/Privacy_Research/Challenge.md create mode 100644 Main_Challenges/Proposal.md create mode 100644 Main_Challenges/RMRK/Challenge.md create mode 100644 Main_Challenges/Unit/Challenge.md diff --git a/Main_Challenges/CCTF/Challenge.md b/Main_Challenges/CCTF/Challenge.md new file mode 100644 index 0000000..d79d587 --- /dev/null +++ b/Main_Challenges/CCTF/Challenge.md @@ -0,0 +1,19 @@ +# CCTF Challenge for Polkadot Metaverse Championship + +## Description +CCTF is a Capture the Flag (CTF) game. CTF in computer security is an exercise in which 'flags' are secretly hidden in purposefully-vulnerable programs or websites. Competitors steal flags either from other competitors (attack/defense-style CTFs) or from the organizers (jeopardy-style challenges). + +From CCTF volume 9, we have started to use a decentralized system: Solidity smart contract deployed and players send signed messages. Flags became private keys. We replaced CTFd to our smart contract, but it needs improvements. + +## Task + +Improve the CCTF smart contract. You can improve the flag submission (eg. fix the hidden vuln from the last game), add features or create a frontend. Be creative, make something useful. + + +## Links, sources + +Solidity smart contract deployed address is 0x36a1424da63a50627863d8f65c0669da7347814a - find on Polygon network. + +Website: https://cryptoctf.org/ + +Blog the ECDSA forgery: https://cryptoctf.org/2022/09/11/writeup-of-flag-submission-forgery-by-si/ diff --git a/Main_Challenges/KILT/Challenge.md b/Main_Challenges/KILT/Challenge.md new file mode 100644 index 0000000..4fc3a94 --- /dev/null +++ b/Main_Challenges/KILT/Challenge.md @@ -0,0 +1,16 @@ +# KILT Protocol Challenge for Polkadot Metaverse Championship + +## Description +With the birth of the metaverses digital identities are will be an integral building block of Web3. +We have seen identity abused on the application layer in Web2, let's not do the same mistake when building out the metaverse. +DIDs are the decentralized identifiers for the future of Web3, and this challenge is to make them usable for the metaverse. + +## Task +- Integrate KILT DIDs into a metaverse project as an identity layer (e.g. Kusamaverse). +- Add authentication to the metaverse +- Be creative! +- BONUS: make a PR into the metaverse project's repo + +## Links, sources +docs.kilt.io +kusama.momentum.xyz diff --git a/Main_Challenges/Momentum/Challenge.md b/Main_Challenges/Momentum/Challenge.md new file mode 100644 index 0000000..87bf4c1 --- /dev/null +++ b/Main_Challenges/Momentum/Challenge.md @@ -0,0 +1,11 @@ +# Momentum/Kusamaverse Challenge for Polkadot Metaverse Championship + +## Description +This is a creative project, we recommend to use it as a proposal challenge. + +## Task +Get into Kusamaverse and figure out how you'd improve it or rebuild it from scratch to create an even better metaverse experience. + + +## Links, sources +https://kusama.momentum.xyz/ diff --git a/Main_Challenges/OnlyForJudgesMentors/Challenge.md b/Main_Challenges/OnlyForJudgesMentors/Challenge.md new file mode 100644 index 0000000..52b8b17 --- /dev/null +++ b/Main_Challenges/OnlyForJudgesMentors/Challenge.md @@ -0,0 +1,14 @@ +# Judge&Mentor Challenge for Polkadot Metaverse Championship + +## Description +Fun challenge for the judges and mentors. Totally optional, but it is cool to show-off your skills! Show everyone why you are in the position! :) + +## Task +1. Play an arcade or VR game with other judges/mentors. +2. Record the experience on blockchain (anything works, be creative, try to make it fun) + +Tip: you could use some strange languages, encoding or fun, unusual practices to solve this. Eg. Bitcoin's smart contract or this: +++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++ + +## Links, sources +It doesn't apply here :) You have the whole location, show us something cool! diff --git a/Main_Challenges/Privacy_Research/Challenge.md b/Main_Challenges/Privacy_Research/Challenge.md new file mode 100644 index 0000000..bee0efa --- /dev/null +++ b/Main_Challenges/Privacy_Research/Challenge.md @@ -0,0 +1,23 @@ +# Privacy Challenge for Polkadot Metaverse Championship + +## Description +This is a privacy research challange. Take is as a proposal. + +## Task +Do a research on privacy and what data is taken by the chosen project - list below. You need to test what kind of data can be logged and where by the service provider, for example: does the backend receive your browser user-agent, screen resolution, battery state, etc. We know some of the projects listed here have serious issues, but a clear collection of what data is taken and where would it be stored could make things more transparent and increase awareness. + +So the task is to do the research, create list about data sent to the project servers/nodes and draw a topology. Don't spend on it more than an hour. + +Ideas on what to look for: +- Data in the HTTP/API requests +- Data in the WSS channels +- Network data +- Think about timing and even if you have multiple addresses, balance checks can give a good base for statistics on which addresses belong to the same wallet/browser +- Consider what would happen if you use the service through proxy/TOR/etc + +## Links, sources +https://kusama.momentum.xyz/ +https://polkadot.js.org/ +https://www.talisman.xyz/ +https://metamask.io/ +https://acala.network/ diff --git a/Main_Challenges/Proposal.md b/Main_Challenges/Proposal.md new file mode 100644 index 0000000..fe9f384 --- /dev/null +++ b/Main_Challenges/Proposal.md @@ -0,0 +1,14 @@ +# Proposal Template - Challenge Name + +## Team name +Add your team's name here. + +## Short description of your proposal +A few sentences on what your team is proposing. + +## Technical details +Explain the technical details and how you'd solve the challenge. Optionally you can add pseudocode. + +## Topology + +Please provide a drawn topology, you can use https://draw.io/ diff --git a/Main_Challenges/RMRK/Challenge.md b/Main_Challenges/RMRK/Challenge.md new file mode 100644 index 0000000..17abbdd --- /dev/null +++ b/Main_Challenges/RMRK/Challenge.md @@ -0,0 +1,18 @@ +# RMRK Challenge for Polkadot Metaverse Championship + +## Description +RMRK (pronounced "remark") is a set of NFT legos that give NFTs infinite extensibility, hosted on the Kusama blockchain, Polkadot's canary network, without the need for parachains or smart contracts. + +## Task + +Be creative, chose one from below and implement it in the 24 hours or create a proposal. + +-Ticketing system as in docs - for metaverse events (https://docs.rmrk.app/usecases/ticketing) +-Skill system as in docs (https://docs.rmrk.app/ownershipxp) +-An atomic swap widget for RMRK nfts +-A replicable collection indexer which is installable on any machine locally and only indexes the desired collections, for building project-specific markets +-A MV smart-city in Kanaria Skybreach - with equippable buildings and roads +-Anything from docs usecases (https://docs.rmrk.app/usecases) + +## Links, sources +https://www.rmrk.app/ diff --git a/Main_Challenges/Unit/Challenge.md b/Main_Challenges/Unit/Challenge.md new file mode 100644 index 0000000..d55692e --- /dev/null +++ b/Main_Challenges/Unit/Challenge.md @@ -0,0 +1,130 @@ +# Unit Challenge for Polkadot Metaverse Championship + +## Unit Network - Collaboration Track Challenges + +Participants may choose any one of the three challenges below to complete in a 24hr period. + +Each challenge relates to a combination and/or extension of existing Substate palettes. + +An emphasis is to provide the freedom and incentive for each participant to produce something useful related to any of the three options below. As such these are generic overviews to explain the desired application of each palette. + +Participants will be judged on the novelty, simplicity and security of their solutions. Please chose only one from the challenges below. + +## 1. Badges Module + +### Challenge + +Create the simplest and most secure Badges Module in 24hrs. The three essential components are: + +- Non-transferrable once received from the creator +-¢ Can be set to expire within a specified timeframe +-¢ Can be batch transferred to selected account / wallets + +Note: Any additional parameters that enhance the usability and feature set of the Badges Module will also be considered favourably by the judges. + + +### Overview + +The Badges Module provides functionality for asset management of ‘conditional’ fungible asset classes akin to Proof of Attendance Protocol tokens (POAPs) and Soulbound Tokens (SBTs) including: + +-¢ Asset Issuance +-¢ Asset Transfer (limited to a single transfer, can be batch transferred) +-¢ Asset Expiry (set by creator but not required) +-¢ Asset Destruction (if received but unwanted) + + +### Terminology + +- Asset Issuance: The creation of a new asset instance +- Asset Transfer: The action of transferring an asset instance from one account to another +- Asset Burning: The destruction of an asset instance +- Fungible Asset: An asset whose units are interchangeable +- Conditional Fungible Asset: An asset whose units are interchangeable but have conditions set by the creator to specify functionality + + +### Goals + +The badges system in Substrate is designed to make the following possible: + +- Issue a conditional asset to it’s creators account +- Move asset to another account (one time) non-transferable after being received +- Optionality to set an expiry date of the asset after which it is burned and removed from the total supply. +- Remove an accounts balance of an asset when requested by the asset creator and update the assets total supply. + + +### Usage + +The following example shows how to use the Badges Module in your runtime by exposing public functions to: + +- Issue a new conditional fungible asset set for a badge distribution event (airdrop) +- Query the conditional fungible asset holding balance of an account +- Query the total supply of a fungible asset that has been issued + + +### Use-cases + +Similar to SBTs and POAPs, the Badges Module may be used to: + +- Issue non-transferrable certificates (badges) to graduates of a course or program (Additionally with an option for the badges to expire, requiring the graduates to do a course refresher or to earn a new valid / current badge.) + +- Issue non-transferrable proof-of-attendance at an event + +- Issue a non-transferrable proof-of-participation / position in a community, team or initiative + +- Issue a non-transferrable ticket to access to an event + + +## 2. Subscription Module + +###Challenge + +Create the simplest and most secure Subscription Module in 24hrs. The three essential components are: + +- Allow authorisation of a recurring fungible asset debit, signed in a single transaction based on a time period set by subscription creator +- Subscription can be cancelled on either side, by the user wallet or subscription creator +- Query the success of each recurring asset transfer with a clear output value + +Note: Any additional parameters that enhance the usability and feature set of the Subscription module will also be considered favourably by the judges. + +### Overview + +The subscription module provides functionality to create an automated recurring asset debit from authorised wallets for a set period of time, or until cancelled by the wallet owner or subscription creator including: + +- Subscription Creation +- Subscription Details +- Subscription Plan +- Subscription Start Date +- Subscription Expiry Date +- Subscription Amount +- Subscription Period +- Subscription Period Description +- Subscription Unique +- Subscription Cancellation + +### Terminology + +- Subscription Creation: The creation of a new subscription instance +- Subscription Details: Holds the details of the subscription instance +- Subscription Plan: Type of subscription plan +- Subscription Start Date: (Optional) Date that the user will first be billed. (will default to the day the subscription is created if no startDate is specified) +- Subscription Expiry Date: (Optional) Date the last payment is processed +- Subscription Amount: Value in defined asset that the user pays at specified frequency +- Subscription Period: How often the user will be billed +- Scheduled Asset Transfer: The Automated Direct debit of assets from an authorised user wallet to a wallet defined by the subscription creator +- Subscription Unique: This value allows a single account to have more than one subscription +- Subscription Cancellation: Can be cancelled by either user wallet or subscription creator + +### Goals + +The Subscription module in Substrate is designed to make the following possible: + +- Create a recurring debit contract between user wallets and a subscription creator +- Define subscription parameters +- Query the success of each recurring asset transfer with a clear output value + + +### Use-cases + +- Create an automatic, token powered paywall to manage access to content or communities + +- Create a community / patron subscription model