Buscamos betatesters para probar transacciones instantáneas y sin pagar network fee desde Coinbase o Uphold

Hola,

para los que no me conozcan soy el desarrollador de Beewallet para iOS. Beewallet es un cliente para Coinbase y Uphold que permite conectar una o ambas cuentas a la vez y manejarlas con sencillez.
En las últimas semanas he estado trabajando en algo que he llamado Sentinel y he integrado completamente en Beewallet y ahora busco usuarios de iOS como betatesters.

Sentinel lo que hace es detectar cuando un usuario, por ejemplo de Coinbase, está a punto de enviar dinero a un usuario de Uphold (o viceversa). En tal caso entra en juego Sentinel haciendo de puente entre los 2 servicios y otorgando al usuario principalmente 2 beneficios:

· Transacción instantánea sin necesidad de esperar confirmaciones
· Evitar el pago de la Network Fee por lo tanto válido para microtransacciones
· Evitar problemas de congestión de la red

Lógicamente esto tiene la contrapartida de que la transferencia se lleva a cabo completamente off chain a través de un servicio centralizado, pero se entiende que para la persona que está enviando dinero desde Coinbase a Uphold o viceversa esto no representa un problema.

Como he dicho, el uso de Sentinel está completamente integrado en Beewallet, no requiere registro o configuración alguna, simplemente si el tipo de transacción lo permite, Sentinel entra en juego, si no no.
En el futuro quiero meter otras carteras como Xapo o Luno en Sentinel, de manera que se pueda mover libremente el dinero entre estas 4 carteras sin complicaciones y sin gastos excesivos. Sentinel tendrá una comisión fija de USD 0.05 por transacción, actualmente la versión para betatesting tiene una comisión de USD 0.01.

Si alguien está interesado en probarlo que me envíe su email para que pueda enviarle una invitación para betatesting a través de TestFlight ya que la versión que hay actualmente en el AppStore todavía no incluye Sentinel.

Si alguien está interesado en mayores explicaciones, no dudéis en preguntar.

EDITADO: para ilustrar un poco más el funcionamiento he decidido añadir unas capturas.

  1. Si la transacción es despachable a través de Sentinel, la aplicación la muestra así:

  1. Si la transacción no es despachable a través de Sentinel por la razón que sea, pero el usuario está a punto de enviar dinero desde un servicio a un email de un contacto del otro servicio (lo cual sería un error del usuario), la app muestra una advertencia así:

  1. Si la transacción se puede despachar con normalidad sin necesidad de la intervención de Sentinel (ósea la mayoría de transacciones) se muestra así:

Saludos,

Jorge

Para mucha gente no es un problema tener los bitcoins en manos de un servicio centralizado, si éste es una empresa grande y reputada. Eso no quiere decir que les dé igual pasar los bitcoins a una pequeña empresa desconocida. No digo que no seas de fiar, pero entiende que no es lo mismo.
¿Nos puedes explicar cómo funciona tu sistema Sentinel, si en algún momento tienes control de los fondos, etc?
Un saludo y mucha suerte con la idea, que en principio parece muy útil.
PS. No soy usuario de iOS, no puedo ayudarte.

Hola Palheiro, gracias por tomarte el tiempo de comentarlo. Entiendo perfectamente lo que dices y de hecho ese es el gran escollo con Beewallet, la confianza. Aún así tengo que decir que afortunadamente varias decenas de usuarios la descargan cada día y aunque lentamente la tendencia va creciendo.

En cuanto a Sentinel, respondiendo a tu pregunta, sí durante unos milisegundos los fondos están bajo mi control pero nunca abandonan Uphold o Coinbase.

Brevemente explico como funciona. Si el usuario C de Coinbase quiere enviar dinero al usuario U de Uphold (o viceversa ya que funciona en ambos sentidos), cuando C pulsa el botón de enviar ve un envío de dinero normal y corriente pero lo que pasa por debajo es lo siguiente:

  1. De C se envía el dinero a la cuenta de Coinbase de Sentinel
  2. Desde la cuenta de Uphold de Sentinel se envía la misma cantidad menos la comisión a U

Cada tantas transacciones de Sentinel, si los balances de Sentinel en Coinbase y Uphold se desequilibran los equilibro con una transacción on-chain. Como verás no podría ser más sencillo.

