-
Desarrollador propone una soluciรณn de segunda capa que podrรญa ser adoptada en cualquier momento.
-
Easypaysy ofrece cuatro tipos de pagos, identificaciones canรณnicas y nemotรฉcnicas para las cuentas.
Bitcoin no usa las cuentas tรญpicas. En cambio, con cada pago los fondos son enviados a una โsalida u output de transacciรณnโ รบnica. En esta output, la direcciรณn de Bitcoin potencialmente puede ser reutilizada, y en estos casos la direcciรณn actuarรญa un poco como una cuenta de Bitcoin. Sin embargo, reutilizar las direcciones de esta manera, hace que sea trivial vincular diferentes monedas y transacciones hacia el mismo usuario, lo cual es terrible para la privacidad. Los usuarios de Bitcoin en cambio son alentados a generar nuevas direcciones para recibir cada pago.
A pesar de que es una mejor prรกctica para la privacidad, el desarrollador espaรฑol Josรฉ Femenรญas Caรฑuelo cree que esto no es amigable para el usuario.
โDe alguna manera nosotros estamos acostumbrados a los pagos de Bitcoin en la manera en que actualmente son, pero esto realmente es una atrocidadโ, le comentรณ Femenรญas a un medio. โEsto es como utilizar el internet sin los nombres de los dominios, apoyรกndose solamente en las direcciones IP, solo que peor, porque las direcciones de criptomonedas son mucho mรกs largas, feas, y cambian constantementeโ.
Para resolver este problema, en los รบltimos aรฑos este desarrollador resolviรณ cรณmo asegurar un sistema de cuentas sobre Bitcoin. Al detallar esta idea de manera extensa en un nuevo libro blanco, Femenรญas ahora estรก proponiendo su protocolo de segunda capa: Easypaysy.
Mientras que de esta manera se preservan los atributos mรกs valiosos de Bitcoin, como la privacidad y la auto soberanรญa (la no necesidad de depender de un custodio), el espaรฑol cree que su propuesta mejorarรญa significativamente la experiencia de los usuarios de Bitcoin, ya que esta les permitirรญa hacer pagos recurrentes, sin rechazos y mรกs.
Cuentas de Bitcoin en Easypaysy
Como una de las propiedades fundamentales de la propuesta de Femenรญas, Easypaysy no dependerรญa de ninguna fuente externa, ya que tanto la configuraciรณn de la cuenta como su uso, sucederรญan en la misma blockchain de Bitcoin.
Esto es posible porque una cuenta es creada con una transacciรณn especial. Esta transacciรณn tiene una input (la mitad de la transacciรณn, la que โenvรญaโ), la cual incluye una direcciรณn multifirma (multisig). La transacciรณn tambiรฉn tiene una output (la mitad queโrecibeโ), la cual es una output OP_RETURN. En este caso, la output realmente no recibe ningunos fondos, esta solo incluye una pequeรฑa cantidad de datos.
Las dos llaves pรบblicas utilizadas en la input pertenecen al dueรฑo de la cuenta, quien tambiรฉn creรณ la transacciรณn, y ambas llaves tienen una funciรณn. La primera llave pรบblica es llamada la โllave de identidadโ, y esencialmente es la identidad digital de la cuenta de Bitcoin del tenedor. Cualquiera que quiera comunicarse con esta persona de manera privada deberรก utilizar esta llave pรบblica para encriptar el mensaje. La segunda llave pรบblica es llamada la โllave de valorโ, y esta es utilizada para recibir pagos.
Existen dos llaves pรบblicas diferentes en lugar de una, debido a que la llave de valor es incluso mรกs valorada que la llave de identidad, ya que esta รบltima es utilizada para mensajes, y la primera para el dinero. โLa llave de identidad debe estar ยดen lรญneaยดโ, explicรณ Femenรญas. โEsto la expone a vulnerabilidades, de la misma manera en que las carteras en lรญnea estรกn mรกs expuestas que las carteras fuera de lรญnea. Quizรกs sea sensato mantener la llave de valor almacenada de manera frรญa, mientras que la llave de Identidad sea usada de manera mรกs activa para comunicarseโ.
El texto OP_RETURN en la output, entonces, tambiรฉn sirve a una funciรณn. Este es un pequeรฑo documento JSON (un formato de datos legible para las maquinas) llamado โdescriptor de citasโ (Rendezvous descriptor). Este documento contiene informaciรณn sobre la cuenta de bitcoin en Easypaysy. Especรญficamente este documento detalla que tipo de pagos el dueรฑo de la cuenta puede aceptar y cรณmo. De hecho, la propuesta de Femenรญas da soporte a varios tipos de pagos.
Las dos llaves pรบblicas y el descriptor de citas son toda la informaciรณn que se necesita tener la cuenta. Cuando es redactada esta transacciรณn especial de creaciรณn de cuenta, se aรฑade una comisiรณn (de esta manera, la direcciรณn multifirma debe tener un mรญnimo de fondos), y esta es retransmitida a la red de Bitcoin para ser incluida en un bloque.
Los ID de Cuentas de Bitcoin de Easypaysy
Ahora las personas necesitan poder encontrar las cuentas.
Aquรญ es donde Femenรญas se escabullรณ con uno de los trucos mรกs ingeniosos de su propuesta. Una vez que la transacciรณn es incluida en un bloque, a la cuenta se le asigna de manera automรกtica una identificaciรณn o ID, basada en su lugar en la blockchain. Especรญficamente, el ID de la cuenta consiste en el bloque exacto en el cual es incluida la transacciรณn, y el lugar de la transacciรณn en el bloque. Esto es combinado con un identificador de la blockchain y una suma de control.
Algo como: blockchain@block.transaction/checksum.
Veamos esto paso a paso con un ejemplo imaginario.
Digamos que estamos utilizando Bitcoin. El identificador de blockchain, entonces, es โbtcโ.
Y digamos que la transacciรณn es incluida en el bloque 543.847. Este es un bloque de bitcoin real que fue minado en octubre del 2018, pero esto no es importante, solo estamos usรกndolo como ejemplo.
Digamos, tambiรฉn, que la transacciรณn es el nรบmero 636 en este bloque. Este nรบmero de transacciรณn realmente existe, pero nuevamente, la estamos utilizando para el propรณsito del ejemplo. No hay necesidad de buscar la transacciรณn real.
Por รบltimo, la suma de control es un truco de criptografรญa para seguridad extra.
โEsta se extrae del cรณmputo de tres objetosโ dijo Femenรญas. โel hash del bloque que incluye la cuenta, la raรญz de Merkle de ese bloque, y el hash de la misma transacciรณn de la cuenta. Asรญ, si alguien intenta enviarte mala informaciรณn de la cuenta, fรกcilmente puedes detectarloยป.
En nuestro ejemplo, la suma de control serรญa 577.
Entonces, la transacciรณn nรบmero 636 incluida en el bloque de bitcoin nรบmero 543.847, resultarรญa en la identificaciรณn de la cuenta: btc@543847.636/577. Mรกs especรญficamente, esto serรญa la โidentificaciรณn canรณnicaโ, ya que allรญ se muestran el bloque, la transacciรณn, y la suma de control.
Para hacerlo incluso mรกs prรกctico, esta identificaciรณn canรณnica (btc@543847.636/577) tambiรฉn puede ser expresado como una โidentificaciรณn nemotรฉcnicaโ. Al apalancarse con el formato de documento BIP 39, utilizado para las semillas de carteras de Bitcoin, los nรบmeros en la identificaciรณn de la cuenta pueden ser convertidos en conjuntos de palabras (o combinaciones de palabras). Esto deberรญa ser mรกs fรกcil de memorizar para las personas.
Los nรบmeros en la identificaciรณn de la cuenta de este ejemplo, puede ser separados en tres conjuntos.
543847 = anular
636 = exhibir
577 = movimiento
De esta manera, la identificaciรณn nemotรฉcnica para este ejemplo serรญa: btc@anular.exhibir/movimiento.
Por รบltimo, el libro blanco de Easypaysy tambiรฉn propone โIdentificaciones de dominiosโ los cuales dependerรญan del Sistema de Nombres de Dominio (DNS). En resumen, tales identificaciones contendrรญan un nombre de dominio real, asรญ como un identificador de blockchain y una suma de control, y lo vincularรญa con una identificaciรณn de cuenta por medio del sistema DNS. Por ejemplo, una identificaciรณn de dominio se verรญa asรญ: btc@criptonoticias.com/561.
Este tipo de identificaciones dependerรญan de una fuente externa (DNS) y costarรญan dinero y esfuerzo para mantenerlos. Femenรญas espera que estos sean de interรฉs solo para socios comerciales.
Pagos con cuentas de Bitcoin en Easypaysy
Entonces, tenemos una cuenta y una identificaciรณn de cuenta. Ahora alguien, llamรฉmoslo โel pagadorโ, quiere pagarle al dueรฑo de la cuenta, a quien llamaremos โel beneficiarioโ. El pagador posee la direcciรณn nemotรฉcnica del beneficiario, porque el beneficiario se la dio. La identificaciรณn de la cuenta de bitcoin en Easypaysy, en cualquiera de sus formas, puede ser simplemente compartida con cualquiera, asรญ como una direcciรณn de correo electrรณnico o un nรบmero telefรณnico.
Para hacer el pago, el primer paso para el pagador es convertir la identificaciรณn nemotรฉcnica a la direcciรณn canรณnica. Este paso es trivial. Utilizando el formato BIP 39, el pagador simplemente convierte las palabras de la identificaciรณn nemotรฉcnica en nรบmeros, y termina con la identificaciรณn canรณnica: btc@543847.636/577.
Con la identificaciรณn canรณnica, el pagador puede utilizar la suma de control para asegurarse de que la altura del bloque y que el nรบmero de la transacciรณn coinciden. Esto no es estrictamente necesario, pero sirve como una verificaciรณn extra para asegurarse de que no hay ningรบn tipo de error tipogrรกfico en la cuenta, o quizรกs para prevenir que alguien entregue una cuenta de aspecto similar.
De cualquier manera, el pagador ahora sabe dรณnde encontrar la cuenta: Es la transacciรณn nรบmero 636 en el bloque 543.847. Asรญ que la busca.
Esta transacciรณn entonces incluye el descriptor de cita: el documento JSON en el output OP_RETURN. El descriptor de cita especifica quรฉ tipo de pagos puede recibir la cuenta y el cรณmo. Estas pueden ser todos los tipos que soporta el protocolo o cualquier selecciรณn de estas.
De los tipos de pagos que acepte el beneficiario, el pagador escoge su favorito y realiza el pago. Listo.
Tipos de Pagos con Easypaysy
Asรญ que ยฟquรฉ tipos de pagos se pueden hacer? El protocolo de Femenรญas incluye cuatro tipos de pagos.
Tipo 0
El primer tipo de pago, el tipo 0, es el tipo de pago mรกs sencillo, pero al mismo tiempo es el peor para la privacidad. Los pagos tipo 0 bรกsicamente son solo pagos a la llave de valor, y por consiguiente, involucran reusar la direcciรณn correspondiente, asรญ como muchas direcciones de donaciones hacen hoy en dรญa. De hecho, Femenรญas no incentiva este tipo de pagos, sin embargo, quiere incluirlos en el protocolo como una opciรณn para aquellos que realmente quieran utilizarlos.
Tipo 1
El segundo tipo de pagos, los pagos tipo 1, requieren interacciรณn. Para este tipo de pagos, el pagador contacta al beneficiario para solicitar la nueva direcciรณn de bitcoin. El protocolo de Easypaysy es flexible sobre cรณmo se realiza el contacto; puede hacerse por medio de correo electrรณnico, por medio de una pรกgina web, en una aplicaciรณn de mensajerรญa, o por otros medios.
Cuando se le provee al pagador la direcciรณn, digamos que por correo electrรณnico, el beneficiario tambiรฉn firma la direcciรณn con su llave de identidad. Esto ofrece una confirmaciรณn para el pagador de que la direcciรณn realmente es del beneficiario, y no una direcciรณn perteneciente a un hacker que obtuvo acceso al correo electrรณnico del beneficiario, por ejemplo.
Tipo 2
El tercer tipo de pago, los pagos tipo 2, no requiere interacciรณn. De manera similar a los trucos usados previamente para ocultar direcciones, los pagos tipo 2 le permiten al pagador generar una nueva direcciรณn de Bitcoin para el beneficiario, con la cual el beneficiario, y solo el beneficiario, puede gastar.
Para hacer esto, el pagador necesita generar un par de llaves pรบblicas de uso รบnico. Utilizando la llave privada de este par de llaves, en conjunto con la llave de valor del beneficiario, el pagador genera una nueva llave pรบblica y su correspondiente direcciรณn de bitcoin. El pagador envรญa los fondos a esta nueva direcciรณn y, muy importante, aรฑade la llave pรบblica de uso รบnico a la misma transacciรณn como una output OP_RETURN.
Curiosamente, el beneficiario puede utilizar esta llave pรบblica de uso รบnico en conjunto con su llave de valor para generar una nueva llave privada que corresponda con la nueva llave pรบblica, y asรญ la direcciรณn de Bitcoin correspondiente. En otras palabras, si el beneficiario descubre la llave pรบblica de uso รบnico, รฉl y solo รฉl puede gastar los fondos de la nueva direcciรณn de Bitcoin.
Para descubrir la llave pรบblica de uso รบnico, el beneficiario debe ser notificado de la transacciรณn por el pagador, o el beneficiario simplemente verifica todas las nuevas transacciones de Bitcoin con un output OP_RETURN. Por cada output OP_RETURN, el verifica si esta es una llave pรบblica que pueda combinar con su llave de valor privada para gastar los fondos incluidos en la transacciรณn. Usualmente este no serรก el caso. Pero cuando este sea el caso, sabrรก que se le ha pagado.
Tipo 3
El cuarto tipo de pagos, los pagos tipo 3, es similar al segundo tipo. Esta vez, sin embargo, las output OP_RETURN deben ser precedidas con el identificador โEPโ. Esto los hace mรกs fรกcil de ubicar para el beneficiario, pero estos cuestan un poco mรกs en comisiones para el pagador.
Beneficios de las cuentas de Bitcoin
Como una propuesta de segunda capa, el sistema de cuentas de bitcoin en Easypaysy propuesto por Femenรญas no requerirรญa ningรบn cambio en el protocolo de Bitcoin, asรญ como tampoco necesitarรญa consenso de toda la industria. Las carteras individuales pueden adoptar la propuesta para maรฑana, y luego de eso los usuarios podrรญan usarlo de manera inmediata.
Femenรญas, por supuesto, cree que las cuentas de Easypaysy podrรญan beneficiar en gran medida la usabilidad de Bitcoin, abriendo asรญ un nuevo potencial para el protocolo.
โDe estos, la no repudiabilidad es un beneficio notorioโ dijo Femenรญas. โDigamos que vas a un proveedor de Lanborghinis para comprar tu nuevo automรณvil. Una vez que acuerdan el precio, el proveedor te muestra un cรณdigo QR y te dice que envรญes el pago a esa direcciรณn. Y eso haces. Pero un dรญa despuรฉs, la cuenta del proveedor te dice que todavรญa estรกn esperando por el pago. ยฟcรณmo compruebas que tรบ pagaste? Debido a que las direcciones de bitcoin son seudรณnimas, no puedes comprobar que tรบ enviaste el dinero al proveedor de Lamborghini.โ
Con el sistema de cuentas de bitcoin de Easypaysy propuesto por Femenรญas, esto no serรญa un riesgo: el pagador siempre puede proveer pruebas de pagos a una cuenta especรญfica. Para los pagos tipo 0, esto es obvio, el dinero fue enviado pรบblicamente a una llave de valor de una cuenta. Los pagos de tipo 1 tambiรฉn son fรกciles de comprobar, ya que la direcciรณn de bitcoin que se dio estaba firmada con la llave de Identidad del beneficiario. Pero incluso para los pagos tipo 2 y tipo 3, el pagador puede demostrar que le pagรณ al beneficiario. La llave privada de uso รบnico puede comprobar criptogrรกficamente que el beneficiario tiene toda la informaciรณn necesaria para identificar la transacciรณn como suya y para computar la llave privada que le permitirรก gastar los fondos.
Otro beneficio del sistema de cuentas de bitcoin en Easypaysy de Femenรญas es que harรญa que los pagos recurrentes fuesen mucho mรกs factibles. Pensemos en el pago de alquileres, suscripciones u otras transacciones periรณdicas hacia una misma entidad. El software de las billeteras podrรญa ser programado para aceptar solicitudes de pago de una cuenta especรญfica, hasta una cantidad mรกxima por periodo. Por ejemplo, la cuenta del dueรฑo de una casa tendrรญa permitido solicitar hasta 0,1 bitcoins por mes, si esta es la renta mensual fijada.
Mรกs allรก de eso, serรญa mucho mรกs fรกcil para los comerciantes retornar fondos. Esto puede ser รบtil, por ejemplo, cuando alguien haga una compra, pero el comerciante luego se entera de que el producto ordenado estรก agotado. Con un sistema de cuentas, el dinero puede ser retornado al cliente de manera sencilla, sin la necesidad de tener que solicitar una direcciรณn especรญfica de retorno.
Por รบltimo, el sistema de cuentas de bitcoin de Easypaysy propuesto por Femenรญas podrรญa, por primera vez, ofrecerles a los usuarios de bitcoin una identidad en la blockchain.
โEsto podrรญa significar, por ejemplo, que cuando accedas a un sitio web, tu usarรญas la identificaciรณn de Easypaysy, y en lugar de solicitar una contraseรฑa, el sitio web te reta a firmar un mensaje con tu llave privadaโ sugiriรณ Femenรญas. โIncluso si el sitio web ha sido hackeado, tu siempre estarรกs a salvo porque el sitio web no almacenarรญa ninguna contraseรฑa.โ
Las desventajas de las cuentas de Easypaysy
Dicho todo esto, una de las caracterรญsticas mรกs poderosas del sistema de cuentas de bitcoin de Easypaysy propuesto por Femenรญas, podrรญa ser tambiรฉn su mayor desventaja: este depende completamente de la blockchain de Bitcoin, ya que incorporarรญa la informaciรณn de las cuentas en esta. El espacio en los bloques es escaso, y la escalabilidad es un reto.
Para minimizar este problema, Femenรญa sugiere en su libro blanco que las cuentas tambiรฉn podrรญan ser abiertas a granel: Una transacciรณn podrรญa incluir cientos o incluso miles de cuentas, para otros tantos usuarios. En este caso la informaciรณn OP_RETURN apuntarรญa hacia una fuente externa para toda la informaciรณn de la cuenta, quizรกs un sitio web. La OP_RETURN tambiรฉn podrรญa incluir una raรญz de Merkle para toda la informaciรณn de esta cuenta, de manera que el pagador pueda verificar la informaciรณn de la cuenta con la raรญz de Merkle. Si bien esta soluciรณn dependerรญa de una fuente externa, como una pรกgina web, al menos los usuarios podrรญan asegurarse de que los datos no sean modificados.
Una soluciรณn alternativa para las cuentas de bitcoin en Easypaysy podrรญa ser utilizar una blockchain diferente, como la de Litecoin, para abrir las cuentas. En este caso, un รญndice numรฉrico es aรฑadido a la cuenta haciendo referencia a Litecoin, o cualquiera de las blockchains que sea utilizada. A pesar de que esta soluciรณn serรญa lo suficientemente segura en Litecoin, por supuesto, viene con la desventaja obvia de que los usuarios de Bitcoin tendrรญan que depender, en cierta medida, de una criptomoneda diferente.
Versiรณn traducida del artรญculo de Aaron Van Wirdum, publicado en Bitcoin Magazine.