"El entorno de producción está más allá de su control": Rian Lewis sobre la prueba de proyectos de blockchain



Puede parecer que es demasiado tarde para discutir las criptomonedas y los proyectos de blockchain: dijeron, todo lo posible se dijo hace un par de años, y luego no se cumplieron las altas expectativas, la emoción disminuyó y el tema se volvió irrelevante.

Pero, de hecho, ahora puedes hablar de ella en serio. En el pico de la exageración, fue difícil romper los gritos de "IMPONIENDO EN NUESTRA OIC NO ES TARDE MÁS TARDE" a algo más razonable, y en la relación señal / ruido el segundo componente aumentó. Pero ahora, cuando la exageración disminuyó y los amantes de la comida rápida cambiaron a otra cosa, se hizo posible hablar normalmente. Y cuando la cuestión de "en qué invertir" dejó de eclipsar todo lo demás, se hizo más fácil tocar aspectos técnicos.

Ryan Lewis (conocido, por ejemplo, por el pequeño servicio CountMyCrypto ) ve el ecosistema blockchain tanto desde la perspectiva de un entusiasta como desde la perspectiva de un especialista técnico: está interesada en "lo que está sucediendo" y en probar proyectos de blockchain. Y decidimos hacerle preguntas primero sobre la primera, y luego pasar a la segunda.


- En 2018, cuando muchos se alejaron de las criptomonedas, sigues siendo su entusiasta. ¿Crees que a la larga tienen un futuro brillante?

Eso es correcto. ¿Conoces el ciclo de Gartner Hype ? Hay un ciclo típico: primero, se asignan expectativas injustificadas a la nueva tecnología, luego se decepcionan y, después de todo esto, se desarrolla y se vuelve verdaderamente demandada. En mi opinión, estamos ahora en el punto más bajo de decepción. Esto se debe en parte a la actual crisis de criptomonedas. Como saben, la tendencia de los precios es a la baja ahora. Sin embargo, existe una opinión generalizada con la que estoy de acuerdo en que es en esta fase donde se lleva a cabo un trabajo importante.

Ahora hay mucha menos especulación que en 2017 y la segunda mitad de 2016. Los proyectos se desarrollan lenta pero seguramente. Paralelamente a la caída de los precios, el interés en las ICO está disminuyendo, pero el número de nuevas empresas no está disminuyendo: solo las empresas están cambiando a la financiación privada. Todavía faltan ideas prometedoras.

En mi opinión, esta es una tendencia positiva, porque gracias a ella, se filtraron personas con intenciones poco realistas. Creo que sabe que una parte importante de las tecnologías modernas en esta área no se escala bien, y muchas nuevas empresas que han recaudado grandes sumas de dinero se han basado en expectativas extremadamente poco realistas. Ahora ha llegado el período de consolidación y, desde mi punto de vista, esto es lo mejor. Se está trabajando en proyectos muy interesantes, simplemente no hablan de ellos todos los días en las noticias.

Específicamente, en el caso de Ethereum, una disminución en el número de transacciones me parece un signo saludable. La arquitectura de blockchain de Ethereum no está diseñada para la cantidad de aplicaciones descentralizadas que comenzaron a surgir el año pasado después del lanzamiento de CryptoKitties. Uno de los evangelistas de Parity IT recientemente, incluso en tono de broma, pidió dejar de implementar nuevos DApps bajo Ethereum. Muchos se indignaron al escuchar esto, pero, en esencia, tenía razón. No puede continuar implementando más y más aplicaciones descentralizadas en Ethereum sin pensar en la arquitectura de estas aplicaciones. Es necesario tratar de llevar a cabo acciones máximas fuera de la cadena, ya que la situación actual no puede continuar por mucho tiempo.

En general, ahora se observa un nivel bastante alto de actividad, pero debido al hecho de que todas las nuevas cadenas de bloques están lanzando sus redes principales, la cantidad de transacciones se distribuye entre una gran cantidad de cadenas de bloques. Además, la popularidad de blockchains sin tokenización está creciendo: Hyperledger y Corda pueden mencionarse como ejemplos. Corda se creó en el consorcio R3, se puede usar como una cadena de bloques privada. Entonces, ahora hay una serie de blockchains que no son públicas y están tokenizadas, no puedes ver actividades actuales en ellas. Bueno, por supuesto, hay blockchains dentro de varias organizaciones creadas por diversas implementaciones de Blockchain como servicio como SAP o las ofrecidas por Microsoft. Entonces, creo que el nivel de actividad ahora es bastante alto, solo que no toda esta actividad es visible para el público.

- Hace unos años, muchos saborearon la noticia de que incluso la conferencia de Bitcoin dejó de aceptar pagos en bitcoins debido al aumento de las tarifas y el tiempo de procesamiento. ¿Qué pasa con las criptomonedas como forma de pago?

