Wolfgang Roller, Ehningen
Hier sollte eigentlich ein Bild angezeigt werden.

Warum ist der BrainExtender so wichtig?

Es geht um Identität, Sicherheit und Effizienz im Internet. Und Selbstbestimmung und mehr Chancengleichheit.

Aber um das zu klären bedarf es eines Verständnisses für die momentan existierende und vorherrschende Technik.

Und von welcher Technik spreche ich?

Mir geht es hauptsächlich um die Geräte vom sogenannten Desktop-Rechner an abwärts, die Größe betreffend. Also klassische Desktop-Rechner, Laptops, Notebooks, Tablets, Phablets, Smartphones und Smartwatches.

Mit der Aufzählung der verschiedenen Geräte-Klassen kommen wir schon zum ersten kritikwürdigen Punkt. Viele, bzw. man könnte eher fast alle Menschen in der westlichen Welt haben mehr als ein Gerät in ihrem Besitz. Und jedes dieser Geräte ist mit einem eigenen (Dauer-)Speicher ausgestattet. Das hat zur Folge, dass gespeicherte Information aufgefächert wird. Entweder ist sie nur auf einem Gerät verfügbar oder sie muß mühsam synchroniert werden. Die Synchronisation wird dadurch erschwert, dass es sich um keine durchgängig identische Technologie handelt. Ich spreche hier in erster Linie von den sogenannten Betriebssystemen. Bei den großen Geräten dominiert Microsoft mit seinen verschiedenen Windows-Betriebssystemen. Auf dem Sektor der kleinen Geräten dominiert Google mit seinem Betriebssystem Android. Dieses Android hat das Apple-Betriebssystem IOS in diesem Segment auf den zweiten Platz zurück gedrängt. Apple war als Erfinder des sogenannten Smartphones mit seinem dafür entwickelten Betriebssystem IOS ursprünglich Marktführer.

Hier kann man schon drei Problematiken erkennen:
- Mehrere physikalische Speicher.
- verwaltet von unterschiedlichen Betriebssystemen.
- verwaltet von unterschiedlichen Programmen. Also mit verschiedenen, inkompatiblen Datenmodellen.

Die reale Welt als Vorbild.

Machen wir doch uns doch einmal klar, was wir denn tun, wenn wir einen Computer benutzen.
Unsere Welt kann grob in zwei Teile eingeteilt werden. Das eine ist die Materie und das andere alles andere, was nicht Materie ist. Dazu zählen Ideen, Vorstellungen, Träume, Gefühle etc. Diese immateriellen Dinge sind alles Dinge, die wir nicht in einen Computer übertragen und speichern können.

Wir können auch keine Materie oder materielle Dinge in einen Computer übertragen und speichern. Was wir aber immer tun, wenn wir mit einem Computer arbeiten ist, dass wir uns ein Modell von einer materiellen Sache machen und dieses Modell der realen Welt dann in den Computer übertragen und mit diesem Modell arbeiten.

Anmerkung:
Klar kann ich z.B. einen Traum in Textform oder sogar in Form eines Videos in den Computer übertragen. Ich kann in so konservieren, vorführen etc. Aber wir können dann nicht damit arbeiten. Nicht in dem Sinne wie man z.B. ein Pleuel eines Otto-Motors im Computer simulieren, konstruieren kann um ein gewünschtes Ergebenis in punkto Gewicht und/oder Form und/oder Haltbarkeit zu erzielen.

Diese Modelle werden im Regelfall sehr ökonomisch abhängig von ihrem Sinn und Zweck erstellt. Wenn wir z.B. ein Adress-Buch erstellen mit den Daten von unseren Verwandten, Freunden, Bekannten und anderen Personen, so speichern wir wir z.B. Vorname, Name, Adresse, Telefon-Nr., mobile Nr., und Geburtsdatum.

Genau das ist ein Modell einer Person, eines Menschen. Es ist ein sehr primitives Modell, aber es ist ein Modell und seinem Zweck angepasst. Es wäre sehr unsinnig für diesen Zweck ein komplexeres Modell, dass näher an der Wirklichkeit ist, zu verwenden.

Ein Betrieb der sich auf die Herstellung maßgeschneiderter Bekleidung spezialisiert hat, kann mit Hilfe eines Ganzkörper-Scanners die Oberfläche eines menschlichen Körpers erfassen und speichern. Auf dem Bildschirm kann man dieses Modell so darstellen, dass es fast so aussieht als würde man die lebendige Person betrachten. Man kann eine fiktive Kamera rundum Ansichten machen lassen. Man könnte mit Hilfe eines 3D-Druckers sogar ein materielles Modell der Person erschaffen. Es ist ein komplexes Modell.

Filmproduzenten erstellen noch komplexere Modelle von Menschen oder Phantasie-Figuren. Es sind Modelle, die sich bewegen und Handlungen vornehmen. Im Film sieht es dann so aus, als würden sie leben. Auch das sind Modelle.

Eine andere Art und Weise wie wir Computer nutzen ist, dass wir Modelle im Speicher erschaffen um später die Modelle als reale Objekte zu erschaffen zu können. Häuser, Autos, Maschinen, oder Teile etc.

Als sehr gutes Programmier-Konzept dafür hat sich die sogenannte objektorientierte Programmierung durchgesetzt. Das Prinzip ist recht einfach. Es gibt Klassen. Eine Klasse definiert ein Objekt. Sie ist der Bauplan für ein Objekt. Um auf die Begriffe von weiter oben zurückzukommen. Ein Objekt ist ein Modell. Und eine Klasse ist also der Bauplan für ein Modell. So ein Bauplan legt die Eigenschaften eines Modells fest plus die Aktionen, die ein Modell/Objekt ausführen kann.

Um auf unser Personen-Beispiel zurück zu kommen. Man würde eine Klasse "Person" definieren mit den Eigenschaften:
- Name
- Vorname
- Geburtsdatum
- Straße
- PLZ
- Ort
- Geschlecht
- etc.

In Java, um nur mal eine Programmiersprache zu nennen, ist es so, dass man die Wahl diese Eigenschaften als "public" zu deklarieren. D.h. sie sind von außen zugänglich. Das ist aber kein guter Stil. Guter Stil ist es die Eigenschaften als "private" zu deklarieren. Dann sind sie von außen nicht mehr zugänglich. Stattdessen definiert man pro Eigenschaft jeweils eine sogenannte Getter- und Setter-Methode.
Methoden definieren das Verhalten von Objekten. Die Getter- und Setter-Methoden sind spezielle Methoden, die dem Setzen und Lesen von Eigenschaften dienen. Die anderen Methoden definieren das Verhalten eines Objektes. D.h. heißt ein Objekt kann sich nur so verhalten, wie es der Programmierer mit den Methoden festlegt.

Somit haben wir jetzt einen Bauplan, eine Schablone zur Erzeugung von Objekten (kleinen, primitiven, aber für unsere Zwecke ausreichenden, Modellen), die in der virtuellen Welt Menschen repräsentieren. Diese Information ist für ein Adressbuch ausreichend. D.h. wir können damit unsere Kontakte abbilden.

