Compare commits

..

No commits in common. "2024" and "2023" have entirely different histories.
2024 ... 2023

9 changed files with 100 additions and 179 deletions

View File

@ -1,153 +1,67 @@
# The Instituational Track: DeGov
# DAO Track
## Description
The Institutional Track, known as DeGov (Decentralized Governance), is designed to explore the application of decentralized governance models in institutional settings. This track focuses on creating innovative solutions that enable more democratic, transparent, and efficient governance structures within organizations, governments, and other institutional entities.
A DAO (Decentralized Autonomous Organization) services pre-defined goals - groups use it to reduce coordination failure and improve collaboration, security. It is an organization managed in whole or in part by decentralized computer program(s), with reputation system, voting and resoures handled through a blockchain.
How would that look like as a DAO, on top of Substrate? Or Gear Protocol is enough? Or just cryptography?
## What to do on this track?
Participants aree tasked with developing decentralized governance systems, tools for voting and decision-making, and systems for managing institutional processes in a decentralized manner. The goal is to create scalable and secure solutions that can be adopted by large entities to improve governance and stakeholder participation.
You need to implement a DAO structure. You can use all technologies existing in the Polkadot ecosystem, however Substrate is preferred.
## Use-case ideas
Topics you can choose from:
1. __Educational DAO__ - Every organization needs education, some of them are heavily focused on that specific aspect. Can we replace MOOCs, academies or universities with a DAO or these would be important parts of it? Create a DAO that incentivizes the participants to learn and teach each others about Web3. Consider the human factors, different roles, resources and how those would be handled to have a long-term future, topology, incentives, risks.
2. __Government DAO__ - How could a country work as a DAO? Create a system that provides basic funcionality for your imaginary decentralized country. Tip: you can use OpenGov or QRUCIAL DAO's reputation system in your implementation. Consider the following: How would people interact with the system? What incentivizes the members to keep running as a DAO? How do you avoid centralization efficiently? What are the risks and anti-fraud mechanisms?
3. __Turn an existing project DAO__ - Choose a project from the Polkadot ecosystem and work out how it could continue as a DAO. You can choose any of the already existing parachains (those that are not DAOs). Examples: Mosaic Chain, Interlay, Mandala Chain or CCTF. You can use all existing services, but need to implement the exact thing(s) that would turn these into DAOs.
If you need some ideas, here is a list of use-cases:
The submission will be evaluated based on the strength of the idea and the delivered proof of concept code. Substrate or Gear Protocal are preferred, but not a must - you can use EVM too. We give you a very free hand over the idea and the implementation, but it needs to be realistic and useful for the ecosystem.
- Proof of personhood
- DAO infrastructure (global network with many local groups of people)
- Decentralized Voting Systems
- Public Policy Decision-Making
- Transparent Budget Allocation
- Decentralized Project Management
- Immutability: Connecting private blockchain to public
- Conflict Resolution Mechanism
- Insurance and proving events
## References
## Where to start?
https://en.wikipedia.org/wiki/Decentralized_autonomous_organization
https://polkadot.com/ - Always start here and look at already existing projects, SDKs and tools you can use to build your project.
https://github.com/deltaDAO/awesome-dao
https://unique.network/ - If you want to create an NFT based project.
https://g.g6.network/g6-networks-release/ - If you want to build on G6 Network's technology stack.
https://www.mandalachain.io/ - If you want to build for onboarding users.
## Unique Network - Specific Challenge
Topic: NFT as a data containter
Type: Data obfuscation in an on-chain NFT record - managing data access and visibility.
Description: The challenge is based around the concept of on-chain and off-chain data storage accessibility in terms of data obfuscation. Unique Network NFTs provide a very flexible mechanism for storing data both on-chain and off-chain including handling mutability and rights in that respect (who can modify). The question of who is allowed to see the raw data is a completely different issue and is handled at the application level. Your task is to come up with a simple mechanism which allows data obfuscation of data stored via the NFT providing a way for an application to manage which data can be publicly visible and which is obfuscated and availible only to the application. There are no limitations set in regard to how obfuscation is performed, it is entirely in at the discretion of the developer/hacker.
- Demo of a collection and token: https://github.com/UniqueNetwork/workshop-nft-data
- SDK: https://docs.unique.network/build/sdk/getting-started.html
- Accounts and Wallets: https://docs.unique.network/tutorials/work-with-accounts.html
- Unique Schema 2.0: https://docs.unique.network/tutorials/createCollectionV2 https://docs.unique.network/reference/schemas/
- React Boilerplate: https://github.com/UniqueNetwork/accounts-react-example
Mentor from Unique: Max Andreev - Senior Developer (availability for mentoring slots on Telegram - check mentoring group chat)
## G6 Network - Specific Challenge
Topic: Citizens of Polkadot
Type: Front-end for Substrate based blockchains
Description: Research Proof of Personhood and use the frontend solutions of G6 Networks to build on. You'll need to connect to https:/testnet.g6.network/ and create a useful product for the Polkadot citizens. Who are the citizens of Polkadot? Anyone who uses Polkadot and engages with the community. We are decentralized and autonomous. Create your futuristic dream product for a global network of many local groups.
- G6 Networks open source code and front-end: https://g.g6.network/g6-networks-release/
- G6 Networks White paper: https://g6-networks.gitbook.io/g6-networks/
- G6 networks official Telegram group: https://t.me/g6networks
Mentors: Serge, Johan and six (availability for mentoring slots on Telegram - check mentoring group chat)
## How to submit?
Submit your solution in email to: contact@cryptoctf.org
What to include: Project name, description, which ecosystem or team you built it for*, git link and presentation link (can be in git).
*On this track you can choose from: Polkadot (anything Polkadot/Substrate, up to $2000 rewards), Unique Network (Up to $2000 rewards), G6 Networks (Up to $10000 rewards), Mandala Chain (Up to $10000 rewards), GotEm (up to $2000 rewards). You can also choose two projects, eg. Polkadot and G6 Networks, but you'll get a harder time scoring.
Remember: Polkadot is also a DAO basically, but without the legal structure.
# The Physical Track: RWA and DePin
# Security and Privacy track
## Description
The Physical Track focuses on Real-World Assets (RWA) and Decentralized Physical Infrastructure Networks (DePin). This track aims to bridge the gap between the digital and physical worlds by leveraging blockchain technology to tokenize and manage physical assets, as well as to build decentralized networks for physical infrastructure.
This track is about improving the security and privacy of the ecosystem.
## What to do on this track?
Participants work on projects that involve the tokenization of real-world assets, such as real estate, commodities, or physical products. Additionally, they will develop decentralized networks and protocols that facilitate the management and operation of physical infrastructure, ensuring transparency, security, and efficiency. They can mix the two technologies use choose to build only RWA or only DePin focues programs, applications.
Choose one from the list and implement a meaningful system related to this track's topic:
## Use-case ideas
- Gear / VARA - https://www.gear-tech.io/
- Sygma - https://buildwithsygma.com/
- SubWallet - https://www.subwallet.app/
- DCTF / CCTF - https://git.hsbp.org/CCTF/DCTF
- Mandala Chain - https://www.mandalachain.io/
- Substrate - https://substrate.io/
- Your own privacy protecting implementation that is pluggable to most Web3 systems.
If you need some ideas, here is a list of use-cases:
The project you deliver needs to have seamless integration (to wherever it applies), should not make the systems too complicated to use or manage. ZK and pure cryptographic implementations are preferred. You can think about ideas like: When you see someone's message, how can you verify it is really from that person, eg. in news/web3 socials/etc? How can you catch malicious activity on blockchain, for example in games? How to stop fraud? How to tell someone s/he is allowed to do something without revealing their identity?
- Decentralized Energy Networks
- Supply Chain Transparency
- Crowdsourced Physical Infrastructure
- Decentralized Storage Networks
- Tokenized Real Estate (that's probably the worst idea)
## Where to start?
https://polkadot.com/ - Always start here and look at already existing projects, SDKs and tools you can use to build your project.
https://unique.network/ - If you want to create an NFT based project.
https://g.g6.network/g6-networks-release/ - If you want to build on G6 Network's technology stack.
https://mosaicchain.io/ - They have a unique validator selection consensus connected to NFT and possible DePin features.
## How to submit?
Submit your solution in email to: contact@cryptoctf.org
What to include: Project name, description, which ecosystem or team you built it for*, git link and presentation link (can be in git).
*On this track you can choose from: Polkadot (anything Polkadot/Substrate, up to $2000 rewards), Unique Network (Up to $2000 rewards), G6 Networks (Up to $10000 rewards), Mandala Chain (Up to $10000 rewards). You can also choose two projects, eg. Polkadot and G6 Networks, but you'll get a harder time scoring.
The submission will be evaluated based on the strength of the idea and the delivered proof of concept code.We give you a very free hand over the idea and the implementation, but it needs to be realistic and useful for the ecosystem.
# AI on Blockchain Track: For real?
# AI Blockchain track
## Description
## Description and task
The AI on Blockchain Track explores the integration of artificial intelligence with blockchain technology. This track challenges participants to create innovative applications that leverage the strengths of both AI and blockchain to solve complex problems, enhance security, and provide new capabilities in various domains.
Is this a crazy idea or there could be realistic and meaningful implementations where AI is running on top of blockchain? Leave the buzzwords behind and look into the technology, code and math: find a way if blockchain+AI can make any sense. Think about Polkadot's Coretime model and ZK possibilities as well.
## What to do on this track?
The submission will be evaluated based on the strength of the idea and the delivered proof of concept code.We give you a very free hand over the idea and the implementation, but it needs to be realistic and useful.
Participants focus on developing AI-driven systems, decentralized AI models, and blockchain-based platforms for training and deploying AI algorithms. The goal is to demonstrate the potential of combining AI and blockchain to create intelligent, autonomous, and secure systems.
## References
https://wiki.apillon.io/ - You can use Apillon for your infrastructure.
## Use-case ideas
If you need some ideas, here is a list of use-cases:
- Anti-AI algos, differntiating between human and AI/deepfakes
- Autonomous AI Agents
- Decentralized AI Model Training
- AI-Driven Smart Contracts
- AI-Based Fraud Detection
- AI-Powered Predictive Analytics
## Where to start?
https://polkadot.com/ - Always start here and look at already existing projects, SDKs and tools you can use to build your project.
https://polkabot.ai/ - AI-powered education on chain, in the Polkadot ecosystem.
https://www.cere.network/ - Decentralized storage solution for streaming and AI.
https://github.com/Qrucial/QRUCIAL-DAO/ - QRUCIAL DAO's solution for connecting off-chain executables to on-chain decisions.
## How to submit?
Submit your solution in email to: contact@cryptoctf.org
What to include: Project name, description, which ecosystem or team you built it for*, git link and presentation link (can be in git).
*On this track you can choose from: Polkadot (anything Polkadot/Substrate, up to $2000 rewards), Unique Network (Up to $2000 rewards), G6 Networks (Up to $10000 rewards), Mandala Chain (Up to $10000 rewards), Cere Network (up to $2000 rewards). You can also choose two projects, eg. Polkadot and G6 Networks, but you'll get a harder time scoring.
https://wiki.polkadot.network/docs/polkadot-direction
https://www.youtube.com/watch?v=VwLGGYhGkL8
https://www.ibm.com/topics/blockchain-ai

View File

@ -8,10 +8,8 @@ Requirements to be included in the .pdf document to pass:
2. Executive summary: What is being solved here, why do you initiate the web3 business?
3. Product description and explanation of the solution with technical terms
4. Team, roles and responsibilites
5. Financial planning for the first year (with strong focus on what products, services will bring income to the project)
6. Roadmap to your self-sustaining project (with strong focus on revenue calculations)
Remember to keep asking yourself: how will this project make money?
5. Financial planning for the first year
6. Roadmap to your self-sustaining project
We recommend to create a plan for something you want to build during the hackathon. If you already have a team in your mind, you can submit the same plan together, but we will put a way harder scoring on you, as you are not doing that alone.
@ -19,6 +17,6 @@ You should be able to solve this challenge in a maximum of 5-8 hours, as we are
Send your ready web3 business plan to contact@cryptoctf.org and you get feedback after we have reviewed it. The flag will be sent as an answer mail.
_Keccak256: 0xcbea517b9d896ea084e2978588dd17073adf2eaf2a5a01b8b9123ceb990c38d4_
_Keccak256: 0xd870fd076f038801fbb60ce4e4d63b5cc06867b8bb917b06c5f13237e93a02aa_
_Challenge author: six_

View File

@ -1,15 +1,13 @@
## Entropy with Shannon
What is the Shannon Entropy of "Web3Mantra" after turning it into Base64, then to consecutive Hex (no space or any delimiters)? To generate the flag, insert the value with exactly 17 digits after the decimal point, for example: PC{4.325817531314781}
What is the Shannon Entropy of "DOGE" after turning it into Base64, then to consecutive Hex (no space or any delimiters)? To generate the flag, insert the value with exactly 15 digits after the decimal point, for example: PC{4.325817531314781}
Steps: Base64 -> Hex (None delimiters) -> Shannon entropy up to 17 digits
Steps: Base64 -> Hex (no delimiters) -> Shannon entropy up to 15 digits
If you have solved this challenge, please send your code along with the registration.
Reference: https://en.wikipedia.org/wiki/Entropy_(information_theory)
Hint: The Cyber Chef is your friend.
_Keccak256: 0x706fe2c39293c81a414eba40ba10c73a74fbbf1db135976f09eb886c1f25c308_
_Keccak256: 0x513b0aa1dcded5f38352d6b9ef729bb0ae4069489e0c2603dce4b91a3f1433d0_
_Challenge author: six_

View File

@ -1,7 +1,9 @@
## You can figure it out - Entry Solidity challenge
Find the flag in the smart contract. Easy.
Figure out the flag by using the deployed Solidity DCTF smart contract. The goal is to find the password for the latest challenge started and insert it into the flag format, for example PC{IfoundIT}. Of course this is not the correct one, but if you look at the code and the explorer, even a business mind can find it :)
_Keccak256: 0x536735665ea9e6c2fe9a103cc8b2a32dcfa1f3c68974a2710425ecb71cc32af3_
Link: https://moonbase.moonscan.io/address/0x70f0cec3c99103113d96ed8ad82ae6a8d9a735a0#code
_Keccak256: 0x2a2b9543f5867d51151a817d282fbb3abf0e763484f23867ca238f680802e9ab_
_Challenge author: six_

