Smart Contract Einzahlungen von mehreren Benutzern

Ich möchte einen intelligenten Vertrag erstellen, der es mehreren Benutzern ermöglicht, Geld einzuzahlen / abzuheben. Mein erster Ansatz bestand darin, einfach eine Vertragsadresse zu haben, die die Gelder aller Benutzer speichert, und eine Zuordnung, die die individuellen Guthaben jedes Benutzers verfolgt. Dies würde mich jedoch daran hindern, Einzahlungen für bestimmte Benutzer zu identifizieren, wie sie es tun würden alle hinterlegen an derselben Adresse.

Um dies zu überwinden, möchte ich, dass der Smart Contract für jeden Benutzer einen untergeordneten Vertrag generiert, auf den dieser Benutzer Geld einzahlen kann. Das Problem ist, dass die Bereitstellung dieses untergeordneten Vertrags Benzin kostet. Ich möchte nicht, dass der Benutzer diese Gaskosten bezahlt, aber wenn ich den übergeordneten Vertrag die Gaskosten des Benutzers erstatten lasse, entsteht ein potenzieller Angriff, wenn jemand mehrere Konten erstellen kann, damit der Vertrag sein gesamtes Guthaben für diese Aufgabe ausgibt. Wie kann ich das überwinden?

Antworten (1)

Ihre erste Idee war die beste, aber folgende Einschätzung führt Sie in die Irre:

Dies würde mich jedoch daran hindern, Einzahlungen für bestimmte Benutzer zu identifizieren

Mit dem Mapping (und den Ereignisprotokollen) können Sie genau ermitteln, wer was gesendet hat.

Was Sie mit diesen Informationen tun, bezieht sich auf nicht offengelegte Details des Anwendungsfalls. Möglicherweise gibt es ein Implementierungsdetail mit einer nicht offensichtlichen Lösung?

Nun ja, also möchte ich, dass die Leute ein Konto mit einem Benutzernamen / Passwort haben und von jeder beliebigen Adresse aus einzahlen können (Börse, Coinbase, Wallet usw.) ... Dem Ethcrash-Modell folgen, wenn Sie damit vertraut sind, also identifizieren Die mehreren Konten, von denen ein Benutzer einzahlen kann, wären mit nur einem einzigen Vertrag für alle Transaktionen nicht möglich.