Was uns allerdings fehlt ist ein Modell unseres real existierenden Adressbuches in der virtuellen Welt. Auch davon können wir einen Klasse, einen Bauplan erschaffen. Die Klasse könnten wir z.B. Adressbuch nennen. Diese Klasse, bzw. genauer definiert, ein Objekt dieser Klasse ist dafür geschaffen Objekte vom Typ Person aufzunehmen.

So können wir also unsere reale Welt auf die notwendigen Eigenschaften und Funktionen reduzieren und in eine virtuelle Welt abbilden. Machen tun wir das, weil uns das widerum hilft Probleme in der realen Welt zu lösen. Und sei es nur, dass wir uns die Adressen und Telefonnummern etc. unserer Familienangehörigen, Verwandten, Freunden und Bekannten merken können.

Fazit 1:
Die virtuelle Welt ist ein Modell der realen Welt.

Die Gehirn als Vorbild.

Wenn wir sagen, dass wir eine Erweiterung für unser Gehirn bauen wollen, dann können wir natürlich sagen wir bauen eine Erweiterung, die aus 1 bis n physikalischen Einheiten bestehen kann.

Der momentane Zustand ist eben auch der, dass durch die existierende "Geräte-Population" n verschiedene physikalische Erweiterungen vorliegen. Ansich wäre das nicht mal so schlimm, wenn alle identisch verwaltet werden würden. Werden sie aber nicht. Mit jeder Gattung sind andere Firmen und Konzepte verbunden.
(Bei den Desktop- und Notebook-Rechnern dominiert Microsoft mit seinem Windows. Bei den Tablets und Smartphones es Google mit Android.)

Viel sinnvoller, logischer und auch viel einfacher ist es nur einen Speicher zu verwenden. So wie wir ein Gehirn haben, so sollten wir einen zentralen digitalen Speicher haben. In diesem (einen) zentralen Speicher verwalten wir unsere gesammlten Modelle in Form von Objekten. Und die verschiedenen Geräte-Gattungen dienen uns dazu immer denselben "Objekt-Zoo" zu betrachten und zu nutzen. Je nach Gattung und deren Leisungsfähigkeit variieren wir die Sichtweise. Bei den schwächeren Geräten reduzieren wir z.B. die Anzahl der Objekte oder auch deren Komplexität. Aber wir schauen auf dieselben Objekte.

Fazit 2:
Es gibt nur einen Speicher.
Anmerkung:
Aus Gründen, dass unsere Technologie versagen kann es dadurch zu einem Totalverlust der Information kommen kann, ist dieser Speicher mit Redundanz ausgestattet. Aber in einer Art und Weise, dass der BrainExtender-Eigentümer damit so wenig als möglich zu tun hat.

Client-Server vs. Peer to Peer

Das Internet, bzw. die aller meisten Rechner-Netze sind nach dem Client-Server-Prinzip aufgebaut. Nun ist es aber der Realität so, dass wenn wir uns Menschen betrachten es schon ausgesprochene Dienstleister gibt. Aber das sind sie nicht rund um die Uhr. Jeder Mensch leistet Dienste und er beansprucht Dienste. Was variiert ist das Verhältnis von Dienste leisten und in Anspruch nehmen. Wenn wir ein Netz aufbauen wollen, was den reellen Gegebenheiten entspricht sollte es eine Peer to Peer-Architektur haben.

Ich habe noch nie verstanden, warum ich einem Freund, einem Bekannten nicht einfach ein Text-Dokument oder ein Bild zukommen lassen kann, wenn ich seine IP-Adresse kenne. (Ohne das irgendein Server dazwischen sitzt.)

Fazit 3:
Ein BrainExtender ist sowohl Client als auch Server. Und zusammen spannen sie ein Peer to Peer-Netz (P2P) auf.
Anmerkung:
D.h. nicht, dass es keine BrainExtender gibt, die ausschließlich oder fast ausschließlich Serverfunktionen übernehmen. Ein Bundesliga-Spiel findet nun mal nicht in einem Vorgarten statt und sowas wie Youtube stemmt ein normaler BrainExtender nun mal nicht. Richtig große Server-Farmen stemmen in der virtuellen Welt sozusagen die Großveranstaltungen. Aber für den Plausch übern Gartenzaun braucht's keinen dedizierten Server.

Am Anfang der "Personal-Computerei" - Stichwort Xerox und Smalltalk

Mitte bis Ende der 70er Jahre als die Computerei sich noch im Embryo-Stadium befand, hätte die Art und Weise wie Computer funktionieren auch einen etwas anderen Weg einschlagen können.

Wenn man heute, also ca. 50 Jahre danach die Geschichte der Computerei betrachtet und schaut wie sind die Geräte aufgebaut, wie funktionieren sie, dann kommt man nicht umhin die amerikanische Firma Xerox und das von ihnen entwickelte Smalltalk zu betrachten.

Ich möchte hier nicht die komplette Geschichte erzählen. Die kann man in Büchern und im Internet nachlesen. Was ich hier erzählen oder erwähnen möchte ist, wie die Leute von Xerox sich damals vorgestellt haben wie ein Computer funktioniert.

Ich schildere das mit meinen Worten so wie ich es begriffen habe:

Bei Smalltalk gibt es kein Betriebssystem wie wir es im herkömmlichen Sinne von anderen Rechnern kennen, sondern es gibt Klassen (Baupläne für Objekte) und Objekte, die nach diesen Bauplänen erstellt werden. Die Objekte erledigen Aufgaben und interagieren miteinander in dem sie sich Nachrichten zuschicken und Informationen austauschen.

Es gibt eine Basisaustattung an Klassen, die noch weitgehend allgemein gehalten sind und die für allgemeine Aufgaben gedacht sind, wie sie bei allen Programmen vorkommen. Ein Anwender kann auf dieses Basisausstattung zugreifen und sie an seine Bedürfnisse anpassen. Dabei muß der das Rad nicht jedes Mal komplett neu erfinden, sondern er sucht sich die Klasse, die seinen Anforderungen am nächsten kommt und passt sie durch "Überschreiben" an seine Bedürfnisse an.

Als praktisches Beispiel könnte der Pritschen-Bulli von VW aus den 60er und 70er Jahren dienen. Mit seiner Ladefläche und seinen Beschlägen diente er als vielseitige Basis für Fahrzeuge im Baugewerbe, im Handwerk und in der Landwirtschaft.

Wenn jemand die Pritsche mit den Beschlägen nicht benötigte, war es für ihn immer noch viel praktischer einen kompletten Bulli zu kaufen, die Beschläge abzumontieren und auf die Pritsche die von ihm benötigte Vorrichtung zu montieren. Z.B. ein Wasserfaß oder was auch immer.

Und so ist es bei der objektorientierten Programmierung auch. Oft gibt es schon eine Klasse, die fast genau das tut was man möchte und Dank der Fähigkeit Klassen von anderen Klassen ableiten zu können und deren Methoden zu überschrieben, ist es möglich ohne großen Aufwand eine Klasse, ein Objekt zu erhalten, dass genau den Zweck erfüllt, den man benötigt.

