Pages:
Author

Topic: ¿Por qué no hacemos un exchange descentralizado basado en el sistema multifirma? (Read 5403 times)

hero member
Activity: 616
Merit: 501

Muchas gracias, interesante, estoy leyendo y analizando a ver si un esquema similar me podría permitir hacer lo que haría con el esquema de multifirma con depósito previo (evitar ofertas sin respaldo, ejecutar las órdenes sin estar en línea, transacción "instantánea", y gestión de ofertas en distintos dispositivos). Yo ya había estado jugando con heurísticas similares usando el nLockTime, pero no había llegado a nada concreto, había reservado nLockTime para usarlo como forma de garantía de que los depósitos no se perdieran para siempre en caso de la desconexión permanente de la mayoría de servidores que crearon la dirección de depósito (más o menos igual a la garantía que tanto promociona GreenAddess en donde se crea una transacciń nLockTime para usarla en caso de que el servidor deje de existir, excepto por varias consideraciones que hay que hacer en un entorno donde los depósitos podrían ser negociados).
hero member
Activity: 616
Merit: 501
puedo descargarme un wireshark y ver lo que entra y sale de mi PC, pero si está encriptado me sirve de poco mirar ahi, lo mismo pasa con la memoria o el disco, si los datos están encriptados no sé lo que habría y por último, el dinero solo estaría temporalmente en esa wallet secreta.

Correcto, pero el programa tiene que descifrar esa información en algún momento, pues no podría firmar transacciones sin la llave descifrada, ¿dónde "escondes" la llave de descifrado?, ¿cómo ejecutas el algoritmo de descifrado sin develar la llave al dueño del PC bajo ninguna circunstancia?.
legendary
Activity: 1974
Merit: 1029
Yo soy dueño de mi PC, pero no puedo modificar el MS Office que tengo instalado, puedo hacerme uno pero de nada me serviría porque no sería compatible/ o nadie lo aceptaría, puedo descargarme un wireshark y ver lo que entra y sale de mi PC, pero si está encriptado me sirve de poco mirar ahi, lo mismo pasa con la memoria o el disco, si los datos están encriptados no sé lo que habría y por último, el dinero solo estaría temporalmente en esa wallet secreta.

- Aunque no tengas el código fuente, puedes mirar el contenido de la memoria y usando un depurador, encontrar las claves privadas de las que estamos hablando. O las claves de cifrado del tráfico de red que mencionas.
- Nadie va a instalar un software propietario como el office. Este mercado descentralizado multisig será además código abierto. (Vamos, digo yo Cheesy).
member
Activity: 102
Merit: 10
¿Administrador? En mi modelo no he hablado en ningún momento de administradores... el software en tu pc tendría una wallet que se administra automáticamente por el software, no por ningún agente (persona).

Es decir, imagina que yo creo un programa que genera una wallet en tu pc y que cada vez que recibe dinero, lo manda a otra direccion B. ¿Qué administrador hay?  

El dueño del PC, puede modificar el software, o hacer uno propio usando el protocolo, o leer lo que entre por su cable de internet, o leer su memoria RAM, o leer su disco duro, y hacer lo que le de la gana con el dinero que recibe...

Yo soy dueño de mi PC, pero no puedo modificar el MS Office que tengo instalado, puedo hacerme uno pero de nada me serviría porque no sería compatible/ o nadie lo aceptaría, puedo descargarme un wireshark y ver lo que entra y sale de mi PC, pero si está encriptado me sirve de poco mirar ahi, lo mismo pasa con la memoria o el disco, si los datos están encriptados no sé lo que habría y por último, el dinero solo estaría temporalmente en esa wallet secreta.
hero member
Activity: 616
Merit: 501
¿Administrador? En mi modelo no he hablado en ningún momento de administradores... el software en tu pc tendría una wallet que se administra automáticamente por el software, no por ningún agente (persona).

Es decir, imagina que yo creo un programa que genera una wallet en tu pc y que cada vez que recibe dinero, lo manda a otra direccion B. ¿Qué administrador hay?  

El dueño del PC, puede modificar el software, o hacer uno propio usando el protocolo, o leer lo que entre por su cable de internet, o leer su memoria RAM, o leer su disco duro, y hacer lo que le de la gana con el dinero que recibe...
member
Activity: 102
Merit: 10
En cuanto a poder leer la clave y hablando desde la ignorancia, ¿no sería algo parecido a conseguir la clave de activación o licencia de un software? ¿Eso es tan facil?

No sólo es un problema de código abierto, de nuevo, el nodo va a saber la llave privada (igual que la empresa tiene una lista de códigos de activación válidos en tu ejemplo), y un administrador corrupto podría hacer gastos sobre lo depositado allí, eso es una de las cosas que quiero evitar.