Para evitar problemas de seguridad y crear superficie de ataque adicional en Sentinel, el sistema propaga la información necesaria para detectar y despachar transacciones en el interior del campo “mensaje” de las transacciones de Coinbase y Uphold. Esta información va encriptada mediante una clave RSA, así el dinero va saltando de cuenta en cuenta y la información necesaria para saber a donde ir va contenida en la misma transacción. De momento en esta fase de testing las cuentas de Sentinel en Uphold y Coinbase son mis propias cuentas personales, pero en una versión definitiva la idea es usar unas cuentas exclusivas para Sentinel en las que solicitaré a Uphold y Coinbase que desactiven el en envío de fondos a direcciones bitcoin. De este modo en el remoto caso de que alguien tomara el control del sistema, todo lo que podría hacer es desviar fondos a otra cuenta Coinbase o Uphold lo cual no sería muy inteligente ya que sería identificado inmediatamente.

Como dije mi intención es añadir más carteras: Xapo, Luno, y hoy he visto que coins.ph también tiene una buena API. Creo que la idea es interesante y especialmente útil si hablamos de microtransacciones.

Entiendo el miedo o desconfianza que pueda tener la gente ante algo así, yo mismo la tendría, pero bueno, siempre hay usuarios que por una razón u otra desean probar, ya sea porque ponen poco en riesgo o porque son más incautos, digamos lo claro.

Otra cosa que tengo en mente es hablar de Sentinel con Coinbase y Uphold para intentar que ellos mismos le den legitimidad, quizá revisando el código, quizá alojando los scripts en sus propios servidores, quizá estoy soñando demasiado :wink:

En fin, este es un resumen de como funciona. Si necesitas más aclaraciones estaré encantado de resolverlas. Y repito, si hay algún usuario de iOS interesado en probarlo puedo mandarle una invitación por email para descargar la beta desde Apple TestFlight, recordando que en la versión beta las transacciones están limitadas a USD 2 y la comisión es de USD 0.01.

Saludos

Se me olvidaba añadir una cosa:

He hablado de que la información se propaga encriptada mediante una clave RSA en el interior del campo mensaje de las transacciones de Coinbase y Uphold. El que dicha clave RSA se vea comprometida no es un problema de seguridad como tal, me explico:

Cuando decidí que la información se propagaría en el interior del campo mensaje, me molestaba la idea de que el usuario viera el contenido de ese mensaje en texto plano, y no por nada en especial sino porque me parecía una solución un tanto “sucia”. El siguiente paso fue codificar dicha información en base64 con la intención de ofuscarla y que de cara al usuario tuviera el aspecto de algún “código de Sentinel”. Por último pensé que puestos a ofuscarla quizá sería mejor encriptarla y explico por qué: si un usuario malicioso viera el formato en el que propago la información podría tener la tentación de replicar o alterar dicha información en una nueva transacción en su propio beneficio. Lo que no sabe ese usuario es que si lo intentara solo conseguiría perder dinero ya que la seguridad de Sentinel no recae sobre la información propagada. Como consecuencia de ello yo me encontraría una transacción entrante, no despachada, para la cual tendría que ponerme en contacto con el usuario, preguntarle que había intentado hacer y finalmente devolverle el dinero, ósea un engorro. Para evitar todo esto la información va ofuscada y encriptada, pero es importante entender que comprometiendo dicha clave RSA, no se pone en riesgo la seguridad del sistema.

Para dar seguridad a la gente, lo ideal sería que encontraseis un método para demostrar que no se pueden retirar bitcoins desde vuestras cuentas en Coinbase, Uphold, etc. Si esas empresas avalan que no os podéis quedar con los fondos, los clientes ganarían en tranquilidad. Lo que pasa es que para equilibrar los saldos que tengais en todos ellos me temo que de vez en cuando sí tendríais que moverlos de un servicio a otro, y ahí hay un problema que no sé cómo podeis arreglar.

