{"id":15956084,"url":"https://github.com/jsign/merlin","last_synced_at":"2025-03-18T00:30:28.340Z","repository":{"id":171799549,"uuid":"648424685","full_name":"jsign/merlin","owner":"jsign","description":"Composable proof transcripts for public-coin arguments of knowledge","archived":false,"fork":false,"pushed_at":"2023-06-03T16:33:12.000Z","size":24,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T05:56:06.001Z","etag":null,"topics":["cryptography","fiat-shamir","transcript","zero-knowledge"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsign.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-06-02T00:15:35.000Z","updated_at":"2023-10-10T15:20:17.000Z","dependencies_parsed_at":"2023-07-25T20:30:52.982Z","dependency_job_id":null,"html_url":"https://github.com/jsign/merlin","commit_stats":null,"previous_names":["jsign/merlin"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fmerlin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fmerlin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fmerlin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fmerlin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsign","download_url":"https://codeload.github.com/jsign/merlin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243893558,"owners_count":20364914,"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":["cryptography","fiat-shamir","transcript","zero-knowledge"],"created_at":"2024-10-07T13:28:24.785Z","updated_at":"2025-03-18T00:30:28.335Z","avatar_url":"https://github.com/jsign.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg\n width=\"33%\"\n align=\"right\"\n src=\"https://merlin.cool/merlin.png\"/\u003e\n\n## Merlin: composable proof transcripts for public-coin arguments of knowledge\n[Merlin][merlin_cool] is a [STROBE][strobe]-based transcript\nconstruction for zero-knowledge proofs. It automates the Fiat-Shamir\ntransform, so that by using Merlin, non-interactive protocols can be\nimplemented as if they were interactive.\n\n## What is the goal of this repository?\nThis is a Go port of the [Rust implementation](https://github.com/zkcrypto/merlin) of the Merlin protocol. \n\nThe goal is to provide a Go implementation of the Merlin protocol that is compatible with the Rust implementation. This will allow for the use of Merlin in Go projects that need to interact with Rust projects that use Merlin.\n\nThe implementation tries to be close to the original Rust one, with some minor changes to make it more idiomatic and performant in Go.\n\n## Current development status\n\nThis library is on par with the reference implementation. It has been tested against test vectors generated from the reference implementation and it passes all of them.\n\nThis code hasn't been audited, so it should be used with caution.\n\n## About\nMerlin is authored by Henry de Valence, with design input from Isis\nLovecruft and Oleg Andreev.  The construction grew out of work with Oleg\nAndreev and Cathie Yun on a [Bulletproofs implementation][bp].\nThanks also to Trevor Perrin and Mike\nHamburg for helpful discussions.  Merlin is named in reference to\n[Arthur-Merlin protocols][am_wiki] which introduced the notion of\npublic coin arguments.\n\nThe header image was created by Oleg Andreev as a composite of Arthur Pyle's\n[The Enchanter Merlin][merlin_pyle] and the Keccak Team's [θ-step\ndiagram][keccak_theta].\n\n## License \nMIT\n\n[merlin_cool]: https://merlin.cool\n[bp]: https://doc.dalek.rs/bulletproofs/\n[strobe]: https://strobe.sourceforge.io/\n[am_wiki]: https://en.wikipedia.org/wiki/Arthur%E2%80%93Merlin_protocol\n[merlin_pyle]: https://commons.wikimedia.org/wiki/File:Arthur-Pyle_The_Enchanter_Merlin.JPG\n[keccak_theta]: https://keccak.team/figures.html","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsign%2Fmerlin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsign%2Fmerlin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsign%2Fmerlin/lists"}