- Como ejemplo, puedo citar la conferencia Paralelní Polis del Congreso de Hackers en Praga, donde estaré ahora mismo: aceptan pagos solo en bitcoins y otras criptomonedas. Ya compré un boleto para bitcoins, y mientras esté allí, también les compraré toda la comida. Sin embargo, planteó un problema realmente importante: debido al aumento de los precios de Bitcoin, durante algún tiempo la gente lo usó no para transacciones, sino como una inversión. Todo el tiempo se decía que era oro electrónico, por lo que se compraba para almacenamiento y no para transacciones. En 2013, compré un poco de cerveza y café para bitcoins, luego costó unas pocas libras o unos pocos euros, y ahora se puede vender la misma cantidad en bitcoins por una cantidad bastante decente de dinero.

De hecho, mucho depende de una persona en particular. Por ejemplo, tengo una novia de Rusia que no tiene una cuenta bancaria, durante los últimos cuatro años ha estado usando solo criptomonedas por razones éticas. Hay un pequeño número de tales personas, un ejemplo de las cuales demuestra que vivir en principio es posible. Pero una parte importante de esas compañías que solían aceptar bitcoins ahora han dejado de hacerlo. Esto se debe en parte al hecho de que durante un aumento de interés en bitcoins en algún café o bar, podrían capacitar a un empleado para usar la aplicación, y luego este empleado se fue, y el próximo cajero no sabía cómo trabajar con la aplicación. Es una pena que haya sucedido así, porque estas habilidades son muy simples. En gran medida, todo está vinculado a la preservación del conocimiento existente. Se está haciendo mucho ahora para integrar la criptomoneda y el dinero fiduciario, simplificando el pago.

En general, ahora estamos en algún tipo de fase intermedia. Al principio, había mucho entusiasmo debido al hecho de que las personas esperaban pagar todo solo con criptomonedas. Luego, este entusiasmo se acabó y la inestabilidad de los cursos alejó a muchos. Sin embargo, creo que no está lejos el momento en que las personas usarán muchas criptomonedas diferentes. También vale la pena recordar los intentos de varias compañías de introducir alguna censura; se sabe, por ejemplo, que PayPal cierra las cuentas de las personas por razones políticas. Gracias a esto, la conciencia de la necesidad de dinero sin censura ahora está ganando terreno.

- Hace tres años les gustaba repetir "las posibilidades de blockchain no se limitan a bitcoin, tiene muchas otras aplicaciones posibles", e intentaron usarlo en varios campos. ¿Y qué ha demostrado la vida ahora? ¿Fue útil en la práctica en otros lugares?

- si. Uno de los proyectos recientes más famosos fue creado por Samsung para el transporte de mercancías. Puede saber que cada buque de carga que viene de China a Europa genera alrededor de dos kilogramos de documentos. Esto requiere una gran cantidad de recursos, ya que no se trata solo de papel, sino también de cientos de personas que firman, sellan, completan estos documentos, etc. Todo esto es necesario porque las personas no confían unas en otras: la empresa que recibe los productos quiere asegurarse de que no sea falsa; las autoridades quieren asegurarse de que la empresa no importe nada ilegal; Las autoridades de diferentes países no confían entre sí. Gracias a esto, surgió la idea de usar blockchain para resolver este problema de falta de confianza, especialmente cuando se aplica al transporte de mercancías. Y recientemente, un consorcio liderado por Samsung realizó el primer envío desde Asia a Europa, registrado a través de blockchain.

Por lo tanto, ahora hay proyectos exitosos basados ​​en blockchain, sin embargo, la mayoría de ellos todavía están en la etapa experimental. Es cierto que algunas empresas están aumentando lentamente su actividad, por ejemplo, Power Ledger, se dedica a la distribución de electricidad y registra pequeñas transacciones utilizando blockchain. Más recientemente, han expandido su campo de actividad a tres ciudades en Australia y parecen ofrecer sus servicios incluso fuera de Australia. Algunos bancos usan blockchains para cerrar negocios.

Cuando hablamos de blockchains fuera de Bitcoin, debes tener cuidado. Hace unos años, el ambiente era popular de que necesitábamos una cadena de bloques sin bitcoin, pero creo que la gente ahora se dio cuenta de que las cadenas de bloques públicas necesitaban algo de motivación con los tokens. Pero en las blockchains privadas o blockchains de consorcios realmente hay muchas actividades diferentes que no están relacionadas con bitcoin.

- ¿Puedes dar un ejemplo negativo, cuando parecía "la cadena de bloques es muy útil aquí", pero la vida ha demostrado que esto no es así?

