Sicherlich haben sich viele von Ihnen gefragt, warum Sie überhaupt Blockchain und Ethereum brauchten. Jemand ist vielleicht noch weiter gegangen und hat viele schöne Eigenschaften gefunden: Dezentralisierung, Transparenz, Vertrauen ohne Vermittler, Einbruchwiderstand. Es ist einfach toll, oder? Ja, aber ...

Die Blockchain in ihrer aktuellen Form ist nur für einen engen Aufgabenbereich ideal, mit Ausnahme der Aufgabe „Nanotechnologie für den Wow-Effekt hinzufügen“ (und für diese Aufgabe können Sie alles anpassen). Natürlich muss man irgendwo anfangen, verschiedene Experimente testen den Boden und zeigen, wo Nachfrage zu erwarten ist, wo es eine unerwartete Sackgasse gibt, wo die Mängel nicht so kritisch sind wie vorhergesagt. Es ist jedoch notwendig, über Grenzen Bescheid zu wissen, um bewusst zu entscheiden, ob es in diesem speziellen Fall möglich ist, zu versuchen, diese zu überschreiten.
Ethereum ist übrigens nicht die einzige und nicht in jeder Hinsicht beste Option. Vielleicht passt die Blockchain einfach zu Ihrer Aufgabe, aber zu einer anderen. Aber dann sagen wir "Blockchain", wir meinen "Ethereum"
Versuchen wir, die Merkmale der Blockchain und der intelligenten Verträge zu beschreiben, die die Lösung vielversprechender Aufgaben auf den ersten Blick unwirksam oder sogar unmöglich machen. Ich möchte auch sagen, dass die Punkte verallgemeinert sind, daher kann es theoretisch ganz normale Lösungen für bestimmte Anwendungsfälle geben. Behandeln Sie diese Liste daher als Schwachstellen im Ethereum, die vor Beginn des Projekts behoben werden müssen.
Und bitte verzeihen Sie auch, wenn Ihnen vieles davon offensichtlich erscheint. Wie die Praxis gezeigt hat, müssen Sie häufig erst mit diesen Dingen sprechen.
1. Hohe Eintrittsschwelle
Wenn Ihre Zielgruppe normale Benutzer und keine Blockchain-Enthusiasten sind, wird sich ein sehr kleiner Teil die Mühe machen, Ihre Anwendung zu verwenden. Stellen Sie sich vor: Sie müssen nicht nur Metamask oder Mist mit einem Knoten installieren, sondern auch Äther kaufen, und dies ist zunächst auch ein nicht trivialer Prozess. Das heißt, wenn Ihr Ziel darin besteht, die Reichweite des Publikums zu maximieren, ist Ethereum noch nicht geeignet. Zum Beispiel ist es höchstwahrscheinlich eine schlechte Idee, ein Geschäft ausschließlich mit intelligenten Verträgen zu eröffnen.
Was zu tun ist?
- Bieten Sie Vorteile bei der Überwindung von Unannehmlichkeiten
- Zielgruppe „im Thema“
- Es wäre möglich, die Blockchain-Logik vor dem Benutzer zu verbergen, indem Sie sie in das Backend stellen, wenn nicht für das nächste Element
2. Dezentrale Zentralisierung
Das Plus der Blockchain ist jedoch, dass die Teilnehmer sich nicht so sehr wie möglich vertrauen können. Dies ist jedoch nur möglich, wenn der Benutzer der Eigentümer seines privaten Schlüssels ist. Dann kann nur er Transaktionen signieren und verschiedene Aktionen von seiner Adresse aus ausführen. Was passiert bei Blockchain-Logik im Backend? Die Schlüssel werden zentral verwaltet und es gibt keinen Schutz vor Transaktionen, die nicht mit dem Benutzer übereinstimmen. Dies bedeutet, dass Sie nur der Integrität und Sicherheit des Servers vertrauen müssen. So arbeiten beispielsweise die meisten Kryptowährungsbörsen mit Kryptowährung, nutzen jedoch keine damit verbundenen Vorteile.
Was zu tun ist?
- Verstehen Sie, ob Transparenz und Immunität oder die Fähigkeit zur Manipulation von Krypten erforderlich sind. Wenn nicht, ist es billiger und bequemer, eine reguläre Datenbank zu verwenden.
- Über die Mechanik der Arbeit nachdenken und sie durcharbeiten, um technologische Garantien aufrechtzuerhalten
3. Alle Daten sind öffentlich
Unabhängig davon, wie der Smart-Vertrag geschrieben ist, können Sie bei Bedarf den Wert jedes darin enthaltenen Datenfelds abrufen. Und Transaktionshistorie. Wenn Sie also etwas aufschreiben, das einen Benutzer identifiziert, z. B. E-Mail oder einen Namen, dann alles, was diesen Benutzer öffentlich macht. Es ist durchaus möglich, eine Art Verschlüsselung darüber zu haben. In diesem Fall müssen die Schlüssel dafür auf der Empfangsseite gespeichert werden, dh der Benutzer muss seine Daten erneut einem Dritten anvertrauen. Daher kann für mehr oder weniger sensible Daten eine normale private Speicherung mehr gerechtfertigt sein. Wenn Sie Vereinbarungen über die Blockchain abschließen, verlieren Sie möglicherweise mehr als nur einen Gewinn.
Was zu tun ist?
Verstehen Sie, ob private Daten für eine intelligente Vertragslogik erforderlich sind. In diesem Fall sollten Sie Hashes anstelle der Daten selbst behandeln.
4. Blockchain ist kein Supercomputer
Jemand könnte den Eindruck haben, dass Bergleute enorme Kraft in die Durchführung nützlicher Berechnungen stecken, aber dies ist sicherlich weit davon entfernt. Ich möchte nur für den Fall klarstellen: Die Leistung von Ethereum ähnelt eher der Leistung des eingebetteten Systems - begrenzte Ressourcen, begrenzter Speicher, begrenzte Größe der „Firmware“ (Byte des intelligenten Vertragscodes). Daher sollten unkritische Berechnungen maximal aus der Kette genommen werden. Aus diesem Grund ist es in intelligenten Verträgen wahrscheinlich nicht schwieriger, Daten zu analysieren oder beispielsweise eine Verschlüsselung durchzuführen
Was zu tun ist?
- Verwenden Sie Blockchain nicht als Taschenrechner
- Wenn Sie Berechnungen benötigen, die in der Blockchain gesteuert werden, können Sie die Berechnungsfunktion in oraclize berücksichtigen
5. Blockchain ist kein universeller Speicher
Oft hört man eine Aufforderung, etwas in der Blockchain zu speichern: Informationen oder Dokumente. Hier liegen die Probleme auf der Hand: Erstens ist das Speichern von Daten teuer, und zweitens ist die Blockchain beispielsweise nicht für die Suche geeignet - entweder haben Sie eine Zuordnung (Schlüsselwert), die übrigens auch jedem Datensatz einen Mehrwert verleiht, oder Sie müssen mit brutaler Gewalt suchen. Außerdem gibt es keine Berechtigungsverwaltung. Daher sollten Sie nicht nur die Datenbank in die Blockchain ändern, sondern es ist wichtig zu verstehen, warum dies im Prinzip erforderlich war. Separat für die Dateien lohnt es sich, sich an die Publizität der Daten zu erinnern: Wenn Sie sagen, dass Sie einen Link zu IPFS behalten, sieht jeder ihn und kann herunterladen, was darauf liegt. Wenn Sie also Fotos in der Blockchain speichern möchten, sollten Sie sich überlegen, warum.
Was zu tun ist?
- In der Regel muss lediglich ein Hash gespeichert werden, um zu überprüfen, was sich in der Off-Chain befindet
- Speichern Sie nur die Daten, die für die Logik des Smart-Vertrags erforderlich sind
6. Verknüpfung der Blockchain mit der realen Welt
Die Blockchain an sich überträgt Münzen / Token problemlos, aber wie kann man übertragen, was für sie gekauft wurde? Auch wenn es sich um eine Datei handelt, wie kann eine Bestätigung der Übertragung ohne Dritte erfolgen? Die kurze Antwort: Es ist nicht sehr einfach, da wir davon ausgehen, dass beide Seiten sich gegenseitig täuschen wollen und viele Überprüfungen, Verschlüsselung und Entschlüsselung benötigen. Wenn es zu Streitigkeiten kommt, können Sie nicht auf Berechnungen außerhalb der Kette oder einen Schiedsrichter verzichten. Wie Sie verstehen, wird für ein physisches Produkt oder eine physische Dienstleistung alles durch die Tatsache kompliziert, dass jemand Informationen eingeben muss, dass die Waren grob gesagt eingegangen sind. Dieser Jemand kann kein Interessent sein, dann ist dies der Dritte, dem wir wieder vertrauen müssen. Dann hat unsere Blockchain-Lösung eine Schwachstelle in Form dieses Schiedsrichters, und da wir ihm vertrauen, warum nicht alles andere anvertrauen, sagen, eine regelmäßige Basis hosten und Zahlungen leisten. Bevor Sie etwas tun, müssen Sie diese Frage klar beantworten. Das ist zum Beispiel die Bedeutung des Tokens, das Sie anbieten, um einen Rabatt in einem Offline-Shop einzutauschen. Dies erscheint uns persönlich zweifelhaft
Was zu tun ist?
Beantworten Sie sich klar, warum eine zentralisierte Logik nicht geeignet ist. Wenn es keine Antwort gibt, lehnen Sie die Blockchain ab.
7. Keine Benutzerfehlerversicherung
Wenn Sie versehentlich Geld an die Bank gesendet oder ein Konto gehackt haben, dh es besteht die Möglichkeit, in den Support zu schreiben. Es ist Zeit, die Transaktion abzubrechen oder zurückzusetzen. In intelligenten Verträgen können Sie nicht manuell das tun, was der Code nicht bietet. Wir stehen erneut vor der Notwendigkeit, einen Schiedsrichter einzuführen, dem Privilegien gewährt werden, die mit der Zentralisierung der gesamten Entscheidung vergleichbar sind.
Was zu tun ist?
Falls erforderlich, die Einführung künstlicher Verzögerungen bei der Überweisung von Geldern in einem intelligenten Vertrag
8. Lange Vorlaufzeit
Wenn Sie ein dynamisches System haben, auf dem Zustände und Logik ständig neu geschrieben werden, werden Sie höchstwahrscheinlich mit der Wartezeit nicht zufrieden sein, weil Zumindest in Ethereum kann eine normale Transaktionsbestätigungszeit als eine halbe Minute angesehen werden, und wenn Sie nicht bankrott gehen, dann normalerweise mehr. Auch wenn das Konto nicht für Sekunden gültig ist, sollten Sie die Möglichkeit in Betracht ziehen, die Transaktion auf unbestimmte Zeit zu verzögern und ausreichende Intervalle festzulegen. Während Spiele wie Poker entweder nicht in ihrer reinen Form auf Ethereum-Smart-Verträgen möglich sind oder nicht trivial sind und die Betonung der Off-Chain-Logik erfordern
Was zu tun ist?
- Wenn Sie vorhaben, sich sehr oft der Blockchain zuzuwenden, sollten Sie nicht auf Ethereum, sondern möglicherweise überhaupt nicht auf die Blockchain schauen.
- Sammeln Sie nach Möglichkeit mehrere Transaktionen in einer und führen Sie einen Teil der Off-Chain-Logik aus
- Als letzten Ausweg können Sie den Benzinpreis nach Bedarf erhöhen
- Wenn die Transaktion nicht lange dauert, können Sie einen erhöhten Preis angeben und erneut senden (die Transaktion sollte unverändert bleiben, einschließlich Nonce). Ein teurerer ersetzt einen billigeren
9. Die Umgehung der Zensur ist noch nicht perfekt
Wenn Sie die Regierung oder ähnliches mit Hilfe der Blockchain konfrontieren möchten, wissen Sie, dass der Webdienst immer noch zentralisiert ist, auch wenn er auf der Blockchain basiert. Das heißt, ein Domainname oder eine IP kann immer noch leicht blockiert werden, und Benutzer müssen die Adresse des Spiegels herausfinden. Vorteile - Sie müssen keine Datenbanksicherungen durchführen und kennen die Adresse im Ethereum-Netzwerk. Sie können immer mit weniger benutzerfreundlichen Mitteln (Mist, MyEtherWallet, Etherscan usw.) darauf zugreifen. Wir können jedoch nicht sagen, dass das Zensurproblem vollständig gelöst wurde.
Was zu tun ist?
Das Blockieren von Widerstand ist ein Bonus, aber Sie sollten Ihre Entscheidung nicht darauf stützen, ob Sie Blockchain verwenden oder nicht.
Wenn nicht Ethereum, wer dann?
Viele die. Andere Blockchain- und Nicht-Blockchain-Lösungen können entweder Dezentralisierung, Offenheit oder Zugänglichkeit für eine unbegrenzte Anzahl von Teilnehmern opfern, im Gegenzug erhalten sie eine erhöhte Transaktionsgeschwindigkeit, keine Datenschutzprobleme usw. Dies sind EOS, Lösungen für Hyberledger, Exonum, Hashgraph, Corda und vieles mehr. Aber es gibt einen so wichtigen Faktor wie den Namen nach Gehör. Dies ist eine große Benutzerbasis und eine große Datenbank mit Anwendungen, Informations- und Entwicklungstools, die getestet werden. Und das kann in den Profis für Ethereum geschrieben werden. Und mal sehen, was Casper und Sharding bringen.
Ist alles so schlimm
Das wichtigste Thema, das all diese Punkte durchläuft, ist das Bewusstsein für die Wahl der Blockchain. Es ist wichtig, dass die Technologie das Problem löst. Das Hinzufügen einer Blockchain zu einer bereits gelösten Aufgabe führt höchstwahrscheinlich nicht zu einer effektiveren Lösung.
Wenn Sie beispielsweise nicht wissen, wer ein Casino eröffnen möchte, haben Sie ein Problem damit, sich einen guten Ruf zu verdienen, Ehrlichkeit zu zeigen und eine Art Nutzerbasis anzuziehen. Wenn Sie eine Lösung für Ethereum anbieten, können Sie den Benutzern zumindest theoretisch eine transparente Arbeit garantieren (obwohl nur wenige Ihren Smart-Vertrag vor dem Spiel tatsächlich prüfen). Und Sie ziehen Leute mit übermäßiger Kryptowährung auf dem Konto und einer unzureichenden Anzahl von Verwendungsmöglichkeiten an. Wir können sagen, dass das Ziel erreicht wird.
Und wenn Sie dem Messenger Blockchain hinzufügen möchten, werden Sie höchstwahrscheinlich nicht nur die Probleme nicht lösen (und was können sie sein? - Zensur und Datenschutz kommen in den Sinn), sondern auch neue hinzufügen.
Das Finden korrekterer Anwendungen ist wahrscheinlich eine Frage der Zukunft, wenn die Benutzerbasis wächst und der Kauf von Kryptowährung einfacher ist als jetzt. Im Allgemeinen können Sie sich jedoch solche Anwendungen ansehen:
- Bürokratische und lange Prozesse: Überweisungen ins Ausland, Papierkram
- Plattformbasierte Vertrauensprozesse: Fonds, Casinos
- Daten, die in verschiedenen Bereichen oder in unabhängigen Unternehmen verwendet werden: Reiseveranstalter, Bonitätshistorie, schwarze Listen
- Überwachung nicht vertrauenswürdiger Prozesse: Abstimmung, Fundraising
Die Tatsache, dass die Aufgabe zu einem der Punkte gehört, bedeutet nicht, dass die Blockchain perfekt passt. Sehen Sie immer, was andere, optimierte Technologien bieten. Das heißt, der Gedankengang sollte lauten: "Wie kann dieses Problem gelöst werden?" Und nicht "Wo soll die Blockchain blockiert werden?".
Eintauchen in die Entwicklung von Ethereum:
Teil 1: EinführungTeil 2: Web3.js und GasTeil 3: BenutzeranwendungTeil 4: Bereitstellen und Debuggen in Trüffel, Ganache, InfuraTeil 5: Oraclize