Entrega contra pago en blockchain PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Entrega versus pago en una cadena de bloques

Cómo las cadenas de bloques pueden resolver el problema más antiguo del libro

El comercio entre personas es tan antiguo como la humanidad misma. Comenzó en el momento en que el hombre de las cavernas Ogg le dijo al hombre de las cavernas Ugg: "yo te doy piedra, tú me das bayas". Pero el comercio conlleva un problema fundamental: requiere confianza. ¿Qué impide que Ogg use la roca para golpear a Ugg y luego agarre ambas rocas? y bayas antes de huir? ¿Cómo traducimos un acuerdo de intercambio verbal en un mecanismo de cumplimiento que garantice que ambas partes cumplen su palabra?

Por poner un ejemplo moderno, hace unos años vendí un coche en el mercado de segunda mano. Encontré un comprador a través de Internet, nos conocimos en persona, hizo que probaran el coche y acordamos un precio. Así que fue a su banco para obtener un cheque de caja, que efectivamente es efectivo en una forma más compacta. Caminamos juntos hasta una oficina de correos, donde puedo firmar y enviar un formulario oficial del gobierno que transfiere la propiedad legal del automóvil.

Así que ahí estamos, parados en la ventana de la oficina de correos, y llegamos a un incómodo callejón sin salida. El cheque todavía está en su bolsillo y yo tengo el formulario firmado. Nos conocimos hace unas horas y no tenemos motivos para confiar el uno en el otro. ¿Entrego el formulario primero y luego espero que me dé el cheque, en lugar de huir? ¿O me entrega el cheque y luego espero que le dé el formulario? De cualquier manera, alguien se está exponiendo al riesgo de ser traicionado.

Y luego me di cuenta de que debía dejar de preocuparme y simplemente entregar el formulario. ¿Por qué? Porque podría suceder una de dos cosas a continuación. O el comprador me entrega el cheque, en cuyo caso todos están contentos y el intercambio está completo. Pero, ¿y si se escapa en su lugar? En ese caso, el empleado de la oficina de correos verá y romperá el formulario que le acabo de dar. Bingo, tenemos nosotros mismos un intercambio seguro.

¿Viste lo que pasó allí? Nuestro dilema se resolvió mediante el uso de un intermediario, en este caso el empleado de la oficina de correos. El empleado se asegura de que se lleve a cabo una transacción justa o que no se realice ninguna transacción. Y no cualquier intermediario puede prestar este servicio. Tiene que ser alguien de confianza para ambas partes. En el caso de un empleado de una oficina de correos propiedad del gobierno, esto se debe a nuestra confianza en el gobierno mismo. Si se pudiera sobornar a los empleados de la oficina de correos, yo o el comprador podríamos diseñar una situación en la que acabemos con dinero y coche. De hecho, en muchos paises, la corrupción como esta puede ser un gran drenaje para la prosperidad.

Los hombres de las cavernas y los automóviles son una cosa, pero cambiemos nuestro enfoque al mundo financiero, en el que el comercio juega un papel importante. papel central. Por supuesto, los bancos no pagan a sus empleados para que se escapen con las acciones de otra persona. Pero el intercambio seguro de activos financieros sigue siendo un problema importante, porque hay formas menos caricaturescas en las que los participantes en una transacción pueden no cumplir su promesa. Por ejemplo, una de las partes podría volverse insolvente o un cambio repentino en las condiciones del mercado podría impedirles asegurar un activo. Pueden sufrir errores administrativos o los efectos colaterales de una fraude contable en otra contraparte.

Como resultado de estos "riesgos de liquidación”, La mayoría de las transacciones financieras se liquidan utilizando entrega versus pago (DvP). Este es solo un término elegante para el proceso de oficina de correos descrito anteriormente. DvP garantiza que, si una de las partes de una transacción no entrega lo prometido, la otra parte puede quedarse con el activo que ofreció a cambio.

¿Y cómo se implementa la entrega versus el pago en el mundo de las finanzas? Lo adivinó, a través de intermediarios confiables. Estos pueden ser otros bancos, cámaras de compensación o depositarios centrales de valores. Dado que la mayoría de las transacciones actuales se realizan de forma digital, no se trata de gestionar la transferencia de certificados físicos o efectivo. Más bien, el DvP se logra cuando el intermediario actualiza simultáneamente una serie de registros en su base de datos y / o transmite instrucciones a otras instituciones.

Entrega versus pago por blockchain