- Es difícil responder objetivamente. Creo que no encontrará ese caso para que alguien declare públicamente: "la cadena de bloques no funciona aquí". Pero hubo situaciones en que las empresas tuvieron que hacer un giro de 180 grados.

En Berlín hay una startup interesante llamada SatoshiPay, se dedican a micropagos en la publicación. Su intención era permitir a los escritores monetizar su contenido: por una pequeña tarifa en bitcoins, una pequeña parte de la página se abre al lector, luego la siguiente y así sucesivamente. Al principio, la compañía rápidamente ganó fama y pudo recaudar fondos, pero luego la tarifa por las transacciones en Bitcoin se hizo demasiado alta y todos sus planes se quemaron debido a esto. El caso no terminó en un completo fracaso, pero tuvieron que cambiar de Bitcoin a Stellar. Otro ejemplo que puedo citar se refiere a los mercados de predicción. Estamos hablando de algunos sitios de apuestas que originalmente estaban basados ​​en Ethereum y que posteriormente tuvieron que abandonarlo. En ambos ejemplos descritos, la idea de usar blockchain era bastante razonable, simplemente se tomó la decisión concreta incorrecta.

Hay otros ejemplos de giros bruscos. No puedo nombrar nombres específicos, pero hubo rumores sobre nuevas empresas que usaron blockchain para crear registros médicos. Al principio, esto parecía una dirección prometedora, pero luego surgieron preguntas con respecto al lado legal del asunto: ¿está permitido tener una estructura de datos inmutable para almacenar información, que puede ser necesario cambiar en caso de cambios en la legislación o por razones éticas, es decir, si una persona logra el derecho de no incluir esto? información en su libro de medicina.

Creo que hubo muchas situaciones en las que las empresas intentaron usar blockchain simplemente porque estaba de moda, y no porque tuvieran un problema específico de falta de confianza, que podría resolverse usando blockchain. Creo que este tipo de proyecto está experimentando dificultades en este momento. Pero, hasta donde yo sé, por lo general, estas dificultades se resuelven cambiando de una cadena de bloques a otra o, en aras de ahorrar tiempo, cambiando de una cadena de bloques pública para todo el proyecto a cadenas de bloques privadas con prueba de autoridad.

- Pasemos a más problemas técnicos. Tiene una publicación sobre diez conceptos erróneos comunes sobre blockchain / criptomonedas. Está dirigido al público en general, y la mayoría de nuestros lectores ya saben lo que se describe allí, pero puede que no sepan otra cosa. ¿Hay alguna idea errónea sobre blockchain que sea común entre la audiencia de TI?

- No usaría la palabra "error", porque cualquier persona que se dedique a la tecnología y al menos un poco familiarizado con la cadena de bloques tendrá una muy buena idea de los conceptos básicos de esta tecnología. Creo que es más correcto hablar no sobre deshacerse de los errores, sino sobre algunos nuevos conocimientos, capacitación adicional en el desarrollo y prueba de blockchains públicos (los blockchains privados están mucho más cerca de lo que suelen hacer los programadores).

Creo que lo más difícil es acostumbrarse al hecho de que el entorno de producción está completamente fuera del control del desarrollador. No es fácil predecir cuál será el rendimiento y simular las condiciones necesarias. Para mí, esta fue la principal dificultad cuando escribí una solicitud para Ethereum con mis amigos hace dos años.

Todo salió a la perfección con nosotros, hubo una tubería bien establecida, la aplicación se lanzó con éxito en la blockchain virtual, que es parte del conjunto de herramientas proporcionadas por Ethereum. Implementamos la aplicación en Testnet, y allí funcionó perfectamente. Pero cuando se implementa en una red de producción, se vuelve mucho más difícil predecir cómo se comportará la aplicación con el usuario. Por ejemplo, son posibles retrasos numerosos e impredecibles. Muchos problemas graves no ocurren en un entorno de prueba, sino que surgen solo en la producción.

Supongamos que tiene un contrato en Ethereum, y este contrato, entre otras cosas, crea dinámicamente billeteras para los usuarios. Pero se puede lanzar otro contrato de la misma aplicación antes de la creación de billeteras, y esto sucederá porque el bloque correspondiente se extraerá primero. Por lo tanto, habrá muchas trampas explotadas frente a usted que a menudo no se pueden encontrar antes de la producción. Por lo tanto, no es suficiente que pruebe la aplicación, debe predecir de antemano cómo se comportará en la producción.

Por ejemplo, recientemente se descubrió un error muy grave en una billetera con la billetera Parity de múltiples firmas. La billetera, de hecho, fue deshabilitada debido al hecho de que un extraño tuvo acceso a una función que se suponía que era privada. Por lo tanto, logró desactivar todo el contrato. Esta situación no debería haber surgido, pero desde que sucedió, no se puede hacer nada, porque este código ya apareció en miles de máquinas y es imposible deshacerlo. Por lo tanto, cuando piense en la arquitectura y las pruebas, debe pensar en los peores escenarios posibles y cómo mitigar los posibles daños en una situación en la que no puede recordar el código.