¿Administrador? En mi modelo no he hablado en ningún momento de administradores... el software en tu pc tendría una wallet que se administra automáticamente por el software, no por ningún agente (persona).

Es decir, imagina que yo creo un programa que genera una wallet en tu pc y que cada vez que recibe dinero, lo manda a otra direccion B. ¿Qué administrador hay? 
hero member
Activity: 616
Merit: 501
En cuanto a poder leer la clave y hablando desde la ignorancia, ¿no sería algo parecido a conseguir la clave de activación o licencia de un software? ¿Eso es tan facil?

No sólo es un problema de código abierto, de nuevo, el nodo va a saber la llave privada (igual que la empresa tiene una lista de códigos de activación válidos en tu ejemplo), y un administrador corrupto podría hacer gastos sobre lo depositado allí, eso es una de las cosas que quiero evitar.
legendary
Activity: 1974
Merit: 1029
En cuanto a poder leer la clave y hablando desde la ignorancia, ¿no sería algo parecido a conseguir la clave de activación o licencia de un software? ¿Eso es tan facil?

Con software libre sí es fácil, pues puedo editar el código fuente y cambiar su comportamiento.
member
Activity: 102
Merit: 10
Cada nodo de la red tiene por defecto una wallet propia con su clave privada encriptada que sólo el programa (nodo) conoce (no el usuario). Es decir, si te descargas el programa, se crearía una wallet en tu pc de la que tu no tendrías las claves.

Esto es más fácil decirlo que hacerlo. Si cojo el código fuente y le plancho un "print" por ahí, obtengo la clave.

Ya, no soy ningún experto en seguridad, pero al menos cambié el problema de la centralización a la seguridad!  Smiley

En cuanto a poder leer la clave y hablando desde la ignorancia, ¿no sería algo parecido a conseguir la clave de activación o licencia de un software? ¿Eso es tan facil?
hero member
Activity: 616
Merit: 501
Gracias diaviidi por los comentarios.

Veo que vas de un problema de un exchange centralizado a otro problema de un scrow centralizado o wallet centralizada.

La verdad es que no veo en dónde está la centralización, pues no existe servidor central, ni depósitos centralizados, de hecho tooodas las consideraciones de seguridad prácticamente se reducirán a evitar centralizar las firmas en un sólo servidor...

Proceso:
1. Bob hace un broadcast a la red de su oferta.
2. Todos los nodos reciben la oferta de bob y la actualizan en sus terminales.
3. Alice ve la oferta de Bob y la acepta, enviando otro mensaje broadcast a la red confirmando que acepta la oferta.
4. Bob manda su dinero (BTC) a n nodos cualesquiera (total btc /n para cada nodo) a la wallet secreta.
5. Alice manda su dinero (LTC) a m nodos cualesquiera (total LTC / m para cada nodo) a la wallet secreta.
6. Los nodos actualizan el libro contable con las confirmaciones del envio del dinero de Bob y Alice a los nodos.
7. Cada nodo libera el dinero retenido en su wallet al destinatario correspondiente.

Pero entonces las llaves privadas de los depósitos se quedan en los nodos, y un administrador de nodo corrupto podría robarlos, y eso es lo que quiero evitar...

Cada nodo de la red tiene por defecto una wallet propia con su clave privada encriptada que sólo el programa (nodo) conoce (no el usuario). Es decir, si te descargas el programa, se crearía una wallet en tu pc de la que tu no tendrías las claves.

Esto es más fácil decirlo que hacerlo. Si cojo el código fuente y le plancho un "print" por ahí, obtengo la clave.

Exacto, cualquier listillo podrá leer cualquier cosa que se genere en su computador. Cuando comencé a abordar el problema yo estaba considerando un sistema similar, parecido a lo que propuso vgo, y uno de los problemas por lo que lo descarté fue la imposibilidad de "esconder" del usuario el proceso de creación del par de llaves, el usuario siempre podrá ver y copiar lo que hace su memoria ram o disco duro, incluso había comenzado a "inventar" alguna cosa para ofuscar de alguna forma la creación del par de llaves y evitar así la lectura de la llave privada, pero se complicaba demasiado el asunto, probablemente no lo hubiese logrado... en otro intento quería hacer un algoritmo de creación conjunta del par de llaves entre el usuario y un escrow, pero también se complicaba mucho...
legendary
Activity: 1974
Merit: 1029
Cada nodo de la red tiene por defecto una wallet propia con su clave privada encriptada que sólo el programa (nodo) conoce (no el usuario). Es decir, si te descargas el programa, se crearía una wallet en tu pc de la que tu no tendrías las claves.

Esto es más fácil decirlo que hacerlo. Si cojo el código fuente y le plancho un "print" por ahí, obtengo la clave.
member
Activity: 102
Merit: 10
Veo que vas de un problema de un exchange centralizado a otro problema de un scrow centralizado o wallet centralizada.