Hablar de bases de datos nos lleva con claridad al tema de las cadenas de bloques. Una cadena de bloques permite compartir y sincronizar un libro mayor o una base de datos entre varias partes. Sin embargo, a diferencia de las bases de datos normales, las bases de datos de blockchain pueden ser modificadas de forma segura y directa por varios usuarios incluso si compiten ferozmente entre sí. Si trabaja en TI corporativa, es posible que desee reflexionar un poco sobre las implicaciones de esa oración.

Para comprender cómo funciona la entrega versus el pago en una cadena de bloques, debemos comenzar por comprender el modelo transaccional de bitcoin. Cabe señalar aquí que otros diseños de blockchain utilizan un modelo diferente para las transacciones, y hablaremos más sobre estas diferencias más adelante.

Una transacción de bitcoin tiene un conjunto de entradas y salidas. Cada entrada está conectada a una salida de una transacción anterior, con todo el bitcoin de la salida anterior fluyendo hacia adentro. El bitcoin en las entradas de una transacción se redistribuye a través de sus salidas de acuerdo con las cantidades escritas dentro. Además, cada salida de transacción contiene el identificador público de su nuevo propietario, para el cual el propietario posee una clave privada correspondiente. Una transacción de bitcoin solo es válida si:

  • La cantidad total de bitcoins en las entradas de la transacción es mayor o igual a la cantidad escrita en sus salidas. Cualquier diferencia es cobrada como una tarifa por el "minero" que confirma la transacción en un bloque, creando un mecanismo de mercado por el cual las transacciones pueden pujar por la confirmación.
  • La transacción es aprobada por los propietarios de cada producto anterior que esa transacción "gasta". Esta aprobación se expresa mediante una firma criptográfica del contenido de la nueva transacción. La firma para una salida anterior solo se puede crear utilizando la clave privada que coincide con su identificador público.

Ambas reglas son cruciales en un libro mayor financiero que se comparte entre partes que no confían. Sin el primero, cualquiera podría crear bitcoins de la nada. Y sin el segundo, todos podrían gastar los bitcoins de los demás. Pero también necesitamos una tercera regla, que se aplica a nivel mundial en lugar de dentro de transacciones individuales:

  • Cada salida de transacción solo puede ser utilizada por una transacción posterior. Esto evita un ataque conocido como doble gasto en el que se envían los mismos bitcoins a más de un destinatario.

Para hacer cumplir esta regla, la cadena de bloques contiene un registro cronológico de transacciones válidas que no entran en conflicto entre sí, y este registro es verificado independientemente por cada nodo de la red.

El modelo transaccional de bitcoin se puede ampliar fácilmente para representar cualquier activo financiero. En lugar de una salida de transacción que contenga bitcoins, puede contener un identificador y una cantidad de activos. Todas las reglas que cubren las transacciones de bitcoins aún se aplican, lo que evita que los participantes (a) creen activos de la nada, (b) gasten los activos de otras personas y (c) gasten el mismo activo dos veces. Para los activos que no son criptomonedas, tendemos a insistir en que las cantidades de entrada y salida se equilibren exactamente, en lugar de permitir que los mineros recolecten la diferencia.

Entonces, ¿cómo creamos una transacción segura de entrega versus pago usando este modelo? Digamos que Alice y Bob han acordado cambiar las 10 libras de Alice por 15 dólares de Bob. Por conveniencia, asumiremos que Alice ya tiene exactamente 10 libras esterlinas en una única salida de transacción, y Bob también tiene 15 dólares. (Si este no es el caso, pueden cambiar fácilmente sus fondos para que así sea).

Para empezar, cualquiera de las partes crea una transacción con dos entradas y dos salidas. Las dos entradas gastan las salidas anteriores que contienen £ 10 de Alice y $ 15 de Bob, respectivamente. En cuanto a las salidas, la primera contiene el identificador de Alice y $ 15, y la segunda va a Bob que contiene £ 10. Dado que las cantidades de entrada y salida en ambas monedas se equilibran, nuestra transacción cumple la primera condición anterior. Para cumplir con el segundo, tanto Alice como Bob deben ahora firmar la transacción, ya que gasta salidas anteriores que pertenecen a cada uno de ellos.

