Distributed Trust

Verteilte Reputationssysteme in der Blockchain

Ein Reputationssystem ist ein System, das eine Beziehung zwischen zwei Entitäten abbildet. Diese Beziehung hat je nach System eine unterschiedliche Bezeichnung, in den meisten Fällen wird von einer „Bewertung“ gesprochen.

Dieser Artikel gibt praktische Hinweise für die Implementierung von verteilten Reputationssystemen für Blockchain basierte Projekte. Die meisten dieser Hinweise sind sowohl für verteilte als auch zentralisierte System anwendbar.

Erwünschte Eigenschaften eines Reputationssystems

Nachfolgend wollen wir uns erwünschten Eigenschaften eines Reputationssystems ansehen:

Hohe Nutzerbeteiligung

Ein System lebt von einer hohe Beteiligung seiner Nutzer. 
 Die Nutzerbeteiligung wird durch unterschiedliche Metriken gemessen:


  • Wie hoch ist der Anteil der Anwender, die bewertet worden sind? (Rated Coverage)
  • Wie viele Anwender, haben tatsächlich eine Bewertung abgegeben? (Rater Participation)
  • Wie hoch ist der Anteil an tatsächlichen bewertet Ereignissen? (Event Coverage)
  • Wie hoch war die Qualität der einzelnen Bewertungen? (Rating Quality Coverage)

Was eine starke Nutzerbeteiligung ist, ist je nach Anwendungsfall unterschiedlich.
Manche Systeme benötigen eine Beteiligung möglichst zu 100%, während andere Systeme schon mit einer geringeren Nutzerbeteiligung funktionieren.

Widerstandsfähigkeit gegenüber Manipulationen

Sobald ein System stärkere Verwendung findet und seine Nützlichkeit beweisen konnte, wird es ebenfalls auch ein lohnendes Ziel für unterschiedliche Attacken und Manipulationsversuche werden, mit der Absicht die Reputation von einzelnen Teilnehmern zu beschädigen.

Mögliche Angriffe sind:

  • Self-promoting Attacke

    Das unrechtmäßige Erlangen von guten Bewertungen. Dies kann entweder durch das Erstellen und Betreiben von künstlichen Accounts (Sockenpuppen) passieren - dann spricht man auch von einer Sybil Attacke - oder durch die Beeinflussung andere Accounts, z.B. durch den Kauf von guten Bewertungen gegen Geld.

  • Slandering Attacke

    Ähnlich wie eine Self-Promoting Attacke. Allerdings ist hier das Ziel, einem Teilnehmer eine unbegründete, schlechte Bewertung zu geben. Die Mittel um dies zu erreichen sind ähnlich.

  • Whitewashing Attacke

    Ist eine Methode um schlechte Bewertungen loszuwerden. Die einfachste Möglichkeit dies zu tun ist, eine neue Identität zu erstellen, welche keine Verbindung zu der vorherigen hat. Manchmal verlieren Bewertungen aber auch ihre Relevanz (reputation decay), dann muss der entsprechende Besitzer einer Identität einfach eine Zeit warten, bis die schlechte Bewertung aus dem System verschwunden ist.

  • Oscillation Attacke

    Arbeitet ebenfalls auf Basis von reputation decay. Das Ziel ist hier, eine zeitlang durch positive Aktionen eine gute Reputation zu erarbeiten, um diese dann später eine zeitlang für mehrfache Verstöße (z.B. Betrug) zu verwenden.

  • Orchestrated

    Kombinationen aus den oben genannten und anderen Angriffen können im Prinzip beliebige Komplexität erreichen. Für verteilte System, die keine zentrale Autorität kennen, die einzelne Angreifer erkennen und gegebenenfalls vom System ausschließen kann ist es von besonderer Bedeutung den Einfluss solcher Manipulationen möglichst gering zu halten.
    Ein wichtiges Werkzeug dafür kann es sein nur die rohen Bewertungsdaten in der Blockchain zu speichern und die Auswertung lokal durchzuführen. Dies erlaubt komplexere Berechnungen aber auch eine schnellere Reaktion auf entdeckte Angriffsmuster.