View File

@ -1,32 +0,0 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract PolkadotCTF {
address public winner;
event FlagCaptured(address indexed player);
// Encoded parts of the flag as byte arrays
bytes private part1 = hex"50437b497354686973";
bytes private part2 = hex"546865466c61674f72";
bytes private part3 = hex"644e6f747d";
// Function to decode the parts and get the full flag
function decodeFlag() public view returns (string memory) {
return string(abi.encodePacked(part1, part2, part3));
}
// Function to capture the flag
function captureFlag(string memory _solution) public {
string memory decodedFlag = decodeFlag();
require(keccak256(abi.encodePacked(_solution)) == keccak256(abi.encodePacked(decodedFlag)), "Incorrect solution");
winner = msg.sender;
emit FlagCaptured(msg.sender);
}
// Function to get the flag
function getFlag() public view returns (string memory) {
require(msg.sender == winner, "You are not the winner");
return decodeFlag();
}
}

View File

@ -0,0 +1,28 @@
## Implement Gandalf's blockchain
You need to reveal Gandalf's 8 words and create a chain of blocks with them: https://gandalf.lakera.ai/
Task is the create a local blockchain (no consensus/networking needed here):
- Beat Gandalf AI game, find all the 8 words. Put them in order. Each one of them will be the data in your block.
- Use | as delimiter between the words and the hash. Between the word and the hash, there is a - sign.
- How this looks like: GENESIS|WORD1-HASH|WORD2-HASH|WORD3-HASH
- Use SHA512 for the hashing algo. Start with the word and the delimiter and the first word: "GENESIS|WORD1-"
- Make sure to calculate the dash sign into the next hash. It is part of the block data. You only add the hash from the previous block, not all data!
- Everything is UPPERCASE.
If you are doing it correctly, you will have the following block hashes, starting from 0, Genesis:
0. 8288b35979d4e5dd5eee89a711ea5f41b04a17e7473a874c2b551844b57c0c24545cdbe7abf8e68dcd8da18a04ca8a1cc5798065ddb4fb32443136a589b3439d
1. 3ee14c107bd6b3e050fac7b0a2ff42a474b10c789830d03f22cdf242a773905a88ac98ebcafdd2e8c0134c3fe285bb58f52f68a1d873290cf2430bb0b22429a7
2. 058e7624f1d69625f1ecc4cdf41921fc7ffd31a38de10c9dab543986d68f47363974d2ea25832e6eacc5425afd685c11852fdd66793e7547dc9773cffb0431e8
3. 2990022ea32e47959b83bb7faf36e430c046533da075ca6aabad7269891195480d86d9b76ac29b22268ef1ef419c147291b8ac9fea0f1b737dfce360be384764
4. ff0dd5196c836fb663b87aa0e8b647e0862646673f8b6eca3a38866e02290e02d95c94df83cd4be1ac3900f9e69d00c1d9ab5a30a5e4f6102a97d25eeab8ecf1
5. 921be30124a505711224fb6de0955bd7e4c3b518aa4d5f65b6242c73fc1d4d978a8251c7d83f775aa14c00d01a5225085291c5df373a3bc18945b854d12e868f
6. This is secret! You need to insert the correct word plus the hash in order to count the final hash for the 7th block, which will be the flag.
Now that you solved Gandalf's game and wrote a local blockchain (without networking) it is time for the flag. Create the hash of block number 7 with the following data and hash it: "ICANHAZCHAIN-{PREVIOUS BLOCK}". The hash of this final block will be your flag.
The flag is the 7th block's sha512sum inserted into the PC{...} format. Pro tip: if you have issues with hash results, check with hexdump.
_Keccak256: 0xdbd5381511b2b9b20ee59bcefcb7f76650030d20e99886fa03b3c3f5cef47d37_
_Challenge author: six_