Nun hat sich das objektorientiert Paradigma auch in der "Personal-Computerei" durchgesetzt. Zum einen wurden "prozedurale" Sprachen nachträglich objektorientiert gemacht (C -> C++, C -> Objective C) oder es sind neue objektorientierte Sprachen (Java, C#. etc.) entwickelt worden.

Allerdings ist es so, dass die Betriebssysteme, egal welcher Coleur, keine Klassen und Objekte anbieten, sondern ein prozedurales "Application Programming Interface" (API, auf deutsch: Programmierschnittstelle) anbieten. Darauf setzen nun die einzelnen objektorientierten Entwicklungssysteme auf. Allerdings ist es so, dass jedes System seinen eigenen, ich nenne es gerne, "Objekte-Zoo" mitbringt. Die Objekte von Java sind nicht kompatibel mit den C#-Objekten. Und sie können von Haus aus nicht miteinander kommunizieren. Auch hier wird das Rad n-mal (n = Anzahl der existierenden Programmiersysteme) erfunden.

Wenn man die Betriebssysteme aus Objektsicht betrachtet, dann brechen die alles runter auf drei verschiedene Klassen:
- Ordner
- Dateien
- Verknüpfungen
und das war's. Das sind dann die Objekte die sich die darauf aufgesetzten Subsysteme teilen können.

Ein typischer Fall, wie die einzelnen Programme auf dieser spärlicher Basis mit einander interagieren können, ist z.B. dass es eine Textdatei gibt deren Format bekannt ist und man kann diese Datei mit zwei unterschiedlichen Text-Editoren oder Textverarbeitungsprogrammen öffnen und in dem einen Programm den Inhalt der Datei verändern und speichern. Wenn das andere Programm gut gemacht ist und man wechselt mit dem Fokus in dieses andere Programm, dan wird es eine Meldung ungefähr in der Art bringen: "Der Inhalt der Datei wurde von einem anderen Programm geändert. Möchten Sie die Datei erneut von der Festplatte laden?"

Eine weitere Möglichkeit, wie Programme Objekte teilen können (wenn wir mal von CORBA absehen) sind SQL-Datenbanken und XML-Dateien. Objekte lassen sich zerlegen und in SQL-Tabellen abspeichern. Ebenso in XML-Dateien. Somit können sie von unterschiedlichen Entwicklungssystemen gemeinsam benutzt werden, so fern beiden die "Business-Logik" bekannt ist. Aber Änderungen müssen immer schön synchron in beiden Systemen durchgeführt werden.

Fazit 4:
Es gibt kein Betriebssystem. Was es stattdessen gibt ist ein "Objekte-Zoo" à la Smalltalk.
Warum es allerdings nicht Smalltalk sein wird, erläutere ich später noch.

Sicherheit vs. "Bytes sind geduldig"

In der realen Welt gibt es auch etwas, was sehr leicht zu fälschen ist und das sind Nachrichten und andere Informationen. Weil sie eben flüchtig und immateriell sind. D.h es ist sehr leicht ein falsche Nachricht in die Welt zu bringen oder eine an sich richtige Nachricht so zu verdrehen, dass sie falsch wird.

Geht es jedoch um materielle Dinge, dann ist ein erheblicher Aufwand notwendig. Und dann wird's schon schwierigen. Dann kann das nicht mehr jeder. Und es ist auch mit einem materiellen und somit auch finanziellem Aufwand verbunden.

Jemand möchte ein Parfum von einem bekannten Label fälschen, dann braucht er Flakons, entsprechend bedruckte Verpackungen und natürlich auch einen entsprechenden Inhalt, der nicht sofort als Fälschung erkannt wird. Das alles fällt nicht vom Himmel sondern erfordert Geschick und auch eine Logistik. Und hinterläßt auch verfolgbare Spuren.

Anders sieht es in virtuellen Welt aus. Die Computer leben von den millionen kleinen "Schälterchen", die wir Bits nennen. Sie lebt davon, dass sich diese Schälterchen blitzschnell zwischen ihren beiden Zuständen hin- und herschalten lassen. Wer darauf Zugriff hat, der ist ihr Herr.

D.h der große Vorteil der Technik ist gleichzeitig auch einer ihrer größten Nachteile, wenn es um Sicherheit und Eigentumsrechte geht.

Diese Objekte, diese Modelle, diese Abbilder der realen Welt basieren in der virtuellen Welt auf diesen leicht änderbaren Bits und Bytes. Einerseits macht das die virtuelle Welt zu dem was sie ist für uns Menschen. Sie ist schnell und leicht. Es lassen sich Sachen realisieren, die vor 100 oder 50 Jahren unvollstellbar waren. Aber gleichzeitig öffnet die Technik auch unerwünschten Manipulationen Tür und Tor. Und das macht es Leuten möglich Schaden anzurichten, den sie mit ihren Fähigkeiten in der realen Welt nicht anrichten könnten. In der virtuellen Welt ist der Aufwand zu manipulieren und zu betrügen einfach geringer.

Nur als Beispiel möchte ich hier die sogenannten "Scriptkiddies" anführen. Aber es sind natürlich nicht nur Jugendliche, sondern auch Erwachsene. Ein begnadeter Maler kann als Fälscher ein Bild eines anderen Malers so gut kopieren, dass selbst Experten Probleme haben die Fälschung zu erkennen. Aber die Anzahl derer, die das wirklich gut können ist begrenzt. Während es in der virtuellen Welt fast schon ausreicht einfach den Willen zu haben etwas Unrechtes zu tun.

Fazit 5:
Um die Sicherheit bedeutend zu erhöhen, sollten wir an den geeigneten Stellen wieder zu den "guten alten Read-Only-Memories" zurückkehren.
Anmerkung:

Zuerst hat man an gefangen das BIOS beschreibbar zu machen, um nachträglich Änderungen und Verbesserungen "aufspielen" zu können und seit einiger Zeit gibt es UEFI, was die Sache noch eher komplexer macht. Die Sache ist die, durch die Möglichkeit auch an diesen Stellen nachträglich Änderungen vornehmen zu können, muß die Software nicht so gut entwickelt und getestet werden. Das spart im ersten Moment Zeit und Geld. Reißt aber eine Sicherheitslücke auf. In sicherheitkritischen Bereichen ist es üblich nach einer Virenattacke die Server komplett auszutauschen, weil man Angst hat die Viren könnten eine Neuinstallation des Betriebssystems im BIOS oder UEFI überleben. (Beim guten alten IBM AT war eben ROM noch ROM.)

Wie und wo das möglich und sinnvoll wäre, erkläre ich an anderer Stelle. (Und selbstverständlich sollte das nicht die einzige Maßnahme sein um die Sicherheit zu erhöhen.
Nachtrag vom 28.9.2019:

Mir ist heute eine Idee gekommen, wie man die Integrität von Code gewährleisten kann ohne auf die Flexibilität von programmierbarem/änderbarem Code verzichten zu müssen. Die Idee funktioniert hardwareseitig. Mehr möchte ich an dieser Stelle nicht verraten. Die Idee ist eventuell patentierbar.

(Ich bin eigentich kein so großer Freund von Software-Patenten, oder in diesem Fall von einem Hardware/Software-Patent. Denn, wenn es etwas gibt, was die Sicherheit im Sinne der Benutzer erhöht, sollte dieses Verfahren allen zur Verfügung stehen.)

"Hardware"-Identität

Der europäische Gesetzgeber hat in seiner Datenschutz-Grundverordnung (DSGVO) festgelegt, dass die IP-Adresse eines Computers im Internet als persönliches Datum einer natürlichen Person zu betrachten ist.

Ich bin doch nicht meine IP-Adresse. Die IP-Adresse ist doch nichts anderes als ein Teil des Kommunikations-Protokolls, mit Hilfe derer sich die Computer unteinander identifizieren und so ihre Nachrichten austauschen. Es ist nichts anderes als ein technisches Merkmal. Die IP-Adresse identifiziert doch lediglich den Computer, aber nicht den Menschen hinter dem Computer. Wenn man so was machen wollte, dann müßte man sinnvollerweise sagen, der Benutzername plus die IP-Adresse bilden ein perönliches Datum und sind schützenswert. (Auch dann, wenn der Provider die IP-Adresse turnusmäßig ändert.)

Ich habe eingangs geschrieben, dass die virtuelle Welt im Prinzip ein Modell der realen Welt ist und, dass wir die Modelle nur so gut und exakt machen, so wie wir sie für die Lösung unserer Probleme brauchen.

Dieses machen wir auch mit unserer eigenen Person. Damit wir im Internet eine Identität haben, reduzieren wir unsere reale Identität auf ein Minimum. Wenn wir uns bei einem Internet-Dienst oder auch an unserem Rechner anmelden, dann besteht unsere Identität aus dem Benutzernamen und dem Passwort. Bei vielen Internet-Diensten kann man sich auch per Email-Adresse und Passwort anmelden. Eventuell sind hinterlegen wir bei unserem Rechner-Account noch weitere Daten wie Vorname, Name etc. Ebenso bei den Internet-Diensten insbesondere, wenn wir von dort Waren kaufen.

Aber die Identität besteht nur aus Username und Passwort oder Email-Adresse und Passwort. Wobei die Email-Adresse und Passwort noch ungünstiger sind, weil wir unsere Email-Adressen öffentlich. D.h das einzige Geheimnis ist das Passort. Und alles basiert nur rein auf Information, eben auf den beweglichen und leicht manipulierbaren Bytes.

Das ist eine Identität auf sehr wackligen Beinen und entsprechend oft kann mit wenig Aufwand Mißbrauch damit getrieben werden, bzw. wird es auch. Es vergeht kein Tag an dem nicht in den Medien von irgendeiner Computer-Betrugsmasche oder einem Sicherheitsleck berichtet wird.

Dass die Sicherheit der User durch diese Art der Identität auf wackligen und unsicheren Beinen steht, hat die Computer-Industrie aktuell auch erkannt und es etabliert sich gerade ein neuer Standard, der sich FIDO2 nennt. Basis dafür ist ein kleiner, sogenannter Token. Ein Stück Hardware an das die Identität gebunden wird. D.h. durch reine Software-Manipulation ist so eine Identität nicht mehr zu knacken. Der Dieb muß auch in den Besitz des Stück Hardware kommen. Zu dem ist es so gemacht, dass selbst in der komfortabelsten Einstellung, auch zusätzlich eine Aktion des Benutzers notwendig ist. D.h. es reicht nicht den Token am Rechner einzustecken und alles ist schon freigeschalten. Sondern es ist so, dass wenn immer die Identität beim Token abgefragt wird, der Token das optisch anzeigt und der Benutzer muß einen Knopf direkt am Token betätigen um seine Identität frei zugeben.

Das ist absolut ein Schritt in die richtige Richtung. Anbindung der Identität an ein Stück nicht so leicht duplizierbare Hardware. Wenn's auch die richtige Richtung ist, so geht mir der Schritt nicht weit genug. Auch vertröste ich Sie auf später, wenn ich mein Konzept genauer erläutere.

Fazit 6:
Die Identität eines Benutzers sollte in einem idealen System mit einem Stück nicht so leicht duplizierbarer Hardware verbunden werden.

Vergänglichkeit

Etwas was es in der realen Welt gibt, das aber nicht in die virtuelle Welt übertragen wurde, ist die Vergänglichkeit. Stirbt ein Mensch so nimmt er sein Wissen und seine Erinnerung mit. Wenn wir den digitalen Speicher unserer Computers als eine Erweiterung unseres Gehirns ansehen, dann sollte es auch dort so etwas geben wie das Mitnehmen der dort gespeicherten Information in Form der Objekte.

Sicherlich soll nicht der komplette Speicher gelöscht werden. Das wäre relativ leicht zu bewerkstelligen. Selbst wenn wir keine Technik dafür vorsehen, könnten wir z.B. testamentarisch vorsehen, dass im Falle des Todes unsere Festplatten vernichtet werden.

Fazit 7:
Es soll die Möglichkeit geben im Falle des Todes des Eigentümers einen Vorgang auszulösen, der den Speicher im Sinne seines Besitzers für die Übergabe an seine Erben ermöglicht. Bestimmte Objekte werden gelöscht, andere werden allen zugänglich gemacht, oder Objekte gehen an einzelne Personen über.
Das Ganze hängt mit der Identität zusammen. Der oder die Erben erhalten den Token des Toten plus einem zusätzlichen Schlüssel oder Code, der diesen Vorgang auslöst. Das ganze muß wieder mit einer Hardware und einer zusätzlichen menschlichen Aktion gekoppelt werden, so dass fremde Menschen den Vorgang nicht aus der Ferne des Netzes auslösen können.

Haltbarkeit von Objekten und der "Gerümpel-Speicher"

Das klingt jetzt so ähnlich wie das Thema Vergänglichkeit davor. Aber hier geht's darum, dass Objekte vorhersehbar ihre Aktualität verlieren können und schon beim Erzeugen klar ist, dass dieses Objekt nicht ewig leben muß.

Selbstverständlich kann jedes Objekt, das einem gehört zu jederzeit von einem selber gelöscht werden. Nur wer macht das konsequent. Jede Festplatte ist voller Dateien, die eigentlich nicht mehr gebraucht werden.

Folglich wäre es doch nur konsequent, dass man beim Erzeugen eines Objektes festlegen kann, wann es automatisch gelöscht werden soll. Wenn es sich z.B. um eine Internetseite für eine Veranstaltung handelt. Irgendwann kommt der Tag an dem die Veranstaltung stattfindet. Und danach macht es ja nicht mehr so viel Sinn auf diese Veranstaltung hinzuweisen.

Oder vielleicht kommen unsere politischen Parteien mal dahinter vor den Wahlen die Wahlplakate nicht mehr an Straßenlaternenpfählen sondern im Internet aufzuhängen. Diese Wahlplakat-Objekte könnte man so programmieren, dass zeitgleich mit dem Schließen der Wahllokale verschwinden.

Nun im realen Leben ist auch so, dass es Leute gibt die nicht sofort alles wegwerfen wollen, sondern sich sagen: Wer weiß, vielliecht brauche ich es ja nochmal und dann landet das Objekt entweder im Keller oder auf dem Dachboden. In der virtuellen Welt gibt es bisher nur den Papierkorb. Aber man könnte auch ein Äquivalent zum Keller/Dachboden einführen.

Der Unterschied zum Papierkorb ist der, dass die Objekt zwar aus dem normalen System rausgenommen werden, aber erhalten bleiben. Wenn man aber etwas sucht, dann wird nicht im Keller oder auf dem Dachboden gesucht. Aber man kann optional angeben, dass auch der Keller/Dachboden durchsucht wird. Oder, wenn man weiß, dass das/die Objekt(e) sich im Keller befinden müssen, eben nur den Keller durchsuchen.

D.h., wenn man die Haltbarkeit eines Objektes festlegt, kann man angeben wohin es verschwinden soll. Entweder in den Papierkorb oder auf den "Speicher".

Fazit 8:
Objekte können eine Haltbarkeit haben. D.h. der Erzeuger kann bereits beim Erstellen eines Objektes ein Ablaufdatum angeben. Muß er aber nicht. Es kann auch nachträglich oder gar nicht erfolgen. Und man kann bestimmen, ob ein Objekt dann entweder in den Papierkorb kommt oder auf dem "Speicher" landet. Jedenfalls ist es aus dem "normalen" System verschwunden.
Anmerkung:

Es geht hierbei nicht darum Müll zu produzieren, sondern Dateien, Objekte, die eh da sind und nicht gelöscht werden aus z.B. aktuellen Suchergebnissen herauszuhalten und es dem Benutzer leichter zu machen, dass er sagt: Dieses Objekt verliert irgendwann seinen Sinn, seine Aktualität also versehe ich es mit einem Haltbarkeitsdatum. Diese Entscheidung fällt im wahrscheinlich leichter, wenn das Objekt nicht richtig gelöscht wird, sondern weiterhin auf dem "Gerümpel-Speicher" existieren kann.

Leute die aktuelle Ergebnisse siuchen, finden so aktuelle Ergebnisse. Und wie im realen Leben gibt es auch in der virtuellen Welt Leute die "Trödel" suchen. Dies suchen dann auf dem "Gerümpel-Speicher" und können dort auch fündig werden.

Das "Gerümpel" existiert heut ja auch. Ich schlage damit nur eine Trennung zwischen aktuellen und nicht mehr aktuellen Informationen vor.

1000 Protokolle vs. ein Protokoll

Wenn Computer miteinander kommunizieren, wieviele verschiedene Protokolle gibt es da? Zugegeben meine 1000 aus der Überschrift könnten zu hoch gegriffen sein.

Aber man könnte die Sache mal hinterfragen und die Frage stellen: Ist es wirklich notwendig so eine hohe Komplexität zu generieren um die Aufgaben zu bewältigen, die momentan damit bewältigt wird?

Weil es kein einheitliches Objekt-Modell in der derzeitigen virtuellen Welt gibt, erfindet jeder sein eigenes Protokoll. Bzw. man sollte besser sagen, dass im Laufe der Zeit sehr viele Protokolle einfach gewachsen sind.

Zu den ältesten Protokolle, die noch intensiv im Einsatz sind, gehören die Protokolle, die dem Mail-Verkehr dienen. Aber schon die Aussage "die Protokolle" sollte stutzig werden lassen. Es genügt scheinbar nicht ein Protokoll, sondern es sind mindestens vier.

Je nach Einsatzzweck und Protokoll sind unter Umständen auch noch Dinge wie "Carriage Return" und "Linefeed", Zeichensatz und Prozessor-Archtitektur wie Little- und Big-Endian zu beachten. Das ist zwar nicht bei allen Protokollen so.

Wenn man sicher über einen sicheren, einen verschlüsselten Kanal kommunizieren möchte, ist man wieder für jeden Kanal einzeln verantwortlich ihn abzusichern. Also jedes mal eigenes Schlüsselpaar, Passwort usw. Alles sehr umständlich.

Als Anwendungsprogrammierer möchte ich mich nicht um solche Details kümmern. Ich betrachte einen Nachrichtenkanal als eine Röhre in die ein Objekt reinschiebe, das dann am anderen Ende wieder exakt so rauskommt, wie ich es reingeschoben habe. Und der Kanal sollte bidirektional sein um zustandsbehaftet kommunizieren zu können und die Rechner sich bei Bedarf jederzeit "anstupsen" können um Aktualisierungen durchzugeben. Die Rechner haben einen gemeinsamen Kontext.

Und wie der Kanal physikalisch beschaffen ist, sollte aus Anwendungsentwickler-Sicht unerheblich sein. Ob das nun LAN, WLAN, USB oder Bluetooth ist.

Fazit 9:
Wenn der "Objekte-Zoo" existiert, geht's immer nur um Objekte. Somit genügt zur Kommunikation auch ein Protkoll. Und mehr braucht's nicht. Lediglich die Eingabe-Geräte, die Aktoren, die menschliche Befehle (Aktionen) senden, senden eventuell anders geartete Daten. Ausgabe-Geräte sollten so intelligent sein, dass sie Objekte + Metadaten zur Darstellung empfangen und fähig sind, diese Objekte selbstständig darzustellen.

Esoterischer Ansatz: Alles ist mit allem verbunden

Granularität

Momentan ist es so, dass man schon Verknüpfungen herstellen kann. Aber die finden auf einer sehr groben Basis statt. Dadurch, dass es auf Betriebssystem-Ebene nur die Objekte Ordner, Datei und Verknüpfung gibt, ist z.B. nicht möglich außerhalb eines Textdokumentes auf einen bestimmten Abschnitt, z.B. auf ein Kapitel ein Verweis von außenhalb der Textverarbeitung zu machen.

Angenommen man hat zu einem Thema zwei Word-Dokumente, ein OpenOffice-Dokument und ein PDF-Dokment. In jedem Dokument befindet sich eine Textstelle, eine Tabelle, ein Bild oder was auch immer. Man möchte nun von außen auf Betriebssystem-Ebene sich Merker oder Verknüpfungen setzen, damit man genau diese Stellen immer wieder finden kann. Das geht nicht. Nicht mit dieser Architektur.

In dem Fall würde man sich so behelfen, dass man ein fünftes Dokument erstellt, in welchem Format auch immer, und man würde die betreffenden Stelle in das neue Dokument hineinkopieren. Das hat aber den Nachteil, dass wenn die Stelle im originalen Dokument geändert wird, man diese Änderung zwei mal machen muß, wenn man selber Autor der originalen Datei ist. Und wenn man nicht Autor ist, bekommt man die Änderung eventuell gar nicht mit.

Auch hier sehen wir wieder, dass das Objekt-Modell, dass die Betriebssysteme anbieten, viel zu grob ist.

Wenn wir als Analogie aus der realen Welt den Aufbau der Materie nehmen, so könnten wir sagen, dass die Atome den sogenannten "primitiven Datentypen" entsprechen. Zumindest bei der Sprache Java wird diese Bezeichnung für die Basis-Typen verwendet. Das sind solche Gebilde wie:
ein Schriftzeichen
eine ganze Zahl
eine Fließkommazahl
eine Zeichenkette
ein boolscher Wert
etc.
Das sind die Grundstrukturen aus denen dann die komplexeren Objekte aufgebaut werden.

Man kan hier eine Analogie zur realen Welt aufzeigen. Die Materie besteht auf der atomaren Basis aus den chemischen Elementen des Periodensystems. Aus diesen Grundstoffen ist jegliche Materie aufgebaut. Sei es die unbelebte oder belebte Materie. (Anorganische / organische Materie) D.h. aus den Grundbausteinen der ca. 100 chemischen Elementen ist sämtliche Materie aufgebaut.

Wie kennen Materialen aus homogenen Stoffen wie z.B. einen Eisenklotz. In der Praxis verwenden zwar selten reines Eisen sondern viel mehr Eisenlegierungen, weil die günstigere Eigenschaften haben.
Aber in der Welt der Programme würde so ein "Material" z.B. einem Array aus lauter Ganz-Zahlen entsprechen.

Ein Auto ist ein sehr komplexes Objekt aus vielen Materialien. Zum einen aus Eisen bzw. Stahl und zum anderen aus vielen Teilen, die sich wieder aus noch kleineren Teilen zusammensetzen. Man kann sagen, dass ein Auto eine Komposition aus vielen Teilen ist, die diese Teile sind wieder eine Komposition aus noch kleineren Teilen. Am Ende landen wir bei den Atomen.

Genauso verhält es sich bei den Objekten in der virtuellen Welt. Komplexe Objekte sind Kompositionen aus kleineren Objekten, die wiederum Kompositionen aus Objekten oder den "primitiven Datentypen" sind. D.h. wir können Objekte bis runter zu den primitiven Datentypen auflösen.

In dem Moment, wo wir z.B. eine große Textdatei vor uns haben, deren Format wir nicht kennen, das für uns nicht transparent ist, ist keine "Granularität", bzw. nur eine sehr grobe Granularität gegeben. Wir können das Objekt nicht in kleinere Teile auslösen. (Nur mit dem dazugehörigen Textverarbeitungs-Programm. Dieses interagiert im Normalfall nicht mit anderen Programmen. Selbst innerhalb des weitverbreitenen Microsoft-Office gibt es diese Granularität nicht, oder wenn dann nur sehr, sehr eingeschränkt.)

Aber wozu brauchen wir diese "Granularität"? Lesen Sie dazu den nächsten Abschnitt "Die assoziative Verwaltung von Objekten"

Die assoziative Verwaltung von Objekten und vernetztes Denken

Die Granularität der Objekte ist die Voraussetzung für das was in der Esoterik gerne als "Alles ist mit allem verbunden" bezeichnet wird. (Ob das wirklich so ist, bleibt jedem selber überlassen.) Nur in der "Objektwelt" des BrainExtenders sollte es so sein, dass alles irgendwie miteinander verbunden und verknüpft werden kann.

Bei den bisherigen Betriebssystemen ist das Kriterium Speicherort maßgeblich. Die (groben, nicht granuläre) Objekte, die Dateien, werden auf den verschiedenen Laufwerken in Ordnern abgelegt. D.h. das Ordnungskriterium, wo so eine Datei landet ist der Speicherort.

Meiner Meinung nach sollte dieses Konzept dringend hinterfragt werden. Wenn ich eine Idee, einen Gedanken, ein Bild in meinem Gehirn speichere, dann Speichere ich das Objekt ohne den Ort zu wissen. Sondern ich verbinde damit gewisse Assoziationen wie Gefühle oder z.B. Gerüche.

Das heißt ich speichere Objekte in dem einen Speicher ohne zu wissen wo sie rein örtlich dann landen. D.h. es gibt keine Ordner. Sondern dafür lege ich mit einen Index oder Stichworte an. Und die Objekte können dann beliebig mit diesem Index oder den Stichworten verknüpft werden.

Die Verbindungen sind bidirektionale Verbindungen. Ich kann einmal zum Speicher sagen: "Zeige mir alle Objekte zum Stichwort 'Haus' an." Oder wenn ich ein Objekt habe, kann ich fragen mit welchen Indizes oder Stichworten dieses Objekt verbunden ist.

D.h. im BrainExtender-System gibt es verschiedene Verknüpfungs-Klassen bzw. Verknüpfungs-Objekte. Auf die Details dieser Verknüpfungen möchte ich an dieser Stelle nicht eingehen. Es nur klar sein, dass es mindestens ein handvoll verschiedener Verknüpfungen mit deren Hilfe ein Netz zwischen den Objekten gespannt werden kann.

Fazit 10:
Es bedarf einer feinen "Granularität" um eine Gedächtnis ähnliche Vernetzung der Objekte im Speicher vornehmen zu können.

Skalierbarkeit

Ein System sollte mit den Bedürfnissen seines Besitzers mitwachsen können. D.h. ein BrainExtender muß skalierbar sein.

Skalierbar was die Größe des Speichers und die Verarbeitungsgeschwindigkeit betrifft. Beides geht meistens miteinander in her. Mehr Daten brauchen einen größeren Speicher und wo's meht zu verarbeiten gibt, will man das dann auch weiterhin in derselben Zeitspanne, sprich die Rechnerei sollte schneller werden.

Dennoch soll es unabhängig von einander gehandhabt werden können. Also eine Vergrößerung des Speichers soll unabhängig von den Komponenten sein, die die Verarbeitung der Daten vornehmen und umgekehrt. Die Erhöhung der Verarbeitungsgeschwindigkeit soll unabhängig von der Anpassung der Speichergröße sein. (Also vorausgesetzt der Speicher kann die Daten schnell genug liefern.)

Fazit 11:
Der BrainExtender muß sich dem Bedarf in Punkto Speicherplatz und Verarbeitungsgeschwindigkeit an die Bedürfnisse des Benutzers anpassen können.

Die eigene Cloud

Dadurch, dass es nur einen (Permanent-)Speicher gibt, fungiert dieser automatisch als "Cloud".

Jeder sollte für sich entscheiden können wie er es mit seinem Speicher hält. Will er ihn zu Hause komplett in Eigenregie haben oder will er sich einem Unternehmen anvertrauen und dadurch von überall her Zugriff auf seinen Speicher haben. Oder soll es eine Mischung aus beidem sein?

Fazit 12:
Der Dauerspeicher für die Objekte kann wie eine Cloud funktionieren. Der Unterschied zu den heute üblichen Clouds ist, dass sie sicherer ins System eingebunden ist. Es gibt Vorkehrungen in Form von Hardware die dafür sorgen, dass die Daten unter der Kontrolle des Benutzers bleiben.
Anmerkung:

An dieser Stelle möchte ich anmerken, dass ein gewisses Rest-Risiko auch beim BrainExtender bleibt.

So ein Netz besteht aus Knotenpunkten oder anderen Stellen an denen auch verschlüsselter Datenverkehr mitgeschnitten werden kann und somit sämtliche Transfers auf Vorrat gehortet werden können um sie später mit genügend Rechenpower doch zu knacken. Die gerade aufkeimenden Quantencomputer werden hier sicherlich noch eine Rolle spielen. Aber dieser Schwachpunkt ist allen Systemen gemein.

Künstliche Intelligenz und neuronale Netze

Zukünftig wird die künstliche Intelligenz auch bei privaten Rechnern eine größere Rolle spielen. In der Industrie sowieso. Im Prozessorenbau geht der Trend momentan dahin, dass es Prozessoren gibt, die hinsichtlich ihres Einsatzes mit neuronalen Netzen getrimmt werden. Aber nicht alles wird zukünftig "neuronal" gelöst werden können. D.h. auch die alten Techniken behalten ihre Relevanz.
Fazit 13:
Es braucht ein Design, dass beide Verarbeitungsarten flexibel berücksichtigen kann.

Inklusion

Die Inklusion, also die Tauglichkleit eines Rechners auch für Menschen mit körperlichen Einschränkungen, sollte komplett ins System "einprogrammiert" sein. D.h. beim Design sollte das von Anfang an berücksichtigt werden.

Zum mal das auch nicht behinderten Menschen durchaus zu Gute kommen kann. Wenn ein System für 100% gehörlose Menschen funktioniert, dann kann das auch für normal hörende Menschen praktisch sein. Z.B. in sehr lauten Umgebungen oder in Umgebungen in denen Stille und Ruhe erwünscht ist.

Fazit 14:
Die Bedienbarkeit für Menschen mit körperlichen Einschränkungen ist dem System inhärent und von Anfang Ziel des Designs. Auch zum Vorteil der gesunden Nutzer.

Schutz von Minderjährigen vor pornographischen und gewaltverherrlichenden Inhalten

Wenn in unserer realen Welt mit pornographischen und Gewalt zeigenden Darstellungen so umgegangen würde wie in der virtuellen Welt, wäre der Aufschrei riesengroß. In der virtuellen Welt wird's eben so hingenommen. Weil jeder meint man könnte nichts dagegen tun. Das ist aber ein Irrtum. Meine Idee für's BrainExtender-Netz ist ganz einfach:
Man kann ohne sich auszuweisen beliebig surfen. Nur die nicht kinder- und jugendlich-tauglichen Sachen sind nur dann zugänglich, wenn mit dem Security-Token gesurft wird. Und der muß beim Besuch solcher Seiten ja lediglich die Information herausgeben, ob der Surfer volljährig ist oder nicht.
Fazit 15:
Die Rechteverwaltung ist so zu gestalten, dass bestimmte Inhalte nur für volljährige Personen zugänglich sind. Mit Hilfe einer an Hardware gekoppelten Identität ist das möglich.

Zusammenarbeit / Teamarbeit / Kollaboration

Nun es gibt einen sehr weit verbreiteten Bereich im Personal Computing, in dem das kollaborative Arbeiten Standard ist, und das ist nicht beim Arbeiten, sondern beim Spielen.

Geht's um das gemeinsame gleichzeitige Schreiben an einem Textdokument oder an einem 3D-Modell, so sind das derzeit Ausnahme-Programme, die keine große Verbreitung haben. Wobei ich bei einem Textprogramm nicht das editieren im gleichen satz meine. Das macht keinen Sinn. Aber ich könnte an einem eigenen Absatz schreiben und eine andere oder mehrere Personen an anderen Absätzen/Kaptiteln arbeiten. Scrolle ich an diese Stellen, so sehe deren Text instantan entstehen.

Ähnliches könnte bei der Konstruktion von 3D-Modellen geschehen. Zwei Entwickler haben sich eine Konstruktionsaufgabe aufgeteilt, weil es sinnvoll ist, dass jeder ein Teil eines Ganzen konstruiert, bei dem die Teile miteinander verbunden sind. Der jeweils Andere kann sehen, wie das Teil des Anderen entsteht und was dieser gerade macht.

Existiert eine Tonverbindung zwischen den Beiden, so können sie sich an beliebig getrennten Orten auf dieser Welt aufhalten.

Entspricht in der realen Welt, wenn zwei oder mehr Leute um einen Schreibtisch oder ein Zeichenbrett herumstehen und jeder seine Ideen einbringt.

Eine andere Art der Zusammenarbeit ist, dass man auf einfache Art und Weise einen Kollegen "anrufen" kann und neben dem Ton auch der eigene Bildschirm- oder Fensterinhalt bei demjenigen Kollegen erscheint und man ihn um seinen Rat oder Meinung zu einem Thema/Problem fragen kann und er sofort sieht um was geht.

Oder jemand braucht Hilfe bei der Bedienung des BrainExtenders oder einem Programm. Jeder, der überdurschnittliche Ahnung von Computern hat, kennt die Anrufe: "Du ich schreibe gerade mit <Textverarbeitung xy> einen Text und ... " Und dann geht zuerst mal die mühsame verbale Suche nach dem selben Menü/Fenster/Dialog los. Da ist es doch viel leichter mit der Hilfe, wenn man auf einen Mausklick hin dasselbe sieht wie der hilfesuchende Benutzer.

Selbstverständlich gibt's dafür heutzutage Programme. Nur hat der Anrufende dieses Programm bereits installiert? Eventuell ja, aber ist es auch dasjenige, das ich habe?

Fazit 16:
Die Möglichkeit der Teamarbeit sollte auf Betriebssystem- und Programmebene eingebaut sein. Sprich das BrainExtender-Netzwerk ist eine Kollaborationsplattform.

Bildschirm-Ausgabe

a.) 3D-Ausgabe

Die graphische Ausgabe erfolgt in 3 Dimensionen. Beim BrainExtender denken wir in Räumen, nicht in Flächen. Da wo ein 2 D-Ausgbe erfolgen soll, wird die Z-Koordinate überall auf den Wert 0 gesetzt. D.h. die 3D-Ausgabe ist die Standardausgabe und die 2D-Ausgabe ist eine Sonderform. Im Zeitalter der 3D-Drucker sollte das so sein.
Fazit 17:
Die Graphik-Bibliothek ist eine 3D-Bibliothek.

b.) Die Größen-Einheit

