Universität Karlsruhe 1/19 Entwicklung einer Komponente zur Beweismittelverwaltung und Beweisführung Claudia Dörr Betreuer: Philipp Obreiter
Universität Karlsruhe
1/19
Entwicklung einer Komponente zur Beweismittelverwaltung und
Beweisführung
Claudia Dörr
Betreuer: Philipp Obreiter
Universität Karlsruhe
2/19
Motivation: Reputationssystem
Olaf
Olli
Peterkein DienstDienst
Dien
st
Hätte Olaf Olli nicht vor Peter warnen können?
kein
Dien
st
Abmachung
Abmac
hun
g
Universität Karlsruhe
3/19
Beispiel für ein Reputationssystem
Teilnehmer schicken Empfehlungen (Reputation)
beurteilen das Verhalten der Kooperationspartner teilen es anderen mit
Verteilte Reputationssysteme: machen kooperatives Verhalten vorteilhaft schützen Teilnehmer gegen Fehlverhalten
Kann die negative Empfehlung missbraucht werden?
PeterOlaf
Olli
Dienst kein Dienst
Negative
Empfehlung
über
Peter
kein
e Ko
oper
atio
n
Abmachung
Universität Karlsruhe
4/19
Olaf Peter
Olli
Dienst
Nega
tive
Empf
ehlun
güb
er O
laf
Motivation: beweismittelbasiertes Reputationssystem
Nachteile von negativen Empfehlungen:• Diffamierung• Olaf weiß nichts von einer Empfehlung
keine
Kooperation
Abmachung
Universität Karlsruhe
5/19
Einführendes Beispiel mit Beweismitteln
Olaf Peter
Olli
VertragDienst
QuittungNe
gativ
e Em
pfeh
lung
über
Olaf
Definition elektronische Beweismittel: nicht-abstreitbare kryptographische Marken
Olaf Peter
Olli
VertragDienst
Nega
tive
Empf
ehlun
güb
er O
laf
keine Quittung -> Diffamierung
Negative
Empfehlungüber Peter
Verteidigun
g?Quittun
g
Quittung -> keine Diffamierung
Quittung + Negative Empfehlung -> inkonsistentes Verhalten
Verteidigun
g?keine Quittung
Universität Karlsruhe
6/19
Beweismittelverwalter
VertragDienstQuittung
Nega
tive
Empfe
hlung
über
Olaf
Beweismittelverwalter nötig, der folgendes leistet: verwaltet Beweismittel schließt Beweise aufgrund der vorliegenden Beweismittel
Verteidigun
g?Quittung
PeterOlaf
Olli
Beweismittelverwalter:
NegativeEmpfehlung(von Peter, über Olaf, bei T1)Quittung(von Peter, an Olaf, bei T1)=>Inkonsistenz(Peter)
Universität Karlsruhe
7/19
Realisierung des Beweismittelverwalters mit Hilfe eines logischen Schließers
Kennt nur: Fakten Regeln
Logischer Schließer
Beweismittel
Wissen Beweise schließenassoziativer Zugriff
Dienstschnittstelle zum Reputationssystem
Universität Karlsruhe
8/19
Inhaltsübersicht
Logischer Schließer
1. Dienstschnittstelle2. Lückenüberbrückung
3.
Eval
uatio
n
4.
Zusa
mm
enfa
ssun
g un
d Au
sblic
k
Reputationssystem
Jess
Universität Karlsruhe
9/19
1. Dienstschnittstelle
• Beweisschließungspaket hinzufügen
• Beweismittel und Wissen hinzufügen
• assoziativer Zugriff
• Meldung von neuen Beweisen (Callback)
• Beweismittel zu Beweis anfordern
Universität Karlsruhe
10/19
2. Überblick über Softwarearchitektur
Repository
FactDefinitionStorage
FactManager
RegistrationManager
JessNewFactListener
logischer Schließer
1. Dienstschnittstelle
Universität Karlsruhe
11/19
2. Entwurfsentscheidungen
Grundlegende Entwurfsentscheidungen:
• Regeln in Jess-Syntax hinzufügen
• Anfrage über Zustand des Beweismittelverwalters nicht über Jess -> FactManager
Universität Karlsruhe
12/19
2. Lückenüberbrückung: FactDefinitionStorage
FactDefinitionStorage:• speichert die Faktendefinition • ermöglicht die Konversion von Faktum in Statement und umgekehrt
Reputationssystem
Jess
Statements
Fakten
Universität Karlsruhe
13/19
Repository
FactDefinition-Storage
converteStateToFact (evidence
)
Fact-Manager
putFact(factInfo)
Registration-Manager
indicate(newFact)
FactManager:• speichert alle Fakten bzw. Statements• informiert den RegistrationManager von neuen Fakten
2. Lückenüberbrückung: FactManager (1)
addEvidence(evidence)
Universität Karlsruhe
14/19
• Hinzufügen von Fakten zu Jess aktiviert und feuert Regeln
• eine gefeuerte Regel fügt u.U. ein weiteres Faktum ein
• Beispiel: (defrule QuittungEinfügen (Quittung (AusstellerID ?a) (TransPartnerID ?p) (PartnerTransID ?tid) ) => (assert (Bestätigung (BestätigenderID ?a) (BestätigterID ?p) (BestätigterTransID ?tid) ) ) )
2. Lückenüberbrückung: FactManager (2)
NewFactListener hört mit, was in Jess passiert:- speichert die neuen Fakten im FactManager- setzt die Wurzelbeweismittel und Nachfolger
Universität Karlsruhe
15/19
2. Lückenüberbrückung: FactManager (3)
Quittung
Bestätigung
Negative-Empfehlung
Inkonsistenz
Wurzelbeweismittel
Wurzelbeweismittel
Nachfolger
Nachfolger
Wozu Wurzelbeweismittel und Nachfolger?• Wurzelbeweismittel zu einem Beweis werden oft gefragt• bei Löschen eines Faktums müssen seine Nachfolger auch gelöscht werden
Universität Karlsruhe
16/19
2. Lückenüberbrückung: RegistrationManager
Registrator 1 Registrator 2
RegistrationManager
FactManager
Erlaubnis
InkonsistenzFakt
Inkonsistenz indicate(InkonsistenzFakt)
Universität Karlsruhe
17/19
3. Evaluation
• der Beweismittelverwalter wird bei der Evaluation auf Korrektheit und Effizienz getestet
• der Korrektheitstest erfolgt mit Hilfe einiger Testfälle• Ergebnis des Effizienztests (Pentium Mobile Prozessor, 1.4 MHz):
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
5
500 1.000 2.000 4.000 8.000 12.000 16.000 20.000 24.000
Anzahl Fakten in Repository
Zeit
[ms] addEvidence
getKnowledge(20%)getKnowledge(80%)getRootEvidence/getRootKnowledge
Universität Karlsruhe
18/19
4. Zusammenfassung und Ausblick
Zusammenfassung:• Beweismittel neutralisieren Nachteile des
Reputationssystems• eine Lücke existiert zwischen Dienstschnittstelle des
Reputationssystems und logischem Schließer• Lückenüberbrückung:
– Abbildung der Statements auf Fakten -> FactDefinitionStorage– Speichern von Zustand des Beweismittelverwalters,
Wurzelbeweismittel und Nachfolger -> FactManager– Melden von neuen Beweisen (Callback) -> RegistrationManager
Ausblick: • verwenden des Beweismittelverwalters im Kontext des
Reputationssystems• Auswirkung auf Reputationssystem evaluieren
Universität Karlsruhe
19/19
Vielen Dank für die
Aufmerksamkeit
Universität Karlsruhe
20/19
Anhang
Universität Karlsruhe
21/19
Anforderungen des Reputationssystems an einen Beweismittelverwalter
Ein Beweismittelverwalter muss folgendes leisten:
• Entgegennehmen eines Beweismittels / von Wissen (addEvidence/addKnowledge)
• Beweise schließen aufgrund der vorliegenden Beweismittel und des Wissens (Regeln)
• Liefern eines Beweises auf Anfrage (getKnowledge)• Herausgeben der Beweismittel und des Wissens, die zu einem Beweis
führten (getRootEvidence/getRootKnowledge)• Melden, wenn ein neuer Beweis vorliegt (indicate)• Löschen von Beweismitteln (removeEvidence/removeKnowledge)• muss mit neuen Beweismittelarten umgehen können (addPackage)
Universität Karlsruhe
22/19
Datenstrukturen im RegistrationManager
Statement Typ
handle Knowledge Callback
handle template
handle template
Universität Karlsruhe
23/19
Datenstrukturen im FactManager
Fakt ID FaktInfo Statement String FaktInfo
Statement Typ FaktInfo1, FaktInfo2, ...
FaktInfo3, FaktInfo4, ...
Universität Karlsruhe
24/19
Datenstrukturen im FactDefinitionStorage
Fakt Name Fakt Definition
Universität Karlsruhe
25/19
Einführendes Beispiel in Jess Syntax
Definitionen der Fakten:(deftemplate Bestätigung (slot BestätigenderID) (slot BestätigterID) (slot BestätigterTransID) )
(deftemplate Quittung (slot AusstellerID) (slot TransPartnerID) (slot PartnerTransID) )
(deftemplate NegEmpfehlung (slot AusstellerID) (slot NegZuEmpfehlenderID) (slot NegZuEmpfTransID) )
Universität Karlsruhe
26/19
Einführendes Beispiel in Jess Syntax
Definitionen der Fakten:
Definitionen der Regeln:
(deftemplate Bestätigung (slot BestätigenderID) (slot BestätigterID) (slot BestätigterTransID) )
(deftemplate Quittung (slot AusstellerID) (slot TransPartnerID) (slot PartnerTransID) )
(deftemplate NegEmpfehlung (slot AusstellerID) (slot NegZuEmpfehlenderID) (slot NegZuEmpfTransID) )
(defrule QuittungEinfügen (Quittung (AusstellerID ?a) (TransPartnerID ?p) (PartnerTransID ?tid) ) => (assert (Bestätigung (BestätigenderID ?a) (BestätigterID ?p) (BestätigterTransID ?tid) ) ) )
(defrule BeweiseInkonsistenz (NegEmpfehlung (AusstellerID ?a) (NegZuEmpfehlenderID ?p) (NegZuEmpfTransID ?tid) ) (Bestätigung (BestätigenderID ?a) (BestätigterID ?p) (BestätigterTransID ?tid) ) => (assert (Inkonsistenz (InkonsitenteEinheitID ?a) ) )
Universität Karlsruhe
27/19
Existierende Beweismittelverwalter
• die Idee, Beweismittel in einem Reputationssystem zu verwenden, erläutert bereits Assokan in seiner Dissertation
• er entwickelt eine Sprache, um Behauptungen formulieren zu können, die ein Verifier beweisen soll.
• außerdem entwickelt er ein Protokoll zwischen Usern/Anwendungen und dem Verifier
Aber: der Verifier ist noch zu implementieren
Universität Karlsruhe
28/19
Lückenüberbrückung: Herausgeben von Beweismitteln und Wissen zu einem Beweis (1)
• getKnowledge liefert Statements zurück, aber nicht die Beweismittel und das Wissen, die zu diesem führten
• Methode getRootEvidences(Statement) liefert die Beweismittel als Array zurück, die zum übergebenen Statement führten
• die Beweismittel jedes Faktums stehen in seinem FaktInfo-Objekt im Vektor WurzelBeweismittelVorgänger
Universität Karlsruhe
29/19
Repository
FactManager FactInfo
getRootEvidences getFactInfo(fac
t)
getRootEvidences()
Lückenüberbrückung: Herausgeben von Beweismitteln und Wissen zu einem Beweis (2)
(fact)
Universität Karlsruhe
30/19
Lückenüberbrückung: Löschen von Beweismitteln (1)
• Beweismittel haben ein „Haltbarkeitsdatum“. Ist dieses abgelaufen, muss das Beweismittel gelöscht werden.
• Methode removeEvidence(beweismittel) löscht das Beweismittel
• der Successor-Vektor des FactInfo-Objekts hält alle Fakten, die aus dem FactInfo-Objekt geschlossen wurden
Universität Karlsruhe
31/19
Lückenüberbrückung: Löschen von Beweismitteln (2)
Repository
FactManager FactInfo
removeEvidence getFactInfo(evidenc
e)
removeSuccessingFacts()
removeFact(fact)
(evidence)
Universität Karlsruhe
32/19
Lückenüberbrückung: Liefern eines Beweises auf Anfrage (1)
• Methode getKnowledge(template) sucht Fakten, die dem template entsprechen
• das Ergebnis ist ein Array von Statements
• Beispiel 1: ist das template ein Vertrag -> Ergebnis sind alle existierenden Verträge
• Beispiel 2: ist das template ein Vertrag mit einer bestimmten AusstellerID -> Ergebnis sind alle Verträge, deren AustellerID mit der des templates übereinstimmt
Universität Karlsruhe
33/19
Repository
FactManager
getKnowledge query(templat
e)
Lückenüberbrückung: Liefern eines Beweises auf Anfrage (2)
(template)
Universität Karlsruhe
34/19
Lückenüberbrückung: FaktDefinitionsSpeicher (1)
• Methode addPackage(package) übergibt dem Beweismittelverwalter die neue Beweismittelart
• Ziel: Jess mit den Typdefinitionen und den entsprechenden Regeln bekannt zu machen
• Package ist in Jess Syntax geschrieben
• das Package besteht aus: Typ/Aufbau der Beweismittelart (deftemplate) Typ/Aufbau des Wissens (deftemplate) Hilfstypen (deftemplate) Regeln (defrule)
Universität Karlsruhe
35/19
Lückenüberbrückung: FactInfo
Das FactInfo speichert:• das Beweismittel• das Statement• das Faktum• die Wurzelbeweismittel• das Wurzelwissen• die Nachfolger
Universität Karlsruhe
36/19
Wahl eines logischen Schließers
Anforderungen an den logischen Schließer:• Plattform unabhängig -> Java basiert• gute Performance beim Schließen• kostenlos
Logischer Schließer Programmiersprache Performance Kosten
K-PC Java ausreichend niedrigJRULES Java gut hoch
JESS Java gut mittel