Cargando. Por favor, espere

Blockchain: Fundamentos y perspectiva...

Blockchain: Fundamentos y perspectiva jurídica. De la confianza al consenso

José María ANGUIANO

Socio de Garrigues

Diario La Ley, Nº 18, Sección Ciberderecho, 16 de Mayo de 2018, Wolters Kluwer

LA LEY 4269/2018

I. Introducción

Blockchain es un término en lengua inglesa que se traduce como «cadena de bloques». Se refiere a un procedimiento informático (protocolo), inicialmente concebido para soportar las «criptomonedas» como «Bitcoin» y que suscita creciente interés, también en la comunidad jurídica. Es lógico, «Blockchain» no es sino la combinación de diversas tecnologías con propósito acreditativo. Su naturaleza matemática, hace que pudiendo emular de forma eficaz el funcionamiento del dinero, pueda también ser utilizado con otros propósitos acreditativos. Hablamos en definitiva de procedimientos codificados que acreditan la existencia de eventos y manifestaciones ocurridas en la red. Supone además una nueva manifestación de lo que se ha dado en llamar «la economía colaborativa».

Se enunció en un artículo publicado en 2008, bajo pseudónimo «Satoshi Nakamoto» (1) en el que se describía el funcionamiento de la famosa cripto-moneda Bitcoin. Quién o quienes estén detrás de este trabajo son también los poseedores de la clave privada con la que se firmó la primera transacción con bitcoins; se pagó una pizza. En consecuencia, la identidad del o de los artífices de esta tecnología es computacionalmente acreditable mediante la aplicación de la clave privada que solo «Nakamoto» conoce.

Bitcoin es la primera y más popular criptomoneda. Se trata de moneda electrónica anónima (al portador) y descentralizada. Lo disruptivo no es la condición electrónica del dinero —la mayoría de transacciones dinerarias en los países desarrollados ya lo son— sino la descentralización del procedimiento. Se trata de un sistema que aspira a garantizar robustez en el flujo dinerario sin el concurso de terceros interpuestos. Sin que la transacción precise la consolidación contable entre los bancos del deudor y el acreedor.

Bitcoin es solo uno de los fenómenos tras una corriente de pensamiento que emerge con fuerza. Para entenderlo, en este artículo comenzaremos por una reflexión sobre la filosofía detrás de internet, el intercambio de ficheros, el código libre o Blockchain.

Después me referiré a los requisitos acreditativos de los «Registros Distribuidos» (autenticidad, univocidad e integridad) así como a las tecnologías que posibilitan su cumplimiento; algoritmos de consenso, criptografía de clave asimétrica y algoritmos de destilación.

El conocimiento de estas tecnologías nos permitirá adentrarnos en el funcionamiento de Bitcoin. Para ello analizaremos la estructura de las transacciones así como el cometido de los mineros de formar bloques de transacciones vinculados entre sí, obteniendo una cadena cronológica e inmutable que otorga a esta tecnología las propiedades acreditativas que atesora. Para terminar, nos referiremos al procedimiento de emisión de nuevas unidades dinerarias (criptomonedas).

Una vez analizado su funcionamiento serán oportunas algunas reflexiones jurídicas sobre el fenómeno. En primer lugar como instrumento acreditativo. También resulta jurídicamente relevante la forma de licenciamiento del programa de ordenador que posibilita el funcionamiento de este protocolo (código abierto). Me referiré también a la posibilidad de utilizar esta tecnología en un futuro inmediato con otros propósitos acreditativos (Blockchain 2.0), para concluir con una breve reflexión sobre la privacidad en Blockchain.

Será ineludible ofrecer alguna explicación técnica sobre el protocolo ya que las características de las tecnologías que conforman Blockchain tienen relevancia probatoria. Sin comprender su funcionamiento resultará complicado analizar sus fortalezas y limitaciones acreditativas. No obstante, estas explicaciones se limitan a lo estrictamente necesario para entender el significado acreditativo de las mismas.

II. El anarco-capitalismo y el cripto-anarquismo

El primero de los términos —anarco-capitalismo— (2) fue acuñado en 1950 por Murray N. Rothbard, de la escuela austriaca de economía y expresa una corriente de pensamiento que combina el anarquismo político, propugnando el rechazo a las formas de poder centralizadas como la estatal y, al mismo tiempo, defendiendo la propiedad privada y el libre mercado. Sus seguidores entienden que los mercados se comportan mejor sin injerencias de ningún tipo; mediante autorregulación y propugnan la desaparición de la potestad impositiva, normativa o autorizadora de los Estados. Persiguen en definitiva el tránsito de la confianza al consenso.

Su influencia es creciente y también su incumbencia económica. La economía colaborativa es un buen ejemplo de la revolución social y económica que pueden llegar a provocar. Las últimas decisiones del TJUE (taxistas de Barcelona vs Uber) o de la Comisión Europea (sancionando las irregularidades del pacto fiscal entre Apple y el gobierno irlandés) ponen de manifiesto la reacción de los Estados ante el envite anarquista.

La pugna no es nueva. Ya en 1996, con ocasión de la reunión en Davos (Suiza) del Foro Económico Mundial y como reacción a la aprobación en EE.UU. de la «Telecomunicaciones Act», se publicó por John Perry Barlow la «Declaración de Independencia del ciberespacio» (3) . Su contenido, si lo analizamos con perspectiva, es revelador. Anticipa la eficacia del anonimato electrónico para lograr evitar, al menos en parte, el «yugo» estatal.

Estamos creando un mundo donde cualquiera, en cualquier sitio, puede expresar sus

creencias, sin importar lo singulares que sean, sin miedo a ser coaccionado al silencio o el conformismo… Nuestras identidades no tienen cuerpo, así que, a diferencia de vosotros, no podemos obtener orden por coacción física. Creemos que nuestra autoridad emanará de la moral, de un progresista interés propio, y del bien común ... Debemos declarar nuestros «yos» virtuales inmunes a vuestra soberanía, aunque continuemos consintiendo vuestro poder sobre nuestros cuerpos. Nos extenderemos a través del planeta para que nadie pueda encarcelar nuestros pensamientos.

Una corriente dentro del anarco-capitalismo es el cripto-anarquismo (4) . Sus seguidores, celosos de una intimidad cada vez más amenazada por la tecnología, anuncian la utilización de algoritmos de cifrado para preservar la privacidad de las comunicaciones. Resulta asombrosa su capacidad de anticipar los efectos sociales y económicos de la evolución tecnológica. Ya en el año 1992, Timothy C. May, en el manifiesto criptoanarquista (5) decía:

La informática está al borde de proporcionar la capacidad a individuos y grupos de comunicarse e interactuar entre ellos de forma totalmente anónima. Dos personas pueden intercambiar mensajes, hacer negocios y negociar contratos electrónicos, sin saber nunca el Nombre Auténtico, o la identidad legal, de la otra.

Estos progresos alterarán completamente la naturaleza de la regulación del gobierno, la capacidad de gravar y de controlar las interacciones económicas, la capacidad de mantener la información secreta, e incluso alterarán la naturaleza de la confianza y de la reputación.

La tecnología para esta revolución (y seguramente será una revolución social y económica) ha existido en teoría durante la última década. Los métodos están basados en el cifrado de clave pública, sistemas interactivos de prueba de cero-conocimiento, y varios protocolos de software para la interacción, autenticación y verificación. El foco hasta ahora ha estado en conferencias académicas en Europa y EE.UU., conferencias monitorizadas de cerca por la Agencia de Seguridad Nacional. Pero solo recientemente las redes de computadores y ordenadores personales han alcanzado la velocidad suficiente para hacer las ideas realizables en la práctica. Y los próximos 10 años traerán suficiente velocidad adicional para hacer estas ideas factibles económicamente y, en esencia, imparables.

El Estado intentará, por supuesto, retardar o detener la diseminación de esta tecnología, citando preocupaciones de seguridad nacional, el uso de esta tecnología por traficantes de drogas y evasores de impuestos y miedos de desintegración social.

La cripto anarquía, combinada con los mercados de información emergentes, creará un mercado líquido para cualquier material que pueda ponerse en palabras e imágenes. Y de la misma manera que una invención aparentemente menor como el alambre de púas hizo posible el cercado de grandes ranchos y granjas, alterando así para siempre los conceptos de tierra y los derechos de propiedad en las fronteras de Occidente, así también el descubrimiento aparentemente menor de una rama arcana de las matemáticas se convertirá en el alicate que desmantele el alambre de púas alrededor de la propiedad intelectual.

III. El anarco-dinero

Uno de los anhelos anarco-capitalistas es contar con dinero que permita transacciones al margen del control de los Estados y sus bancos centrales. Dinero de adopción voluntaria que pueda ser aceptado como medio de pago universal permitiendo el anonimato que en la actualidad proporciona el dinero al portador. Algún procedimiento que permita un flujo dinerario descentralizado, ágil, anónimo y eficaz.

Para que el flujo dinerario sea eficaz es imprescindible que el anarco-dinero utilizado, como cualquier otro, solucione lo que se ha dado en denominar «el problema del doble gasto» (6) . Es consustancial con el funcionamiento del dinero, en cualquier formato, que quien lo utiliza para pagar a un tercero agote el ulterior derecho de disposición sobre este, otorgándoselo al acreedor al que ha pagado, y así sucesivamente. De no ser así, el anarco-dinero entraría en una espiral inflaccionista que supondría su desaparición.

Cuando se usa efectivo (monedas y billetes) la traslación de su posesión evita ulteriores disposiciones por parte de quien paga. El problema del doble gasto se soluciona por pérdida de la posesión de algo tangible. La entrega del metal o papel impide el doble gasto.

La utilización de dinero efectivo también permite que la identidad de acreedor y deudor sea sólo conocida, en su caso, por ellos mismos. Es opaca para cualquiera que no haya presenciado el pago. Presenta sin embargo abundantes inconvenientes como los pagos a distancia, los robos, la intrínseca limitación de la condición metálica de la moneda en cuanto a peso y volumen, etc. Por estos y otros motivos el formato y naturaleza del dinero ha ido evolucionando. Sin embargo, siempre ha existido el objetivo común de evitar su doble gasto.

