Gibt es eine entfernte, vertrauenswürdige Bitcoin-API, für die nichts (Blockchain/SPV-Header) lokal gespeichert werden muss?

Bei dieser Frage geht es darum, wie man mit Bitcoin über eine API arbeiten kann, ohne eine lokale Blockchain zu benötigen. Die einzige Antwort bezieht sich auf die JSON-API von blockchain.info, aber es scheint, dass die JSON-API im Gegensatz zur Webversion von blockchain.info erfordert, dass die Kontokennwörter an den Server gesendet werden.

Gibt es eine andere Remote-API, die es ermöglicht, verschiedene Bitcoin-Operationen durchzuführen, ohne die Sicherheit zu gefährden – ohne private Schlüssel irgendwohin zu senden, sondern Transaktionen lokal zu signieren? Die API sollte keine Downloads erfordern – SPV fällt nicht unter diese Kategorie – sondern sollte nur eine Remote-API zum Bitcoin-Netzwerk sein, die keinen Status / Bootstrap von ihrem Client benötigt.

Wenn ich mich richtig erinnere, sollte Stratum diese API sein. Hat es jemals abgenommen?

Ich bin mir nicht sicher, wie Sie möchten, dass es vertrauenswürdig ist, wenn Sie nichts lokal validieren möchten?
@PieterWuille - Ich bin bereit darauf zu vertrauen, dass ein Remote-Knoten mich nicht anlügt (ich muss diese Knoten sorgfältig auswählen). Ich möchte jedoch nicht, dass dieser Knoten meine privaten Schlüssel kennt – stattdessen signiere ich Transaktionen lokal und sende das signierte TX an den Knoten.

Antworten (5)

Der BOP Enterprise Bitcoin Server ist eine Open-Source-Full-Node-Implementierung mit Remote-Wallet (d. h. clientseitig). Der Server lädt die Blockchain herunter, führt die Transaktions- und Blockvalidierung durch und leitet die beim Client signierten Transaktionen weiter.

Der Client verbindet sich über einen Nachrichtenbus mit dem Server. Es sind Java und andere APIs mit zusätzlichen clientseitigen Funktionen verfügbar. Quellcode: https://github.com/bitsofproof/supernode

Kommerzieller Support und gehostete Instanzen sind unter http://bitsofproof.com verfügbar

BOP ist noch nicht „Enterprise Grade“. Tatsächlich konnte ich es nicht einmal auf meinem neuen Win64-System kompilieren. Ich habe das Gefühl, dass es jetzt etwas instabil ist. Hoffentlich wird das verbessert.
aber die ursprüngliche Frage gab "ohne Blockchain" an

Im Bitcointalk-Thread gibt es einige Antworten . Das halte ich für die beste Option:

  1. Verwenden von blockchain.info für Abfragen
  2. Verwenden von Bitcoinj zum Signieren von Transaktionen
  3. Verwenden der blockchain.info-Broadcast-API zum Broadcasten von Transaktionen

Diese Klasse aus der Android-Version von My Wallet soll dieses Schema implementieren.

Es ist ein einfaches und angepasstes Git-Repo verfügbar (Node.js).

Github-Repository-Link

Mit diesem Code können Sie beispielsweise Folgendes tun:

  • balance - Ruft den Kontostand einer Brieftasche ab.
  • Gebühren - Ruft eine Liste der aktuellen Gebühren ab, basierend auf dem aktuellen Kurs des BitCoin-Netzwerks.
  • utxo – Ruft eine Liste nicht ausgegebener Transaktionsausgaben ab.
  • pushtx – Schieben Sie eine Rohtransaktion auf die Blockchain.

bitcore-wallet-service von Bitpay scheint Ihre Bedingungen zu erfüllen, da Sie sich nicht anmelden oder den privaten Schlüssel senden müssen.

Als Client, der nicht die gesamte Blockchain herunterlädt, müssen Sie dem Bitcoin-Netzwerk mehr vertrauen als einem anderen. Davon abgesehen gibt es nur eine Frage, für deren Beantwortung die Blockchain unbedingt benötigt wird:

"Wie viel Geld habe ich?"

Solche Clients werden SPV genannt , eine Methode, die im ursprünglichen Bitcoin-Whitepaper beschrieben wurde. Electrum ist ein solcher Kunde.

Es hat keine API, ist aber Open Source , also könnten Sie, wenn Sie möchten, einen Python-Wrapper dafür schreiben.

SPV erfordert weiterhin das Herunterladen von Headern. Ich suche eine API, die 1. erfordert, dass Sie etwas vertrauen (z. B. dass der Server Sie nicht anlügt, wie viel Geld Sie haben) 2. aber dafür müssen Sie nichts herunterladen und 3. erfordert nicht Ihre privaten Schlüssel , wird also nicht in der Lage sein, von Ihnen zu stehlen.
Sie suchen also nach einer API, die alles außer dem Signieren für Sie erledigt, richtig?
Die API sollte eine Clientbibliothek enthalten, die das Signieren durchführt. Die Remote-API sollte in der Tat alles außer dem Signieren erledigen.
Was meinst du damit, dass Electrum keine API hat? Was bietet Electrum-Server dann an?
@JanusTroelsen Es bietet eine undokumentierte Schnittstelle.