En realidad eso es fácil de resolver. El movimiento de fondos on-chain se puede hacer con aprobación manual desde una segunda cuenta que en ese caso si que podría ser la mía personal u otra. Por ejemplo imaginemos que Sentinel se queda con 5 btc en Uphold y 0.1 btc en Coinbase y quiero equilibrar pasando 2.5 btc desde Uphold a Coinbase, podría hacer lo siguiente:

  1. Pasar desde Sentinel (Uphold) a mi cuenta personal de Uphold (u otra de Uphold) los 2.5 btc
  2. Pasar los 2.5 btc desde mi cuenta personal de Uphold a la cuenta Sentinel (Coinbase) en una transacción on-chain.

Además ten en cuenta que esos 5 btc que hay en Uphold no son fondos de los usuarios, sino los fondos que Sentinel necesita para poder operar. La única situación en la que los fondos de un usuario correrían peligro sería si ese desvío malicioso de fondos se hiciera justamente en el instante entre la recepción de fondos en Sentinel y el envío, y ese instante dura milisegundos. Toda pérdida ocurrida fuera de esa ventana de milisegundos que dura una transacción sería pérdida para Sentinel pero no para los usuarios. Aún así, eso deja una ventana de milisegundos de riesgo para el usuario y como digo, la forma de protegerse frente a eso sería desactivar el envío a direcciones bitcoin y realizar el equilibrado a través de terceras cuentas controladas manualmente por ejemplo.
Poniéndonos en el remoto caso de que alguien se saltara todo eso, sería mucho más beneficioso para el intruso robar los fondos que residen permanentemente en Sentinel (y que son de Sentinel) que esperar a una transacción, ya que el importe de las transacciones estará limitado a valores muy inferiores respecto al remanente permanente de Sentinel con el objetivo de evitar que una sola transacción desplace todos los fondos disponibles de un servicio a otro.

Otra idea más sencilla que todo esto sería que Coinbase y Uphold permitieran el envío de fondos a través de dirección bitcoin exclusivamente a única dirección bitcoin preestablecida para permitir el equilibrado de cuentas.

Lo que dices de que Coinbase y Uphold avalen Sentinel es muy interesante, y de hecho en el momento de explicarles todo les he comentado lo útil que sería ese aval que podría ser en forma de revisión del código y por qué no, también hospedando ellos mismos las pocas lineas de código que requiere el sistema para funcionar en sus servidores. Aunque esto ya me parecería un sueño :wink:

Dada la gran cantidad de gente que tiene sus bitcoins en servicios centralizados, me parece que tu idea puede funcionar bastante bien y ser muy útil. Pero te tienes que trabajar muy bien el esquema de garantías, que sea transparente y fácil de entender.
Por cierto, si se soluciona el atasco en bitcoin y las comisiones de transacción vuelven a su nivel normal de menos de 5 céntimos, tu servicio dejaría de ser útil.

En efecto la utilidad se reduciría simplemente a poder enviar dinero a direcciones email sin tener que preocuparse de si el destinatario es usuario del mismo servicio o no, pero toda la parte de ahorro y transacción instantánea dejaría de tener interés.
Aunque por otra parte, si la transacción de la red bitcoin baja a 5 céntimos, siempre podría bajar la de Sentinel a 1 céntimo aunque esto solo seguiría siendo beneficioso en caso de una adopción masiva cosa que en este tipo de cosas sinceramente es bastante complicada.
La idea como dices puede funcionar, pero poniendo los pies en la tierra, la probabilidad de que esto se convierta en algo realmente provechoso es baja ya que le volumen de transacciones tendría que ser altísimo, y ni si quiera sé si ese volumen se produce actualmente entre hosted wallets.
Dicho esto, yo siempre he preferido probar que quedarme divagando sobre si algo funcionará o no, así que a probar se ha dicho.

1 me gusta

¡Me gusta ese espíritu!
Ánimo con la idea. Mantén-nos informados de los avances.

Gracias por los ánimos y tus comentarios. Descuida, iré comentando los avances.

1 me gusta

Hola de nuevo,