Si queremos que el anarco-dinero funcione tiene también que ser ágil. Como el presupuesto necesario para la eficacia de cualquier dinero es evitar su múltiple disposición, habrá de llevarse una contabilidad única de todas las transacciones de los adheridos a la anarco-moneda. La exigencia en la llevanza de esta contabilidad será creciente, en función del número de adhesiones y del de transacciones. Es evidente que (i) la recepción de las órdenes de transferencia, (ii) la verificación de la identidad del pagador, (iii) la verificación de la existencia de saldo y (iv) la consolidación contable del dinero transmitido, es una labor de difícil asunción universal y solitaria.

Además, la llevanza solitaria de la contabilidad invita a cuestionar la incondicional honorabilidad de quién la lleva. Desde una perspectiva anarquista, la posibilidad de manipulación de la matriz permanece en la medida en que el control de esa contabilidad recaiga en concretas personas, que serán igualmente corruptibles.

La solución pasa por una llevanza colaborativa de la contabilidad. Los intervinientes en el tráfico dinerario llevan coordinada o recurrentemente su contabilización. Sin embargo, los inconvenientes de orden práctico de esta llevanza colaborativa son fácilmente imaginables. Alcanzar consensos en un entorno analógico requiere tiempo y esfuerzo que rápidamente comprometerían la agilidad del anarco-dinero.

IV. ¿Y si metemos la informática?

De lo dicho se infiere que el anarco-dinero perseguido resulta utópico en un entorno analógico. Pudiera resultar factible para comunidades pequeñas, pero enseguida devendría inabordable. En la actualidad el dinero es fundamentalmente electrónico y fiduciario. Si se contabilizan las transacciones directas, utilizando medios informáticos así como el uso de tarjetas de crédito y débito, cerca del 90% de las transacciones de los países desarrollados son electrónicas. La emisión y puesta en circulación de nuevo dinero es competencia de los Estados que actúan de forma coordinada a través del FMI, en función de parámetros macroeconómicos y decisiones políticas.

Teniendo en consideración la condición eminentemente electrónica del dinero, ¿es posible, con ayuda de ingenios informáticos y algoritmos matemáticos, emular el funcionamiento del dinero al portador en un entorno ágil y fiable? Para ello, insisto, habrá que recepcionar todas las órdenes de pago, verificar la identidad del deudor, actualizar el saldo y registrar el asiento contable que acredita la transacción y todo esto hacerlo de forma descentralizada.

Cuando el dinero es electrónico, el problema del doble gasto se soluciona por interposición; mediante la consolidación de las contabilidades de los interpuestos entre acreedor y deudor. Se interponen en su condición de mandatarios de una orden de recepción o pago. Si la transferencia electrónica del dinero fuese directa, sin terceros interpuestos que verificasen la existencia de saldo y consolidasen los asientos contables, el deudor siempre podría cuestionar la existencia de las previas transacciones que le habrían despojado de su derecho de disposición. Los interpuestos actúan como testigos de la transacción. Como su testimonio es electrónico, cuentan con un registro informático que acredita la existencia del mandato de pago y su cumplimiento. La interposición bancaria es sin embargo centralizada, con lo que no cumple un presupuesto esencial del anarco-dinero; la descentralización. Aunque los bancos pueden evitar el doble gasto logrando un flujo dinerario ágil y seguro, sin embargo, lo hacen de forma centralizada. Con el concurso de entidades financieras se consigue dinero electrónico, pero no anarco-dinero. Ni las transacciones son anónimas ni la contabilización de estas se produce de forma descentralizada o colaborativa.

Para logarlo, deberemos contar con un registro informático único en el que se anoten las transacciones de forma colaborativa (que el contenido de la anotación sea decisión de una pluralidad de personas que actúan de forma coordinada o consensuada). Para que este Registro tenga virtualidad acreditativa debe reunir tres requisitos probatorios: (i) autenticidad, (ii) univocidad e (iii) integridad.

V. Autenticidad del Registro Distribuido

El Registro informático en su condición de instrumento acreditativo de la existencia de un pago, debe ser auténtico. Entenderemos que es auténtico cuando refleja fielmente las transacciones realizadas. Como la condición para poder disponer es que se verifique, mediante consulta al Registro que las transacciones de las que se dispone no han sido previamente gastadas, la autenticidad de este resulta vital para evitar múltiples disposiciones.

En la actualidad, la autenticidad de las anotaciones de cualquier Registro descansa en la confianza. Cuando quieres garantizar la autenticidad de la anotación encargas a un tercero, ajeno a ella, para que la haga y custodie el Registro que la guarda. Hablamos en definitiva de una prueba por interposición en la que es posible que el interpuesto esté investido de autoridad reforzada para garantizar la autenticidad e inmutabilidad de estas anotaciones.

Sin embargo, desde una perspectiva anarquista, el custodio del Registro centralizado es así mismo corruptible. Siempre podrá modificar el Registro en beneficio de los concernidos por esas anotaciones. En definitiva, el reproche es el mismo que se hace a los bancos. Se trata de interposiciones centralizadas.

Pero, ¿cómo conseguimos un Registro auténtico y descentralizado? Una alternativa a utilizar una interposición centralizada es que sea lo suficientemente compartida como para garantizar que no habrá concertación entre los interpuestos. ¿Y cómo conseguimos una interposición compartida? Pues logrando que un amplio número de personas, reciban las órdenes de pago y verifiquen la existencia de saldo suficiente para atenderlo. ¿Y cómo me fío de la honestidad de esta pluralidad de nuevos interpuestos; que no se pongan de acuerdo sobre sus verificaciones? Pues de dos formas: En primer lugar, haciendo que los interpuestos no se conozcan entre sí. El anonimato dificulta la concertación. Y en segundo lugar, utilizando algoritmos de consenso.

VI. Algoritmos de consenso. El problema de los generales bizantinos

En el año 1982, Leslie Lamport, Robert Shostak y Marshall Pease publicaron una reflexión (7) que sacaba conclusiones de un trabajo desarrollado para el gobierno norteamericano. En sus orígenes, la fórmula matemática que enuncia el trabajo se utilizó para el control del lanzamiento de misiles balísticos a través de Internet. Se buscaba la fiabilidad de las comunicaciones en redes abiertas en supuestos extremos en los que se presume la existencia de nodos que pretenden desbaratarla o confundir sobre su contenido. Se ha convertido en pieza fundamental en cualquier esquema de computación distribuida como el protocolo TCP/IP o el P2P. La formulación matemática de su trabajo soluciona lo que se ha dado en denominar El problema de los generales bizantinos (8) .

El « Problema de los generales bizantinos» es una enunciación metafórica de algo que sucede en los sistemas informáticos que tienen un objetivo común; consensuar una «acción conjunta» partiendo de una estructura jerárquica. Uno de los nodos, al que se le otorga mayor rango, remite una orden que el resto de nodos tienen que reenviarse. Se parte de la premisa de que alguno de los nodos no sea fiable y remita intencionadamente información falsa al resto. Se enuncia como sigue:

En un escenario de guerra, un grupo de m generales bizantinos lideran distintos ejércitos que asedian una ciudad enemiga. Tienen que consensuar si atacan o se retiran de forma coordinada. Entre los generales hay solo uno que puede cursar la orden (el comandante). El resto reciben la denominación de lugartenientes.

Los generales se comunican a través de mensajeros. Sus mensajes solo pueden transmitir dos posibles órdenes: «atacar» o «retirarse». El comandante remite la orden a todos los lugartenientes que a su vez se la reenvían. Al final todos reciben un número de mensajes igual al número de generales que intervienen en el asedio menos ellos mismos.

Uno o más de los generales pueden ser traidores (t). Al resto los denominamos leales. El objetivo de los traidores es conseguir que los leales no se pongan de acuerdo, remitiendo información errónea. Por ejemplo. Si el comandante es traidor, podrá mandar órdenes contradictorias a los distintos lugartenientes (de atacar a unos y retirarse a otros). Si un lugarteniente es traidor podrá, con el fin de confundir al resto de los lugartenientes y que crean que el traidor es el comandante, transmitir que este le envió la orden contraria a la que realmente remitió. (Si recibió atacar, enviará retirarse y viceversa)

Para resolver el problema hay que enunciar algoritmos que permitan a los generales tomar decisiones de forma consensuada en este incierto contexto comunicativo. La enunciación matemática de la solución al «problema de los generales bizantinos es m=3(t) +1, donde "m" es el número de generales que intervienen y "t" el número de traidores».

Si sustituimos a los generales por ordenadores (nodos), encontramos una fórmula apta para conseguir consenso sobre cuál de las verificaciones de la pluralidad de interpuestos es la que finalmente se asentará en nuestra contabilidad colaborativa. Se registrará la verificación que tenga mayor consenso entre los que participan en el Sistema.

En el Anexo1encontrará el lector una explicación más detallada sobre la formulación de Lambert. Se recomienda su lectura si se quiere profundizar sobre la robustez acreditativa de Blockchain.

VII. La univocidad

Otro de los requisitos acreditativos del Registro que sustenta los pagos es que tiene que poder asignar la disposición y recepción de las transacciones a personas concretas. Si A paga a B, hay que poder descontar el montante pagado de la cuenta de A y sumárselo a la de B. Pero, como el objetivo anarquista es el anonimato, ¿cómo se consigue otorgar a alguien la titularidad del dinero preservando su anonimato? Pues asignándole «claves criptográficas» que otorguen al «titular» acceso exclusivo a un fichero (monedero), que es desde el único desde el que se pueden recibir u ordenar pagos.

Para lograr el acceso exclusivo al monedero electrónico se utiliza la misma tecnología que para firmar electrónicamente que se conoce bajo denominación de «Infraestructura de clave pública» (del inglés Public Key Infrastructure) —PKI—. No pretende esta reflexión profundizar en cuestiones relativas a las firmas electrónicas, sin embargo parece imprescindible un breve reflexión sobre las mismas.

