Counos Coin

 

 CSC  Int. GmbH 

Schweiz

Counos Coin

 

Übersicht

Mit einer reinen Peer-to-Peer-Version einer elektronischen Zahlungsmethode könnten Online-Zahlungen direkt von einer Partei zur anderen gesendet werden, ohne dass dies über ein Finanzinstitut laufen müsste. Digitale Signaturen lösen zwar einen Teil des Sicherheitsproblems, aber wenn immer eine vertrauenswürdige dritte Partei erforderlich ist, um Doppel-Ausgaben zu verhindern, sind auch alle Hauptvorteile verloren. Wir empfehlen eine Lösung des Problems mit Hilfe eines Peer-to-Peer-Netzwerks. Das Netzwerk hinterlässt einen Zeitstempel auf den Transaktionen und zerkleinert und ordnet die entstandenen Daten in eine ununterbrochene Kette von Ausführungsnachweisen ein, sodass eine Datenaufzeichnung entsteht, die nicht geändert werden kann ohne die gesamte Kette wieder neu zu erstellen. Die längste Kette dient so nicht nur als Nachweis für die Abfolge der erlebten Ereignisse, sondern auch als Beweis dafür, dass die Daten aus dem größten Pool an CPU-Leistung kommt. Solange die Mehrheit der CPU-Leistung von Clusterknoten kontrolliert wird, die nicht kooperieren um das Netzwerk anzugreifen, können sie immer die längere Kette erstellen und so schneller sein als ein gegebener Angreifer. Das Netzwerk selbst erfordert nur eine minimale Struktur. Nachrichten werden auf Best-Effort-Basis übertragen und die Clusterknoten können das Netzwerk beliebig verlassen und betreten, und akzeptieren die längste Kette Arbeitsnachweise als Beweis dafür, was passiert ist, während sie weg waren.

Sehr ähnlich wie der Bitcoin-Algorithmus, wurden weltweit bereits mehr als 16.800.000 Coins abgebaut und weniger als 4.800.000 Coins wurden von Menschen auf der ganzen Welt abgebaut.

Counos Coin wird durch keine zentrale Autorität oder durch Zwischenhändler bestimmt. Dafür bieten wir aber Unterstützung durch ein professionelles Team, damit sie schon in naher Zukunft Nutzen aus ihrer Kryptowährung ziehen können.


Transaktion

 

Wir definieren einen elektronischen Coin (Coin) als eine Kette von digitalen Signaturen. Jeder Besitzer überträgt den Coin auf den nächsten und unterschreibt digital einen Hash von der vorherigen Transaktion und der öffentlichen Verschlüsselung des nächsten Besitzers. Dies wird dann ans Ende des Coins gehangen. Der Empfänger der Zahlung kann die Signaturen durchsehen, um die Kette der vorherigen Besitzer zu überprüfen.

Das Problem ist natürlich, dass der Zahlungsempfänger nicht überprüfen kann, dass keiner der Besitzer den Coin dupliziert hat. Eine gebräuchliche Lösung besteht darin eine zentrale, vertrauenswürdige Instanz oder Minze einzuführen, die jede Transaktion auf Doppel-Ausgaben überprüft. Nach jeder Transaktion muss der Coin zurück in die Minze, damit ein neuer Coin ausgestellt werden kann, und nur Coins, die direkt aus der Minze kommen können mit Sicherheit nicht dupliziert worden sein. Das Problem mit dieser Lösung ist, dass das Schicksal des gesamten Währungssystems von der Firma abhängt, die die Minze betreibt und so jede Transaktion wie durch eine Bank ablaufen muss.

Was wir brauchen, ist eine Möglichkeit dem Bezahlenden zu versichern, dass die vorherigen Besitzer keine vorherigen Transaktionen unterzeichnet haben. Für unsere Zwecke ist es die erste Transaktion, die zählt, sodass wir uns über spätere Versuche von Doppelausstellungen keine Sorgen machen müssen. Die einzige Möglichkeit, das Fehlen einer Transaktion sicherzustellen, ist alle Transaktionen zu kennen. In dem Minze-Modell kennt die Minze alle Transaktionen und könnte entscheiden welche als erstes ankommen. Um diese ohne einen Vertrauenspartner zu tun, müssen Transaktionen öffentlich gemacht werden [1], und wir brauchen ein System unter dem Abonnenten sich über eine einzige Reihenfolge einigen, in der sie ankommen. Der Zahlungsempfänger erfordert einen Nachweis, dass zum Zeitpunkt von jeder Transaktion die Mehrzahl der Clusterknoten im Netzwerk entschlossen haben, dass sie die Überweisung als Erstes erhalten.


Zeitstempelserver

 

Die Lösung, die wir vorgeschlagen haben, beginnt mit einem Zeitstempelserver. Dieser funktioniert wie folgt: Er nimmt einen Hash von einem Block von zeitgestempelten Datensätzen und veröffentlicht dieses breit, zum Beispiel in einer Zeitung oder in einem Usenet Beitrag [2-5]. Der Zeitstempel dient als Beweis dafür, dass die Daten zu diesem Zeitpunkt existiert haben, denn sonst gäbe es von ihnen kein Hash. Jeder Zeitstempel enthält den vorherigen Zeitstempel in seinem Hash und bildet so eine Kette, wo jeder weitere Zeitstempel die früheren Zeitstempel stärkt.


Ausführungsnachweis

 

Um einen Zeitstempelserver zu implementieren, der Peer-to-Peer verteilt ist, müssen wir ein System für Ausführungsnachweise verwenden, das so ähnlich wie das Adam Back-Hash-System [6] ist, und die Zeitungen oder Usenet Beiträge ersetzt. Zu einem Ausführungsnachweis gehört einen Wert dort zu finden, wenn einer gehasht wird. Wie z. B. durch SHA-256, der Hash, der mit einer Anzahl von NULL-Bits beginnt. Der durchschnittliche Aufwand der benötigt wird, ist exponentiell zur Anzahl der NULL-Bits und kann durch die Ausführung eines einzigen Hash überprüft werden. Für unser Zeitstempelnetzwerk implementieren wir die Ausführungsnachweise den Wert des Blocks einstweilen zu erhöhen, bis ein Wert gefunden war, der den Hash des Blocks die notwendigen NULL-Bits gibt. Nachdem die CPU genug an dem Ausführungsnachweis gearbeitet hat, kann der Block nicht mehr geändert werden, ohne den Job neu ablaufen zu lassen. Da spätere Blöcke daran angekettet sind, würde eine Änderung bedeuten all darauffolgende Blöcke auch neu zu erstellen. Der Ausführungsnachweis löst auch das Problem wie man die Mehrheit mit Hilfe von Mehrheitsvotum ermittelt. Wenn die Mehrheit auf eine Stimme per IP-Adresse beruht, könnte es von jedem infiltriert werden, der in der Lage ist viele IP-Adressen für sich zu reservieren. Ein Ausführungsnachweis ist im Grunde eine Stimme pro CPU. Das Mehrheitsvotum wird durch durch die längste Kette repräsentiert, in der die meisten Ausführungsnachweise investiert wurden. Wenn eine Mehrheit der CPU-Leistung durch ehrliche Clusterknoten gesteuert wird, dann wächst die ehrlichere Kette am schnellsten und alle konkurrierende Supermarktketten werden davon abhängig. Um einen vorherigen Block zu ändern, müsste ein Angreifer die Ausführungsnachweise des Blocks, sowie alle nachfolgenden Blöcke neu aufholen und die ehrlichen Clusterknoten in der Länge der Kette überholen. Wir werden später zeigen, dass mehr Blöcke es einem langsamen Angreifer nur schwerer und schwerer machen mitzuhalten. Um für steigende Hardwareleistung und das zeitabhängige Interesse für das Betreiben eines Knotens zu kompensieren, wird die Schwierigkeit des Ausführungsnachweises durch einen gleitenden Durchschnitt bestimmt, der aus der durchschnittlichen Anzahl an Blöcken per Stunde besteht. Wenn sie zu schnell erstellt werden, erhöht das die Schwierigkeit.


Netzwerk

 

Die Schritte, um das Netzwerk zu betreiben sind wie folgt:

  1. Neue Transaktionen werden an alle Clusterknoten gesendet.
  2. Jeder Knoten sammelt die neue Transaktionen in einem Block.
  3. Jeder Knoten arbeitet daran einen schwierigeren Ausführungsnachweis für seinen Block zu finden.
  4. Wenn ein Knoten einen Ausführungsnachweis gefunden hat, sendet er den Block zu allen anderen Clusterknoten.
  5. Die Knoten akzeptieren den Block nur, wenn alle Transaktionen darin gültig und vorher noch nicht ausgestellt wurden.
  6. Die Clusterknoten drücken ihre Akzeptanz des Blocks damit aus, den nächsten Block in der Kette mit dem Hash des anerkannten Blocks zu erstellen.

Clusterknoten gehen immer davon aus, dass die längste Kette die richtige ist und arbeiten dann daran diese zu verlängern. Wenn zwei Knoten gleichzeitig verschiedene Versionen des nächsten Blocks übertragen, erhalten einige Knoten die eine oder die andere Version zuerst. In diesem Fall arbeiten sie an der ersten Version, die sie empfangen weiter, speichern aber den anderen Zweig, fall dieser doch noch länger wird. Die Verbindung wird unterbrochen, wenn der nächste Ausführungsnachweis gefunden und eine Verzweigung länger wird; die Knoten, die an dem anderen Zweig gearbeitet hatten, wechseln dann auf den längeren über. Die Übertragung von neuen Transaktionen muss nicht unbedingt jeden Knoten erreichen. So lange, wie sie viele Knotenerreichen, werden sie früher oder später in einem Block aufgegriffen werden. Block-Emissionen machen auch verlorene Nachrichten mehr verzeihlich. Wenn ein Knoten einen Block nicht erhält, fordert er ihn an, sobald er den folgenden Block erhält und erkennt, dass dazwischen einer fehlt.