Unterscheidbarkeit zwischen neuen Teilnehmern und Teilnehmern mit schlechter Reputation

Eine neu erstellte Identität sollte sich klar von einer Identität mit sehr vielen schlechten Bewertungen unterscheiden lassen.
 In einem zentralen System ist dies sehr einfach umsetzbar. In einem verteilten System mit Pseudonymen oder sogar mit kompletter Anonymität, Eigenschaften, die viele Blockchains teilen, ist dies nicht so einfach.

Ist das Erstellen einer neuen Identität einfach, so kann jeder, der eine schlechte Reputation hat, einfach neu anfangen. Dies macht es unmöglich, Anwender mit einer schlechten Reputation von kompletten Neueinsteigern zu unterscheiden. Eine Möglichkeit dies dennoch zu erreichen, ist es eine zusätzliche Verifizierung zu verlangen (z.B. durch die Nutzung von Ident-Verfahren).

Sollten die Gegebenheiten dies nicht ermöglichen, so ist es sinnvoll, dass neue Teilnehmer eine Reputation sehr langsam und über einen längeren Zeitraum erarbeiten können, ohne das dies einen großen Einfluss auf ihre eigentlich Bewertung hat 1.
Oftmals sind es auch zentrale Stellen, welche diese Verifizierung durchführen können (ePerso, PostIdent), was die Vorteile eines dezentralen Reputationssystem schwächen kann.

Zugriffszeit auf Ergebnisse

Ein Reputationssystem ist nur dann wirklich sinnvoll einsetzbar, wenn die Ergebnisse zeitnah und aktuell zur Verfügung stehen. Ein akzeptierter Zeitrahmen sind hier eher maximal Sekunden als Minuten. Die Architektur von Blockchain-basierten Systemen bedingt aber eine gewisse Latenz, bis Daten verlässlich abgespeichert und verteilt worden sind. 
 Um akzeptable Antwortzeiten zu erreichen, wird meistens ein Cache verwendet, der dann schneller reagieren kann und einfacher abgefragt werden kann. Ein Cache bedeutet, dass ein einzelnes System, zum Single Point of Trust wird. Dies widerspricht abermals dem gewünschten Verhalten eines dezentralen Systems.

Mögliche Umsetzungen

Nachfolgend möchten wir ein paar Implementierungen vorstellen, welche in einem Blockchain basiertem Reputationssystem verwendet werden können:

Multidimensionalität

Eine Reputation enthält oftmals mehrere Dimensionen. Ein guter Schreiner wird in anderen Eigenschaften bewertet werden, als ein Taxifahrer. Ein Appartement ist auf der einen Seite passend für einen Partygänger, aber ungeeignet für eine junge Familie mit Kindern.

Neben diesen offensichtlich unterschiedlichen Dimensionen, sind oftmals auch weitere, feinere Abstufungen notwendig. So kann ein Restaurant durchaus im Durchschnitt gute Bewertungen haben, sich aber möglicherweise abweisend gegenüber Familien mit Kindern verhalten.

Ein wohl definiertes Reputationssystem sollte diese unterschiedlichen Faktoren beachten und abbilden können 2.

Damit die Benutzerbeteiligung hoch bleibt - und damit die Aussagekraft des Reputationssystems, sollte die Anzahl der angebotenen Dimensionen dem jeweiligen Anwendungsfall angemessen sein. Die Bewertung einer Unterkunft bei AirBnB beinhaltet zahlreiche Dimensionen, während die Bewertung eines Uber Fahrers nur einen einzelnen Wert beinhaltet.
 Nachfolgend ein paar Beispiele, welche Anwendungsfälle für und wieder Multidimensionalität beinhalten:

Ride Sharing: In diesem Fall bezieht sich die Bewertung auf kurze Interaktionen mit geringem wirtschaftlichen Wert. Ein komplexes mehrdimensionales Bewertungssystem würde der Partizipation wahrscheinlich schaden. Um allerdings Interoperabilität sicherzustellen, wäre es notwendig zB. zwischen Fahrstil (einer spezifischen Dimension) und Freundlichkeit (einer generischen Dimension) zu unterscheiden.

Scientific Papers: Der Aufwand zur Beurteilung einer wissenschaftlichen Arbeit ist groß. Daher ist durch die Nutzung eines mehrdimensionalen Bewertungssystems nicht mit einem Partizipationsrückgang zu rechnen. Beispiele für Dimensionen wären hier Reproduzierbarkeit, Statistische Qualität, Klarheit, wissenschaftlicher Beitrag. Wahrscheinlich ist es hier sinnvoll die Dimensionen je nach wissenschaftlicher Disziplin zu gestalten.

Eindeutige Bewertungsskala

Damit ein Bewertungssystem einem Benutzer einen Mehrwert bieten kann, sollte der Messbereich einer Bewertung dem Problemfall entsprechen.

Entgegen einer ersten Annahme nimmt die Aussagekraft ab, je mehr versucht wird, eine Bewertung möglichst exakt auf den Anwendungsfall abzubilden. Exakte Angaben sind häufig schwieriger zu definieren und zu ermessen. Dies führt zu einer größeren Bandbreite an Variationen und letztendlich zu mehr Rauschen, welches von der eigentlich Gewichtung ablenkt.

In der Vergangenheit wurden bislang zwischen fünf oder zehn Stufen verwendet. Untersuchungen haben gezeigt, dass dies zu bipolaren Abstimmungen führt 3. Das bedeutet, dass eine Bewertung entweder besonders gut oder besonders schlecht ist, oder bei einer unklare Aussage (Sauberkeit 4/10 Sternen) wiederum zu einer größeren Bandbreite an Variationen führt.

Eine Konsequenz kann hier sein, vier unterschiedliche Zustände zu definieren, dies wird aktuell auch auf vielen Onlineplattformen erfolgreich so umgesetzt. Dieses Model sieht vor, dass man entweder gut oder schlecht abstimmen, sich der Stimme enthalten, oder einen Beitrag als unangemessen melden kann. Somit definiert das Model sehr klar, was die Aussage der jeweiligen Zustände ist 4. 

Nachfolgend wieder unsere zwei Beispiele, welche die unterschiedlichen Auswirkungen einer Bewertungsskala verdeutlichen:

Ride Sharing: Hier lässt sich das System mit 4 Zuständen sehr leicht abbilden. Die verringerte Komplexität pro Dimension im Vergleich zu einer fünfstufigen Bewertungsskala macht es auch leichter eine zusätzliche allgemeine Dimension abzubilden, ohne den Aufwand für den Benutzer merklich zu erhöhen.

Scientific Papers: Die klassische Skala im wissenschaftlichen Bereich beinhaltet vier Stufen (Strong Accept, Weak Accept, Weak Reject, Strong Reject). Durch die Erhöhung der Dimensionalität wie oben vorgeschlagen kann man unter Beibehaltung einer vierteiligen Skala die Aussagekraft der Bewertung sogar noch erhöhen.

Privatsphäre und Datenschutz

Eine Bewertung sollte so transparent wie möglich umgesetzt sein, und dies meist auch unter dem Schutz der Identität der jeweiligen Parteien. Die Bewertungen selbst können ebenfalls persönliche Daten sein, weil das Vorhandensein von Bewertungsdaten Rückschlüsse auf Präferenzen und Aktivitäten des Bewertenden zulässt.

Um Manipulationen schwieriger zu machen, ist die Möglichkeit eine Bewertung abzugeben oft an die Existenz einer tatsächlichen Transaktion geknüpft. Um dies zu gewährleisten bei Bewahrung der Privatsphäre aller Beteiligten, ist es notwendig Zero-knowledge proofs 5 zu verwenden oder ein System analog zu sogenannten Mixers für privatsphäre-orientierte Kryptowährungen einzuführen 6.