Para entenderlo, firmar un fichero puede consistir en «cifrar» su contenido con un «algoritmo» (9) que atribuya identidad al que tenga la clave de descifrado. Hasta principios de los «80´s» sólo se conocían los «algoritmos de cifrado simétricos». El algoritmo cifra el texto y genera la clave de descifrado. La remisión de ficheros firmados a través de las redes telemáticas adolecía del inconveniente de que, junto con el fichero firmado, había que remitir también la clave de descifrado, que invalidaba «de facto» el procedimiento para la emisión de declaraciones entre ausentes desconocidos. Es como si mandas una caja fuerte cerrada con la llave para abrirla pegada con celo en un costado.

En los 80´s, (10) se formulan por primera vez algoritmos de cifrado asimétricos. Tras su invención es factible para cualquiera de los intervinientes, acceder a un repositorio donde se vincule unívocamente una clave pública, conocida por todos los que utilizan el sistema con una privada, que tan solo conoce la persona a la que se le asigna. De esta forma, se permite que los ficheros transiten cifrados sin que sea preciso revelar la clave de descifrado. Para ello, el que firma cifra el mensaje con su clave privada. Para verificar la identidad del emisor, el que recibe aplica su correlativa clave pública. Si el mensaje se descifra, significa que ha sido previamente cifrado con la clave privada que solo posee el firmante.

Sin embargo el uso en Bitcoin de la «criptografía de clave asimétrica» presenta una fundamental diferencia. Para descargarse un monedero de Bitcoin no es necesario acreditar la identidad, ni tan siquiera manifestarla. De esta forma se garantiza que el conocedor/poseedor de la clave privada es el único que puede acceder al monedero y disponer de los fondos a él asociados sin que para ello tenga que declarar su identidad. Hablamos de una «llave» con seguridad criptográfica que tiene la fundamental ventaja del comentado anonimato y la correlativa desventaja de que su pérdida u olvido supone la de los fondos a ella asociados.

Como las claves generadas no son sólo asimétricas sino también bidireccionales —también puedo cifrar con la pública y descifrar con la privada— (11) Bitcoin utiliza esta característica para asignar la «dirección del monedero» a los receptores de los pagos, que será «la función resumen» —hash— de la clave pública de cada uno de ellos, como luego veremos.

El funcionamiento es sencillo. Cuando se solicita un «monedero Bitcoin», se descarga un software que genera ambas claves (pública y privada) y «exporta» (12) la pública al Sistema, vinculándola indisolublemente con su correlativa clave privada que permanece asociada al monedero del solicitante. Nadie sin embargo requiere a este para que ni tan siquiera manifieste su identidad. De esta forma, cualquiera puede solicitar y obtener un número ilimitado de monederos y cursar cuantas transacciones desee de forma anónima.

VIII. La integridad

Otro requisito acreditativo del «Registro distribuido» que sustenta los pagos electrónicos es que permanezca íntegro; que se garantice la no manipulación de su contenido. En la actualidad se logra con la anotación de las transacciones en un Registro centralizado. La integridad se garantiza mediante aportación/exhibición de certificación expedida por el custodio del Registro. El instrumento acreditativo se sustenta en la confianza. Nadie salvo el custodio tiene acceso al material custodiado. Este puede estar investido de «autoritas» específica que presuponga su honorabilidad y le habilite para emitir certificados acreditativos del contenido y la fecha de incorporación de cada anotación en su Registro. También se pueden adoptar medidas físicas u organizativas que eviten el añadido o supresión de anotaciones, por ejemplo, el seriado de las páginas en los registros documentales. En definitiva, se presume la integridad por confianza y hasta por imperativo legal.

Cuando el Registro es distribuido se propone una doble solución: (i) una cadena cronológica de bloques de transacciones, de tal forma que la última transacción registrada esté vinculada con las anteriores y las posteriores, formando una secuencia de bloques de transacciones concatenadas entre sí que da nombre a la tecnología y (ii) la existencia de copias distribuidas del Registro entre los participantes en el Sistema. Podríamos hablar de «diseminación de la matriz de prueba». Para lograr ambos propósitos se utilizan también procedimientos matemáticos y más concretamente «algoritmos de destilación».

IX. Los algoritmos de destilación

Los algoritmos de destilación no son de cifrado sino de representación matemática. Aplicándolos a un fichero cualquiera obtengo una sucesión alfanumérica (hexadecimal) (13) de caracteres de longitud normalmente fija (de 30 a 35) que en castellano recibe el nombre de «función resumen» y en inglés «hash» (picadillo). Bitcoin utiliza el algoritmo» SHA-256» que tiene las siguientes características:

  • (i) Es irreversible. Lo cifrado no tiene descifrado posible. El algoritmo convierte el texto en una sucesión alfanumérica de caracteres sin sentido aparente. Sin embargo, de esa sucesión fija de caracteres jamás podré obtener el texto original. Como se ha dicho, más que cifrar representan hexadecimalmente el contenido de cualquier fichero digital.
  • (ii) Es un compresor. Uno de sus usos habituales es la compresión (reducción) de ficheros. Convierte ficheros de gran tamaño en la sucesión de caracteres aludida. Son habitualmente utilizados junto con los «criptosistemas de clave asimétrica» para firmar electrónicamente. Se obtiene el «hash» para no aplicar directamente los algoritmos criptográficos (de gran exigencia computacional) a ficheros muy pesados.
  • (iii) Garantiza que aplicando el algoritmo al mismo texto siempre obtendré idéntica sucesión hexadecimal de caracteres de extensión fija. Sin embargo, si cambio en un texto de, por ejemplo, 100 folios, un solo carácter y vuelvo a aplicar el algoritmo, la sucesión de caracteres que obtendré será distinta.
  • (iv) Es de rápida computación. La obtención de un «hash» de un fichero dado es casi instantánea. Además, la escasa longitud del resumen hace que su almacenamiento sea así mismo poco exigente.
  • (v) La naturaleza de estos algoritmos hace que se puedan aplicar no sólo sobre textos claros (sin cifrar), sino también que se pueda obtener un «hash» de otro u otros, o de un «hash» combinado con texto.

Partiendo de esta última característica, se pueden construir estructuras de «hash´s» complejas como la diseñada por Ralph Merkle en el año 1979, que recibe el nombre de «árbol de merkle» (14) .

El diseño de Merkle parte de un conjunto de transacciones, que debe ser par. Se agrupan de dos en dos, generando un hash de cada par de ellas. Los «hashes» obtenidos se vuelven a agrupar de la misma forma (por parejas) generando nuevos «hash’s» y así sucesivamente hasta llegar a un único «hash» conocido como la «raíz del árbol» o «hash raíz». (Figura 1)

Figura 1. Fuente: elaboración propia.

Tiene las siguientes características:

  • (i) Cualquier modificación de una transacción afectará hacia arriba a todos los «hash´s» propagados e invalidará el valor de la raíz. Lo mismo ocurre si se añaden nuevas transacciones. Habría que volver a generar el árbol desde el principio, teniéndolas en consideración.
  • (ii) Los «hash´s´» intermedios devienen inútiles, ya que para verificar cada una de las transacciones bastará cotejar con el «hash raíz». Como hemos dicho, este valor final es único y está generado mediante un proceso combinatorio inmutable que incluye todas las transacciones del conjunto. De esta forma la comprobación de cada una de las transacciones se logra con el único cotejo del «hash raíz», con la facilidad que esta circunstancia comporta a la hora de verificar los elementos del conjunto; en este caso las transacciones del bloque.
  • (iii) El número de transacciones no varía el tamaño del «hash raíz» (es de igual tamaño cuando agrupa 4 transacciones o un millón de ellas)

El resultado de aplicar estos algoritmos —el hash— es consustancial con esta tecnología. La cadena de bloques que se forma es, en definitiva, una concatenación de «hash´s». El que resume una transacción se incorpora en la siguiente así como el «hash» que representa a un bloque de transacciones que también se incorpora en el siguiente bloque. Los «hash´s» actúan como punteros que vinculan unas transacciones con otras. De esta forma, si alguien quiere manipular la cadena tendrá que tener en cuenta esta característica y asumir la dificultad matemática de tal manipulación. Además, la seguridad del procedimiento es creciente, ya que cada 10 minutos se incorpora un nuevo bloque a la cadena.

La circunstancia de que el «hash» obtenido sea irreversible (no se puede obtener texto claro —sin cifrar— de un «hash»), hace que estemos ante un instrumento acreditativo por cotejo. La única forma de verificar la integridad de un fichero es aplicar a un texto claro (sin cifrar) el «algoritmo de destilación» y comprobar que se obtiene la misma sucesión de caracteres.

X. El funcionamiento de Bitcoin

Una vez analizados los requisitos probatorios del Sistema, así como las tecnologías que los sustentan procede preguntarse cómo se combinan las tecnologías enunciadas para lograr emular el funcionamiento del dinero «al portador» en formato electrónico. En definitiva, ¿cómo funciona Bitcoin?

Cuando alguien quiere pagar con Bitcoins solo tiene que firmar la orden de pago (transacción) con su clave privada y remitirla a través del Sistema. Resulta vital entender que cuando se paga con Bitcoins no se dispone de saldos sino de previas transacciones. Cuando dispones de una previa transacción, de por ejemplo cinco Bitcoins, la pierdes entera. De esta forma se consigue que Bitcoin funcione como el dinero efectivo; lo trasladas entero (pierdes su posesión). Si esperas cambio, recibirás una nueva transacción de la que serás beneficiario. Esta será por el importe obtenido de descontar de la transacción que utilizas, lo efectivamente dispuesto. Por ejemplo; si pretendes pagar tres Bitcoins y dispones de una transacción de cinco, recibirás de vuelta una transacción de dos de la que serás beneficiario.

La transacción tiene tres partes claramente diferenciadas: el «input», el «output» y el encabezamiento:

La información del input incluye (esquema 1): (i) el «hash» de la transacción precedente, firmado (cifrado) con la clave privada del que entonces era beneficiario y ahora es transmitente o lo que es lo mismo, la firma del «hash» de la transacción que le proporcionó los Bitcoins de los que ahora dispone y (ii) su clave pública para que, cuando se verifique la transacción, se pueda acceder a la información cifrada en la previa línea del «input». En definitiva, se incluye la información precisa para vincular esa transacción con la precedente (la que se gasta), dando lugar a los primeros eslabones de la famosa cadena.

El «output» incorpora: (i) el número de Bitcoins que se transmiten y (ii) el «hash» de la clave pública del beneficiario. Como la clave es un fichero, se le puede aplicar el algoritmo de destilación «SHA-256», dando como resultado una sucesión hexadecimal de caracteres que representan fielmente esa clave. Como se ha dicho, se utiliza como dirección del monedero de los receptores de las transacciones. Por lo tanto, en el «output» se incorpora la información precisa para que la transferencia llegue a destino.

Una vez se han consignado tanto el «input» como el «output», se calcula el «hash» de toda la transacción (input +output). El resultado de este cálculo será el encabezamiento de cada una de las transacciones y actuará como puntero que vincula esa transacción con las posteriores (las que la gasten), Para ello, se consigna el «hash» del encabezamiento en el «input» de la transacción que la utilice (Figura 2).

Figura 2. Fuente: elaboración propia.

También es posible que quien utilice la «criptomoneda» quiera pagar con una única transacción a distintos receptores o que el pago espere vuelta. Por eso, tanto el «input» como el «output» pueden también ser múltiples (esquema 2). Por ejemplo, utilizo varias transacciones para realizar un único pago. Si dispongo de dos transacciones, una de tres bitcoins y otra de dos, con ambas liquido una deuda de cinco Bitcoins contraída con un único beneficiario de la transacción (input múltiple). Cuando el importe de la previa transacción es mayor que el número de Bitcoins que quiero transferir, instrumento un «output múltiple» donde uno de los beneficiarios es quien transfiere. El importe de esta transacción será por el número de Bitcoins que se obtenga de la diferencia entre el saldo del «input» y el del «output». Se trata como se ha dicho de una nueva transacción por el importe del cambio en la que el que dispone es también beneficiario (Figura 3).

Figura 3. Fuente: elaboración propia

Pero decía que la orden de pago se remite firmada al Sistema. ¿A qué me refiero con este término? ¿Qué es el Sistema? Para empezar a entenderlo, participan dos tipos de nodos: los que solo quieren recibir y hacer pagos con Bitcoins y aquellos que también quieren trabajar de forma remunerada para el Sistema y que volviendo al símil de la moneda metálica reciben la denominación de mineros.

Los primeros, los que solo quieren hacer o recibir transferencias, acceden al Sistema a través del monedero. Se trata de un software que, además de las utilidades necesarias para operar, incluye un módulo criptográfico que: (i) genera las llaves asimétricas de cifrado, (ii) exporta la clave pública al Sistema (datos de verificación de firma) y (iii) habilita la llave privada (datos de creación de firma) para que sea utilizada por quien la haya descargado. Una vez instalado el monedero, los usuarios del Sistema están en disposición de operar (realizar y recibir pagos). Como se ha dicho, nadie les requiere para que ni tan siquiera manifiesten su identidad. Para disponer basta que remitan una transacción firmada al Sistema. (Con su clave privada).

XI. Los mineros

Los mineros adquieren su condición de forma voluntaria, sin que sea preciso acreditar mérito o requisito subjetivo alguno. Su cometido es doble: Por un lado la llevanza colaborativa del libro de contabilidad que sustenta la cripto-moneda, que en inglés recibe el nombre de «ledger» y por otro, la puesta en circulación de nuevas unidades dinerarias. Colaboran en definitiva en la creación de una matriz cronológica y universal donde se anotan todas y cada una de las transacciones cursadas por los que pagan con Bitcoins, en riguroso orden de llegada.

XII. Llevanza colaborativa del libro de contabilidad

Todos los mineros voluntariamente adheridos al Sistema son los que reciben cada una de las transacciones firmadas por los que pagan. Su misión es crear un Registro contable cronológico y universal y además hacerlo de forma colaborativa, ágil y eficaz.

Para lograrlo, quienes deciden ser mineros se instalan un programa de ordenador que funciona de forma distribuida y genera, a cada uno de los ellos, una versión actualizada del Registro universal —el ledger—; que incorpora todas las transacciones hasta entonces minadas. Comienzan verificando el «input» de cada transacción. Para hacerlo, el software instalado realiza tres comprobaciones:

  • (i) Que la transferencia ha sido firmada con una clave privada correlativa con la pública asociada al monedero.
  • (ii) Que el «hash» de la previa transacción que consta en el «output» de la que se verifica, se corresponde con una transacción registrada en el Sistema en la que quien dispone era beneficiario. Es decir, el output de dicha transacción incluye el «hash» de la clave pública del entonces beneficiario que ahora dispone.
  • (iii) Que dicha transacción no ha sido previamente gastada por quien ahora paga. Para ello, el programa de cada minero verifica que ese «output» no ha sido incluido en ningún «input»

Si la transacción no supera la verificación, no se tramita, pasando aviso de esta circunstancia al firmante. Si la supera, cada uno de los mineros hace lo mismo con la siguiente y así sucesivamente, formando bloques de transacciones en un intervalo de tiempo.

XIII. Los bloques

Los mineros no se limitan a la verificación de las transacciones. Su siguiente tarea es la construcción de bloques de transacciones. Lo hacen de abajo hacia arriba en tres capas claramente diferenciadas: (i) el hash de bloque, (ii) el encabezamiento y (iii) las transacciones del bloque en claro (sin cifrar) (15) (Figura 4).

Estructura del bloque

Figura 4. Fuente: elaboración propia

Empezando desde abajo, en la tercera capa se consigna la transferencia a favor del minero, por si su bloque fuese seleccionado para ser incorporado a la cadena. A continuación, en la misma capa se incorporan todas las transacciones que componen ese bloque, en claro (sin cifrar).

La segunda capa incorpora tres anotaciones: (i) el «hash» del bloque anterior (ii) el «hash raíz» de las transacciones consignadas previamente en la primera capa y (iii) el «nonce», que acredita la superación de la prueba de trabajo como luego veremos. Recordar que» hash raíz» es el «hash» en el que desemboca la estructura de Merkle, que permite, con su sólo cotejo, verificar la integridad de todas las transacciones que lo componen.

En la primera capa se consigna el «hash del bloque», que es el resultado de aplicar el algoritmo «SHA-256» a la reunión del «hash» del último bloque incorporado a la cadena y el «hash raíz» de las transacciones que lo componen. Se obtiene una sucesión hexadecimal de caracteres que será en su caso parte de la segunda capa del siguiente bloque.

Pero, de vuelta a la estructura de la segunda capa, recordar que también hay que consignar el «Nonce». ¿Qué significa este término? En el contexto tecnológico se refiere a una sucesión de bytes de un solo uso. Supone la denominación matemática para el término hápax. En ambientes literarios hápax significa aquella palabra que sólo aparece una vez en una obra o en el conjunto de la obra de un autor. Si sustituimos palabra por byte y obra por conjunto de ficheros nos aproximamos al significado. En Bitcoin se refiere a un número que acredita la superación una «prueba de trabajo».

XIV. La prueba de trabajo

La elección del bloque que finalmente se incorpora a la cadena no es trivial. Para que el procedimiento sea totalmente seguro (los usuarios del sistema no puedan hacer doble gasto), no basta con que los mineros verifiquen el contenido de las transacciones. Tampoco que hagan bloques con las distintas transacciones recibidas y que estos bloques se encadenen entre sí utilizando los «hash´s» como puntero de uno a otro eslabón. También habrá que garantizar que los nodos leales han prevalecido sobre los desleales. En definitiva, que nadie haya logrado subvertir los efectos de la cadena.

Para solventar esta cuestión, el bloque finalmente incorporado a la cadena será el del minero que gane una peculiar carrera; ser el primero en solventar un reto computacional.

¿Y cuál es el reto computacional que se suscita? Tiene que ver con el hash que encabeza el bloque de cada uno de los mineros que compiten entre sí para incorporar el suyo a la cadena. —Recordar que el «hash» es una sucesión hexadecimal de caracteres, sin sentido aparente, que representa el bloque formado por cada uno de los mineros—.

Cada uno deberá hallar un nuevo «hash», que sea el resultado de combinar un número aleatorio con el «hash» de su bloque, de tal forma que este nuevo «hash» comience con un número predeterminado de ceros. La determinación del concreto número de ceros que debe preceder al resto de caracteres del «hash» se establece automáticamente por el sistema en función del número de transacciones y mineros que en cada momento concurran. El factor corrector persigue en definitiva una inversión de tiempo en la resolución de cada reto de unos 10 minutos.

Para hallar este «hash», añadirán al de su bloque una cifra y aplicarán el «algoritmo de destilación» obteniendo una nueva sucesión hexadecimal de caracteres que tiene que cumplir el requisito. Imaginemos que el minero comienza añadiendo a su hash la cifra —1—. Ejecuta el algoritmo y comprueba que el resultado de esta ejecución (nuevo «hash») no cumple con el requisito establecido (no va precedido por el número de ceros requerido). En ese caso vuelve a intentarlo cambiando el —1— por un —2— y así sucesivamente hasta que el «hash» resultado de aplicar esa cifra al comprensivo de su bloque, cumpla el requisito matemático exigido (estar precedido por la sucesión de «0´s» demandada). La cifra que añadida al «hash» del bloque del minero cumple la condición establecida por el reto computacional recibe el nombre de «nonce».

El reto presenta un inicial inconveniente. Los que participan en la carrera son anónimos que pudieran estar concertados para alterar el sentido de la matriz. Juntando su fuerza computacional podrían incorporar a la cadena transacciones no auténticas o impedir el consenso necesario que garantiza la autenticidad de la matriz. Se estima que con una capacidad computacional superior al 50% de la de todos los mineros, se podría alterar el sentido de esta. Sin embargo, habiendo un número de mineros suficiente, si además se establece un reto computacional exigente, el coste de la preminencia computacional (en hardware y electricidad) obligaría a que la cantidad defraudada tuviese que ser muy elevada.