Betrifft vor allem die Programmierer:

Die Bildschirmauflösungen sind inzwischen so hoch, dass die Größenangaben in Pixel ersatzlos gestrichen werden können. Die Größenangaben erfolgen in der metrischen Längeneinheit Millimeter. Das gilt für alle Angaben, auch für die Schriftgrößen. Für andere Länder wird entsprechend umgerechnet. Das Denken in Pixel entfällt ersatzlos.

Fazit 18:
Die interne Maßeinheit für Längenangaben ist die metrische Einheit Millimeter. Wenn eine waagrechte Linie mit 5 cm Breite gezeichnet wird und kein Zoom verwendet wird, so wird die Linie auch am Bildschirm mit 5 cm Breite dargestellt.

Kaufen und bezahlen im Netz

Brauchen wir wirklich virtuelle Währungen? Die ihrer Sicherheit wegen Resourcen fressen. Die zum Spekulations-Objekt geworden sind?

Wir können unsere Waren doch schon per Computer bezahlen. Nur ist das ganz, weil so gewachsen und sich alle Beteiligten noch nie zusammengesetzt haben und die Sache so richtig durchdacht haben, recht kompliziert und umständlich.

Mein Grundgedanke ist, dass das Handeln und Bezahlen im Netz schon auf Betriebssystem-Ebene eingebunden sein sollte. Die bisherigen Erfahrungen und das Wissen bieten das gerade zu an. Inwischen gibt das Blockchain-Verfahren das sich anbietet, wenn Menschen, die sich nicht kennen, und somit noch kein Vertauen aufgebaut wurde, miteinander handeln.

