Prequalification is live

2024
six 2024-07-09 13:43:20 +02:00
parent 2e53f866e5
commit 76ed001352
7 changed files with 49 additions and 46 deletions

BIN
.README.md.swp 100644

Binary file not shown.

View File

@ -11,12 +11,14 @@ Requirements to be included in the .pdf document to pass:
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?
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.
You should be able to solve this challenge in a maximum of 5-8 hours, as we are not requesting a full detailed business plan. It is enough if we see that you understand why/how a project can succeed and stay alive on the market. If you need some help, here is a complete guide: https://www.youtube.com/watch?v=xLH-lNChzI4
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: 0xd870fd076f038801fbb60ce4e4d63b5cc06867b8bb917b06c5f13237e93a02aa_
_Keccak256: 0xcbea517b9d896ea084e2978588dd17073adf2eaf2a5a01b8b9123ceb990c38d4_
_Challenge author: six_

View File

@ -1,13 +1,15 @@
## Entropy with Shannon
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}
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}
Steps: Base64 -> Hex (no delimiters) -> Shannon entropy up to 15 digits
Steps: Base64 -> Hex (None delimiters) -> Shannon entropy up to 17 digits
If you have solved this challenge, please send your code along with the registration.
Reference: https://en.wikipedia.org/wiki/Entropy_(information_theory)
_Keccak256: 0x513b0aa1dcded5f38352d6b9ef729bb0ae4069489e0c2603dce4b91a3f1433d0_
Hint: The Cyber Chef is your friend.
_Keccak256: 0x706fe2c39293c81a414eba40ba10c73a74fbbf1db135976f09eb886c1f25c308_
_Challenge author: six_

View File

@ -1,9 +1,7 @@
## You can figure it out - Entry Solidity challenge
TBA
Find the flag in the smart contract. Easy.
Link to smart contract: TBA
_Keccak256: _
_Keccak256: 0x536735665ea9e6c2fe9a103cc8b2a32dcfa1f3c68974a2710425ecb71cc32af3_
_Challenge author: six_

View File

@ -0,0 +1,32 @@
// 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

@ -1,28 +0,0 @@
## Implement Gandalf's blockchain (AI related)
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 or networking needed here, just the process of block creation):
- 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

@ -2,11 +2,9 @@
The [Polkadot Championship](https://polkadotchampionship.org/) is an open web3/cryptocurrency contest consisting of a qualification phase and a main event.
Two new challenges will be coming next week!
# Qualification
To qualify, you must solve at least 3 challenges from the 5 provided in this repository.
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.
### The process
@ -14,17 +12,13 @@ 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{......}.
[Submit your solutions in this web form - coming soon TBA](https://) to ask for an invitation.
[Register and submit your prequalification solutions in this web form](https://www.cognitoforms.com/unconditionalpeace/polkadotchampionship2024prequalification) 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 flags have the following respective Keccak-256 hash values:
```
TBA Example - 0xdbd5381511b2b9b20ee59bcefcb7f76650030d20e99886fa03b3c3f5cef47d37
```
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.
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:
```
@ -34,7 +28,10 @@ echo 'PC{This_Could_be_a_Flag.!}'|keccak256
## List of prequalification challenges
Medium - TBA -
Easy - Entry Solidity
Medium - Hidden in Rust
Medium - Entropy
Hard - Business Dev
# Main event