También se puede pensar que aquellos mineros que tengan mayor capacidad computacional cuentan con ventaja para hallar el «nonce». Sin embargo, recordar que el «hash» del bloque de cada minero es distinto del resto de los mineros porque cada uno incorpora un «output» a su favor, que incluye el «hash» de la dirección de su monedero, para ser remunerado si su bloque fuese el incorporado. Por este motivo, el reto computacional será distinto para cada uno de los mineros y, en consecuencia, todos contarán con parecidas posibilidades de superarlo y así incorporar su bloque a la cadena. Al tratarse de un reto que se supera por fuerza computacional o bruta, (prueba/error) nadie sabe de antemano si un minero va a encontrar enseguida el «nonce» o precisa de varios cientos de miles de intentos antes de hallar la combinación. Así se consigue la aleatoriedad suficiente como para que la suerte sea decisiva en la superación del reto planteado. Sólo la concertación del 50% de la capacidad computacional de los mineros podrá obtener ventaja en el reto que se suscita.

XV. Incorporación de nuevos bloques a la cadena. El necesario consenso sobre el ganador de la prueba de trabajo

Cuando un minero ha logrado superar el reto computacional remite su bloque al Sistema de tal forma que los demás lo reciban para utilizar su «hash» en la confección del siguiente. Antes de aceptar el bloque, el resto de mineros verifican no sólo las transacciones, también que el minero ha superado la prueba de trabajo. Para ello, sus ordenadores verifican que el «hash» resultante de la combinación del «hash» del bloque con el «nonce» comienza con el número de «0´s» predeterminado. Sin embargo, la incorporación de los bloques a la cadena no es tan sencilla como parece.

De entrada, surge un inconveniente derivado de la naturaleza distribuida del invento. La cadena se forma como resultado del trabajo común de nodos (mineros) distantes, que tienen que transmitir la información. Por ello, cuando varios mineros hayan logrado superar la prueba de trabajo casi simultáneamente, unos nodos podrán recibir antes el bloque de un minero y otros el de otro. (16) De esta forma, unos utilizarán un «hash» para construir el siguiente bloque y otros utilizarán otro distinto para construir el suyo. De esta forma se bifurca la cadena en dos líneas de bloques diferentes, perdiéndose así la condición unívoca del repositorio, desbaratándose en definitiva la naturaleza acreditativa de la cadena de bloques.

También puede suceder que algún nodo pueda querer eliminar de la cadena una concreta transacción para poder emplearla de nuevo, generando una nueva línea que parte del bloque anterior al de la transacción que se quiere revertir. En ambos casos, estamos ante los conocidos como «tenedores» o «bifurcaciones» de la cadena. A partir de un determinado bloque surgen dos líneas de bloques diferentes (17) (Figura 5)

Figura 5. Fuente: elaboración propia

¿Y cómo se soluciona esta contingencia? Pues por consenso. Los mineros leales que reciban varios bloques de forma simultánea se adherirán al bloque más largo (al que haya recibido más adhesiones del resto de los mineros que participan en la formación de la cadena). Como aproximadamente cada diez minutos se cierra un nuevo bloque, la línea más corta va quedando paulatinamente abandonada. Ningún minero quiere adherirse a una línea que sabe que será finalmente abandonada. Téngase en consideración que la dificultad de que la línea desleal prevalezca es creciente, en la medida en que cada 10 minutos se va incorporando un nuevo bloque a la cadena. Por este motivo suele decirse que las transacciones de Bitcoin no están definitivamente anotadas (aún pueden ser canceladas), hasta que ha transcurrido una hora desde el minado del bloque. Si se produce una bifurcación se entiende que esta se ha solventado cuando se han incorporado cinco nuevos bloques desde que se produjo. Como se incorpora un bloque nuevo cada diez minutos, se entiende que cuando se han producido otras cinco adhesiones y han transcurrido aproximadamente 60 minutos, las transacciones son definitivas. Esta circunstancia hace que el ataque a la cadena tenga ser necesariamente rápido. Superado este tiempo, cuando se haya incorporado un nuevo bloque a la cadena, quienes pretenden alterarla habrán de comenzar partiendo de cero.

XVI. La emisión de nuevas unidades dinerarias

Decíamos que los mineros tienen una doble misión. Por un lado la llevanza colaborativa del libro de contabilidad (Registro) que sustenta la «criptomoneda» y por otro, la incorporación de nuevas unidades dinerarias en el Sistema. Es precisamente esta misión de los mineros la que les otorga su nombre. Se les denomina mineros porque hacen la labor de estos en el mundo digital. Mientras los tradicionales extraían el metal para acuñar monedas, cuando hablamos de cripto-monedas, los modernos mineros son los únicos autorizados para inyectar nuevas unidades monetarias en el Sistema. ¿Y cómo lo consiguen? Pues obteniendo una remuneración del Sistema si su bloque es el finalmente incorporado.

Para entenderlo hay que volver a la carrera entre mineros; al reto computacional. La incorporación al Sistema de nuevas unidades dinerarias se hace mediante remuneración del minero que haya superado la prueba de trabajo e incorporado su bloque a la cadena. Como hemos visto, el «output» de cada bloque incluye la dirección del monedero del minero que lo ha formado por si bloque fuese el incorporado. Como aproximadamente cada diez minutos se cierra un nuevo bloque, la creación de Bitcoins es constante. Efectivamente, los mineros adheridos al Sistema no gastan su dinero en la adquisición del hardware adecuado y en pagar la electricidad que consumen sus equipos por amor al arte. Tienen ánimo lucro. Invierten para obtener la remuneración que se transfiere al minero que incorpore su bloque a la cadena. Esta remuneración consiste en una cantidad decreciente de Bitcoins; se reduce a la mitad cada 210.000 bloques (aproximadamente cada 4 años), hasta que se llegue a los 21 millones de Bitcoins que está previsto emitir. Después se supone que no se emitirán nuevos bitcoins. Hasta noviembre de 2011, la remuneración era de 50 Bitcoin por cada bloque que se incorporaba a la cadena. Desde esta fecha hasta julio de 2016 era de 25. Desde entonces es de 12.5, que al cambio actual supone la nada despreciable cifra de 128.500 dólares. Se calcula que para 2140 esta remuneración del Sistema desaparecerá. Entonces serán quienes realizan los pagos los que remuneren de forma exclusiva a los mineros. Para ello incorporarán en sus transferencias un» output» a favor del minero que cierre cada bloque.

Esta remuneración no es excluyente. Los mineros tienen otra fuente de ingresos; los «honorarios por transacción» (del inglés «transaction fees» o «Bitcoin minning fees»). Cada uno de los que realizan transacciones (los que pagan), incluyen en el «output» un pequeño pago, de por ejemplo 0.0001 BTC para aquel minero que logre incorporar el bloque que incorpora esa transacción a la cadena. De esta forma, la remuneración de los mineros se ve suplementada con la suma de los incentivos incorporados en las transacciones que componen su bloque.

Para entenderlo hay que saber que cuando se firman las transacciones estas no son directamente verificadas sino que van a una «sala de espera», a un «limbo» que recibe el nombre de «Mempool» (18) . Es de aquí de donde los mineros van cogiendo las transacciones para verificarlas e incorporarlas a su bloque. Puede pensarse que la selección de las transacciones por los mineros es aleatoria. Sin embargo no es así. Existen en el mercado «navegadores de bloques», que son capaces de obtener la información que estos incorporan, incluyendo los «honorarios de transacción» que cada una ofrece. De esta forma los usuarios de la «criptomoneda» se garantizan la agilidad de la transacción y los mineros, que como se ha dicho tienen afán lucrativo, obtienen un suplemento remunerativo. Por este motivo, los mineros suelen optar por verificar e incorporar a su bloque aquellas transacciones que mayor remuneración ofrezcan. De esta forma, se producen salidas express del «Meempool» de aquellas transacciones mejor remuneradas y otras, sin embargo, lleguen a tardar días en confirmarse.

En definitiva, los mineros pueden ser doblemente remunerados; por el sistema y por los que transaccionan (pagan). En la actualidad tiene mayor peso específico la primera, pero poco a poco irá cobrando más relevancia la remuneración directa (honorarios de minado), en la medida en que la otra remuneración, la del sistema, vaya disminuyendo.

XVII. Algunas reflexiones jurídicas sobre Blockchain

Blockchain no es solamente una cuestión técnica. También jurídica. Como se ha dicho no deja de ser una propuesta matemática a los retos probatorios en el entorno digital. Al tratarse de un procedimiento acreditativo es obvio que la comunidad jurídica queda afectada por su uso. También habilitada para reflexionar sobre las virtudes y las incógnitas acreditativas de estas tecnologías.

Por otro lado, la cadena de bloques es generada por un programa de ordenador y por lo tanto es el resultado de la ejecución de una creación intelectual sujeta a derechos de autor. Para reflexionar sobre la naturaleza jurídica de este programa hay que referirse al «código abierto», primera manifestación de otra invención anarquista; el «copyleft».

Además, las nuevas aplicaciones que se pretenden con estas tecnologías así como las distintas posibilidades de su combinación (Blockchain 2.0) traen retos jurídicos específicos que habrá que abordar. Parece en definitiva que la injerencia matemática en el mundo del derecho será creciente en los próximos años.

Por último, la privacidad en Blockchain suscita algunos interrogantes sobre los que conviene reflexionar.

XVIII. Blockchain como instrumento acreditativo

Desde una perspectiva jurídica, Blockchain es sobre todo un instrumento acreditativo que propicia la aportación /invocación del procedimiento para sustentar las pretensiones de las partes ante una eventual controversia.

