Distributed System or just some Plants?
Distributed systems provide some advantages over centralized systems like a higher computing power, cost reduction, higher reliability and scalability.
But still that does not mean that dezentralisation has no weaknesses. So let's focus on the disadvantages of distributed systems compared to single computers for a moment. We do this now, in order to understand, what a blockchain can actually and/or potentially do to eradicate those disadvantages.
This is already the third article to introduce beginners into the blockhain world. You can check the articles here: First Post (Distributed VS. Centralized Software Architecture) and Second Post (Advantages of Distributed Systems)
For more information check out the book "Blockchain Basics" by Daniel Drescher
or
The Youtube Channel: Blockchain at Berkely https://www.youtube.com/channel/UC5sgoRfoSp3jeX4DEqKLwKg
(Special thanks to @lauch3d for the recommendation)
Disadvantage #1: Coordination
As the name suggests, distributed systems usually have no central entity to coordinate all the members of the system. More computing power is required to coordinate the network efficiently. This means that in a single computer more of the computing power can be used for the genuine computing task itself and not just for infrastructure.
Disadvantage #2: Communication
To coordinate with each other the individual computers of a network have to communicate with each other. This again eats up additional computing power, since it requires a communication protocol and also the sending, receiving and processing of messages demands its share (of the computing power). So again some computing power is spend on tasks other than the genuine computing task.
Disadvantage #3: Dependencies on Networks
Well here we go. The network of many individual computers requires... you guessed correct... a network. Because without a network there would and could be
- NO communciation
and - NO coordination possible.
So a network is required in order to create a distributed system. That is why, a distributed system has a depency on network(s). This leads to the next disadvantage:
Disadvantage #4: A Higher Program Complexity
Networks have ther own challenges and adversities and to solve all these computational challenges the software architecture has to be just right. Writing such programms and software will be way more complex than just writing programms or software for a single computer.
There is also the question of Security which brings us to the next disadvantage:
Disadvantage #5: Security Issues
In order to send data through the network you have the challenge to provide security for critical data. This is why every distributed network has adress security concerns in order to prevent untrustworthy entities misusing (access and exploit) information sent through the network. The less restricted the access to the network is, the higher the security concerns for the network are.
This 5 challenges have to be adressed when it comes to the architecture of a (software) system. If you want to benefit from the advantages of a distributed system it has to be clear how to deal with these disadvantages. At what point are the benefits of the higher computing power required for coordination and communication through the network higher than the costs ( compared to a centralized system) As you can see in the world of blockchain a lot of smart people are looking for an answer as a collective. There are some pretty good solutions out there already and also some very good ideas that are still waiting to be executed in real life. There is no perfect solution yet ( I guess there will never be one), but some of the smartest minds of the world are working on providing the world with good solutions. I just want us all to appreciate that for a moment.
If I described something unclear or maybe even wrong, let me know.
Looking forward to your feedback.
Your @bozo
German Version
Dezentrales System oder nur ein paar Pflanzen?
Dezentrale Systeme haben einige Vorteile gegenüber zentralisierten Systeme so wie zum Beispiel eine höhere Rechenleistung, niedrigere Kosten, höhere Zuverlässigkeit und Skalierbarkeit.
Doch das bedeutet nicht, dass Dezentralisierung keinerlei Schwächen hat. Also lasst uns für den Moment einmal auf die Nachteile von dezentralen/verteilten System zu sprechen kommen. Wir widmen uns dieser Thematik um besser zu verstehen, was die Blockchain für uns bereits leisten kann bzw. was Sie potentiell in der Zukunft für uns leisten könnte.
Dies ist bereits mein dritter Artikel um Neulingen das Eintauchen in die "Blockchain-Welt" mit ein wenig mehr Hintergrundwissen zu ermöglichen und auch zu erleichtern.
Die Artikel findet ihr hier:
Erster Post (Distributed VS. Centralized Software Architecture) und Zweiter Post (Advantages of Distributed Systems)
Für einen guten Gesamtüberblick empfehle ich zudem das Buch "Blockchain Basics" von Daniel Drescher. Ich habe es auf Englisch gelesen (obwohl er Deutscher zu sein scheint, ist es zunächst auf Englisch erschienen)
Für besonders umfangreiche Einführungen schaut euch den YoutubeChannel: "Blockchain at Berkeley" mal genauer an. Danke an @lauch3d für die Empfehlung:
https://www.youtube.com/channel/UC5sgoRfoSp3jeX4DEqKLwKg
Nachteil #1: Koordination
Wie der Name schon sagt, ist es schwerer mehrere Rechner zu koordinieren an einer Aufgabe zu arbeiten als einen einzigen Computer. Es ist zunächst einmal schwerer im Team zu arbeiten als alleine. Um also Koordination zu ermöglichen ist es notwendig einen Teil der Rechenleistung dafür aufzuwenden, statt an der eigentlichen Aufgabe zu arbeiten. Das kann man sich etwa so vorstellen, dass Teile unseres Gehirns in Anspruch genommen werden, wenn wir uns mit anderen Menschen zu koordinieren haben.
Um also sich mit den anderen abzustimmen bedarf es der
Nachteil #2: Kommunikation
So wie auch für unsere Kommunikation verbal wie nonverbal bestimmte Hirnkapazitäten in Anspruch genommen. Unser Gehirn wurde auf eine bestimmte Art und Weise "entworfen" bzw. hat sich auf eine bestimmte Art und Weise entwickelt um eben den Ansprüchen der Kommunikation zu genügen. Wäre das nicht nötig, wäre unser Gehirn entweder kleiner oder die Kapazitäten könnten anders genutzt werden um besonders wichtige philosophische Fragen zu beantworten oder um das Kamasutra ordnungsgemäß praktizieren zu können. Doch statt sich der eigentlichen Aufgabe zu widmen, müssen wir leider so etwas wie das Broca-Areal und das Wernicke-Zentrum mit uns herumtragen um die Kommunikation mit anderen Menschen. (Das sind Bereiche im Gehirn, die als für die Sprache und Spracherkennung notwendig identifiziert wurden).
Nachteil #3: Abhängigkeit von Netzwerk(en)
Um also in einem dezentralen System die einzelnen Computer zu koordinieren braucht man Kommunikation. Um sich nun aber mit anderen zu koordinieren und mit ihnen zu kommunzieren braucht man das Netzwerk. Da man über das Netzwerk miteinander verbunden ist. So bedient man sich in Deutschland meist der Sprache deutsch um innerhalb des deutschen Netzwerks miteinander zu sprechen. Wenn man also Gehirnkapazitäten dafür aufgewendet hat um deutsch zu lernen und abzuspeichern und dann auch noch bestimmte Grundeinstellungen und Verhaltensgewohnheiten erlernt hat um sich mit dem Netzwerk der Deutschsprechenden austauschen zu können. Doch man kann nun nicht einfach hergehen und das Wort "laufen" als das Wort "stehen" benutzen. Kann man zwar, doch dann wird man nicht verstanden. Man ist auch total aufgeschmissen, wenn man versucht außerhalb deutschprachiger Gegenden mit deutsch durchzukommen, geht zwar, doch die Hände und Füße müssen mithelfen. Man ist also auch vom Netzwerk der deutschsprechenden Gemeinschaft abhängig. (Beispiel nur zur Veranschaulichung).
Man ist also auf eine gewisse Art und Weise vom Netzwerk abhängig.
Nachteil #4: Höhere Komplexität der Software
Um also ein großes dezentrales Netzwerk zu unterhalten muss man also Rechenleistung für Koordination und Kommunikation zwischen den einzelnen Einheiten des Netzwerks zur Verfügung stellen, statt sich auf die eigentliche Aufgabe zu konzentrieren. Das beinhaltet entsprechende Programme und Software die sich mit den einzelnen Problematiken auseinandersetzen. So wie die deutsche Sprache äußerst komplex ist und eine Menge Fachbegriffe für bestimmte Bereiche wie zum Beispiel Jura, Ballet oder auch Informationstechnologie existieren, muss auch die Software für ein dezentrales System umfangreicher ausfallen, als für einen einzelnen Computer.
Nachteil #5: Sicherheit
Nun durch die Tatsache, dass über das Netzwerk Datenaustausch stattfindet, muss auch sichergestellt werden, dass die Daten nicht in falsche Hände geraten und der Zugang zu empfindlichen Informationen nicht missbraucht oder ausgenutzt werden kann. So muss sich jedes dezentrale System damit auseinandersetzen, wie es die Sicherheit der Daten gewährleisten kann ohne dabei den notwendigen Datenaustausch zu unterbinden.
Mit diesen Nachteilen hat man sich auseinanderzusetzen, wenn es um den Aufbau (die Architektur) eines dezentralen Systems geht. Viele intelligente Menschen überall auf unserem Erdenrund denken darüber nach, wie man von den Vorteilen dezentaler Systeme nutzen kann und gleichzeitig die Nachteile kompensieren kann und haben bereits einige gute Lösungen zur Verfügung gestellt. Ich bitte dies an dieser Stelle einmal kurz anzuerkennen.
Sie stellen sich Fragen wie: "Ab welchem Punkt sich die höhere Rechenleistung, die für Koordination und Kommunikation aufgewendet wird, rechnet." zum Beispiel.
Es gibt viele gute, bereits umgesetzte Ansätze und auch eine Menge ziemlich guter Ideen, die noch in die Realität umgesetzt werden müssen. Doch Verbesserungsbedarf besteht immer noch. Viele Problematiken sind immer noch nicht gelöst und ich bezweifle zudem, dass wir niemals zu einer perfekten Lösung kommen werden (Ist das nicht perfekt? Wir können immer noch einen drauf setzen)
Doch es wird besser, zumindest in meiner Wahrnehmung.
Freue mich auf Feedback, Verbesserungsvorschläge und Fragen.
Euer @bozo
upvote und resteem ich hoffe es erreicht lernwillige. Die Analogien find ich super, hat mir was die Koordination angeht noch mal ne frischere Sicht geliefert. Du hast an bei dir bestehende Wissenfäden geknüpft wo du Parallelen sahst. Macht man erstmal Informatik 1 und 2 an der Uni ist man zwar bei manchen Details schneller drin aber sieht das große und ganze von Anfang an mit der Brille der Professoren. Höre ich "Netzwerk", denk ich immer erst an das konkrete technische Netzwerk aus der Powerpoint Folie Nr. 1, obwohl es eigentlich was sehr abstraktes ist.
Danke dir. Ich denke das man immer ein wenig links und rechts schauen sollte. In der Psychologie werden Analogien sehr gerne verwendet um Prozesse zu beschreiben und ich persönlich halte es auch für eine gute Merkmethode. Falls es mal zu fantasiereich wird sag Bescheid ;)
Hey Bozo,
Ich habe jetzt auch endlich wieder etwas Zeit zum Lesen...
Was mich an der ganzen Sache am meisten schockiert hat war die Nachricht, dass der Stromverbrauch für Bitcoinmining so hoch ist, wie der von ganz Dänemark... Das ist echt viel und wenn man sich mal die Erderwärmung so anschaut, ist das nicht gerade hilfreich.
Andererseits will ich auch nicht wissen, was Facebook, Google und auch die Geheimdienste so für Strom verbrauchen mit ihren Supercomputern.
Naja, vom Thema Menschlichkeit finde ich diese Systeme in vielerlei Hinsicht besser, als die herkömmlichen.
Zum Beispiel werden hier meine Daten nicht verkauft, da sie eh überall öffentlich zugänglich sind. Außerdem sind Banken sowieso der größte Dorn, den ich mir in meinem Auge vorstellen könnte...
Naja, ich finde das was Steemit hier leistet auf jeden Fall super und unterstützenswert. Generell gibt es aber sowieso immer Dinge, die man verbessern könnte ;)
Liebe Grüße, Tom