Nach dem, was ich recherchiert habe, scheint es, dass alle Methoden, mit denen sich ein Benutzer für eine Ethereum-Dapp anmelden und anmelden kann, für den Benutzer sehr umständlich zu verwenden sind. Was sind die Best Practices, um Anmeldungen und Anmeldungen zuzulassen, die die folgenden Kriterien erfüllen:
Die Methode zur Anmeldung und Anmeldung sollte nicht umständlich sein; dh: einfache wie normale Methoden von Benutzername/Passwort oder Facebook und Google oauth.
Die Methode zur Anmeldung sollte dem Benutzer kein Ethereum (Gas) in Rechnung stellen - das Geld von jemandem nur für die Anmeldung zu nehmen, würde die meisten Leute abschrecken.
Die Methode der Registrierung und
Anmeldung sollte den Benutzer nicht dazu bringen, durch Reifen zu springen,
wie z . usw.
Zusätzliche Software wie MetaMask oder Mist sollte nicht erforderlich sein. (Vielleicht ist das nicht möglich?)
Das Ziel hier ist es, so viele Hürden wie möglich zu beseitigen, um Benutzer zur dapp zu bringen.
AFAIK, es ist immer einfach und gut, den PGP-Schlüsselmechanismus für die Benutzerauthentifizierung in DAPPs zu verwenden, die mit Ethereum erstellt wurden. Es ist möglich, die Kontoadresse als Benutzernamen zu verwenden und den Benutzer zur Überprüfung einige Daten mit seinem privaten Schlüssel signieren zu lassen. Dieser Artikel könnte Ihnen dabei helfen.
Um es Benutzern einfach zu machen, können Sie Benutzern erlauben, ihren privaten Schlüssel auf der Seite des Clients zu speichern (z. B.: ihn in die App einbetten, die sie nach der Registrierung verwenden usw.). ist deinstalliert)
UPDATE : Wie in den Kommentaren unten besprochen, verwenden Sie, wenn Sie sich für ein herkömmliches Benutzerkontosystem entscheiden möchten, eine herkömmliche Benutzertabelle mit Benutzernamen, die einer Kontoadresse zugeordnet sind, und verwenden Sie web3.js (siehe diese Frage ) , um eine Verbindung zum Ethereum-Netzwerk herzustellen Dies geht wiederum für einen vertrauenswürdigen Mechanismus eines Drittanbieters.
Punkt 4 ansprechen: Es ist definitiv möglich, aber Sie müssen sich zwischen einem vollständig zentralisierten und einem dezentralisierten Ansatz entscheiden.
MetaMask ist dezentralisiert (Endbenutzer besitzen die privaten Schlüssel), aber die Chrome-Erweiterung erfordert, dass Benutzer mehr Hürden überwinden, um loszulegen.
Es gibt etwas zentralisiertere Lösungen wie Fortmatic , die es Endbenutzern ermöglichen, direkt mit Dapps in jedem Browser zu interagieren, ohne eine Chrome-Erweiterung herunterladen zu müssen.
Es gibt im Allgemeinen nicht viel Traktionsstrom für Dapps – ich würde mich lieber dafür entscheiden, ein besseres Benutzererlebnis zu bieten und Traktion für Ihre App zu erhalten, bevor ich erwäge, einen dezentralen Ansatz als Option hinzuzufügen.
Sie können eine Ethereum-Adresse als eindeutige Kennung für ein Benutzerkonto verwenden. Sie können dann verlangen, dass der Inhaber des privaten Schlüssels, der dieser Adresse zugeordnet ist, eine Nachricht signiert, die Sie dann überprüfen können.
Es ist möglich, zu überprüfen, ob eine Nachricht mit einem bestimmten privaten Schlüssel signiert wurde, ohne den privaten Schlüssel zu kennen .
Ich habe vor einiger Zeit einen Blogbeitrag über das Signieren einer Nachricht geschrieben .
Das Problem bei diesem Ansatz ist die Einfachheit und die Akzeptanz durch die Gemeinschaft. Ich habe zuvor ein Anmeldeprotokoll erstellt, das wie oben beschrieben funktionierte. Das Problem besteht darin, dass entweder eine von Ihrer DAPP unabhängige Nachricht signiert werden muss (komplex, Eintrittsbarriere) oder dass der Benutzer seinen privaten Schlüssel in irgendeiner Form (roh, Schlüsseldatei, Mnemonik usw.) für Ihren Dienst bereitstellt, damit Sie die Nachricht bereitstellen können Unterzeichnung.
Als ich das tat, wurde die 'Community' wütend, weil es ein Sicherheitsrisiko darstellte (wäre ich ein Betrüger).
TL;DR; Es ist machbar, aber alle werden über Sicherheit/Dezentralisierung stöhnen.
Ich weiß, der Thread ist zu alt, aber da ich vor dem gleichen Problem stand, möchte ich darauf antworten.
Das Konzept der digitalen Signatur, das Blockchain verwendet, ist eine sehr bekannte Technologie, aber leider wird es von normalen Menschen (z. B. Facebook-Benutzern) nicht verwendet. Stellen Sie sich eine mobile Authentifikator-App vor, die folgende Funktionen hat:
Komponenten:
Anmeldung:
Anmeldung:
Transaktionssignierung:
Notiz:
bool verifyDigitalSig(digitalSig, publikey)
Getter-Methode.login-first
Ansatz im Gegensatz zu wallet-first
.Sehen Sie, ob dies hilft.
Jason Cochran
Jason Cochran
Achala Dissanayake
Jason Cochran
Jason Cochran
Achala Dissanayake
Jason Cochran
Jason Cochran
Achala Dissanayake
Tomislav Markowski
Achala Dissanayake