Dieser Blogbeitrag gehört zur Serie über Synapse – die Plattform von Alpha Reply zum Testen und Stresstesten der Kontrollumgebung von Finanzinstituten gegen Finanzkriminalität.
Im Folgendem wird ausführlicher auf die Software-Architektur von Synapse eingegangen.
Synapse wird mit mit Golang (https://golang.org) entwickelt und verwendet das agentenbasierte Simulationsmodell. In speziellen Fall bedeutet dies, dass eine Reihe von Agenten instanziiert werden, die untereinander Transaktionen tätigen.
Die Simulation wird durch eine Konfigurationsdatei initiiert, die Folgendes festlegt:
Der zweite Schritt besteht darin, eine Cache zu instanziieren, der die Agenten enthält und verschiedne Parameter für diese Agenten zu initiieren.
Schließlich startet die Simulation, wobei sie die in der Konfigurationsdatei angegebene Anzahl von Tagen in Schleifen durchläuft. Jeden Tag führt die Simulation Folgendes aus:
In der Theorie mag das ganz einfach sein, doch ist die Implementierung der Hauptschleife recht aufwendig, wenn man den Ablauf auf Geschwindigkeit optimiert. So beinhaltet die Schleife sorgfältig strukturierte Go-Routinen und Cache-Mutexe, die zusammenwirken, um eine hohe Parallelität zu erreichen (dies wird in einem späteren Beitrag behandelt).
Im weiteren Verlauf dieses Beitrags werden wir auf das Design der vier wesentlichen Strukturen/Schnittstellen (Agent, Aspekt, Transaktionen und Bilanz) eingehen.
Der Agent ist die wichtigste Struktur von Synapse und kann eine Einzelperson, ein Unternehmen oder ein Finanzinstitut (FI) darstellen. Die Basisstruktur enthält in erster Linie technische Attribute und Methoden. Drei verschiedene Strukturen, die der Einzelperson, dem Unternehmen und dem FI entsprechen, werden dann von der Basis-Agentenstruktur ausgehend gebildet und definieren weitere für den Agententyp spezifische Attribute (in Golang gibt es kein Vererbungskonzept, es verwendet stattdessen Komposition und Schnittstellen, die Laufzeitpolymorphismus bereitstellen).
Wichtig ist, dass die Agentenstrukturen Folgendes aufweisen:
Aspekte sind der Mechanismus, mit dem das Transaktionsverhalten unserer Agenten programmiert wird. Technisch gesehen ist ein Aspekt eine Schnittstelle mit einigen wenigen Methoden, wobei die wichtigste die „Tick“-Methode ist. Deren Aufgabe besteht darin, einen Slice von Transaktionen zurückzugeben, die den Transaktionspuffer füllen. Diese Methode wird dort eingesetzt, wo die Verhaltensweisen des Agenten implementiert werden, und komponieren sie (das heißt durch Hinzufügen und Entfernen von Aspekten bei einem Agenten können wir ein reichhaltiges und dynamisches Verhalten erzielen).
Die Bilanz-Struktur stellt die Bilanz eines Agenten dar. Die Struktur definiert die verschiedenen Aktiva und Passiva eines Agenten und wird in jeder Schleife aktualisiert, um die täglichen Transaktionen zu reflektieren, die jeder Agent getätigt hat. Beispiele für das Vermögen einzelner Agenten sind Bargeldkonten, Girokonten (mit einem Zeiger auf ein Bank-FI), verschiedene finanzielle und nichtfinanzielle Vermögenswerte.
Transaktionen sind – zusammen mit den Attributen von Unternehmens- und Einzelpersonen-Agenten (das heißt KYC-Informationen) – die wesentliche Ausgabe von Synapse und werden von den Synapse-Nutzern dafür verwendet, ihre Kontrollen gegen Finanzkriminalität zu testen (Transaktionsüberwachung, Kundenrisikobewertung usw.). Es gibt viele Arten von Transaktionen, aus denen sich die grundlegende Transaktionsstruktur zusammensetzt. Beispiele sind Bargeldtransaktionen, ATMWithdrawal (Abhebung am Geldautomaten), CashDeposit (Bargeldeinlage), WireTransfer (Überweisung), LoanContract (Darlehensvertrag), POSDebitCardTransaction (POS-Debitkarten-Transaktion).
Wichtig ist, dass jede Transaktion definiert, wie sie sich auf die Bilanz der beiden an dieser Transaktion beteiligten Parteien auswirkt.
Insgesamt kann Synapse anhand dieser Konzepte realistische Transaktionen simulieren, die von Agenten ausgehen, die in wirtschaftlich realistischer Weise handeln, indem sie ihre Bilanzpositionen jederzeit berücksichtigen.
Dieser Beitrag befasst sich nur mit der sehr allgemeinen Struktur des Programms, und wir werden künftig näher auf diese verschiedenen Konzepte eingehen. Wie von unseren Lesern gewünscht, werden wir uns nächste Woche mit den Einzelheiten einiger zentraler Aspekte befassen, mit denen verschiedene Konsumverhaltensweisen von Einzelpersonen programmiert werden, sowie mit einem ersten Aspekt, mit dem ein typisches Geldwäscheschema emuliert wird.
Bleiben Sie dran!
Wenn Sie die Berichterstattung über Synapse verbessern möchten und zu prüfen, wie Sie die Plattform für Ihre Organisation nutzen können, kontaktieren Sie uns bitte unter