{"id":16835420,"url":"https://github.com/defuse/juggler-pow","last_synced_at":"2025-04-05T10:26:15.498Z","repository":{"id":66227589,"uuid":"43672284","full_name":"defuse/juggler-pow","owner":"defuse","description":"A memory-but-not-time asymmetric proof-of-work function.","archived":false,"fork":false,"pushed_at":"2016-03-01T17:19:59.000Z","size":370,"stargazers_count":1,"open_issues_count":17,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-10T21:19:10.786Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/defuse.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":"2015-10-05T08:10:26.000Z","updated_at":"2020-08-27T18:03:11.000Z","dependencies_parsed_at":"2023-06-03T04:15:24.123Z","dependency_job_id":null,"html_url":"https://github.com/defuse/juggler-pow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/defuse%2Fjuggler-pow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/defuse%2Fjuggler-pow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/defuse%2Fjuggler-pow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/defuse%2Fjuggler-pow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/defuse","download_url":"https://codeload.github.com/defuse/juggler-pow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247321241,"owners_count":20919951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-10-13T12:10:14.396Z","updated_at":"2025-04-05T10:26:15.478Z","avatar_url":"https://github.com/defuse.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Juggler Proof-of-Work\n=======================\n\n**THIS CODE IS EXPERIMENTAL AND SHOULD NOT BE USED FOR ANYTHING.**\n\nJuggler is a proof-of-work puzzle system that requires lots of computing time\n*and memory* to solve, but very little memory to verify.\n\nUnfortunately, it *does* require lots of computing time to verify, but it is\na simpler operation, so it is still faster to check than it is to solve. It may\nbe possible to remove this computational requirement on the verifier by using\nfancy crypto voodoo; I don't know yet.\n\nHere are some rough performance characteristics using BLAKE2 reduced to 3 rounds\nas the hash function on my AMD FX-8370:\n\n- 0.5GB: 90 seconds proof, 20 seconds verify.\n- 1.0GB: 180 seconds proof, 40 seconds verify.\n\nProof sizes are rather large, ranging from 1KB to 8KB depending on the\nparameters. The size is tunable, trading off (I'm guessing) TMTO resistance.\n\nI haven't made any attempt to tune the parameters or even make them consistent\nwith each other, so the actual performance could be much better or much worse.\n\nIf you want to know how it works, look at the code. Sorry I'm tired and would\nrather sleep than write up an English explanation right now.\n\nReport bugs/ideas by opening GitHub issues.\n\nRelated Work\n-------------\n\nThe idea for this proof-of-work puzzle came from my attempts to\nunderstand/break:\n\n- [Asymmetric proof-of-work based on the Generalized Birthday problem](https://eprint.iacr.org/2015/946.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdefuse%2Fjuggler-pow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdefuse%2Fjuggler-pow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdefuse%2Fjuggler-pow/lists"}