¿Qué os parece este otro sistema?

Premisas:
Cada nodo de la red tiene por defecto una wallet propia con su clave privada encriptada que sólo el programa (nodo) conoce (no el usuario). Es decir, si te descargas el programa, se crearía una wallet en tu pc de la que tu no tendrías las claves.

Proceso:
1. Bob hace un broadcast a la red de su oferta.
2. Todos los nodos reciben la oferta de bob y la actualizan en sus terminales.
3. Alice ve la oferta de Bob y la acepta, enviando otro mensaje broadcast a la red confirmando que acepta la oferta.
4. Bob manda su dinero (BTC) a n nodos cualesquiera (total btc /n para cada nodo) a la wallet secreta.
5. Alice manda su dinero (LTC) a m nodos cualesquiera (total LTC / m para cada nodo) a la wallet secreta.
6. Los nodos actualizan el libro contable con las confirmaciones del envio del dinero de Bob y Alice a los nodos.
7. Cada nodo libera el dinero retenido en su wallet al destinatario correspondiente.

Seguro que he dicho más de una tontería.  Wink
hero member
Activity: 616
Merit: 501
Gracias dserrano5.

me refiero a que el software que haga de escrow (todo automático tal como he descrito) está integrado en el cliente del mercado, lo que significa que hay tantos escrows como usuarios.

Sí, ésto es otra buena posibilidad, también lo había contemplado pero no estoy muy seguro de que hacer escrow a todo usuario sea lo mejor, hay que pensarlo bien con todas sus implicaciones, por ejemplo:

Ventajas del escrow exclusivo:
  • Se podría hacer pagar una "membresía" inicial a los escrows, ésto es una barrera de entrada que le obliga al atacante a hacer una inversión inicial, desincentivando los ataques, hay un estímulo para conservar la 'bondad' y amortizar de la forma más segura su inversión inicial (siendo un miembro positivo para la red, aumentando su reputación y captando así las comisiones necesarias). Que conste que no estoy defendiendo las membresías por interés económico personal, sólo me interesa el efecto disuasivo que implica en los atacantes,  de hecho la "membresía" podría ser un 'proof of burn', si es que hay algún problema con eso, o se podría retornar a los escrows actuales como estímulo extra a los 'buenos' escrows y como una forma de compensación por la nueva competencia.
  • Sin comisiones no hay ningún estímulo para ser un escrow bien intencionado, todos podrían intentar todo el tiempo un ataque y sería la mejor estrategia, pues no tienen nada que perder (teoría de juegos).
  • El sistema de depósito previo descrito en mi anterior post (el que evita las ofertas de humo, permite intercambios instantáneos, ejecución de las ofertas sin que el dueño del depósito esté en linea, y gestión de las ofertas desde cualquier dispositivo) requiere que los escrows que fueron usados en la creación del depósito estén presentes para firmar todos los intercambios que incluyan esas direcciones de depósito, ésto implica asumir una responsabilidad de servicio 24/7, pues sin las firmas suficientes no se pueden firmar los movimientos, la comisión es el estímulo que tienen esos servidores para mantener una buena disponibilidad de servicio. Sin el estímulo de las comisiones, los escrows no tienen ninguna razón para permanecer en línea, la mayoría de depósitos podrían quedar congelados pues -tal vez- nunca consigan las firmas suficientes. Y sin el depósito previo la verdad no sabría como tener las ventajas mencionadas, las cuales son muy importantes para lograr el dinamismo que hoy ofrece un exchange centralizada.

Como bién dices se puede integrar la función de escrow al software de todo cliente, pero creo que prestar el servicio debería requerir de la "membresía", ganando el derecho a captar el necesario estímulo (la comisión) para garantizar la seguridad y la disponibilidad del servicio (en el caso del depósito previo).
legendary
Activity: 1974
Merit: 1029
Re: comisiones de los escrows: realmente pienso que el escrow debería ser automático, y por tanto no cobraría comisión.
Claro, sería automático, sin embargo, no veo por qué lo automático del escrow implique falta de comisión (cada escrow ejecutaría un cliente-servidor para prestar el servicio automáticamente)

No hace falta que nadie ejecute el cliente solo para hacer escrow. Los propios usuarios hacen de escrow por el simple hecho de participar en el mercado. No hacen falta escrows dedicados, por tanto mantengo que no se debería cobrar por este concepto.


creo que te refieres a que la plataforma misma provea el escrow, la idea es que existan muchos escrows y no se pueda convertir en un monopolio, pues así se evita el riesgo de que un administrador de la plataforma se corrompa

[…]

Un escrow automático perteneciente a la plataforma también es programado y susceptible de ser modificado por un humano corruptible (el admin de la plataforma)

