Bitcoin Forum
May 11, 2024, 09:57:37 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 »  All
  Print  
Author Topic: ¿Por qué no hacemos un exchange descentralizado basado en el sistema multifirma?  (Read 5355 times)
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
October 18, 2014, 10:28:24 AM
 #21

me da un poco de temor eso de que la comprobación de la validez de transacción la haga el escrow, con tantas monedas y con -tal vez- protocolos distintos (o versiones de protocolos distintas), creo que se complicaría el tema a la hora de crear el algoritmo de comprobación, sumado al cálculo de la comisión adecuada en cada moneda (para evitar el doble gasto por falta de comisión), soportar también una nueva moneda sería un tema más delicado.

Re: comprobación en muchas alts: sí, es un poco peliagudo este tema. No tanto por el desarrollo inicial, sino también porque luego hay que estar al día de los cambios que se produzcan (p.ej. "Actualización obligatoria de cacacoin el próximo 10 de octubre"). No ser diligentes en este punto provocaría transacciones sin confirmar y, por tanto, fraude.

Como detalle de implementación, una arquitectura de plugins viene al pelo en este caso.

Re: comisión de la red: cada uno de los peers pondría comisión en su transacción. El escrow comprobaría que es suficiente. Incluso se puede exigir una comisión, digamos, "más que suficiente" para ir sobre seguro Wink.


También como lo mencionas está lo de un posible fallo en el escrow cuando llega la hora de publicar una de las transacciones, no sólo un fallo casual, también podría ser atacado con DDoS o algo así, en el momento en que por ejemplo Alice envía la transacción al escrow, y de esa forma conseguir el retraso necesario para hacer el doble gasto

Alice no sabría a qué nodo de la red atacar. Ella interactuaría con su cliente (en un software descentralizado, todo el mundo tiene que ejecutar un cliente en su ordenador) y el escrow sería transparente. Pero incluso aunque lo supiera, hacer un DoS no le supondría ventaja porque si ella publica una transacción usando la misma input, luego el escrow al hacer las comprobaciones necesarias ve que la input ya está gastada, aunque sea con cero confirmaciones, y entonces se negaría a continuar, cancelando totalmente el trato.

La única oportunidad de Alice sería intentar esto justo después de que el escrow hiciera tal comprobación, pero si en el escrow se pone este tiempo aleatorio de espera que mencioné, Alice no tiene forma de saber cuándo intentarlo. La ventana de doble gasto es muy estrecha, de unos pocos segundos en una red grande como bitcoin, más estrecha todavía en redes con menos nodos.

--

Re: comisiones de los escrows: realmente pienso que el escrow debería ser automático, y por tanto no cobraría comisión. Meter a un humano en esto, corruptible y con tendencia a desaparecer 8 horas seguidas cada día, incluso durante una operación abierta si los peers son lentos, y que aun por encima implicara costes adicionales, no me convence nada. Sé que un escrow automático tiene sus riesgos, pero pienso que merecería la pena dedicarle algo de esfuerzo.


Lo que hay que probar es que las entradas en el libro están respaldadas por coins reales.

Tipo la cascada de blockchain con un registro de ordenes?? Pregunto, no tengo puta idea. Roll Eyes

No entiendo "cascada de blockchain"…


Edito: Dándole un par de vueltas mas, si existiera la posibilidad de bloquear carteras, se podría buscar un sistema en que el comprador bloquea la cartera del vendedor mediante el pago, osea a la vez que compra bloquea la cartera del vendedor con su saldo y pasaríamos a intercambios de carteras ( que tampoco se si existe), no de monedas directamente. Roll Eyes

Supongo que esto de bloquear los fondos es precisamente la motivación original del OP en usar multifirma. Una vez los peers pierden el acceso exclusivo a sus fondos y se mete al escrow en la ecuación, se gana mucho en seguridad.
1715464657
Hero Member
*
Offline Offline

Posts: 1715464657

View Profile Personal Message (Offline)

Ignore
1715464657
Reply with quote  #2

1715464657
Report to moderator
1715464657
Hero Member
*
Offline Offline

Posts: 1715464657

View Profile Personal Message (Offline)

Ignore
1715464657
Reply with quote  #2

1715464657
Report to moderator
Transactions must be included in a block to be properly completed. When you send a transaction, it is broadcast to miners. Miners can then optionally include it in their next blocks. Miners will be more inclined to include your transaction if it has a higher transaction fee.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
vgo
Legendary
*
Offline Offline

Activity: 2072
Merit: 1019



View Profile
October 18, 2014, 11:15:55 AM
 #22

