{"id":19390367,"url":"https://github.com/nucypher/wcef-hackathon-2018","last_synced_at":"2026-03-19T09:36:56.538Z","repository":{"id":101544666,"uuid":"117368135","full_name":"nucypher/wcef-hackathon-2018","owner":"nucypher","description":"Guidelines for hackathon at WCEF 2018","archived":false,"fork":false,"pushed_at":"2018-01-14T17:43:25.000Z","size":1157,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-03T21:25:11.914Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nucypher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-13T18:33:36.000Z","updated_at":"2018-09-13T03:47:36.000Z","dependencies_parsed_at":"2023-06-05T10:00:18.683Z","dependency_job_id":null,"html_url":"https://github.com/nucypher/wcef-hackathon-2018","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nucypher/wcef-hackathon-2018","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nucypher%2Fwcef-hackathon-2018","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nucypher%2Fwcef-hackathon-2018/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nucypher%2Fwcef-hackathon-2018/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nucypher%2Fwcef-hackathon-2018/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nucypher","download_url":"https://codeload.github.com/nucypher/wcef-hackathon-2018/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nucypher%2Fwcef-hackathon-2018/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29915343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"ssl_error","status_checked_at":"2026-02-27T19:37:41.463Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T10:20:33.366Z","updated_at":"2026-02-27T21:33:01.852Z","avatar_url":"https://github.com/nucypher.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# wcef-hackathon-2018\nGuidelines for hackathon at WCEF 2018. \n\nNote: to qualify for a prize, your submission should be released under a permissive open source license (e.g. Apache, MIT, etc.).\n\nPlease join our Slack [group](https://nucypher-kms-slack.herokuapp.com/) and head to the dedicated **wcef-hackathon** channel to get help from NC developers. Also, find us at the hackathon itself to ask questions in person. \n\n# Background info about NuCypher\n\nNuCypher is a key management system which leverages proxy re-encryption to control access over encrypted data.\nYou can find the white paper [here](https://cdn2.hubspot.net/hubfs/2807639/NuCypher%20KMS%20Technical%20White%20Paper.pdf?t=1510526466105) (although you don't have to read it all!).\n\nSlides from the workshop are available [here](https://github.com/nucypher/wcef-hackathon-2018/blob/master/slides.pdf).\n\n# Possible tasks for the hackathon\n\n## Implementing proxy re-encryption library in languages other than Python or Javascript\n\nNuCypher uses a split-key proxy re-encryption scheme.\n\nWe treat [this module](https://github.com/nucypher/nucypher-pre-python/blob/master/npre/umbral.py) as a reference implementation - for the moment, it's our most readable, self-explaining implementation.\n\nWe are also working on a [higher-level implementation that we simply call pyUmbral](https://github.com/nucypher/pyUmbral).  Our flagship product is our KMS, which we will launch in the spring of 2018.  That too is open source, [available here](https://github.com/nucypher/nucypher-kms).\n\nIn brief, encryption and decryption is effectively [ECIES](https://en.wikipedia.org/wiki/Integrated_Encryption_Scheme), but the ciphertext (or, more accurately, the ephemeral public key) can be transformed so that the data can be shared with more than one recepient via re-encryption.\n\nPlease check out the [tutorial](https://blog.nucypher.com/proxy-re-encryption-playground-in-python-3bc66170b9bf) in order to set up the environment and play with re-encryption.\n\nWe need client libraries for the following languages: Go, Rust, C. If you wish to play with low-level cryptography in any of these languages (or even different ones if you like) - feel free to hack on this task.\n\n## UI for mining node management console\n\nOur mining nodes are the critical workhorses of the network.\nThey stake their tokens and, rather than confirming transactions, they re-encrypt ciphertexts.\n\nMining works in the following way:\n\n* Miner deposits the token (no less than a specified minimum amount);\n* Miner locks the tokens for a specified time T (T \u003e= 1 month);\n* Mining occurs. The miner performs the re-encryption task(s) during this period;\n* The Miner now has three options – he/she can chose to reinvest block rewards back into mining, take the profits, or to commence a gradual spindown of the node in the time T.\n\nWe would love to see visualisations/graphs so that the miner might learn how many tokens he/she could potentially earn with each option over time. \n\nThe UI should be a web UI, and can be built using the web tool of your choice (Python frameworks, nodejs frameworks, etc.) \n\n## UI for granting permissions\n\nThe purpose of NuCypher is key management / access management as a service.\nNuCypher enables the granting of permissions to different people (i.e. different public keys + ethereum addresses) either indefinitely, or for a specified timeframe. On-pay conditions can also be added. Permissions also need be revocable at any time.\n\nThis can be a web UI or a cross-platform desktop app.\nUse your favourite web framework, Qt, Electron, or anything you think is appropriate.\n\n\n## Public keys/certificates for TLS tied to Ethereum address\n\nOur nodes have to establish TLS connections.\nBut instead of using DNS, we want to tie the certificates to the Ethereum addresses.\nThe idea is that the certificate (or its hash) is signed and stored on Ethereum blockchain, and for the sake of TLS it's self-signed.\nWhen the connection is being established, the client will read the Ethereum address info (stored in cert metadata?), and check if this certificate is signed by the owner of that address. If so, the connection is established. If not, it fails.\n\nThe code for this task needs to be written in Python.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnucypher%2Fwcef-hackathon-2018","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnucypher%2Fwcef-hackathon-2018","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnucypher%2Fwcef-hackathon-2018/lists"}