Por lo general, al escribir un sitio como último recurso, siempre puede apagar su servidor. Por supuesto, le costará dinero, pero hay una oportunidad. Y en el caso de la cadena de bloques pública, ni siquiera puede hacer esto: una vez que el código implementado ya no es posible regresar.

- Cuando piensa en probar proyectos de criptomonedas, lo primero que recuerda es historias con robos gigantes. ¿Entiendo correctamente que al probar la consideración más importante es la seguridad?

Eso es correcto. Según el efecto Metcalfe, la red con más usuarios será la más exitosa y popular en el futuro. Debido a este efecto, de todas las cadenas de bloques públicas, la mayor parte del desarrollo se lleva a cabo en Ethereum. Se han creado muchas herramientas y bibliotecas para ella. Por ejemplo, hay un inicio de OpenZeppelin que proporciona acceso a varias bibliotecas con la funcionalidad más básica; por ejemplo, tienen una biblioteca SafeMath que evita desbordamientos. Por lo tanto, se ocupan de algunas cosas muy simples, por ejemplo, se aseguran de que incluya bibliotecas de código abierto por seguridad.

Ser responsable del dinero de otras personas siempre es difícil, pero no solo el robo es una amenaza. En el caso de los hacks más graves, a menudo no se trataba de un robo, sino de un bloqueo del acceso al dinero: este fue, por ejemplo, el caso del error en la billetera Parity, del que ya hablé. El dinero no desaparece, pero es imposible que el propietario lo reciba. Desde el punto de vista de la seguridad, esta es una amenaza completamente nueva que también debe tenerse en cuenta. No debe pensar si alguien puede robar este dinero, sino si el sistema es seguro, si alguien puede cancelar el contrato.

Cuando hablo de probar blockchains por seguridad, siempre trato de transmitir la idea de que las vulnerabilidades pueden existir no solo en los contratos inteligentes. Su razón también puede ser que los desarrolladores se centran completamente en el contrato inteligente, y por eso pierden de vista la aplicación en su conjunto. Por supuesto, esto juega un papel mucho menor si simplemente proporciona una base de datos o API. Sin embargo, muchos desarrollan aplicaciones web o aplicaciones móviles basadas en blockchains, y aquí pueden surgir vulnerabilidades muy importantes debido a que los desarrolladores no piensan correctamente. Por ejemplo, el año pasado el intercambio criptográfico italiano BitGrail pirateó la moneda Nano. No hubo problemas al interactuar con billeteras de varias monedas en el back-end. Pero todavía no puedo creer que nadie haya notado el error cometido por el desarrollador de la interfaz. Cuando un usuario retiró dinero de su billetera, se creó un cheque con un saldo de cuenta en el lado del cliente, y debido a esto, cualquier atacante con el conocimiento más básico de las herramientas de Chrome podría retirar dinero, cada vez que cambia su saldo a una cantidad mayor. Muchos se aprovecharon de esto, y hubo una gran fuga de fondos.

Por lo tanto, al tratar de hacer que la cadena de bloques sea lo más segura posible, los desarrolladores a menudo ignoran la seguridad elemental de, por ejemplo, la interfaz. Y esta no es la primera vulnerabilidad front-end de la que se aprovecharon los atacantes. Curiosamente, los equipos de desarrollo en cuestión tienen bastante experiencia; , . , - . , - . . , .

— , «» ?

— , . , , . , .

, API, , . , user experience. , , , , . .

, , . , , , , .

, . . , , , . Bitcoin, , Bitcoin , Litecoin. , , Block Explorer. , .

: , Docker, Jenkins .

— , , -?

— . , , — . , — , . , — , , . , , , , , .

— , , : . ?

— , , . , computer science 10 , , , . , , , . - , . , , .

, , , — , , , - . . , , SQL NoSQL Redis. , 5-6 , .

— , , , « , ». , , - , ?

— , . , , , .

, , , . , . ; , . , .

, , , , - . , , . , , , , . , big data, , Hadooop. , . , . , , .

— , . , , : ( , )?

— , — . . , , , — , Lightning Network Bitcoin Litecoin, Plasma Raiden Ethereum. — . , Ethereum — , proof-of-work proof-of-stake. , , . , , , .

, , , , . — , , , , .

— , , . , , . , , , - ? ?

— , . . , , . , , . , , , .

— . !

. - : , , , . Heisenbug 2018 Moscow , 6-7 . , .

Source: https://habr.com/ru/post/es428556/


All Articles