Die Beteiligten sind: Der Käufer, der Verkäufer, der Zusteller und die Bank des Käufers. Generell sind Käufe unter ehrlichen Mesnchen kein Problem. Du lieferst mit das zu dem Preis. Per Handschlag vereinbart.

Heutzutage tummeln sich einige schwarze Schafe auf beiden Seiten. Sie treten als Käufer oder Verkäufer auf. Um die Masse der ehrlichen Menschen zu schützen und ihnen ein ungetrübtes Handeln zu ermöglichen, ist es von Vorteil für sie, wenn die BrainExtender-Plattform das sichere Bezahlen von Haus aus integriert hat.

Dabei sind die Vorschriften der DSGVO zu beachten und niemand soll gebrandmarkt werden. Und das Blockchain-Verfahren bietet sich gerade zu an, die notwendig Information so zu verteilen, dass jeder Beteiligte nur die Information vom anderen bekommt, die er sowieso schon bekommen würde. Und auf dieser Basis treffen alle Beteiligte ihre Entscheidung für eine geschäftliche Transaktion.

Die Banken werden deshalb mit eingebunden, weil über sie die Bezahlungen abgewickelt werden. Um das von mir angedachte Verfahren handelt es sich um eine Verbesserung dies HBCI-Verfahren mit Kartenleser und Geldkarte, wie es viele Banken bereits schon anbieten. Das sich am Markt wegen der damit verbundenen Kosten für die Bankkunden leider nocht durchgesetzt hat, obwohl es eines der sichersten Verfahren ist, weil die Banken ihren Kunden eine Schlüssel- und Identitätskarte ausstellen.

Denkbar sind folgende Sicherheitsstufen:

  1. Bezahlen ohne weitere Sicherheitstufe über den Identity-Token
  2. Bezahlen mit Identity-Token + zusätzlichem Passwort
  3. Für's Bezahlen wird ein weiterer, spezieller Token (Cash-Token) inkl. weiterem Passwort verwendet.
    (Für mich die sicherste Form. Wer von meinen Konto unberechtigterweise Geld abbuchen möchte, muß in den Besitz beider Tokens kommen inklusive meiner beiden Passwörter.)
Jeder User kann sich nach seinem persönlichen Sicherheitsbedürfnis für eine Stufe entscheiden.

Die dritte Möglichkeit eignet sich auch zur Online-Verwaltung von Bankkonten. Es ist angedacht eine einheitliche Schnittstelle dafür zu entwickeln.

Fazit 19:
Bestellen, geliefert zu bekommen und zu bezahlen ist ein durchgängiger Prozess bei dem alle Beteiligten quasi über eine Blockchain "aneinander gekettet" werden. Die Beteiligten sind Käufer, Verkäufer, Versender und die Bank. "Zickt" einer der Beteiligten "rum", so erfahren das nur die jeweils unmittelbar Betroffenen.
PS: Selbstverständlich wird das Bezahl-System so aufgebaut sein, dass auch virtuelle Güter wie Information, elektronische Bücher und anderes direkt bezahlt werden können. Der Versender entfällt in diesem Fall, bzw. ist das Netz selber.

Schonung der Netzwerk-Resourcen

Die Übertragungs-Bandbreite ist eine Resource nach deren Ausbau zwar ständig "geschrien" wird, aber niemand scheinbar auf die Idee kommt, dass man damit auch schonend umgehen könnte. Das hat meiner Ansicht nach zwei Ursachen:
  • Ungünstige Programmierung
  • Die resourcenfressende Werbung

Ein Beispiel für ungünstige Programmierung:
Auf einer Html-Seite befinden sich drei Checkboxen mit denen der Benutzer etwas für eine weitere Aktion auswählen kann. Wird reines Html verwendet, so geschieht folgendes: Der Server erhält vom Client die Information, dass auf eine der Checkboxen geklickt wurde. Daraufhin erstellt der Server die Html-Seite neu und sendet die komplette Seite erneut an den Client-Rechner. D.h. eine vergleichsweise "winzige" Aktion eines Benutzers erzeugt einen großen, in keinem Verhältnis dazu stehenden, Datenstrom.

Es gibt Mittel und Wege das zu umgehen. In dem man z.B. clientseitig Javascript dazu verwendet das "Kreuzchen" in das "Kästchen" zu malen. Aber im ursprünglichen Design von Html-Seiten war das nicht so vorgesehen.

Im Design des BrainExtenders wird Wert darauf gelegt sparsam mit der Resource "Bandbreite" des Netzwerkes umzugehen. Wird von einem Client ein Objekt von einem Server angefordert, so ist klar, dass das komplette Objekt an den Server übertragen wird. Nimmt ein Benutzer Änderungen am Objekt vor und will, dass diese Änderungen dauerhaft auf dem Objekt-Server für das Objekt gespeichert werden, so reicht es lediglich die Änderungs-Information an den Server zurück zu schicken. Es ist unnötig das komplette Objekt zurück zu übertragen.

