¿Existe una API de bitcoin remota y confiable que no requiera que nada (encabezados de cadena de bloques/SPV) se almacene localmente?

Esta pregunta se refiere a cómo trabajar con bitcoin a través de una API sin necesidad de una cadena de bloques local. La única respuesta es sobre la API JSON de blockchain.info, pero parece que, a diferencia de la versión web de blockchain.info, la API JSON requiere que las contraseñas de la cuenta se envíen al servidor.

¿Existe otra API remota que permita realizar varias operaciones de bitcoin sin comprometer la seguridad, sin enviar claves privadas a ningún lado, sino firmando transacciones localmente? La API no debería requerir ninguna descarga (SPV no se incluye en esta categoría), pero debería ser solo una API remota para la red de bitcoin que no requiere ningún estado/arranque de su cliente.

Si no recuerdo mal, se suponía que Stratum era esta API. ¿Alguna vez despegó?

No estoy seguro de cómo quieres que sea confiable si no quieres validar nada localmente.
@PieterWuille: estoy dispuesto a confiar en que un nodo remoto no me está mintiendo (debo elegir cuidadosamente ese/s nodo/s). Sin embargo, no quiero que ese nodo conozca mis claves privadas; en su lugar, firmaré las transacciones localmente y enviaré el tx firmado al nodo.

Respuestas (5)

El BOP Enterprise Bitcoin Server es una implementación de nodo completo de código abierto con monedero remoto (es decir, del lado del cliente). El servidor descarga la cadena de bloques, realiza la transacción y la validación de bloques y enruta las transacciones firmadas en el cliente.

El cliente se conecta al servidor a través de un bus de mensajes. Hay Java y otras API disponibles con características adicionales del lado del cliente. Código fuente: https://github.com/bitsofproof/supernode

Soporte comercial e instancias alojadas disponibles en http://bitsofproof.com

BOP aún no es de "grado empresarial". De hecho, ni siquiera pude compilarlo en mi nuevo sistema Win64. Siento que es un poco inestable a partir de ahora. Esperemos que esto se mejore.
pero la pregunta original especificaba "sin blockchain"

Hay bastantes respuestas en el hilo de bitcointalk . Esta es la que considero la mejor opción:

  1. Uso de blockchain.info para consultas
  2. Usando bitcoinj para firmar transacciones
  3. Uso de la API de transmisión de blockchain.info para transmitir transacciones

Se supone que esta clase de la versión de Android de My Wallet implementa este esquema.

Hay un repositorio Git simple y personalizado disponible (Node.js).

Enlace al repositorio de Github

Este código te permite hacer cosas como:

  • saldo - Recupera el saldo de una billetera.
  • tarifas: obtiene una lista de las tarifas actuales según la tarifa actual de la red BitCoin.
  • utxo: extrae una lista de salidas de transacciones no gastadas.
  • pushtx: envía una transacción sin procesar a la cadena de bloques.

bitcore-wallet-service de Bitpay parece satisfacer sus condiciones, ya que no requiere que inicie sesión ni envíe la clave privada.

Como cliente que no descarga toda la cadena de bloques, debes confiar más en la red bitcoin que en uno que lo hace. Dicho esto, solo hay una pregunta que absolutamente necesita que la cadena de bloques responda:

"¿Cuánto dinero tengo?"

Dichos clientes se denominan SPV , que era un método descrito en el documento técnico original de bitcoin. Electrum es uno de esos clientes.

No tiene una API, pero es de código abierto , por lo que, si lo desea, puede escribir un contenedor de python para él.

SPV aún requiere la descarga de encabezados. Estoy buscando una API que 1. Requiere que confíes en algo (por ejemplo, que el servidor no te mienta con respecto a cuánto dinero tienes) 2. Pero eso no requerirá que descargues nada y 3. no requerirá tus claves privadas , por lo que no será capaz de robar de usted.
Entonces, está buscando una API que haga todo menos la firma por usted, ¿verdad?
La API debe incluir una biblioteca cliente que realice la firma. De hecho, la API remota debería hacer todo excepto la firma.
¿Qué quieres decir con que Electrum no tiene una API? ¿Qué ofrece entonces Electrum-server ?
@JanusTroelsen Ofrece una interfaz no documentada.