ya está publicada la versión de Beewallet con Sentinel en el Appstore. He abierto un hilo separado aquí para comentarlo (https://forobits.com/t/transacciones-instantaneas-y-muy-economicas-0-05-entre-coinbase-y-uphold/4095)
Si alguien se anima a probarlo y compartir su experiencia estaré encantado de escuchar comentarios.

Saludos

Supongo que la llamada la hallas lanzado en foros de bitcointalks, y reddit, ya que ambas compañías son americanas y conocidias y tendrás más testers (sugerencia)

Hola Claudius, gracias.
Sí efectivamente busqué betatesters en bitcointalk pero no en reddit. En cualquier caso, esta fase de testing ya acabó y la app oficial ya está publicada. Aunque siempre son bienvenidos nuevos testers para futuras versiones así que si alguien se apunta la propuesta sigue abierta.

Saludos

hola amigo, soy nuevo en esto del BTC y los altos de fees de coinbase me tienen mal, descargue beewallet para IOS y intento transferir 115000 satoshis (unos 4 $) de coinbase a uphold y no me deja, lo de sentinel es solo en los modo de prueba o estoy haciendo algo mal?

Hola @Rafael_Guzman, gracias por escribir.
El servicio Sentinel ya está activo en la versión oficial no obstante hace unos días descubrimos un error que hace que usuarios con la configuración regional del iphone puesta en Estados Unidos y algún otro país más no puedan enviar. Este error ha sido corregido pero la actualización todavía está pendiente de aprobación por parte de Apple. No se si es tu caso, si lo fuera puedes esperar a la actualización o puedes cambiar provisionalmente la región de tu iphone a España u otro país Europeo.

Si este no fuera tu problema puedes enviarme unas capturas de pantalla del error por privado para ver si puedo detectar cual es tu problema.

Espero que podamos reslverlo.

Saludos y gracias por usar Beewallet.

Hola Quiera saber si la app esta todavia en google play gracias :smiley:

Hola @betelgeuse, desgraciadamente la app ya no está en Google Play. Sigue estando sin embargo en el App Store de Apple pero sin soporte para cuentas Uphold. El motivo de la retirada es que tuvimos un problema importante con Uphold. Un buen día sin previo aviso nos cobraron una cantidad cercana a 1500$ en comisiones por todas las transacciones que realizaban los usuarios de Beewallet con la App. Al parecer habían activado estas comisiones para desarrolladores unos meses antes y nunca recibimos notificación. Las comisiones consistían, en que nosotros los desarrolladores, debíamos pagar una comisión por cada transacción que realizaran los usuarios de la app, una auténtica locura la verdad, por eso decidimos romper toda relación con Uphold, no solo por lo abusivo de las comisiones sino porque consideramos que se portaron fatal con nosotros cobrándonos de golpe casi 3 meses completos sin avisar y sin querer reconocer posteriormente su error y deficiente manejo de la situación que se creó.
Una pena, el poco tiempo que estuvo funcionando la app con el servicio Sentinel se animaron bastantes usuarios a probarlo, y creo que habría cumplido una función muy interesante en el actual momento. En cuanto a Uphold, fue un buen servicio en su momento pero creo que algún alto responsable ha tomado una dirección que solo puede ir encaminada a su destrucción, no hay más que ver el AppCenter de Uphold, se ha quedado vacío, los desarrolladores se han marchado a otras plataformas, además recientemente han añadido nuevas comisiones para los usuarios, para aquellos que no realicen transacciones un un periodo determinado de tiempo. Sinceramente con todas estas comisiones por todas partes, no sé quien decidirá quedarse en Uphold teniendo alternativas como Coinbase y Xapo por citar algunas, los desarrolladores desde luego no.

En cuanto a Beewallet, lo dicho, de momento sigue estando solo en el Appstore de Apple pero solo con soporte para Coinbase.

Saludos.

@jorschs tremendo rollo tengo 80.000 satoshis estancados en coinbase, sabes como puedo sacarlos, la comision vale mas que lo que tengo, y puede que no sea mucho para algunos pero para mi es mucho, gracias

Pues no me hagas mucho caso porque no estoy seguro, pero investiga lo siguiente: he leído comentarios de que retirar btc desde GDAX es gratis. Como sabes GDAX es de Coinbase, y creo que pasar tus fondos de Coinbase a GDAX es gratis siendo la misma empresa, así que solo tendrías que pasar los 80.000 a GDAX y de ahí retirarlos a la dirección btc que quieras. Infórmate sobre esto porque quizá ahí podría estar tu solución. Ya nos contarás si funciona.

Saludos

1 me gusta

@jorschs No esta para mi país, porque tengo que ser un tercermundista!!!