Ante estas aportaciones/invocaciones y sobre todo si se impugnan de contrario, será precisa decisión judicial. Para valorar este tipo de prueba, la comunidad jurídica podrá en mi opinión optar entre la aceptación «ad matematicatem» del procedimiento (19) , asumiendo que nos encontraremos ante inmutables realidades estadísticas o analizar en profundidad los distintos procedimientos que se utilicen y ponderar su efectividad para concretos propósitos acreditativos. De hecho, ya es fácil encontrarse con el uso aislado de estas tecnologías. Es por ejemplo frecuente la generación de prueba por interposición electrónica. (20) Los interpuestos no se limitan a testimoniar sobre lo digitalmente acaecido. Algunos también diseminan los «hash’s» de las transacciones para garantizar su integridad. Lo cierto, sin embargo, es que aún no se ha suscitado verdadera controversia jurídica sobre la aportación de certificados acreditativos de estas interposiciones.

También es frecuente la utilización de firmas electrónicas en el tráfico. De momento las que se utilizan no son en su mayoría firmas basadas en la utilización de la «infraestructura de clave pública». Aunque las firmas electrónicas «cualificadas» son escasamente utilizadas, el tráfico opera con otras que, aunque no gozan de la presunción «iuris tantum» de autenticidad no meren, de momento, especiales reproches judiciales.

Aunque Blockchain parece matemáticamente inexpugnable, no está exento de interrogantes de corte probatorio. La asunción de que concretas transacciones se corresponden con específicas manifestaciones de voluntad es uno de ellos. La voluntad es en definitiva una característica muy humana. Presumir que una transacción firmada electrónicamente es una manifestación de voluntad, o de la reunión de varias de ellas es en mi opinión aventurado. Creo que una correcta valoración de la prueba tendrá en consideración el proceso antes y después de aplicar la «clave privada». En definitiva los procedimientos basados en Blockchain deberán velar por el cumplimiento de todos los requisitos formales asociados a la contratación entre ausentes, sobre todo si se hace con consumidores. Así, habrá también que acreditar la previa entrega, en «soporte duradero» (21) de la información pre-contractual o la posterior entrega de un ejemplar al consumidor para que este pueda también accionar.

Otro reparo sobre Blockchain se refiere a su naturaleza matemática. Se trata de un procedimiento pensado para la capacidad computacional de la actual tecnología. Con la capacidad de procesamiento actual Blockchain es casi inexpugnable. Sin embargo, últimamente son frecuentes las noticias de los avances hacia la computación cuántica. Dicen quienes entienden que con ella se podrán «romper» los algoritmos de cifrado asimétrico, desbaratando de esta forma la capacidad acreditativa del invento. Además, tras la ejecución de ese programa distribuido hay personas que pueden dejar de ponerse de acuerdo para el sostenimiento del sistema. Que pasaría ante una deserción en bloque de los generales?

Otra debilidad del Sistema es que tiene que tener un funcionamiento constante. Si se para, no hay generales suficientes para consensuar las bifurcaciones que se puedan presentar, perdiendo de esta forma la consistencia matemática que atesoraba. El procedimiento tiene una seguridad creciente mientras no se pare; mientras los bloques de transacciones no dejen de vincularse entre sí. Si se llega a parar, la seguridad torna en decreciente, afectando inicialmente a las transacciones menos longevas. Se suscita en definitiva cuántos de estos procedimientos seguirán funcionando dentro de 100 años y que pasará con las previas transacciones si se dejan de incorporar nuevos bloques a la cadena.

También conviene tener en consideración que detrás de este Protocolo no hay nadie al que reclamar. (22) Hablamos de un programa de ordenador de «código abierto» ejecutado por voluntarios anónimos. Lo anterior unido a la condición irreversible de las transacciones hace que, ante cualquier contingencia, sea remota la posibilidad de imputar la responsabilidad que resarza de los perjuicios que se puedan ocasionar.

Hablamos por tanto de una tecnología que deberá ser analizada a la vista de la concreta finalidad probatoria que se persiga así como al uso que se haya dado de las distintas tecnologías. No hay en definitiva una combinación mágica que solucione todas las necesidades acreditativas que se puedan presentar.

XIX. Código abierto

Para acabar de entender la fortaleza acreditativa de Blockchain recordar que se trata de un Registro distribuido que es generado de forma consensuada por una pluralidad de nodos. Los nodos que se ponen de acuerdo para alcanzar un consenso (mineros) no están controlados por los propietarios de los ordenadores sino por la lógica programada e instalada en ellos. Por el programa de ordenador que les da instrucciones para que implementen los procedimientos matemáticos a los que nos hemos referido. Alguien podría objetar que no es consenso descentralizado sino simplemente distribuido y que quien controle el software que se ejecuta en los ordenadores de los mineros controla el proceso distribuido de consenso. En estas circunstancias, el editor del programa (software) siempre podría cambiar la programación para alterar la autenticidad o integridad de la matriz.

Bitcoin soluciona este problema con «código abierto». En los años 70, un informático norteamericano, Richard Stallman, desarrolló un «intérprete» (23) del lenguaje de programación LISP, que interesó a la compañía Symbolics. Stallman accedió a concederles el derecho a analizar y modificar el código fuente de su programa. Gracias a ello Symbolics lo evolucionó y cuando Stallman quiso acceder a las modificaciones la compañía se negó. Entonces decidió erradicar estas prácticas y creó su propia licencia de derechos de autor; la General Public License. La licencia GNU GPL, que sigue siendo a día de hoy la licencia más utilizada por los desarrollares en todo el mundo.

Quién mejor lo explica es el propio Stallman:

La forma más simple de hacer que un programa sea libre es ponerlo en el dominio público, sin derechos reservados. Esto le permite compartir el programa y sus mejoras con la gente, si así lo desean. Pero le permite a gente no cooperativa convertir el programa en software privativo. Ellos pueden hacer cambios, muchos o pocos, y distribuir el resultado como un producto privativo. Las personas que reciben el programa con esas modificaciones no tienen la libertad que el autor original les dio; el intermediario se las ha quitado. En el proyecto GNU, nuestro objetivo es el dar a todo usuario la libertad de redistribuir y cambiar software GNU. Si los intermediarios pudieran quitar esa libertad, nosotros tendríamos muchos usuarios, pero esos usuarios no tendrían libertad. Así en vez de poner software GNU en el dominio público, nosotros lo protegemos con Copyleft. Copyleft dice que cualquiera que redistribuye el software, con o sin cambios, debe dar la libertad de copiarlo y modificarlo más. Copyleft garantiza que cada usuario tiene libertad.

Stallman diseñó la licencia, para que se otorgase a los licenciatarios cuatro fundamentales prerrogativas: (i) de ejecutar el código con cualquier propósito. Sin ningún tipo de restricción. (ii) de estudio del código —ver cómo está hecho—. (iii) de re-distribuir cuantas copias del código deseen. (iv) de modificar el código como crean conveniente así como de distribuir las copias del código modificado.

Pero lo auténticamente importante para reflexionar sobre la capacidad acreditativa de Bitcoin es que una licencia de código abierto permite que tanto el código fuente como los archivos binarios (24)  puedan ser primero analizados y después modificados y redistribuidos libremente por el licenciatario. Esto hace que el código fuente de Bitcoin sea de dominio público y por lo tanto que todo el que quiera pueda conocer la lógica tras del programa de Sathosi Nakamoto.

Las licencias de código abierto pueden también incluir restricciones como la de incorporar el nombre de los autores originales y el texto de la licencia dentro del código que se entrega, o permitir la modificación del código sólo para uso privativo, sin que pueda ser posteriormente comercializado o autorizar la redistribución del software exclusivamente para usos no comerciales, etc. Como las restricciones las establece el primer licenciante, puede elegir la concreta forma de licenciamiento que podrá arrastrarse a los sucesivos licenciatarios. Así, se habla de licencias de código abierto más o menos permisivas. Son más permisivas cuantas menos restricciones ponen a los sucesivos licenciatarios. Dentro del grupo de las licencias permisivas esta la licencia MIT, creada en 1988 por el Instituto Tecnológico de Massachusetts (MIT). Es una evolución de la Licencia X-11 que utilizó el MIT para el X Window System. Es esta la elegida en su día por Satoshi a Nakamoto para divulgar el código de Bitcoin.

Como se ha dicho, se trata de un tipo de licencia muy permisiva. Se utiliza cuando el creador del software quiere que el código sea accesible para el mayor número posible de desarrolladores y que se puedan hacer cuantos programas derivados (25) se deseen. Con este tipo de licencia el promotor del código (Nakamoto) pierde el control de su creación, autorizando su re-escritura y re-distribución bajo cualquier tipo de licencia, incluso privativa (se autoriza incluso que se cree un software privativo derivado del que se licencia). Esta circunstancia ha propiciado que un gran número de personas físicas y jurídicas hayan creado programas derivados del inicialmente concebido por Nakamoto y que toda la comunidad de desarrolladores tenga, mediante el estudio del código fuente, acceso a la lógica detrás del programa de ordenador.

El principal inconveniente del «código abierto» se refiere a la posible responsabilidad ante un fallo en el funcionamiento del programa que ocasione daños. Los promotores del programa ponen en el dominio público el «código fuente» previa adhesión a una exhaustivo pacto exonerativo que incluye cualquier tipo de responsabilidad. En definitiva, un «código abierto» de ejecución distribuida entre anónimos mineros, no parece el escenario óptimo para imputar responsabilidades por el mal funcionamiento de «la cadena»

XX. Blockchain 2.0

A lo largo del artículo hemos analizado el funcionamiento de Blockchain con el concreto propósito de acreditar intercambios dinerarios. Sin embargo, como se ha dicho, Blockchain es la combinación de diversas tecnologías con propósito acreditativo. Este propósito puede cambiar, así como el uso que de estas tecnologías se quiera hacer. Un claro ejemplo son los algoritmos que otorgan identidad. Como hemos comentado, Bitcoin busca al mismo tiempo anonimato y univocidad. Es decir que se atribuya a un concreto desconocido una específica transacción, evitando así el doble gasto y otorgando anonimato a quienes intervienen. Sin embargo, la tecnología que lo consigue —infraestructura de clave pública— fue inicialmente concebida para firmar electrónicamente y por lo tanto para imputar manifestaciones de voluntad a concretas personas físicas. Por este motivo, puede también ser utilizada para firmar, vinculando univocidad matemática con concretas identidades. Para ello basta vincular un par de claves asimétricas (pública y privada) con una concreta identidad a través de un «certificado de clave pública» (26) .

También tienen múltiples usos los algoritmos de destilación. Hace años que los «hash’s» vienen siendo utilizados con afán probatorio. Su naturaleza los hace propicios para acreditar integridad por cotejo. Se compara el «hash» del fichero que se aporta con el previamente depositado. Así se tiene constancia de que el fichero no ha sido modificado desde la fecha del depósito. La diseminación de «hash’s» es un procedimiento útil para acreditar integridad sin necesidad de divulgar de forma indiscriminada el contenido del documento cuya integridad se pretende acreditar. La diseminación hace que para alterar su contenido sea necesaria la previa concertación de todos los que reciban el «hash».

De esta forma, conociendo la naturaleza de estas tecnologías, es posible plantearse nuevas formas de combinarlas para dar respuesta a otras necesidades acreditativas. De entrada, es posible la descentralización del registro de cualquier derecho o propiedad que sea digitalmente representable. Si se puede hacer un Registro distribuido que permite el intercambio dinerario, también será posible la creación de cripto-registros, que acrediten la transmisión de otros derechos o propiedades. A estos posibles usos alternativos de esta tecnología es a lo que se ha dado en denominar Blockchain 2.0.

De estos posibles usos, los denominados «Smart contracts» son los que más expectativas suscitan. Aunque no pretende esta reflexión un análisis exhaustivo de estos, baste decir que la invención se atribuye al informático y abogado norteamericano Nick Szabo, que al observar el funcionamiento de las máquinas expendedoras de «snaks», anticipó la posibilidad de automatizar los procedimientos contractuales. También acuñó el término «contrato inteligente».

No son sino la codificación informática de los pactos que vinculan a las Partes, de tal forma que el contrato sea auto-ejecutable. Por ejemplo, imaginemos que se quiere hacer auto-ejecutable un sistema de apuestas; que alguien decida trasladar a código informático una apuesta. En primer lugar, habilitará un procedimiento para que los que los participantes puedan apostar. Para ello, cada uno remitirá desde su monedero la cantidad (en cripto-monedas) fijada para la apuesta. El sistema retendrá los pagos de todos los participantes de forma segura. Imaginemos que la apuesta es sobre el resultado de un partido de fútbol que se jugará dentro de un mes. El promotor del sistema programará el código de tal forma que acepte apuestas de los participantes hasta la fecha y hora en que dé comienzo el partido. Los intervinientes habrán previamente aceptado que, tras la finalización del encuentro, el sistema consulte a una fuente externa (oráculo) cual ha sido el resultado. Por ejemplo la página web de la Federación Española de Fútbol. Tras dar valor a la variable (27) «resultado» el sistema estará en disposición de determinar cuál o cuáles de los participantes del sistema han acertado el resultado, así como de repartir las ganancias entre estos, mediante transferencia a sus respectivos monederos.

No quiero abusar de la paciencia de los lectores. El análisis en profundidad de los «Contratos inteligentes», así como su innegable relevancia jurídica merece análisis separado. No obstante anticiparles que, en mi opinión, la irrupción matemática en el ámbito probatorio y en la auto-ejecución de los contratos supondrá un cambio de paradigma, en el que juristas e informáticos tendremos que ir de la mano.

XXI. La privacidad en Blockchain

Una frecuente reflexión jurídica sobre esta tecnología, se refiere a su privacidad. En esencia se sostiene que la condición distribuida de la matriz de prueba —el ledger— hace que cualquiera pueda tener acceso a información reservada de los que transaccionan. El reparo tiene corte fundamentalmente administrativo. Se afirma que la naturaleza del procedimiento, que obliga a transacciones irreversibles, hace que sea imposible garantizar el disfrute del «derecho al olvido» (28) .

Para reflexionar sobre ello conviene distinguir entre Bitcoin y Blockchain. Si el reparo se refiere al primero, es ciertamente sorprendente. Resulta llamativo que un sistema diseñado para lograr anonimato vulnere nuestra privacidad. Si los monederos se otorgan a requerimiento, sin previa identificación, aunque la transacción figure sin cifrar en el bloque, está sólo queda vinculada a las claves que se otorgan de forma anónima y por lo tanto de difícil vinculación a una concreta identidad (29) . Téngase también en consideración que las transacciones de Bitcoin se limitan a cifras (la de los Bitcoins que se transfieren) y hash´s, por lo que sólo se podrá llegar a saber de la existencia de transacciones de un montante determinado. Nada más. Resulta por lo tanto complicado vulnerar el derecho al olvido de alguien desconocido.

Si lo que se pretenden son transacciones nominativas (Blockchain 2.0), habrá que arbitrar procedimientos para que los datos que afecten a la privacidad de los que transaccionan no figuren sin cifrar en los bloques que se diseminan. Se presupone que los datos personales se van a incorporar en los bloques sin cifrar, que no es cierto. Lo previsto para estos casos es que las transacciones sigan siendo firmadas por anónimas claves privadas. Si hay reparos sobre la identidad de los firmantes, siempre se podrá acudir al repositorio que vincula claves públicas con concretas identidades. También está previsto, que la información contenida en ese repositorio no sea nunca incorporada «en claro» en ninguna de las capas de bloque. Sin embargo, es cierto que de esta forma se centraliza en alguna medida el procedimiento. Este es uno de los motivos por los que muchos de los proyectos Blockchain 2.0 son parcialmente «permisionados» (centralizados). Parece en definitiva que la pureza anarquista pudiera finalmente resultar utópica.

Anexo 1. Algoritmos de consenso. El problema de los generales bizantinos

En el año 1982, Leslie Lamport, Robert Shostak y Marshall Pease publicaron una reflexión (30) que sacaba conclusiones de un trabajo desarrollado para el gobierno norteamericano. En sus orígenes, la fórmula matemática que enuncia el trabajo se utilizó para el control del lanzamiento de misiles balísticos a través de Internet. Se buscaba la fiabilidad de las comunicaciones en redes abiertas en supuestos extremos en los que se presume la existencia de nodos que pretenden desbaratarla o confundir sobre su contenido. Se ha convertido en pieza fundamental en cualquier esquema de computación distribuida como el protocolo TCP/IP o el P2P. La formulación matemática de su trabajo soluciona lo que se ha dado en denominar El problema de los generales bizantinos (31) .

El «Problema de los generales bizantinos» es una enunciación metafórica de algo que sucede en los sistemas informáticos que tienen un objetivo común; consensuar una «acción conjunta» partiendo de una estructura jerárquica. Uno de los nodos, al que se le otorga mayor rango, remite una orden que el resto de nodos tienen que reenviarse. Se parte de la premisa de que alguno de los nodos no sea fiable y remita intencionadamente información falsa al resto. Se enuncia como sigue:

En un escenario de guerra, un grupo de m generales bizantinos lideran distintos ejércitos que asedian una ciudad enemiga. Tienen que consensuar si atacan o se retiran de forma coordinada. Entre los generales hay solo uno que puede cursar la orden (el comandante). El resto reciben la denominación de lugartenientes.

Los generales se comunican a través de mensajeros. Sus mensajes solo pueden transmitir dos posibles órdenes: «atacar» o «retirarse». El comandante remite la orden a todos los lugartenientes que a su vez se la reenvían. Al final todos reciben un número de mensajes igual al número de generales que intervienen en el asedio menos ellos mismos.

Uno o más de los generales puede ser traidores (t). Al resto los denominamos leales. El objetivo de los traidores es conseguir que los leales no se pongan de acuerdo, remitiendo información errónea. Por ejemplo. Si el comandante es traidor, podrá mandar órdenes contradictorias a los distintos lugartenientes (de atacar a unos y retirarse a otros). Si un lugarteniente es traidor podrá, con el fin de confundir al resto de los lugartenientes y que crean que el traidor es el comandante, transmitir que este le envió la orden contraria a la que realmente remitió. (sí recibió atacar, enviará retirarse y viceversa)

Para resolver el problema hay que enunciar algoritmos que permitan conseguir alternativamente uno de estos dos objetivos:

  • 1.- Que todos los lugartenientes leales tomen la misma decisión.
  • 2.- Que si el comandante es leal, todos los lugartenientes leales realicen la orden que transmitió.

Se parte de las siguientes premisas:

  • (i) Los mensajes que se envían llegan correctamente. (Los mensajeros no son capturados en el camino)
  • (ii) Los receptores de los mensajes no saben quién lo envía. (el emisor no firma el mensaje).
  • (iii) Interviene un mínimo de 4 generales en el proceso comunicativo
  • (iv) La ausencia de mensaje puede ser detectada.
  • (v) Ante la ausencia de mensaje se ejecuta una orden por defecto. Así se evita el problema de que un lugarteniente sea traidor y además no envíe órdenes.

La enunciación matemática de la solución del «problema de los generales bizantinos es m=3(t) +1, donde «m» es el número de generales que intervienen y «t» el número de traidores.

La lógica de la formulación comienza detectando si el comandante es el traidor. Para ello, los lugartenientes se reenvían entre sí la información que el comandante les ha mandado. Si el lugarteniente es leal transmitirá la información que le envió el comandante. Si los mensajes son orales (no están firmados) el lugarteniente traidor siempre podrá decir que el comandante le ha mandado información distinta a la recibida.

Si planteamos el esquema cuando son sólo tres los generales que asedian la ciudad, dos leales y uno traidor (m=3), tenemos dos posibilidades: que el traidor sea el comandante o que lo sea un lugarteniente.

Suponiendo que el comandante es traidor (esquema 1), envía ordenes distintas a los dos lugartenientes. (a uno «atacar» y al otro «retirarse»). Los lugartenientes se reenvían los mensajes y cuando han recibido todos, al tener sólo dos respuestas y además contradictorias no sabrán cómo actuar. Desconocen si el traidor es el comandante o el otro lugarteniente.