La consola del blockchain donde se ven las transacciones a tiempo real y después hacer un registro... olvídalo, igual es una chorrada.


LLámalo bloqueo de cartera o transferencia directa/automatica al escrow al hacer el pago pero supongo que lo ideal sería un sistema infalible sin necesidad de un tercero.
cryptoonion888
Full Member
***
Offline Offline

Activity: 191
Merit: 100


I dont mind the pain


View Profile
October 18, 2014, 02:38:21 PM
 #23

No te sirve de base el sistema de RIPPLE?

LYKKE +++++ IOTA+++++BURST+++++IGNIS+++++ARDR+++++BCH
fernarios (OP)
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
October 18, 2014, 03:03:35 PM
Last edit: October 21, 2014, 12:39:20 PM by fernarios
 #24

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), si dejamos la comisión en oferta y demanda el mercado encontrará por sí mismo la comisión adecuada, en pares con muchas transacciones (LTC/BTC por ejemplo) la comisión podría incluso llegar a ser insignificante, pues habría mucha competencia por captar la mayor cantidad de transacciones. Por otro lado, la misma plataforma podría proveer un escrow con una comisión bastante baja al principio para evitar los abusos, pero 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, y se comience a aliar con usuarios (o él mismo actúe como un usuario) y comience a defraudar gente. La garantía más importante del sistema (a mi parecer) es la independencia entre el escrow y las partes en una transacción, si el escrow siempre es el mismo esa garantía se reduce a la confianza que los usuarios depositen en la plataforma, y es lo que quiero evitar, y lo intento evitar abriendo el escrow a toda persona que esté interesada en proveer ese servicio, agregando un sistema de reputación de escrows, y una buena fórmula para la asignación automática y transparente del escrow basado en la reputación, la comisión y un poco de azar.

Meter a un humano en esto, corruptible y con tendencia a desaparecer 8 horas seguidas cada día, incluso durante una operación abierta si los peers son lentos, y que aun por encima implicara costes adicionales, no me convence nada. Sé que un escrow automático tiene sus riesgos, pero pienso que merecería la pena dedicarle algo de esfuerzo.

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), me parece más adecuado depositar la confianza sobre una red de escrows independientes que sobre un administrador, pues la principal motivación de éste proyecto es evitar depositar esa confianza excesiva en un sólo individuo. Es cierto que un escrow externo no está obligado a prestar un buen servicio, pero con un sistema multiescrow (tu también intuiste ésta característica proponiendo un 4to nodo que se encargaría de actuar en caso de fallo del escrow, yo lo había pensado como un sistema "multiescrow"), una cuarta, quinta, o décima firma en las direcciones multisign para lograr un consenso suficiente en caso de que un escrow falle o se corrompa. Eso me lleva a agregar otra sección a la especificación, en donde precisamente explicaba la necesidad de apertura al público del sistema de escrows, y la posible utilización de múltiples escrows en cada una de las transacciones:

________________________________

Sistema Multiescrow

Recordemos que esta solución pretende evitar que el usuario tanga la obligación de confiar en la integridad del administrador de un exchange centralizado, pues es un punto de incertidumbre que queremos eliminar, si las transacciones en el sistema usan siempre un escrow proveído por la misma administración de la plataforma se corre un riesgo importante: la posibilidad de que un administrador con acceso a las llaves privadas del servidor sea corrupto, y que por ejemplo se haga de la llave privada de Bob con de la complicidad de éste, (de hecho no se necesita de la colaboración de un usuario en el fraude, un administrador se puede hacer pasar por un usuario de la plataforma, osea tomar el lugar de Bob para engañar a Alice), en el momento de crear los depósitos de bitcoins y litecoins el administrador tendrá en su poder las dos llaves privadas necesarias para hacer gastos sobre esos depósitos.

Un ataque de ésta naturaleza tiene ciertas limitaciones, sería difícil causar un daño masivo pues el golpe estaría limitado a los depósitos hechos en el periodo de tiempo entre la corrupción del administrador y el descubrimiento del fraude, puede ser un daño importante pero es reducido en comparación a robos masivos en exchanges con depósito centralizado, por otro lado el administrador estaría actuando en contra de su negocio, una vez ejecutado el robo la confianza en la plataforma se iría al suelo acabando con el negocio. Pero a pesar de estos inconvenientes para el administrador atacante no podemos ignorar el problema, pues no sólo un administrador corrupto puede ejecutarlo, un "hacker" podría tener acceso a las llaves privadas del servidor dado que están almacenadas de forma centralizada, un "hacker" tendría todas las de ganar aún si no consigue una cantidad significativa de depósitos, y tampoco le importaría la reputación de la plataforma, el "hacker" es otro riesgo que nos regresa a uno de los problemas que queríamos resolver: el desastre por posible negligencia o incompetencia de los administradores. Para hallar una solución debemos "complicar" el sistema un poco.

