Woher wissen wir, dass ein Benutzer mehrere private Schlüssel besitzt?

Ich lese ein Datenanalysepapier über Bitcoin, und es gibt einen Satz, den ich nicht verstehe:

Wir verwenden den vom Stanford Network Analysis Project erhaltenen Bitcoin-Transaktionsdatensatz. Alle Bitcoin-Transaktionen werden in einem öffentlichen Hauptbuch dokumentiert und in der Währungseinheit Bitcoin (BTC) bezeichnet. Der Datensatz enthält alle Bitcoin-Transaktionen von der Gründung des Netzwerks bis zum 7. April 2013. Für jede Transaktion kann es mehrere Absender- und Empfängeradressen geben. Außerdem können mehrere Adressen zu einem einzigen Benutzer gehören .

Diesen letzten Satz verstehe ich nicht. Ja, sicherlich kann ein Benutzer mehrere private Schlüssel erstellen. Woher wissen wir jedoch, dass ein Benutzer mehrere private Schlüssel erstellt hat, wenn wir nicht dieser Benutzer sind?

Der in diesem Dokument angegebene Datensatz ist sehr groß (6.336.769 Benutzer), daher müssen sie einen Algorithmus anwenden, um private Schlüssel zu gruppieren, die jedem Benutzer gehören. Was wäre es?

Ich habe meine Antwort gelöscht, da mir eindeutig ein Kontext fehlt. Vielleicht ist es nützlich, den Link, den Sie kommentieren, zu Ihrer Frage hinzuzufügen?

Antworten (4)

Es gibt mehrere Artikel im Internet, die diesen Absatz enthalten. Zum Beispiel: http://cs229.stanford.edu/proj2014... , https://arxiv.org/pdf/1611.03942.pdf usw

Jede scheint die Herkunft der Daten unterschiedlichen Quellen zuzuordnen, aber die Zahlen wirken wie ein Fingerabdruck ( 6.336.769 Knoten und 28.143.065 Kanten ), sodass sie auf eine Arbeit von Ivan Brugere zurückgeführt werden können , die in der Vergangenheit verfügbar gewesen zu sein scheint , aber nicht jetzt, unter compbio.cs.uic.edu , und von denen einige Dokumente unter github verbleiben .

Von ihnen verweist er auf die Arbeit „ An Analysis of Anonymity in the Bitcoin System “ von Fergal Reid und Martin Harrigan :

Angenommen, U ist zunächst unvollständig in dem Sinne, dass jeder Knoten einen einzelnen öffentlichen Schlüssel und keinen Benutzer darstellt und dass jede gerichtete Kante zwischen einer Quelle und einem Ziel ein Eingabe-Ausgabe-Paar einer einzelnen Transaktion darstellt, wobei die Eingabe öffentlich ist -key entspricht der Quelle und der öffentliche Schlüssel der Ausgabe entspricht dem Ziel. Um dieses Netzwerk zu perfektionieren, müssen wir jede Teilmenge von Vertices zusammenziehen, deren entsprechende öffentliche Schlüssel einem einzelnen Benutzer gehören.

... wie von Nakamoto angemerkt: "Einige Verknüpfungen sind bei Multi-Input-Transaktionen immer noch unvermeidlich, die zwangsläufig zeigen, dass ihre Eingaben demselben Eigentümer gehörten. Das Risiko besteht darin, dass, wenn der Eigentümer eines Schlüssels bekannt wird, die Verknüpfung andere enthüllen könnte Transaktionen, die demselben Eigentümer gehörten."

Und zum Abschluss des Arguments in einer umfangreichen Arbeit, die denselben Datensatz abdeckt:

Analyse des Bitcoin-Netzwerks: Die ersten vier Jahre - Matthias Lischke und Benjamin Fabian, Institut für Wirtschaftsinformatik, Humboldt-Universität zu Berlin, Spandauer Str. 1, 10178 Berlin, Deutschland (CC BY 4.0):

Die Benutzerinformationen werden durch die zweite Gruppe von Dateien organisiert [...], wobei ein „Benutzer“ eine Gruppierung von öffentlichen Schlüsseln ist, die als Eingaben für eine einzelne Transaktion verwendet wurden (der Benutzer besitzt den privaten Schlüssel zu jeder Adresse), wie von vorgeschlagen Reid und Harrigan. Jede Zeile [...] ist eine Gruppierung öffentlicher Schlüssel, wie in Abbildung 3 dargestellt:

Analyse des Bitcoin-Netzwerks: Die ersten vier Jahre - Matthias Lischke und Benjamin Fabian, Institut für Wirtschaftsinformatik, Humboldt-Universität zu Berlin, Spandauer Str.  1, 10178 Berlin, Deutschland (CC BY 4.0)

Woher wissen wir jedoch, dass ein Benutzer mehrere private Schlüssel erstellt hat, wenn wir nicht dieser Benutzer sind?

Wir können nicht. Der Benutzer kann Schlüssel mit einem beliebigen Berechnungsmechanismus (Stift und Papier, Abakus usw.) erstellen. Das Protokoll ist einseitig und benötigt keinen Drittanbieter (Website, Server usw.)

ein Algorithmus zum Gruppieren privater Schlüssel, die jedem Benutzer gehören. Was wäre es?

Normalerweise wenden sie zuerst Union-Find-Graphalgorithmen an. Nachdem sie in dieser Phase einige Analysen durchgeführt haben, gehen sie davon aus, dass in diesem reduzierten Entitätsdiagramm alle Eingaben für eine Transaktion derselben Entität gehören. Dies war vielleicht schon früh in der Geschichte von Bitcoin der Fall, aber das Verbinden von Münzen ist jetzt ziemlich üblich. Empfänger, die nur bestimmten Sendern zugeordnet sind, werden als Selbstschleifen usw. erstellt. Der Entitätsgraph wird reduziert, es werden transitive, kommutative, assoziative usw. Schließungen angewendet und untersucht.

Soweit ich weiß, was Sie fragen, konnte eine Person mehrere Adressen haben, wenn sie mehrere davon erstellte, oder eine Brieftasche haben, die mehrere Adressen an einem Ort aufbewahrt.

Kommentieren Sie, wenn dies nicht das ist, wonach Sie suchen, da ich mir nicht sicher bin, was Sie fragen

Ich werde versuchen, dies zu beantworten, obwohl ich nicht sicher bin, inwieweit es wahr ist.

Es sagt:

Außerdem können mehrere Adressen zu einem einzigen Benutzer gehören.

Es sagt "kann" nicht "muss"

Lassen Sie mich das an einem Beispiel sagen.

Es gibt beispielsweise 5 Transaktionen mit Transaktions-IDs wie: trans1, trans2, trans3, trans4 und trans5

Die beteiligten Adressen sind Adresse1, Adresse2, Adresse3, Adresse4, Adresse5, Adresse6 und Adresse7

Anfangssalden:

Adresse1: 1 BTC

Adresse2: 2 BTC

Adresse3: 1 BTC

Adresse4: 0 BTC

Adresse5: 0 BTC

Adresse6: 0 BTC

Adresse7: 0 BTC

Transaktionen erfolgten (unter Berücksichtigung vernachlässigbarer Gebühren):

trans1: Adresse1 (1BTC) > Adresse6 (1BTC)

trans2: Adresse2 (2BTC) > Adresse5 (2BTC)

trans3: Adresse3 (1BTC) > Adresse4 (1BTC)

trans4: Adresse4 (1BTC) & Adresse5 (1BTC) > Adresse7 (2BTC)

trans5: Adresse5 (1BTC) & Adresse6 (1BTC) > Adresse7 (2BTC)

Endsalden:

Adresse1: 0 BTC

Adresse2: 0 BTC

Adresse3: 0 BTC

Adresse4: 0 BTC

Adresse5: 0 BTC

Adresse6: 0 BTC

Adresse7: 4 BTC

Betrachten wir nun die Transaktion trans1, trans2 & trans3 als aufgrund einer Zahlungsabwicklung aufgetreten. Und das gibt uns keinen Hinweis darauf, ob diese Empfangsadressen von einer einzelnen Person gehalten werden oder nicht.

Damit die Transaktion trans4 & trans5 stattgefunden hat, benötigt der Benutzer den privaten Schlüssel der Adresse addr4, addr5 & addr6. Dies gibt uns einen Hinweis darauf, dass dieses "kann" (nicht muss) einer einzelnen Person gehören.

Eine weitere versichernde Sache darüber, dass dies einer einzelnen Person gehört, ist, dass diese zu einer einzigen Adresse zusammenlaufen, dh addr7. Dies könnte jedoch jemand anderes sein und eine andere Zahlungsabwicklung sein.

So heißt es in dem Datenanalysepapier:

Außerdem "können" mehrere Adressen zu einem einzigen Benutzer gehören.