Si uno de los lugartenientes es el traidor (esquema 2), reenvía al otro lugarteniente información distinta de la recibida del comandante. El lugarteniente leal, ante la recepción de dos mensajes contradictorios (del comandante y del otro lugarteniente), tampoco sabrá si atacar o retirarse.

Como no se ha cumplido el requisito de que sean al menos cuatro los generales que participan en el proceso comunicativo, no existe formulación que solucione el problema. No hay número suficiente de generales para garantizar el consenso. La formulación de Lambert —m=3(t)+1— no se cumple cuando hay un traidor si no hay al menos tres generales leales. Esto es debido a que no hay suficientes generales para tomar una decisión consensuada. Si aplicamos la fórmula, siendo m el número de generales que intervienen en la comunicación, es decir tres y calculamos el resultado, multiplicando el número de traidores por —3— y sumándole —1—, obtenemos que 3 no es = a 3(1)+1, que es = a 4.

Si aumentamos el número de generales a 4 (m=4) y suponiendo que sólo uno de ellos es traidor (t), conseguimos el deseado consenso ya que el número de generales leales = al triple del número de generales traidores más uno: 3(t) +1.

En el gráfico 3, el comandante es traidor y los 3 lugartenientes a los que remite la orden son leales. El comandante transmite órdenes contradictorias a sus tres lugartenientes. A dos de ellos l(1) y l(2) les ordena atacar y al tercero l(3) retirarse. Cuando comprueban que las órdenes recibidas son contradictorias, aplican la fórmula: m=3t+1. Como son 4 generales (comandante + 3 lugartenientes), m=4. Y como hay un mensaje contradictorio, entenderán que hay un traidor, por lo que t=1. En consecuencia m (4)=3t(1)+1, dando como resultado 4, que coincide con el número de generales involucrados en la comunicación. La decisión del (3) será de atacar siguiendo a la mayoría.

En el gráfico 4, el comandante es leal. También lo son los lugartenientes 1 y 2. En esta ocasión el traidor es el lugarteniente 3. Todos reciben del comandante la orden de atacar. Los lugartenientes 1 y 2 trasmiten también orden de atacar. El «lugarteniente 3», sin embargo, transmite orden de retirarse. Ante la contradicción de las órdenes recibidas, los lugartenientes leales aplican la fórmula de Lamport. De nuevo son 4 los generales y un único traidor. La aritmética permanece constante mientras el número de generales y/o traidores no varíe. 4=4. La decisión del «lugarteniente 3» volverá a ser de ataque. Si hubiese 2 traidores, el número de generales necesario para llegar al consenso serían 7, si son 3 los traidores, serían necesarios 10 generales y así sucesivamente.

Si sustituimos a los generales por ordenadores (nodos), encontramos una fórmula apta para conseguir consenso sobre cuál de las verificaciones de la pluralidad de interpuestos es la que finalmente se asentará en nuestra contabilidad colaborativa. Se registrará la verificación que tenga mayor consenso entre los que participan en el Sistema.

(1)

Bitcoin: A peer —to— peer electronic cash system.

Ver Texto
(2)

https://es.wikipedia.org/wiki/Anarcocapitalismo#Libre_empresa_frente_al_Estado

Ver Texto
(3)

https://revistas.uca.es/index.php/periferica/article/view/943

Ver Texto
(4)

https://es.wikipedia.org/wiki/Criptoanarquismo

Ver Texto
(5)

https://blog.bit2me.com/es/manifiesto-criptoanarquista

Ver Texto
(6)

https://www.bitcoin.com/info/what-is-bitcoin-double-spending

Ver Texto
(7)

https://people.eecs.berkeley.edu/~luca/cs174/byzantine.pdf

Ver Texto
(8)

https://es.wikipedia.org/wiki/Problema_de_los_generales_bizantinos

Ver Texto
(9)

Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia. Fuente: Wikipedia.

Ver Texto
(10)

En los primeros años de la década de los 80´s dos norteamericanos (Diffie y Hellman) formularon por primera vez algoritmos de cifrado asimétrico, de tal forma que a cada uno de los intervinientes en el tráfico se le otorgan un par de claves computacionalmente asimétricas entre sí; la clave pública y la privada. De esta forma, si cifro con la clave pública, puedo descifrar con la privada y viceversa; si cifro con la privada puedo descifrar con la pública. Una de las claves (la privada) es sólo conocida por quien la aplica (firma) y la otra (la pública) puede ser conocida por todos los que intervienen en el tráfico

Ver Texto
(11)

Esta característica también se utiliza para «ensobrar» las comunicaciones electrónicas. Se genera un sobre privativo que sólo puede «abrir» el poseedor de la clave privada. Así, si quiero mandar un fichero de forma confidencial, lo cifro con la calve pública del destinatario. De esta forma solo este que es el único que conoce la clave privada está en disposición de «abrir» el sobre digital y acceder al contenido del fichero

Ver Texto
(12)

Las claves criptográficas (pública y privada) se generan en nativo (en el dispositivo donde vaya a guardarse la privada. Tras generarse ambas claves, se «exporta» (transmite) la «pública» al repositorio de validación. Como se ha dicho, la «privada» permanece asociada al monedero-

Ver Texto
(13)

Me refiero a una representación alfanumérica de un conjunto de «bits» dado. Tras aplicar el algoritmo, el fichero muta a una sucesión de caracteres que lo representan. Estos caracteres son cualquier combinación de todos los números y las letras» a», b, c, d, e, f. Se trata de una combinación de 16 caracteres. Hexadecimal. (los 10 números más las 6 letras).

Ver Texto
(14)

https://www.investopedia.com/terms/m/merkle-tree.asp

Ver Texto
(15)

No hay que olvidar que buena parte de la tecnología que se aplica es creación cripto anarquista. Para sus seguidores, la privacidad es un derecho irrenunciable. Siempre se han mostrado partidarios del uso de la criptografía

Ver Texto
(16)

Es lo que se denomina «latencia» de las comunicaciones a través de redes telemáticas. El mejor ejemplo es la retrasmisión de los partidos de futbol. Vivo al lado del Bernabeu y cuando retrasmiten un partido que se regate acaba en gol.

Ver Texto
(17)

Entender BLOCKCHAIN; Una introducción a la Tecnología de Registro Distribuido de Manuel González- Meneses. Editorial Aranzadi

Ver Texto
(18)

https://www.bitcoinmining.com/bitcoin-mining-fees/

Ver Texto
(19)

Me refiero a una aceptación incondicional del «fichero Blockchain» asumiendo que se trata de una realidad matemática (estadística)

Ver Texto
(20)

La naturaleza de las transacciones electrónicas, que son volátiles y fácilmente manipulables, aconseja la generación de prueba por interposición. Alguna de las partes de la transacción (generalmente el predisponente) contrata a un tercero para que actúe como testigo electrónico de lo digitalmente acaecido. Para ello se interpone entre los nodos que transaccionan y almacena en un repositorio los «logs» acreditativos de la existencia, contenido y fecha de la transacción. De una forma limitada se hace referencia a este tipo de figuras en el artículo 25 de la LSSI

Ver Texto
(21)

Término acuñado por la normativa comunitaria que establece las características que debe de tener un fichero que se utiliza para la remisión de información. Resulta de aplicación a todos los procedimientos notificativos en el ámbito digital.

Ver Texto
(22)

Entender BLOCKCHAIN; Una introducción a la Tecnología de Registro Distribuido de Manuel González- Meneses. Editorial Aranzadi.

Ver Texto
(23)

En ciencias de la computación, «intérprete «es un programa informático capaz de analizar y ejecutar otros programas. Los intérpretes se diferencian de los compiladores o de los ensambladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de la máquina, los intérpretes sólo realizan la traducción en la medida que sea necesaria.

Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual). Fuente: https://es.wikipedia.org/wiki/Int%C3%A9rprete_(inform%C3%A1tica)

Ver Texto
(24)

Me refiero al código fuente compilado que es directamente ejecutable por el ordenador.

Ver Texto
(25)

Me refiero a un programa de ordenador que es el resultado de la modificación de uno anterior o que se basa en la lógica de otro programa de ordenador

Ver Texto
(26)

Me refiero a un fichero firmado con la clave privada de una «entidad de certificación de clave pública» que certifica que una «clave pública» se vincula con una concreta identidad. Suele ser distribuido por quien firma para que los receptores del mismo puedan verificar las rúbricas de los ficheros electrónicamente firmados.

Ver Texto
(27)

En programación informática una variable es el dato del programa que es desconocido en el momento de la programación y que puede ser incorporado al programa de distintas formas; mediante un simple «data entry» (se teclea el dato) o porque se obtiene de alguna de las formulaciones que ejecuta el propio programa

Ver Texto
(28)

https://blogs.elconfidencial.com/espana/tribuna/2018-02-08/nuevo-reglamento-general-proteccion-datos-union-europea_1518648/

Ver Texto
(29)

El mejor ejemplo es que la identidad de Satoshi Nakamoto sigue siendo una incógnita amparándose en el anonimato que proporciona esta tecnología.

Ver Texto
(30)

https://people.eecs.berkeley.edu/~luca/cs174/byzantine.pdf

Ver Texto
(31)

https://es.wikipedia.org/wiki/Problema_de_los_generales_bizantinos

Ver Texto
Añadir comentario1Comentarios
Gloria|24/05/2018 18:00:38
Explica muy bien y con detalle qué es Blockchain. Sin duda alguna, muy recomendable.Notificar comentario inapropiado
Queremos saber tu opiniónNombreE-mail (no será publicado)ComentarioWolters Kluwer no se hace responsable de las opiniones vertidas en los comentarios. Los comentarios en esta página están moderados, no aparecerán inmediatamente en la página al ser enviados. Evita, por favor, las descalificaciones personales, los comentarios maleducados, los ataques directos o ridiculizaciones personales, o los calificativos insultantes de cualquier tipo, sean dirigidos al autor de la página o a cualquier otro comentarista.
Introduce el código que aparece en la imagencaptcha
Enviar

Últimos tweets

NÚMEROS DISPONIBLES

Scroll