Ride Sharing: Bewertungen von Ride Sharing Diensten sind besonders kritisch, weil sie Rückschlüsse auf das Bewegungsprofil zulassen. Ein verteiltes System, dessen Daten allgemein zugänglich sind, sollte daher die oben erwähnten Maßnahmen verwenden.

Scientific Papers: Während der Review Prozess für wissenschaftliche Arbeiten im Moment theoretisch anonym ist, gibt es natürlich externe Kanäle, über die diese Information verteilt wird. Diese Netzwerke im System abzubilden kann der wissenschaftlichen Hygiene nur zuträglich sein.

Interpretierbarkeit von Ergebnissen

Eine Eigenschaft von einem dezentralen System ist, dass der Anwender selbst wählen kann, welche Bewertungsdaten sie empfangen möchte und welchen Daten sie vertraut. Anders als bei einem zentralen System, ist dies dem Anwender überlassen.

Unterschiedlichen Daten lassen sich durch persönliche Gewichtungen zu dem gewünschtem Ergebnis zusammenfassen. Identische Grunddaten lassen sich so für jeden Benutzer passend interpretieren. Dies lässt sich am besten durch eine Funktion umsetzen, welche die, vom Anwender gelieferten, Parameter und die Grundwerte aus der Blockchain bezieht. So erhält jeder einzelne Benutzer ein spezifisches Ergebnis, die Berechnung selbst bleibt aber reproduzierbar.

Ride Sharing: Hier muss der Schwerpunkt eindeutig auf der mobilen Verfügbarkeit der Ergebnisse liegen. Damit ist es nicht praktikabel, dass jedes Endgerät die komplette Blockchain zur Auswertung verwendet. Die Interpretation wird daher in diesem Fall auf vertrauenswürdige Cache fallen, die jedoch ihre Algorithmen offenlegen.

Scientific Papers: Im Fall wissenschaftlicher Arbeiten ist die Interpretierbarkeit sehr wichtig. Die subjektive Gewichtung kann hierbei sowohl vom Bewerter als auch von verschiedenen Zeitfaktoren abhängen.

Referenzen

  1. Naercio Magaia, Paulo Pereira, Miguel Correia, “REPSYS: A Robust and Distributed Reputation System for Delay–Tolerant Networks”, http://www.gsd.inesc–id.pt/~mpc/pubs/mswim33s–magaiaA.pdf  ↩

  2. Le Quoc Hung, Karl Aberer, “A Probabilistic Framework for Decentralized, Management of Trust and Quality”, https://www.researchgate.net/publication/37449860/  ↩

  3. Nan Hu, Paul A. Pavlou, Jennifer Zhang, “Can Online Word–of–Mouth Communication Reveal True Product Quality?”, https://pdfs.semanticscholar.org/3d8b/b2f10378324ca105c2b12e24de18b01c1f69.pdf  ↩

  4. Tom Slee, “Some Obvious Things About Internet Reputation Systems”, http://tomslee.net/2013/09/some–obvious–things–about–internet–reputation–systems.html  ↩

  5. “Zero–knowledge proofs”, https://en.wikipedia.org/wiki/Zero–knowledge_proof  ↩

  6. Stefan Schiffner, Andreas Pashalidis, Elmar Tischhauser, “On the Limits of Privacy in Reputation Systems”, https://www.esat.kuleuven.be/cosic/publications/article–2052.pdf  ↩

Conclusion

Manche Herausforderungen sind sehr spezifisch für Systeme die ohne zentrale Autorität auskommen wollen oder müssen.

Für verteilte System ohne zentrale Autorität die über die Integrität des Systems wacht und die meist nur eingeschränkte Möglichkeiten bieten, Änderungen an den Grundparadigmen des Systems auszurollen ist es von besonderer Bedeutung diese Konzepte von Beginn an gründlich zu durchdenken und die Anforderungen an das Design klar zu definieren.

TAGS

Comments

Please accept our cookie agreement to see full comments functionality. Read more