Kann ein einzelnes Wallet sowohl SegWit- als auch Nicht-SegWit-Adressen generieren (und verwenden)?

Kann eine Segwit-Wallet Nicht-Segwit-Adressen generieren und verwenden?

Ich verwende Bitcore von Bitpay , um Wallets zu erstellen und neue Adressen für die Benutzer meiner Plattform zu generieren. Ich verwende auch den Bitcore-Wallet-Client, um Transaktionen zu signieren.

Meine Benutzer haben derzeit Legacy-Wallets. Ich beabsichtige, ihre Brieftaschen auf natives Segwit zu migrieren, aber sie werden auch Legacy-Adressen benötigen, damit sie Münzen von überall empfangen können. (Rechts?)

Ist es möglich, nur eine Brieftasche pro Benutzer zu haben, die beide Arten von Adressen generiert, oder muss ich zwei Brieftaschen pro Benutzer verwalten?

Und wenn ich zwei Wallets pro Benutzer verwalten muss, sind Utxos von einem Wallet natürlich nicht für das andere verfügbar. Was ist der beste Weg, um mit ihrem „gespaltenen Gleichgewicht“ umzugehen? Sollte ich Benutzer darauf hinweisen, alle ihre Münzen an die bc1-Adresse der neuen Segwit-Brieftasche zu senden? Aber dann, wenn sie Gelder an ihre alten Adressen erhalten, müssten sie erneut an die bc1-Adresse überweisen, um Segwit-Transaktionen durchzuführen. Es macht keinen Sinn - oder doch? Was vermisse ich?

Antworten (2)

Ich bin nicht mit den Wallets vertraut, die speziell von BitPay’s Bitcore generiert werden, aber es gibt kein allgemeines Problem, das verhindert, dass ein Wallet Adressen in verschiedenen Ausgabeformaten generiert. Wenn die Wallets von BitPay nur entweder das eine oder das andere können, wäre das eine Eigenart der lokalen Implementierung.

Während es möglich ist, separate Wallets für jeden Benutzer zu führen, ist es ziemlich kostspielig, Ihre Buchhaltung on-chain zu führen.

Die üblichere Betriebsweise für Dienste, die Benutzergelder verwahren, besteht darin, nur eine einzige Einzahlungsbörse zu führen. Sie würden dann für jede Benutzereinzahlung eine neue Adresse auf dieser „Omnibus-Brieftasche“ generieren. Da die Adressen eindeutig sind, können Sie anhand der Adresse feststellen, welcher Kunde in Ihrer internen Buchhaltung gutgeschrieben werden soll.

Auf der operativen Seite können Sie jedoch mehrere Abhebungen in einer einzigen Transaktion zusammenfassen und sogar einen Teil der Gelder in eine Cold Wallet verschieben, um Ihre Sicherheit zu verbessern.

„Wenn die Wallets von BitPay nur entweder das eine oder das andere können, wäre das eine Macke der lokalen Implementierung.“ Ja, das war tatsächlich das Problem. Bitpays Bitcore erwartet einen Adresstyp als Parameter für die Erstellung neuer Wallets. Dann verwendet es diesen Wert, wenn Sie es auffordern, eine neue Adresse zu erstellen. Also habe ich einfach einen weiteren Parameter für den createAddress-Fluss hinzugefügt und dort den addressType übergeben. Jetzt können Wallets, die mit diesem System erstellt wurden, alle Arten von Adressen generieren und verwenden. Komischerweise weiß das System alles zu signieren. Ich habe keine Ahnung, warum sie einen Adresstyp mit der Brieftasche verknüpfen würden.
Vielleicht haben sie angenommen, dass es für Benutzer zu verwirrend ist, mehr als eine Art von Adresse oder so etwas zu haben.

Kann ein einzelnes Wallet sowohl SegWit- als auch Nicht-SegWit-Adressen generieren (und verwenden)?

Ja. Beispiel: In Bitcoin Core können Sie getnewaddress mit address_typeim Argument ausführen

neue Adresse bekommen

Ich beabsichtige, ihre Brieftaschen auf natives Segwit zu migrieren, aber sie werden auch Legacy-Adressen benötigen, damit sie Münzen von überall empfangen können.

Die meisten Apps, Websites, Dienste usw. unterstützen jetzt native Segwit-Adressen, jedoch können p2sh-Segwit-Adressen verwendet werden, wenn bech32-Adressen nicht unterstützt werden.