La transacción ahora se puede finalizar incluyéndola en la cadena de bloques, pero aún debemos considerar el problema del doble gasto. ¿Qué pasaría si Alice hubiera creado una transacción en conflicto intercambiando las mismas £ 10 con una contraparte diferente que le ofreció un mejor trato? Aquí entra en juego la tercera regla, en la que la cadena de bloques garantiza que cada salida solo se puede gastar una vez. Si la transacción de la competencia se transmite después de que el intercambio de Alice con Bob esté en la cadena de bloques, simplemente no se confirmará. Y si la transacción competidora se confirmó primero, el intercambio de Alice con Bob fallará. De cualquier manera, la cadena de bloques asegura la entrega versus el pago del intercambio de Alice y Bob, así como cualquier otro. Si Bob no recibe las £ 10 de Alice, entonces Alice no recibe sus $ 15.

El poder de las transacciones parciales

Por lo tanto, las cadenas de bloques nos brindan una forma para que dos partes se unan, construyan y firmen una transacción de intercambio y se aseguren de que tenga éxito o fracase en su conjunto. Esto permite la entrega versus el pago en un libro mayor compartido, sin necesidad de un intermediario confiable para administrar el proceso. Los mineros que confirman transacciones en bloques aún tienen algo de poder, pero es mucho menos que un intermediario tradicional. Lo peor que pueden hacer es negarse a confirmar una transacción en particular. en su totalidad, y esto no viola DvP. Además, si la minería se comparte entre las partes que realmente crean las transacciones, este riesgo desaparece por completo, ya que todos tendrán la oportunidad de confirmar el suyo.

Hasta aquí todo bien. Pero las cadenas de bloques de estilo bitcoin tienen más trucos bajo la manga. Recuerde que una transacción debe ser firmada por el propietario de cada salida anterior que gasta esa transacción. De forma predeterminada, esta firma bloquea la lista completa de entradas y salidas dentro de la transacción. La criptografía asegura que la más mínima modificación a una entrada o salida invalidaría la firma. Para seguir el ejemplo anterior, si Bob fuera sustituido por Carol después de que Alice firmó la transacción, la transacción fallaría por completo.

Pero, ¿y si a Alice no le importa con quién realiza el intercambio? Para la mayoría de los propósitos, ¿Por qué debería importarle? A menos que Alice esté decidida a trabajar específicamente con Bob, solo hay dos partes de la transacción que realmente le preocupan. Primero, el hecho de que se gastará su producción de £ 10, en lugar de una cantidad o activo diferente. En segundo lugar, que recibe a cambio $ 15 en una nueva producción. Mientras todo el dinero en el sistema esté limpio, a Alice no le importa de dónde vienen esos $ 15 o qué más podría suceder para facilitar su intercambio.

Quizás una sola fiesta venga junto con $ 15 y realice un intercambio directo por las £ 10 de Alice. Pero tal vez Bob y Carol solo quieran intercambiar $ 7.50 cada uno. En este caso, agregarían dos entradas a la transacción, junto con dos salidas que recaudarían £ 5 cada una. O tal vez Carol realmente quiere cambiar $ 15 por 950 rublos, mientras que Sasha en Moscú tiene 950 rublos y está buscando £ 10. En este caso, puede tener lugar un intercambio de 3 vías, en el que cada parte solo se preocupa por su propia pieza del rompecabezas. La transacción que inició Alice se puede completar de un número infinito de formas diferentes. Pero desde la perspectiva de Alice, todos logran el mismo propósito de darle $ 15 a cambio de £ 10, y todos la hacen igualmente feliz.

Escenarios de intercambio

¿Cómo facilita esto una cadena de bloques? Mediante transacciones parciales y firmas parciales. Alice inicia una transacción con una sola entrada (sus £ 10) y una sola salida ($ 15 para ella). Ella bloquea estas partes de la transacción con una firma digital que indica que se puede agregar cualquier cantidad de otras entradas o salidas. Ella le entrega esta transacción parcial a Bob y dice "mira lo que puedes hacer". Tal vez también se lo dé a Carol, ya cualquier número de otras contrapartes potenciales o constructores de sindicatos. Cada uno de estos puede agregar sus propios pares de entradas y salidas, ya sea para equilibrar el intercambio o para crear una transacción parcial más grande que pueda transferirse nuevamente. No importa lo que haga nadie, la transacción solo se puede ejecutar (es decir, liquidarse mediante la confirmación en la cadena de bloques) una vez que se equilibran los activos de entrada y salida.

Una transacción de blockchain es solo una parte de los datos digitales, por lo que estas transacciones parciales se pueden enviar por correo electrónico o cualquier otro medio de comunicación. Incluso se pueden publicar públicamente, porque los participantes en la transacción potencial saben que la blockchain se encargará de ellos. La firma de Alice asegura que solo gastará £ 10 si alguien le da $ 15 a cambio.

Finalmente, si Alice elige deshabilitar la oferta, todo lo que tiene que hacer es gastar esas mismas £ 10 en otra transacción, la mayoría simplemente enviándolas de regreso a sí misma. Debido a que la cadena de bloques no permitirá que se gaste la misma salida dos veces, esto hace que su transacción parcial existente no tenga valor. Todos los demás participantes en la cadena de bloques verán esto y dejarán de perder el tiempo tratando de completar el intercambio.

De DvP a contratos inteligentes

Como yo tengo discutido previamente, una cadena de bloques de estilo bitcoin se puede ver como una forma de administrar la sincronización y la seguridad en una base de datos relacional compartida. Tanto las transacciones de bitcoins como las de bases de datos se tratan de forma atómica, lo que significa que tienen éxito o fracasan en su conjunto. La clave de la analogía es la equivalencia entre la salida de una transacción en una cadena de bloques y una fila en la base de datos. Una transacción de blockchain que gasta algunas salidas y crea otras es lo mismo que una transacción de base de datos que elimina algunas filas y crea otras en su lugar. (Una operación de base de datos que modifica una fila existente equivale a eliminar esa fila y crear una nueva actualizada en su lugar. Esta equivalencia subyace a la popular MVCC método de control de concurrencia en bases de datos, de las cuales las cadenas de bloques de estilo bitcoin pueden verse como una forma distribuida).

Así que imaginemos que nuestros datos financieros se guardan en una base de datos, en la que cada fila contiene tres piezas de información: el identificador de su propietario, un identificador de activos y una cantidad de activos. Una cadena de bloques permite que este libro de contabilidad se comparta de forma segura entre sus participantes, incluso si no confían en absoluto. En el lenguaje de las bases de datos, asegura que:

  • Las cantidades de activos en las filas eliminadas por una transacción coinciden con las de las filas que crea.
  • Para cada fila eliminada (o modificada) por una transacción, la transacción debe estar firmada por el propietario de esa fila.
  • Si una fila de la base de datos fue eliminada por una transacción, esto evita que otra transacción la elimine nuevamente.

Veamos la primera de estas reglas, a saber, que las transacciones deben preservar las cantidades de activos. Podemos ampliar esto a la noción general de una "restricción de transacción". Una restricción de transacción toma la forma de una caja negra que ve dos conjuntos de filas para cada transacción: (a) las filas eliminadas por la transacción, (b) las filas que crea. El trabajo de la caja negra es mirar estos dos conjuntos y responder 'sí' o 'no' a si la transacción es válida. En nuestro caso específico, solo responderá afirmativamente si las cantidades totales de activos en ambos conjuntos coinciden exactamente.

Una vez que tenemos la capacidad de aplicar restricciones a las transacciones, podemos ampliarlas para que contengan cualquier conjunto de reglas. Algunos ejemplos podrían ser “una unidad de este activo solo se puede crear si estos otros tres activos están bloqueados simultáneamente en custodia” o “este activo solo se puede transferir si hay una fila correspondiente que informa lluvia insuficiente”. Desde la perspectiva de la arquitectura distribuida de una cadena de bloques, la lógica dentro de la caja no hace ninguna diferencia, siempre que pueda brindarnos una evaluación definitiva y consistente de cada transacción que ve.

Como resultado, las restricciones de transacción pueden servir como un método general para restringir las transformaciones de datos que los participantes de blockchain pueden realizar. Este enfoque de los "contratos inteligentes" proporciona una alternativa a la procedimientos almacenados utilizado en Ethereum y su Eris derivado. En un artículo futuro profundizaremos en las ventajas y desventajas de estos dos paradigmas, en términos de simplicidad, escalabilidad y concurrencia.

solicite Sigueme aqui en twitter. Ver también: Poniendo fin al debate entre bitcoin y blockchain.

Anexo técnico

Para crear transacciones DvP parciales, use un tipo de firma of SINGLE|ANYONECANPAY. Si estas usando MultiChain, la preparelockunspent, createrawexchange y appendrawexchange Llamadas API cuida los detalles por ti. Ver el Cómo Empezar página para ver un ejemplo sencillo de cómo se pueden utilizar.

Por favor publique cualquier comentario en Linkedin.

Fuente: https://www.multichain.com/blog/2015/09/delivery-versus-payment-blockchain/

Sello de tiempo:

Mas de Multicain