Wir erinnern uns. Das BrainExtender-Netzwerk ist ein Peer-to-Peer-Netzwerk. D.h. ein Rechner nimmt in einem Falle zwar die Rolle des Clients ein. Aber er ist mit genügend Rechenleistung ausgestattet, weil er auch als Server fungieren kann. Dadurch ergibt sich die Möglichkeit die nötige Rechenarbeit so zu verteilen, dass möglichst wenig Netzwerk-Verkehr notwendig ist.
Natürlich kann ein "Otto Normal Verbraucher"-BrainExtenders nicht Rolle eines Servers für Tausende von Clients übernehmen. Aber durch eine einfache Skalierbarkeit des Systems kann das Angebot entweder in Eigenregie auf leistungsfähigere BrainExtender-Maschinen umgelagert werden. Oder man greift auf darauf spezialisierte externe Anbieter zurück. (So wie es heute auch schon der Fall ist.)

Die Werbung wird sich schwer eindämmen lassen. Aber man könnte sie gezielter einsetzen. Darauf gehe ich im nächsten Punkt ein.

Fazit 20:
Design-Ziel: Sorgsamer Umgang mit der Resource Bandbreite des Netzes. Und zwar so, dass es dem System inhärent ist und sich die Software-Entwickler keine Gedanken darüber machen müssen.
(Realisiert wird dies durch eine ausgeglichene Lastenverteilung und entsprechend ausgelegte Protokolle.)
Aus diesen Schlußfolgerungen kann man sich nun ein Design für einen Rechner ausdenken. Und ich meine damit ein besseres und flexibleres Design als das bisher übliche.
Trenner für's vert. Verschieben bei Touchscreens