{"id":13631039,"url":"https://github.com/ZenGo-X/ShareLock","last_synced_at":"2025-04-17T18:31:47.814Z","repository":{"id":51918423,"uuid":"188046250","full_name":"ZenGo-X/ShareLock","owner":"ZenGo-X","description":"ShareLock: mixing for cryptocurrencies from multiparty ECDSA","archived":false,"fork":false,"pushed_at":"2022-12-03T12:51:56.000Z","size":5776,"stargazers_count":51,"open_issues_count":2,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-01T22:47:27.350Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/ZenGo-X.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}},"created_at":"2019-05-22T13:37:32.000Z","updated_at":"2024-07-17T14:14:15.000Z","dependencies_parsed_at":"2023-01-23T05:00:53.510Z","dependency_job_id":null,"html_url":"https://github.com/ZenGo-X/ShareLock","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/ZenGo-X%2FShareLock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZenGo-X%2FShareLock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZenGo-X%2FShareLock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZenGo-X%2FShareLock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZenGo-X","download_url":"https://codeload.github.com/ZenGo-X/ShareLock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223762873,"owners_count":17198384,"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-08-01T22:02:08.155Z","updated_at":"2024-11-08T22:31:00.117Z","avatar_url":"https://github.com/ZenGo-X.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# ShareLock\nMixing for Cryptocurrencies from Multiparty ECDSA (https://eprint.iacr.org/2019/563)\n\n## Privacy issues on blockchains\nOn blockchains all transaction data is public. If any of one's unique identifier (name, e-mail, Twitter handle) is linked to one of her on-chain addresses, then financial privacy is permanently lost. The loss of financial privacy allows an attacker to assess the wealth of an individual, company or organization. Moreover, also the consumption behaviour of an individiual or company might be revealed this way: how much they pay to suppliers, employees etc.  \n\n## ShareLock protocol\nParticipants deposit to a contract, then they run off-chain a distributed key generation (DKG) protocol and threshold sign the list of the addresses derived from the threshold public keys.\nAny of the participants, or say a wallet company, we call this party an activator could poke the contract with the threshold signed transaction to make the contract sending out the mixed coins to the addresses yielded from the DKG.\n\nIf parties are unable to threshold sign the “poke” transaction, then after a time-out they are able to withdraw their dirty coins (unmixed) back to their original addresses.\n\nSince security is proven in the UC framework one could just pick her favourite threshold ECDSA protocol. In the paper we sticked to the [GG’19 paper](https://eprint.iacr.org/2019/114.pdf). However one could also use threshold BLS in order to avoid interactivity in the off-chain signing phase.\n\n### Advantages over other constructions\nMost of other constructions, [Miximus](https://github.com/barryWhiteHat/miximus) and [Vitalik's proposal](https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/rJj9hEJTN?type=view), use zkSNARK proofs, therefore they rely on a trusted setup. All of the other constructions use tremendous amount of gas: Miximus requires cca. 2M gas for the withdrawal tx, [Möbius](https://github.com/clearmatics/mobius) needs 350,000n gas for the witdhrawal tx, where n is cardinality of the anonymity set. On the other hand ShareLock uses minimal resources of the blockchain, while not relying on a trusted setup.\n\n## Contact us!\nFeel free to [reach out](mailto:github@kzencorp.com) or join the KZen Research [Telegram]( https://t.me/kzen_research) for discussions on code and research.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZenGo-X%2FShareLock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FZenGo-X%2FShareLock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZenGo-X%2FShareLock/lists"}