Cuando indico que la plataforma provea el escrow, me refiero a que el software que haga de escrow (todo automático tal como he descrito) está integrado en el cliente del mercado, lo que significa que hay tantos escrows como usuarios. Cuando Alice y Bob hacen una transacción, se escoge algún otro nodo de la red, el que sea, para hacer de escrow. O varios nodos. Ni Alice ni Bob saben a quién o quiénes deben sobornar. Visto desde el otro lado, el nodo de Alice puede estar siendo escrow para una transacción entre Charlie y Daisy pero ninguno de los tres lo sabe. No hay "admin de la plataforma".
hero member
Activity: 616
Merit: 501
Mira Fernarios, estoy pensando en comprar varias acciones de este sitio, es un exchange multisig parecido a lo que propones -creo- echale un vistazo. Es una multisig con multicurrencies.  Cheesy  
Echale un vistazo y dime que piensas y si es mas o menos lo que tienes en mente.

http://multisigplus.com/

No, ellos no hacen intercambios entre monedas, son una wallet en línea con multisign, que soporta bitcoins, litecoins y doges, para cuentas mancomunadas, osea los grupos de personas abren una cuenta (que no es más que una dirección multifirma), entonces nadie puede tocar esos fondos sin las firmas de los demás miembros del grupo, interesante tener el servicio on-line y asistido, pero no veo la diferencia a hacerlo directamente con el cliente de la moneda, excepto el evitarte instalar el cliente y escribir los comandos...

Muchas gracias por tu colaboración cryptoonion888, sigo a la espera de que aparezca algún proyecto similar...
full member
Activity: 191
Merit: 100
I dont mind the pain
Mira Fernarios, estoy pensando en comprar varias acciones de este sitio, es un exchange multisig parecido a lo que propones -creo- echale un vistazo. Es una multisig con multicurrencies.  Cheesy 
Echale un vistazo y dime que piensas y si es mas o menos lo que tienes en mente.

http://multisigplus.com/
hero member
Activity: 616
Merit: 501
En realidad creo que vale la pena que le eches un vistazo por ti mismo

Vale gracias, lo voy a hacer, hace un par de años había leído de Ripple y los sistemas de las cadenas de confianza pero no seguí metido en el tema...
full member
Activity: 191
Merit: 100
I dont mind the pain
No te sirve de base el sistema de RIPPLE?

Perdona cryptoonion888, pero de nuevo no capto, ¿RIPPLE me puede ayudar en algo?, la verdad no soy experto en RIPPLE, ¿podrías explicar un poco el tema?.

Bueno es un poco complicado pero puedes verlo en https://ripple.com/how-ripple-works/ ; basicamente Ripple es un exchange descentralizado, P2P, que utiliza un sistema de confianza gateway que tu activas y que es vigilado por un sistema multiservidores que le llaman el Ledge. Este sistema vigila los intercambios p2p y en el intercambio una pequeña porción de XRP (que es la moneda del sistema de ripple networks) se utiliza para verificar que no haya dobles gastos, esa cantidad al final no es una comisión sino que se destruye una vez que todo ha sido verificado.

Ripple te permite crear gateways con diversas exchanges como bitstamp, pero tambien con quien tu quieras que maneje otro tipo de currency, por ejemplo oro, usd, eur, mxn, etc, y tam,bien alt coins. Sin embargo aquí si es un sistema de confianza, es decir que para que utilizar el gateway debes confiar tu en el tenedor del dinero del otro lado porque al final ese dinero que va estar moviendo tiene que estar en algun lado, ya sea en tu cold wallet o ya sea en ripple o bitstamp, btc2ripple, The Rock, Ripple Singapore, Gold Bullion International, y otros más que te ayudan a convertir en tu moneda local (real brasileño, peso mexicano, peso argentino, etc) sin necesidad de usar un exchange centralizado.

Ripple es descentralizado pero con un sistema unificado mediante el Ledger que vigila (supongo que es un sistema automático) y esta distribuida la red ripple alrededor del mundo.

Yo solo uso rippletrade para mover mis BTC entre cryptostock, bitstamp, localbitcoin y un exchange mexicano que se llama bitso lo que permite moverme en BTC, USD, CNY, y XRP con comisiones realmente muy pequeñas, sin embargo que yo sepa no es un sistema multisig sin embargo si lo soporta https://wiki.ripple.com/Multisign


En realidad creo que vale la pena que le eches un vistazo por ti mismo que realmente sabes sobre estos temas, lo mío es solo una sugerencia de un completo noob pero que busca formas eficientizar los intercambios entre divisas dado que mi moneda local es el MXN (peso mexicano).
hero member
Activity: 616
Merit: 501
No te sirve de base el sistema de RIPPLE?

Perdona cryptoonion888, pero de nuevo no capto, ¿RIPPLE me puede ayudar en algo?, la verdad no soy experto en RIPPLE, ¿podrías explicar un poco el tema?.
Pages:
Jump to: