Mostrando entradas con la etiqueta blockchain. Mostrar todas las entradas
Mostrando entradas con la etiqueta blockchain. Mostrar todas las entradas

domingo, 9 de diciembre de 2018

Los mineros de marchan de Bitcoin ¿Eso es bueno o malo?


Que las criptomonedas no están en su mejor momento es un titular que llena las webs de internet.

Todo el mundo especula si es el fin de Bitcoin, si su precio cae en picado y sin frenos hasta desaparecer en la memoria de los “Archives” de Internet. Para colmo se esta acabando el año por lo que decenas de “sabios” y “resabidos” se lanzan a dar sus visiones de lo que pasará durante 2019 con las criptomonedas como de Aramis Fuster se tratara (o al menos suelen acertar con igual proporción).

Estamos ante un momento de convulsión, eso es indiscutible y están sucediendo eventos que en pasadas crisis de Bitcoin no sucedieron, como es el apagón que están haciendo muchos mineros.
Como me gustó mucho eso de hacer vídeos a partir de la experiencia de mi primer MOOC sobre Blockchain (si, ya estoy trabajando en el segundo) he cambiado la filosofía de escribir posts por probar en el mundo de YouTube.

Os traigo la inauguración de mi canal de YouTube con un primer vídeo analizando la repercusión de que los mineros abandonen Bitcoin en un alarde de técnica en edición de vídeos (si, esto es un chiste os podéis reír y más que lo haréis cuando veáis esos efectos sonoros del vídeo).
Espero os guste tanto como lo que me divierto yo creándolo, disfrutadlo.


miércoles, 18 de abril de 2018

Curso de Introducción a Blockchain


Por razones que son dignas de un post aparte (atentos a mi LinkedIn porque seguro aparece ahí antes) he podido gozar de unos días de maravillosas vacaciones las cuales he aprovechado para poder hacer proyectos que me ilusionaban mucho.

Hoy os quiero presentar uno de ellos finalizado y aprobado, ya esta disponible mis primer curso de

Introducción a Blockchain



Curso que esta enfocado a todo tipo de públicos:
  • Empresas: Tanto para adoptar la tecnología en sus procesos como para poder desarrollar proyectos propios, es fundamental entender las partes que la conforman y como encajan entre ellas.
  • Inversores: Las criptomonedas son un activo de muy alto riesgo pero también de altas ganancias, es por ello que atrae a un gran numero de inversores por todo el mundo. Pero sin entender la tecnología que soporta dichas divisas, estos inversores irán ciegos. Pudiendo cometer grandes errores al apostar por nuevas monedas que tecnológicamente no aportan nada. Sin este curso no serán capaces de detectarlas.
  • Estudiantes e investigadores: Los desarrolladores de Smart Contract son los más buscados y mejor pagados del momento. No se puede investigar ni desarrollar sin comprender las bases.
Si entráis en el curso podéis ver el índice del mismo completo y un video de promoción explicando todo lo que se verá en el mismo.

Me ha costado mucho trabajo e ilusión hacerlo, espero que os guste.

miércoles, 21 de febrero de 2018

Hacking de semillas en la criptomoneda IOTA - Parte 1



Resultado de imagen de iota securityAdentrándome más en las diferente criptomonedas el otro día estuve estudiando sobre la generación de sus semillas y sus direcciones público/privada. Toda esta curiosidad viene movida por la noticia de que han robado recientemente 4 millones de IOTA para empezar esta noticia me parece algo confusa ya que según la escala de cambio de IOTA:



1.000.000 de IOTA = 1 MIOTA que es la moneda con la que se especula en las casas de cambio es decir, si robaron 4 millones de IOTA ¿Se podría decir que robaron 4MIOTA, que al cambio ( Y siendo generosa redondeando al alza ya que los 2 euros hace tiempo que la criptomoneda no los ve) robaron unos 8 euros? No, seguramente no pero dejemos sarcasmos aparte (fueron 4 millones de dólares robados) y entendamos porqué pasó esto.

Las criptomonedas se basan en un par de claves pública y privada. Tu eres el dueño y señor de la privada. Nunca has de compartirla, y cuanto más rara y aleatoria sea, mejor.

A partir de esa clave privada se genera una pública, que es la que expones al mundo para poder hacer tu recepción y envío de la criptomoneda. Así trabaja Bitcoin y la mayoría de las criptomonedas pero IOTA… IOTA es diferente.

Para empezar la semilla consta de 81trytes, no os volváis locos eso lo único que significa es que la semilla privada en IOTA tiene que tener 81 caracteres y para ello los únicos caracteres que admite son:



Si, la semilla de IOTA está formada por el alfabeto en mayúsculas y los 9. Si hay algún matemático en la sala que nos calcule la barbaridad de semillas que se pueden producir con esa combinación de caracteres.

Entonces ¿porque robaron esos tokens? Sencillamente porque la gente usaba páginas web para que les generara dicha semilla de forma aleatoria. Alguna de esas webs tenía ganas de hacerse rica y almacenó las semillas que generaba, pasado un tiempo decidió entrar con cada una de esas semillas y transferirse lo que hubiera dentro de ellas.

Fue a partir de esa noticia cuando se levantaron varias voces sobre si es seguro o no que lo único que necesitas para acceder a tu cartera sea conocer la semilla (o en el mundo Bitcoin la clave privada) y ya que no me ha tocado la lotería estas navidades y además quería probar la API de IOTA para Python he escrito un programa para ver si alguien desafía a la estadística y logra encontrar una semilla de IOTA de forma aleatoria.

Os presento Lottery.
Vamos a ver rápidamente qué hace este programilla.

Tiene solo dos funciones, la primera se llama crea_seed y es donde, tal y como os he explicado, coge el conjunto de valores que aceptan las semillas de IOTA y genera aleatoriamente cadenas de 81 caracteres de longitud.

La segunda función le he puesto un bucle infinito (ahora es cuando los puritanos del código me llamarán de todo xD) el cual llama a generar la semilla y después usamos la función del API de IOTA api.get_account_data() para que se descargue toda la información de esa cuenta.

Aquí recordar que son semillas privadas por lo que accedes a toda la información. Muestra por pantalla todas las que ha desestimado como buenas ó tienen saldo 0.

Pero si eres la persona con más suerte del mundo y logras encontrar una semilla (que ya es complicadísimo) pero encima con balance superior a 0, te manda un correo para que sepas que te ha tocado la lotería.

Es una completa tontería de programa pero vale para dos cosas:
  • Deja de manifiesto lo seguro que es el sistema de semilla cuando realmente la guardas bien. Infinitamente más seguro que un login/password centralizados en un servidor.
  • Un pequeño ejemplo de cómo usar la API de Python para IOTA
Hasta aquí hemos entendido cómo funciona el sistema de semilla en IOTA, pero como os dije al principio es muy diferente al resto de criptomonedas.

En el próximo post vamos a ver cómo funcionan las direcciones en IOTA y otro pequeño programa para encontrar semillas de forma un poco más sencilla y dirigida. ¿Seguiremos creyendo que IOTA es seguro?

viernes, 9 de febrero de 2018

Ataques contra Blockchain: El 51%



La semana pasada facilité tres documentos con los que se puede entender muy bien qué es blockchain y como funciona. Esta semana quería hacer un compendio de ataques famosos, con los que nos aterran en todos los blogs por donde pasamos, sobre blockchain pero según he comenzado a escribir la cosa se ha alargado muchísimo así que he decidido romperlo en varios posts diferentes.

Me ha parecido que el del 51% debía ser el primero ya que no hay documento en la red donde no lo mencionen pero.. ¿realmente es algo a temer? O más bien es algo que se pone en todas partes porque es “fácil de entender”.

El ataque se resume en que si alguien tiene el 51% de los recursos, puede llegar a manipular los datos que se introducen en el bloque e introducir transferencias falsas produciendo de ese modo, robos. Afecta tanto en monedas basadas en Prueba de Trabajo (PoW) como en Prueba de Participación (PoS).

Vamos a entender esto con más detalle según cada una de las posibles pruebas.

Prueba de Trabajo (PoW)

La mayoría de las criptomonedas usan este tipo de pruebas para poder incluir dentro de su Blockchain un nuevo bloque, por lo que lo que le interesaría a un atacante dominar en su 51% es la cantidad de hardware haciendo físicamente minería. Es decir, necesita que el 51% de las máquinas que están haciendo minería en el mundo estén bajo su control. En esta web se puede ver, en tiempo real, que compañías, hubs o pools de minería controlan que %. Como podéis observar la que más (actualmente) es BTC.com con la friolera de un 24,3%. Esa ya es una cantidad brutal pero para que llegara al 51% tendría que crecer exponencialmente, ya que el resto de pools también lo hacen.
La probabilidad de que esto pase es casi imposible. A esta dificultad hay que añadir que, para que un bloque sea aceptado en la blockchain al menos 6 mineros han de aceptarlo por lo que añadid la dificultad que los 6 sean de ese 51%, con que uno solo dijera que ese bloque no le cuadra ya no valdría de nada.

En mi opinión personal es tan complicado que ambas condiciones se cumplan que el día que lo haga será porque ya nadie nos importará, Bitcoin estará muriendo quedando apenas mineros que los sustenten y por eso podrán manipularlo.


Prueba de Participación (PoS)

Esta prueba será implementada a finales de este año en Ethereum, van con retraso pero es uno de los objetivos de la criptomoneda para diferenciarse. Lo que dice es que, para evitar gastar tantos recursos naturales (buscando por fuerza bruta nonces) la red se sustenta en un parámetro de confianza que es la cantidad de dicha criptomoneda que tienes. Es decir, que si tienes en tu Wallet muchas monedas de Ethereum eres más confiable ya que serás el primer interesado en que dicha moneda funcione correctamente por lo que tus validaciones de bloques son mejor aceptadas que los que tienen menos monedas que tu. Siguiendo esa premisa el ataque del 51% sigue siendo posible ya que si dispones del 51% de las monedas que existan en esa divisa puede que seas el que valide muchas transferencias consecutivas y, por ello, incluso llegar a manipular transferencias.
Bien, para ver si este ataque tiene base como para preocuparnos pensemos en las dos criptomonedas por excelencia, primero en Bitcoin. Tiene 21.000.000 de monedas generadas por lo que alguien que quiera hacer este ataque tendría que comprar, al menos 10.710.000 bitcoins. Ahora que las criptomonedas están desplomándose vamos a poner un valor de media de 4000 euros el bitcoin (y tirando a la baja) eso querría decir que un atacante necesitaría invertir 42.840.000.000 de euros para poder hacerse con esa cantidad ¿Os parece viable? Pues ahora imaginaros con Ethereum me direis “vale mucho menos en el mercado” pero Ethereum no tiene límite de monedas, por lo que…. ¿cuando alguien sería el dueño del 51% de la divisa?

Lo dicho, el día que se logre hacer un ataque del 51% es porque esa moneda ya no le importará a nadie. Puede que valga menos de 0,000001 la unidad y alguien con mucho humor y esperanza compre las suficientes como para hacer ese ataque soñado. Hoy en día dadas las dos tipologías de pruebas creo que no es viable, por lo que podemos dormir tranquilos.

miércoles, 31 de enero de 2018

Recursos para entender Blockchain



Hace tiempo que vengo dándole vueltas sobre como escribir un artículo (o serie de artículos) sobre Blockchain desde 0, coincidió que una compañera me pidió dar una charla sobre esto mismo y lo hice encantada, creía que me valdría para poder enfocar también estos artículos pero no, sigo sin verlo claro.

Me he dado cuenta de que hay muy buena información en la red donde poder entender esto fácilmente.

Estoy preparando un MOOC sobre Blockchain para desarrolladores, contado y visto con calma, siempre se ve mejor. Pero mientras tanto, quiero compartir con vosotros tres documentos que son más que suficientes para entender Blockchain tal y como Bitcoin lo pensó.

Es muy interesante remarcar que cada criptomoneda ha incluido cambios en este modelo inicial por eso, cuando estéis decididos por una, revisad bien su Whitepaper porque el Blockchain de Bitcoin se parece al de Ethereum pero ya incluye muchos cambios, y si te vas a IOTA no se parece en nada. Por lo que es importante que partas de esa base, estos documentos son excelentes para entender las bases sobre las que nació Blockchain pero luego ha evolucionado y cambiado mucho, según la criptomoneda que te interese.

En primer lugar os dejo con dos documentos, uno en inglés y otro en castellano, enfocados por completo a Blockchain según Bitcoin, así también se puede entender el concepto de minería y los problemas que ésta traerá.

http://www.the-blockchain.com/docs/Princeton%20Bitcoin%20and%20Cryptocurrency%20Technologies%20Course.pdf

https://repositorio.comillas.edu/xmlui/bitstream/handle/11531/70/TFG000011.pdf?sequence=1

En segundo lugar os dejo el documento que publicó el NIST, un borrador sobre Blockchain, explicando todos estos conceptos básicos pero además ya habla de las diferencias con Ethereum, en mi humilde opinión, la criptomoneda que más ha aportado después de Bitcoin desde una perspectiva de innovación tecnológica.

https://csrc.nist.gov/CSRC/media/Publications/nistir/8202/draft/documents/nistir8202-draft.pdf

Con estos tres documentos son más que suficientes para adentrarte a entender que es Blockchain y porqué todo el mundo habla de ello.

martes, 16 de enero de 2018

Empezando con el desarrollo de DApps en Ethereum



Como ya he comentado varias veces estoy haciendo un doctorado, no se me ocurrió otra cosa
que meterme en IoT + Blockchain y, como buena curiosa que soy, nada mejor para entender las
cosas que meterte en faena y poner a crear tus propias DAaps.

Primero ¿Que es una DApp?
DApp es el acrónimo para de Decentralized Application, no son ni más ni menos que
aplicaciones basadas en la tecnología Blockchain (para los que no entiendan bien
Blockchain, me apunto para la semana que viene un compendio de recursos para ellos).

Las características que toda DApp comparte son:
  • Open Source: Los cambios son consensuados. 
  • Descentralizada: Los datos son guardados en Blockchain (que es descentralizado por definición). 
  • Probada: Bitcoin usa PoW, Ethereum también aunque esta programado para finales de este año hacer un hibrido de PoW y PoS. Han de ser probadas. 
  • Incentivada: Cuando se validen ls transferencias, se han de incentivar. Aquí no estoy muy de acuerdo con que esto se aun punto general ya que si piensas en criptomonedas como IOTA (que tendrá pronto Smart Contracts) todas sus transacciones y validaciones son gratuitas. Pero por el momento dejemoslo como característica general. 

Resultado de imagen de blockchain


Ethereum diferencia entre tres tipos de aplicaciones:
  • Financieras: Manejan “cripto-dinero” de forma directa. 
  • Semi-financieras: Donde hay dinero en juego pero no es la finalidad principal. 
  • No financieras: Donde el dinero no es lo que importa aquí pone como ejemplo los sistemas de votación o gobierno descentralizado. Siempre que un minero procesa un Smart Contrat se mueve dinero (por el gas consumido para procesarlo) así que, no os engañeis, siempre hace falta tener ether de por medio. 
Bien, ya sabemos lo que queremos hacer: una DApp. Ahora, la pregunta que he visto por tantos rincones de la red ¿Por donde empiezo?
Una DApp no es diferente a cualquier otra aplicación, consta de dos partes:
  • Front: Lo bonito. Lo que ve el usuario. Aquí los lenguajes de desarrollo son libres, el front lo puedes hacer en lo que más te guste. Lo más habitual son front de tipo web (eso también influye en que MetaMask solo tiene soporte web hoy en día, pero lo explicaremos luego) pero aquí puedes sentirte libre de usar el lenguaje que quieras. 
  • Back: La conexión con Blockchain. Esta es la parte donde vais a poder ver la diferencia entre una APP y una DApp. Hasta ahora teníais un back con una BBDD (relacional o no, no vamos a entrar en eso) puede que para vuestra DApp siga haciendo falta una, pero el núcleo de vuestra información estará en la Blockchain. El factor único y diferencial es ese. Para esto necesitamos un lenguaje para poder interactuar con esa Blockchain. El lenguaje más utilizado para ello es Solidity. 
Con Solidity vamos a poder:
  • Interactual con la Blockchain 
  • Crear Smart Contracts 
  • Crear nuestra ICO (que no es más que otro Smart Contract) 

Con esos tres puntos ya lo tienes todo. Entendiendo que es una DApp, que partes la forman, que lenguajes necesitas y que puedes hacer con Solidity. Ya te puedes adentrar a estudiar sobre el mismo y ver ejemplos.
Mis recomendaciones.

MOOCs:
Ethereum Developer MasterClass: https://www.udemy.com/ethereum-masterclass/learn/v4/overview

viernes, 20 de octubre de 2017

Criptominería Web. Quien, como y porqué

Hace ya más de un mes que la noticia saltó entre los blogs y foros de seguridad, la más que conocida web de The Pirate Bay hizo una prueba de concepto incluyendo, durante 24 horas, un JavaScript mediante el cual las personas que estaban navegando por su web, sin saberlo, estaban haciendo minería de la cripto moneda Monero.

En concreto estaban usando el portal de CoinHive para poder hacer esta minería, donde solo has de incluir un pequeño código JavaScript para que se haga en diferentes momentos:
  • Al realizar una redirección.
  • Para resolver un Captcha, resulta curioso que eso no soluciona si eres un bot o no, sino que si eres un bot, pues me pagas haciendo minería y a correr.
  • Mientras estés en mi web, vas haciendo minería para mí.

Me llamó la atención el sistema, investigando un poco llegué a este repositorio donde ya se puede ver que  hace 7 años publicaron un JavaScript que hacía esta misma minería pero con BitCoin, o este otro sitio donde hace 3 años ya publicaba un desarrollador su código realizado con Node.JS poniendo a disposición de quien quiera tanto el JS para clientes como un servidor centralizado que gestiona todas las peticiones de forma ordenada.

Nada nuevo bajo el sol, el caldo de cultivo estaba ya hace muchos años, seguramente CoinHive sólo haya re-aprovechado ese código.

Pero no se usaba, o al menos nadie hablaba del tema. The Pirate Bay decía en su escrito que era una POC para ver si salia lo suficientemente rentable como para poder eliminar de su sitio la publicidad intrusiva. No se sabe si porque la POC salió negativa o, por el impacto reputacional que estaba causando sobre su ejército de usuarios, decidieron eliminar el JS del sitio pero ya sentaron precedente.

Por saciar mi curiosidad quise hacer cuentas para ver cuán rentable es este sistema pero gracias a Maxence Cornet me ahorré dar ese disgusto a usuarios despistados, como se puede ver en su post no sale rentable, las mismas visitas navegando durante el mismo tiempo en el sitio web salía perdiendo con la minería respecto a los banners. Era de preveer, ya que Howard Chung y Kent Jiang ya admitían en su paper que el sistema era ineficaz, JS para minería a través de CPU era extremadamente lento en comparación con cualquier sistema en C.

Entonces… ¿porque AdGuard nos sorprendía ayer anunciando que hay 500 millones de usuarios haciendo minería sin saberlo?
Un número brutal de usuarios haciendo minería mediante la cual, habían capitalizado su tiempo navegando en un total de 43.000$, que ya es una cifra respetable y teniendo en cuenta que esta cifra es solo en las 3 semanas desde que The Pirate Bay les dio la idea.

¿Porque? El punto importante aquí está en que estas webs son de contenido “discutible” (según que país es más o menos legal) es decir, son webs de compartición de links, sexo, descargas de películas música,... Webs que tienen problemas para lograr un sistema de anuncios que les puedan reportar ganancias suficiente por lo que para ellas sí es rentable este nuevo sistema.


Por lo que he sacado varias conclusiones de todo esto:
  1. En adelante un bloqueo de JS es casi imprescindible en todo navegador.
  2. Las páginas de contenido ilegal no son tan rentables como pensaba, o soy una ilusa y solo yo creía que esas webs tenían cierta rentabilidad.
  3. Como he podido leer hay lugares donde esta práctica de computación sin el permiso/conocimiento del usuario es ilícita y está considerada un delito ¿tenemos nosotros también normativa legal al respecto? ¿estamos ante una nueva necesidad legal?

No va a ser este ni el primer ni el único caso de computación masiva, sino tiempo al tiempo.

Otras referencias de interés:

lunes, 9 de octubre de 2017

En las tripas de Bitcoin

Como ya he comentado en algún post anterior estoy trabajando en comprender al detalle que es blockchain y cómo funciona.
Por encima el concepto es sencillo pero cuando entras en detalle todo se hace más completo.
Prometo un artículo ( o puede que varios) sobre cómo funciona realmente esta tecnología que, según aventuran algunos, acabará siendo la moneda mundial pero por el momento quiero dejaros dos documentos de Princeton donde cuentan desde lo más general hasta un gran nivel de detalle todo sobre Bitcoin, el padre de todas las monedas criptográficas y de la mano de quien nació el concepto de Blockchain, para mi juicio el verdadero éxito.
Armaros de curiosidad y paciencia. Disfrutadlo.


miércoles, 23 de agosto de 2017

Lectura de Verano 2

Este verano me estoy metiendo de lleno en el mundo del Blockchain, por aventuras de las que ya os hablaré más adelante (aún está la cosa muy verde) estoy leyendo todos los libros y paper que caen en mis manos sobre la materia.
Quería traeros otra recomendación para estas vacaciones, de entre todos los que me he leido por ahora quería destacar el de “Melanie Swan”, iba a comentaros un poco sobre su contenido pero da la casualidad que revisando mi feedreader he ido a topar con este post de Alaxei Manalov (Kaspersky) donde, referenciando a este mismo libro, nos hablan de los seis mitos de Blockchain.
Por lo que para quienes estén interesados en este campo os dejo tres referencias de interés: