Jump to content

Zero-Knowledge - Multi Sig


Recommended Posts

Moin,

in dem Artikel wird gesagt das die ihre Bitcoin schützen indem sie das Geheimnis auf viele Leute aufteilen und das kein Beteiligter das gesamte Geheimnis kennt.

https://www.tradingview.com/news/cointelegraph:dacd3f295094b:0-exclusive-inside-a-swiss-nuclear-bunker-s-secret-bitcoin-vault/

Kennt jemand von euch Quellen die erklären wie so was funktioniert?

Wie man ein Geheimnis so aufteilt, so das man es auf viele Leute verteilen kann ist mir klar bzw. kann ich mir vorstellen.

Den Punkt zu dem mir auf Anhieb nicht einfällt wie er umgesetzt werden kann ist das Erzeugen eines aufgeteilten Geheimnisses wobei garantiert ist das NIEMAND also wirklich absolut NIEMAND das ganze Geheimnis kennen kann.

Wer dazu was beitragen kann oder Quellen kennt, würde mich interessieren, danke !!

Edited by groocer
  • Love it 1
Link to comment
Share on other sites

Das Zauberwort lautet:

MPC (multi-party computation)

Kurz erklärt; Ist ähnlich wie Multisig, nur, dass lediglich ein Seed vorhanden ist. Dieser Seed wird dann in N Teile gesplittet. Jeder Split wird dann verschlüsselt und aufgeteilt. Zum signieren einer Transaktion, muss dann jede Party mit ihrem Verschlüsselten Split unterschreiben. So wird der gesamte Seed niemals zusammengesetzt und niemand kennt den Split vom jeweiligen anderen Teilnehmer.

https://www.krayondigital.com/mpc-wallet-explained
https://hackernoon.com/a-guide-to-multi-party-computation-mpc
https://www.fireblocks.com/what-is-mpc/

Und für die Geeks:

https://www.youtube.com/watch?v=Qv4-vh-KJ1s
https://eprint.iacr.org/2013/784.pdf
https://www.comsys.rwth-aachen.de/fileadmin/papers/2015/2015-ziegeldorf-codaspy-coinparty.pdf
 

Edited by Lollip
  • Love it 1
  • Thanks 1
  • Like 1
Link to comment
Share on other sites

12 hours ago, Lollip said:

MPC (multi-party computation)

Kurz erklärt; Ist ähnlich wie Multisig, nur, dass lediglich ein Seed vorhanden ist. Dieser Seed wird dann in N Teile gesplittet.

MPC wird ja auch im verlinkten Artikel schon erwähnt.

Ich hatte @groocer allerdings so verstanden, dass ihn nicht das Aufsplitten des Seed per MPC oder sonstwas interessiert ("Wie man ein Geheimnis so aufteilt, so das man es auf viele Leute verteilen kann ist mir klar bzw. kann ich mir vorstellen."), sondern eher so:

Gibt es eine kryptografische sichere Methode, wie man den Seed gleich als N verschlüsselte Teile erzeugen kann, dass er nie vollständig und unverschlüsselt existiert? Andernfalls hätte man ja eine potentielle Lücke vor der Aufteilung per MPC?

Edited by PeWi
  • Love it 1
  • Thanks 1
Link to comment
Share on other sites

Wenn ich die Funktionsweise von MPC richtig verstanden habe, dann wird nicht der eigentliche Seed gesplittet und verschlüsselt, sondern ausgehend von dem Seed werden verschlüsselte Splits erstellt.
Das hat den Vorteil, dass die verschlüsselten Splits nachträglich ausgetauscht, erneuert oder verändert werden können, ohne dass der ursprüngliche Seed verändert werden muss.
Man kann also immer den selben Seed/Wallet halten, kann aber trotzdem neue Partys aufnehmen oder neue Splits ausgeben.

 

vor einer Stunde schrieb PeWi:

Gibt es eine kryptografische sichere Methode, wie man den Seed gleich als N verschlüsselte Teile erzeugen kann, dass er nie vollständig und unverschlüsselt existiert? Andernfalls hätte man ja eine potentielle Lücke vor der Aufteilung per MPC?


Vielleicht verstehe ich die Frage nicht richtig, aber es muss doch zu einem gewissen Zeitpunkt IMMER irgendwie der ursprüngliche Seed vorliegen. Auch wenn ich einen verschlüsselten Seed habe, so muss ich diesen ja irgendwo wieder entschlüsseln können, damit ich Zugriff erhalten kann.

Spontan hätte ich an das Shamir's Secret Sharing (SSS) gedacht, hier wird der Seed direkt in ein, z.B. 3/5 Split, verschlüsselt und ausgegeben. Man erhält dann 5 Teile, kann diese aufteilen, braucht aber zum wiederherstellen nur beliebige 3 Teile. Aber auch hier hat man ja zu Beginn 5 Teile. Werden die 5, oder auch nur 3 Teile, geleakt, dann kann man den Seed wieder zusammensetzen.

Der Prämisse nach "Not Your Keys, Not Your Coins" möchte ich am Anfang doch immer einen Seed haben, mit dem ich selbstständig meine Coins wiederherstellen kann.
Sollte es einen Anbieter geben, der mir nach Erstellen einer Wallet, einen so verschlüsselten Seed ausgibt, dass ich diesen ausschließlich wieder bei diesem Anbieter entschlüsseln kann, dann muss ich mich letztendlich ja wieder auf eine Instanz verlassen.

Vielleicht geht meine Antwort aber auch an der Frage vorbei.

  • Thanks 1
Link to comment
Share on other sites

Am 26.9.2024 um 13:17 schrieb groocer:

Den Punkt zu dem mir auf Anhieb nicht einfällt wie er umgesetzt werden kann ist das Erzeugen eines aufgeteilten Geheimnisses wobei garantiert ist das NIEMAND also wirklich absolut NIEMAND das ganze Geheimnis kennen kann.

Ich kann mir nicht vorstellen, wie das funktionieren soll. Es scheitert immer daran, dass der Seed erst einmal als ganzes bestehen muß, bevor man ihn aufteilen und verteilen kann. 

Wüßte nicht, wie das anders ermöglicht werden kann. 

Ledger hatte dies bei bei der Einführung von Leder Recover so beschrieben, dass sie den Seed dritteln und auf sich selbst sowie auf zwei weitere Entitäten aufteilen. 

Es muß also bei Ledger eine Instanz geben, die den ganzen Seed kennt, also wenigstens eine digitale Speichereinheit und/oder eine KI und damit potentiell auch eine Kohlenstoffeinheit. 

 

  • Thanks 1
Link to comment
Share on other sites

vor 11 Stunden schrieb Peer_Gynt:

Ich kann mir nicht vorstellen, wie das funktionieren soll. Es scheitert immer daran, dass der Seed erst einmal als ganzes bestehen muß, bevor man ihn aufteilen und verteilen kann.

 

So richtig kann ich mir das auch nicht vorstellen, aber vielleicht können wir das ja zusammen ausarbeiten.

Wenn man z.B. so einen MPC so erzeugt, das der Seed vor dem Aufsplitten niemanden gezeigt wird und die ganze Erzeugung nach dem vier Augen Prinzip erfolgt, wobei jeder darauf aufpassen soll das niemand den gesamten Seed kennt.

Irgendwie so stelle ich mir das vor. 😅

Ich dachte halt, das es dafür vielleicht sogar schon so etwas wie ein standardisiertes Verfahren gibt, deshalb die Frage.

IMHO muss es ja irgendwie funktionieren, andernfalls hätte ja jeder der wirklich viel Crypto verwahrt das Problem das er  einzelnen Menschen in einem Maße vertrauen vertrauen muss das unglaublich unsicher ist..

Beispiel: Du bist beauftragt den Cold Storage von Binance zu schützen. Da darf definitiv keine einzelne der beteiligten Personen dazu in der Lage sein den vollständige Seed abzugreifen. Mit diesen Seeds werden ja Millionenwerte gesichert.

 

Link to comment
Share on other sites

vor 9 Stunden schrieb groocer:

Wenn man z.B. so einen MPC so erzeugt, das der Seed vor dem Aufsplitten niemanden gezeigt wird und die ganze Erzeugung nach dem vier Augen Prinzip erfolgt, wobei jeder darauf aufpassen soll das niemand den gesamten Seed kennt.

Ich dachte halt, das es dafür vielleicht sogar schon so etwas wie ein standardisiertes Verfahren gibt, deshalb die Frage.


Und ich denke so wird es mitunter auch gemacht.

Am Ende musst du dich halt auf die Software und das kryptografische Verfahren hinter MPC verlassen. Der MPC Verschlüsselungsalgorithmus ist ja auch schon alt und nicht erst durch Crypto entstanden.

Einen MPC Key generierst du nicht mal eben alleine zuhause. Das Verfahren ist hoch komplex und es gibt verschiedene Anbieter/Wallets, die sich darauf spezialisiert haben.

https://www.fireblocks.com/
https://www.atato.com/
https://www.alchemy.com/list-of/mpc-wallets-on-bitcoin (Übersicht einiger Wallet Anbieter mit MPC Verfahren)


Dazu nochmal aus einem schönen Coinbase Artikel zitiert:

"MPC Wallets nutzen kryptografische Protokolle, um private Schlüssel auf sichere Weise unter mehreren Parteien zu verteilen."
"Der private Schlüssel, der für die Signierung von Transaktionen entscheidend ist, wird in Anteile aufgeteilt und jeder Anteil wird unter den Teilnehmern des MPC Protokolls verteilt. Diese Methode zielt darauf ab, zu verhindern, dass der private Schlüssel in seiner Gesamtheit auf einer einzigen Maschine erzeugt wird, was eine zusätzliche Sicherheitsebene hinzufügt."

https://www.coinbase.com/de/learn/wallet/what-is-a-multi-party-computation-mpc-wallet


Daher gehe ich davon aus, dass der Seed bereits während der Erstellung, softwareseitig kryptografisch verschlüsselt und aufgeteilt wird. Die Wallet oder das Programm gibt dir am Ende nur den verschlüsselten Share aus. Wahrscheinlich auch nur "deinen" Teil vom Share, die anderen Shares gehen direkt an die jeweiligen anderen Mitglieder im Verfahren.
Daher kennt am Ende niemand alle verschlüsselten Shares, noch kennt jemand den ursprünglichen unverschlüsselten Seed.
Vorausgesetzt natürlich, das Stück Software, welches kryptographiert, funktioniert einwandfrei...

Edited by Lollip
  • Love it 1
  • Thanks 4
Link to comment
Share on other sites

Ah Super, hast recht die Anbieter sagen das sie ein sicheres Verfahren zur geteilten Schlüsselerzeugung anbieten.

Dann hab ich meine Suchbegriffe und Links beisammen, um mir das mal anzusehen.

 

Danke !

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.