View File

@ -1,4 +1,4 @@
## Get rusty from this old challenge
## You get rusty from this challenge
Yes, I know that you know... if you have played CTFs before this is a nobr4in3r. Otherwise just look at the binary. Now you know why this challenge is rusty?

View File

@ -1,10 +1,12 @@
# Polkadot Championship 2024 - Challenges & Dev Qualification & Judging
# Polkadot Championship 2023 - Challenges
The [Polkadot Championship](https://polkadotchampionship.org/) is an open web3/cryptocurrency contest consisting of a qualification phase and a main event.
# Developer Qualification
Two new challenges will be coming next week!
To be able to register and qualify, you must solve at least 2 challenges from the 4 provided in this repository. Please, see the Prequalification_Challenges folder for details.
# Qualification
To qualify, you must solve at least 3 challenges from the 5 provided in this repository.
### The process
@ -12,13 +14,21 @@ Each challenge has its own subfolder in the "Prequalification_Challenges" folder
The format of a solution is an ASCII string of the form __PC{...}__, like PC{#\This_Could_be_Flagz/#}. A correct solution is also called a flag. What you are looking for in each challenge is to generate the string between PC{......}.
[Register and submit your prequalification solutions in this web form](https://www.cognitoforms.com/unconditionalpeace/polkadotchampionship2024prequalification) to ask for an invitation.
[Submit your solutions in this web form](https://www.cognitoforms.com/UnconditionalPeace/PolkadotChampionshipPrequalification) to ask for an invitation.
(If you've played Capture The Flag (CTF) games before, this process should be familiar to you.)
### Offline flag verification
You can verify the correctness of your solutions before submitting the form. The hash value of each pre-qualification challenge can be found in its respective folder.
You can verify the correctness of your solutions before submitting the form. The flags have the following respective Keccak-256 hash values:
```
Entry solidity - 0x2a2b9543f5867d51151a817d282fbb3abf0e763484f23867ca238f680802e9ab
Hidden in rust - 0x16933d9797b98f43d30b30fd198c53b1ba3372f6a5d6a11faf08fa6d06e8b208
Business plan - 0xd870fd076f038801fbb60ce4e4d63b5cc06867b8bb917b06c5f13237e93a02aa (you get this after manual confirmation)
Entropy - 0x513b0aa1dcded5f38352d6b9ef729bb0ae4069489e0c2603dce4b91a3f1433d0
Gandalf - 0xdbd5381511b2b9b20ee59bcefcb7f76650030d20e99886fa03b3c3f5cef47d37
```
To calculate the Keccak-256 hash of a string, you can, for example, install `keccak256-cli` using `cargo`, and then use the `keccak256` command like so:
```
@ -28,18 +38,23 @@ echo 'PC{This_Could_be_a_Flag.!}'|keccak256
## List of prequalification challenges
Easy - Entry Solidity
Medium - Hidden in Rust
Medium - Entropy
Hard - Business Dev
Easy - Entry solidity - This is a challenge anyone with basic web3 knowledge can solve.
Easy-Medium - Hidden in rust - It takes a little extra to sovle it.
Medium - Entropy - It takes a little extra to sovle it.
Medium - Gandalf - You need to code a simple blockchain without networking.
Hard - Web3 business plan - Creation of a legit web3 business plan can be tough.
# Main event
The main event consists of a 2-day hackathon where projects can be finalized. You can start before the main event and form teams too!
The main event consists of a 3-day hackathon where projects can be finalized. First day is the day for education, second day is about DEADLINE MODE ON, then the third day is about the presentation of the projects. You can already get started with team formation and working on the main challenges!
Your final project needs to be conceived during the main event. Mentors and workshops will help you make it happen.
[Link to Track Challenges](https://git.hsbp.org/Web3_Championship/Polkadot_Championship_Challenges/src/branch/master/Main_Challenges.md)
[Link to Main Challenge Details](https://git.hsbp.org/Web3_Championship/Polkadot_Championship_Challenges/src/branch/master/Main_Challenges.md)
Playing teams will need to choose one challenge as their main one. Additionally, they need to choose one from the other tracks and create a proposal for solving them. You can already see good examples from last year's hackathon.
@ -49,8 +64,6 @@ The teams need to initialize a git project latest on the 2nd day of the hackatho
### Judging criteria
You need to present your project after the end of the 24 hour DEADLINE MODE ON period. We'll need your project name, team members, which ecosystem team you submit for and the pdf persentation. You'll have 10 minutes to explain your project and 5 minutes for Q&A.
Judges will score each team's project based on the following criteria:
- Idea, ecosystem fit