Wednesday 12 February 2014

Como hacer mineria de BitCoins

La mineria de bitcoins es una actividad ligada fuertemente al hardware. Ya que el software asociado a esta actividad es relativamente sencillo y consiste en el siguiente algorithmo:
-

-
while (1)
    HDR[kNoncePos]++;
    IF (SHA256(SHA256(HDR)) < (65535 << 208)/ DIFFICULTY)
    return;

-
Todo el codigo fuente se puede encontrar en https://github.com/bitcoin/bitcoin/blob/master/src/miner.cpp
-
De manera que la gran complejidad de la mineria ha recaido en una carrera tecnologica de quien tiene el mejor hardware.
-
En el principio la mineria podia hacerse con un simple computador personal, utilizando el poder de computo de la CPU con el fin de procesar la encripcion SHA-256 que toma bloques de 512 bits y les hace 64 ciclos o rondas envolviendo cadenas de a 32 bits cada vez. Las manipulaciones pueden ser adiciones, rotaciones, operaciones bitwise (xor), multiplexacion...etc...etc. Cada ronda depende de la anterior, lo cual implica una cadena de dependecia entre las operaciones. (Es decir las rondas no se pueden paralelizar!! -pero las operaciones internas de cada ronda si son paralelizables-)
-
Pero finalmente lo que esta haciendo el algorithmo es pura "fuerza bruta" en operaciones que no requieren capacidad de computo de punto flotante.....(!?) asi que en octubre de 2010 se comenzo a hacer la mineria abandonando los calculos en CPU y reemplazandolos por calculos sobre las tarjetas graficas o GPU. Esto fue cristalizado en un proyecto OpenCL totalmente publico en el que los mineros tomaron el protocol de bitcoin y lo implementaron en Phyton (si la memoria no me falla) y compilaron el algorithmo para ser corrido en las tripas de las GPU. Las consecuencias y modos de ese tipo de operaciones eran absolutamente ideas de entusiastas caseros, asi que todos esos ciclos de SHA-256 lo que hacen es producer calor y gastar electricidad, de modo que estos nuevos mineros se dedicaron a manipular el voltaje de las tarjetas con el fin de mejorar los parametros de consumo de energia, a manipular la frecuencia (para calcular mas rapido) e incluso modificaron las tarjetas en si mismas. Las ventajas de trabajar GPU en comparacion con las CPU fue enorme y por tanto se le podia exigir mas al sistema. De esos tiempos se llego a la conclusion de que las tarjetas NVidia estaban en desventaja con respect a las AMD.
-
-
Asi que el siguiente paso fue hacer conjuntos de varios tarjetas GPU para hacer los calculos, es decir entramos en la etapa de escalar el hardware. Asi que no era raro ver mineros comprando hasta 20 tarjetas para instalarlas en algun garaje o sotano. El precio de cada una podria ser de 200 a 400 US, y el precio del bitcoin crecia asi que no parecia mala idea invertir dinero en GPUs. Todo lo que necesitaba un minero de aquellos dias era algunas habilidades para armar PC y lecturas en foros.
-
Asi que la Carrera del hardware estaba en su punto algido cuando aparecieron en 2011 las FPGA (field-programmable gate array) , otra implementacion abierta. Estas tienen ciertas ventajas en cuanto al calculo y operaciones de bits pero no son muy buenas en velocidad, asi que la gente siguio experimentando y ensayando varios sistemas hasta que llegaron al ASICMINER (www.asicminer.co).  Aqui la historia toma un giro interesante, resulta que ciertas empresas comenzaron a apoderarse del mercado de hardware pero algunas microempresas capaces de manufacturar las tarjetas tambien querian participar de ese Mercado paralelo del bitcoin, asi en que los foros de entusiastas estos empresarios buscaban apoyo y vendian por adelantado sus invenciones. Y la cosa calo perfectamente bien en la CHINA. De esa epoca tambien nace el AVALON.
-

-
La cuestion es que durante estos ultimos tiempos mucha gente ha invertido fortunas en estos costosos equipos que cualquier hijo de vecino que decida hoy ponerse a hacer mineria con un PC estaria realmente fuera de foco.
-
La inversion en hardware y el costo de operacion hicieron que el minero del garaje completamente desapareciera para siempre y la unica oportunidad que tiene el ciudadano comun de hacer mineria es uniendose a un pool de mineros y compartir fracciones de los bitcoins descubiertos, eso confiando en que el propietario del pool no se esfume.
-
Otra cosa es invertir cierto tiempo en mejorar el modo del software, pasar de la fuerza bruta a las heuristicas o algun otro metodo que evite toda esta necesidad de calculo y recalculo.
-
El futuro del bitcoin entonces segun esa perspectiva no estaria en los ASIC sino mas bien en la investigacion de un famoso y comprobado metodo heuristico conocido bajo el nombre de TABU-Search o quizas en la simulacion Montecarlo
-
Articulos relacionados:

No comments:

Post a Comment