Se debería garantizar que el escrow nunca tiene contacto con la segunda llave de ningún depósito en una dirección 2-of-3, pero al mismo tiempo es imposible garantizar a los usuarios que un administrador (o un "hacker") no está actuando como un usuario solapado en la exchange.

Supongamos que existen tres escrows y no uno (tres servidores), administrados por tres personas distintas en lugares distintos del planeta, si cada dirección de depósito se crea con la firma del usuario depositante y estos tres servidores, la dirección de depósito podría ser una dirección multifirma 3-of-4, osea, cada gasto sobre el depósito deberá ser firmado por el usuario dueño del depósito y 2 de los 3 servidores que crearon la dirección multifirma, osea, la mitad más uno de los servidores. Ahora supongamos que hay 9 servidores distintos, en lugares distintos del planeta, los depósitos podrían ser en direcciones multifirma 6-of-9, osea, para hacer un gasto sobre un depósito se necesitará de la firma de 5 servidores y del usuario dueño del depósito. Así, se crea un sistema de consenso, el depósito sólo se podrá gastar de forma fraudulenta si colaboran en el fraude la mitad más uno de los servidores creadores de la dirección multifirma. Esto hace muchísimo más difícil ejecutar un robo como el descrito anteriormente, pues aunque un servidor se disfrace de comprador se necesitará la aprobación de otros 5 servidores para hacer cualquier cosa sobre el depósito, también se mitiga el peligro de que un daño irreversible en un servidor o un ataque de denegación de servicio pueda traumatizar el funcionamiento de la exchange, podrían estar fuera de línea 1, o 2, o 3 o hasta 4 servidores y el sistema no sufriría ningún inconveniente pues aún se podrían recaudar las 6 firmas necesarias para hacer cualquier cosa sobre los depósitos, creando redundancia y robustez sobre la plataforma.

Si hay por ejemplo 9 servidores resultaría incluso cuestionable la necesidad de dejar una llave en manos del usuario, pues ya prácticamente todo depende de los servidores (el usuario posee solo un décimo del control del depósito), todo podría funcionar con direcciones multifirma 5-of-9 entre servidores, poca seguridad se gana agregando al sistema la llave en manos del usuario, la única ventaja de hacer al usuario partícipe de la creación de la dirección del depósito y de la firma de los gastos sería la de generar una percepción mayor de control del usuario sobre las transacciones de sus depósitos, pero en términos cuantitativos la ganancia real en seguridad es poca considerando la complejidad que añade al sistema en los intercambios. Quitarle la llave de las manos al usuario también abre nuevas posibilidades a la plataforma:

  • El depósito se hace previo a la transacción. Es decir, Bob hará una oferta de vender 0.8 bitcoins por 80 litecoins sólo cuando ya existan depósitos de Bob que sumen 0.8 bitcoins en direcciones multifirma creadas por los servidores, así mismo Alice no podrá aceptar toda la oferta de Bob hasta que haya depositado previamente los 80 litecoins en direcciones multifirma creadas por los servidores. Esto evita la posibilidad de que Bob haga ofertas sobre monedas inexistentes, y evita que Alice acepte ofertas sin tener el respaldo adecuado (peligros que existían en el sistema descrito en el Ejemplo 0).
  • También brinda la posibilidad de que Alice acepte sólo una fracción de la oferta de Bob, y así Bob podría vender sus bitcoins a uno o varios usuarios depositantes de litecoins.
  • El usuario ya no tiene que estar en línea para hacer un intercambio sobre su oferta. Es decir, dado que los depósitos se hacen previamente a la transacción, y los gastos sobre los depósitos sólo dependen de las firmas de los servidores creadores de las direcciones multifirma, Bob no tendrá que estar en línea para firmar un intercambio sobre el depósito que respalda su oferta, Bob creará la oferta de 0.8 bitcoins por 80 litecoins y podrá salir de la plataforma, y apagar su computador, regresará a la plataforma cuando quiera comprobar si su oferta ha sido tomada o para cancelarla o hacer algún cambio sobre su oferta. Alice aceptará la oferta solicitando el intercambio a los servidores que firmaron las direcciones de los depósitos, y todo se completaría sin la necesidad de la presencia de Bob.
  • Ya no es necesaria la espera en confirmaciones en cada intercambio, los intercambios serían casi instantáneos pues sólo dependen del concenso de los servidores que crearon las direcciones de depósito involucradas.
  • Bob y Alice podrán usar la plataforma desde cualquier dispositivo sin que éste cuente con un software para firmar transacciones, podrán gestionar sus depósitos desde cualquier lugar, además ya no necesitarán todas sus llaves privadas en su dispositivo para poder firmar los intercambios.

Todas estas ventajas hacen a la plataforma algo mucho más cercano a lo que ofrece una exchange centralizada, sin los peligros que la centralización de los depósitos acarrea.


¿Cuántos escrows son suficientes?

Podría parecer atractivo que el usuario pudiese usar todos los servidores idóneos disponibles, pues así se aumentaría la redundancia de la red disminuyendo la probabilidad de que un intercambio no recaude las suficientes firmas por problemas técnicos en la mayoría de los  servidores con que se creó la dirección multifirma del depósito, sin embargo, sería impráctico crear un depósito con demasiadas firmas, pues aumentaría demasiado el tamaño de las transacciones de depósitos e intercambios, y aumentaría el tiempo de coordinación de firmas sobre esas transacciones. Propongo 6 servidores participantes en direcciones multifirma 6-of-10 por que me pareció un número más o menos adecuado, pero podría cambiarse a lo que creamos conveniente y de acuerdo al comportamiento de la red.

Por ejemplo, en el caso extremo en el que un sólo grupo de servidores aliados corruptos tengan el control de 50% de todos los servidores disponibles con buena reputación, la probabilidad de escoger n servidores y que k resulten ser corruptos se puede calcular con una distribución binomial, resultando así:

Code:
+---+---+------+
| k | n |   P  |
+---+---+------+
|3  |4  |31,25%|
+---+---+------+
|4  |6  |34,38%|
+---+---+------+
|5  |8  |36,33%|
+---+---+------+
|6  |10 |37,70%|
+---+---+------+
|7  |12 |38,72%|
+---+---+------+
|8  |14 |39,53%|
+---+---+------+
|9  |16 |40,18%|
+---+---+------+
|11 |20 |41,19%|
+---+---+------+

A medida que aumentamos el número de servidores involucrados en la creación de las direcciones multifirma aumenta la probabilidad de completarse un ataque de aliados corruptos, pero tampoco sería conveniente muy pocos servidores, pues por ejemplo, en el caso 3 de 4 sólo con que falten 2 servidores (debido a fallas, desconexión o corrupción) el usuario ya no podrá hacer intercambios con las monedas del depósito, con 4 de 6 hay riesgo si fallan 3, con 5 de 8 hay riesgo si fallan 4, etc., debemos halla la proporción adecuada balanceando la seguridad y la redundancia. 6-of-10 me pareció la proporción más prudente por ahora, ajustaremos ese número al comportamiento de la red en etapas iniciales, por ejemplo, aumentaremos el número de servidores en cada dirección multifirma si detectamos peligro de que aparezcan depósitos sin las suficientes firmas disponibles debido a desconexión de los servidores participantes, por el contrario, si vemos buena disponibilidad permanente de los servidores involucrados podríamos considerar disminuir el número de firmantes, por ejemplo 5-of-8, o aumentar la proporción, por ejemplo 7-of-10 para disminuir la probabilidad de ataque.

Según el escenario de la tabla en 6-of-10 se tienen 37.7% de depósitos robados, parece mucho, pero recordemos que estamos en un caso extremo donde los atacantes tiene el 50% de todos los servidores disponibles con buena reputación, si los atacantes tienen un 40% de los servidores la probabilidad disminuye a 16.62%, y con un 20% disminuye a sólo 0.64%. La restricción en el monto de los depósitos por cada dirección multifirma y una contundente disminución de la reputación de esos servidores en cada robo mitigan el daño en caso de darse una alianza de servidores corruptos.

Lo más importante entonces es crear un sistema donde los usuarios puedan escoger los servidores idóneos, reduciendo al mismo tiempo la posibilidad de alianzas.


Garantizando la idoneidad de los servidores disponibles

Sin la llave en manos del usuario, lo más importante entonces en este sistema multiescrow será garantizar que los servidores usados para crear las direcciones de los depósitos no pertenezcan a un solo administrador (o a un grupo de aliados) para evitar un ataque coordinado combinando las firmas de esos servidores corruptos para hacer gastos sobre los depósitos, se podría proponer que los desarrolladores incluyamos una lista de "servidores de confianza" haciendo algún tipo de convocatoria para escoger servidores idóneos para la red "en los que se pueda confiar", pero esto no brindaría la suficiente certeza de idoneidad, pues los jueces que hacen el filtro son susceptibles de ser corrompidos, y los criterios usados para escogerlos corren el riesgo de no ser los más adecuados; un sistema de votos tampoco sería lo mejor debido a la posibilidad de fraudes a través de la falsificación de votos, o de consecución de votos a través de engaños.

La mejor solución sería un sistema de juzgamiento descentralizado, admitir dentro de la red de servidores a cualquier persona interesada dejando como juez a una serie de reglas objetivas evaluadas por cada usuario de la exchange, la objetividad de las reglas es crucial, si cada usuario juzga basado en la confianza que puede aparentar un aspirante a servido acarrearía incertidumbre por posibles malos juicios debido a los criterios subjetivos de cada persona, se debe usar una convención de criterios automáticos y objetivos, que le permitan al usuario estadísticamente escoger automáticamente a los servidores más idóneos disminuyendo además el peligro de alianzas mal intencionadas. Nos debemos concentrar entonces en proponer los criterios adecuados que serán incluidos en esa serie de reglas, las cuales determinarán qué servidores se usarán para cada depósito.

________________________________
Lo agrego al primer post. Continuaré desarrollando la propuesta de ese sistema para escoger servidores idóneos en otro post. Repito, cualquier comentario es más que bienvenido.


Edito: Dándole un par de vueltas mas, si existiera la posibilidad de bloquear carteras, se podría buscar un sistema en que el comprador bloquea la cartera del vendedor mediante el pago, osea a la vez que compra bloquea la cartera del vendedor con su saldo y pasaríamos a intercambios de carteras ( que tampoco se si existe), no de monedas directamente. Roll Eyes

Supongo que esto de bloquear los fondos es precisamente la motivación original del OP en usar multifirma. Una vez los peers pierden el acceso exclusivo a sus fondos y se mete al escrow en la ecuación, se gana mucho en seguridad.

Curioso que lo menciones vgo, éste proyecto comenzó con la idea de intercambiar llaves privadas P2P, fue lo primero que se me ocurrió, pero lo descarté por que precisamente no pude encontrar una forma de "bloquear" esos fondos, ni de garantizar la "destrucción" de la llave privada por parte de quien la había creado (alguien la tiene que crear pues se necesita que alguien calcule la llave pública, un computador, cuyo dueño es un ser humano corruptible), incluso pensé en sistemas en donde se creara el par de llaves en un algoritmo compartido entre los usuarios y un escrow, pero se complicaba demasiado el asunto así que tomé el camino de la dirección multifirma.
fernarios (OP)
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
October 18, 2014, 03:10:35 PM
 #25

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?.
cryptoonion888
Full Member
***
Offline Offline

Activity: 191
Merit: 100


I dont mind the pain


View Profile
October 18, 2014, 06:00:24 PM
 #26

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).

LYKKE +++++ IOTA+++++BURST+++++IGNIS+++++ARDR+++++BCH
fernarios (OP)
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
October 18, 2014, 06:09:19 PM
 #27

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...
cryptoonion888
Full Member
***
Offline Offline

Activity: 191
Merit: 100


I dont mind the pain


View Profile
October 20, 2014, 12:06:59 AM
 #28

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/

LYKKE +++++ IOTA+++++BURST+++++IGNIS+++++ARDR+++++BCH
fernarios (OP)
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
October 20, 2014, 02:50:48 AM
 #29

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...
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
October 20, 2014, 04:34:13 PM
 #30

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".
fernarios (OP)
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
October 20, 2014, 05:54:34 PM
Last edit: October 21, 2014, 01:39:22 PM by fernarios
 #31

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).
diaviidi
Member
**
Offline Offline

Activity: 102
Merit: 10


View Profile
October 21, 2014, 05:56:55 PM
 #32

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
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
October 21, 2014, 07:47:55 PM
 #33

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.
fernarios (OP)
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
October 21, 2014, 08:54:44 PM
 #34

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...
diaviidi
Member
**
Offline Offline

Activity: 102
Merit: 10


View Profile
October 22, 2014, 07:43:17 AM
 #35

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?
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
October 22, 2014, 08:28:02 AM
 #36

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.
fernarios (OP)
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
October 22, 2014, 09:24:48 AM
 #37

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.
diaviidi
Member
**
Offline Offline

Activity: 102
Merit: 10


View Profile
October 22, 2014, 10:53:58 AM
 #38

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? 
fernarios (OP)
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
October 22, 2014, 12:36:38 PM
 #39

¿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...
diaviidi
Member
**
Offline Offline

Activity: 102
Merit: 10


View Profile
October 22, 2014, 01:50:10 PM
 #40

¿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.
Pages: « 1 [2] 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!