Historia del BitCoins
Desde la década de 1970, la utilización de firmas digitales basadas en criptografía de clave pública ha proporcionado un fuerte control de propiedad. Sobre la base de la criptografía de clave pública, en 1998 Wei Dai describe b-Money, una solución descentralizada al problema de pagos electrónicos.
Posteriormente, Nick Szabo y Hal Finney extienden y complementan el
trabajo de Wei Dai.
En 2008, Satoshi Nakamoto publica un artículo en la lista de criptografía de metzdowd.com donde describe el protocolo Bitcoin
El 3 de enero de 2009 la red P2P de Bitcoin entra en funcionamiento con la publicación del primer programa cliente, de código abierto, y la creación de los primeros bitcoins.
Hasta la invención de bitcoin era obligado que todos los pagos en el
comercio electrónico se canalizaran a través de entidades centralizadas
de confianza, generalmente bancos y otras empresas financieras, que gestionaban el seguimiento de todas las transacciones.
Ahora bien tenemos las Aplicaciones nativas. El cual nos ayudaran con el almacenamiento de estas Cryptomonedas. Les pondré mas mas recomendadas en otras entradas al Blog.
Programación
Bitcoin Core proporciona una API en JSON-RPC para acceder a la red Bitcoin. Es habitual que los desarrolladores prefieran programar en modo regtest,
que permite desarrollar en una cadena de bloques privada con control
total del entorno, creación de transacciones con confirmaciones
instantáneas y sin necesidad de gastar bitcoins reales.
BitcoinJ es una librería popular para el lenguaje Java.
Se conecta directamente a la red Bitcoin, no necesita de entidades de
confianza y descarga una versión reducida de la cadena de bloques. Forma
parte del código de Multibit y del Bitcoin Wallet para Android y Blackberry OS.
Construcción de la cadena de bloques
Todos los nodos que forman parte de la red Bitcoin mantienen una lista colectiva de todas las transacciones conocidas en una cadena de bloques. Para ello los nodos generadores de los bloques, también llamados mineros meten en la cabecera de dichos bloques del último bloque de la cadena más larga de la que tienen conocimiento, así como las nuevas transacciones publicadas en la red. Cuando un
minero encuentra un nuevo bloque, lo transmite al resto de los nodos a
los que está conectado. En el caso de que resulte un bloque válido,
estos nodos lo agregan a la cadena y lo vuelven a retransmitir. Este
proceso se repite indefinidamente hasta que el bloque ha alcanzado todos
los nodos de la red. Por tanto la cadena de bloques contiene el
historial de posesión de todas las monedas desde la dirección-creadora a
la dirección del actual dueño. Por lo tanto, si un usuario intenta reutilizar monedas que ya usó, la red rechazará la transacción.
Bajando un poco el nivel de abstracción, los mineros rastrean las
transacciones (los pagos) y los agrupan en bloques, cada bloque tiene la
siguiente estructura:
- Número mágico. El valor de "número mágico" 0xD9B4BEF9. Valor poco probable de que se produzca en la tabla ASCII en los datos normales con el siguiente bloque.
- Tamaño de bloque
- Cabecera de bloque
- Número de versión (4 bytes): Número de versión del protocolo bitcoin usado
- Hash de la cabecera del bloque anterior (32 bytes). Esto va formando una cadena de bloques (de ahí el nombre de cadena de bloques) que nos da un orden bien definido de las trasacciones y una firma acumulativa de las transacciones (se firma lo actual y todo lo anterior enlazado)
- Hash del contenido de el bloque (32 bytes). Para ello usa el hash de la raíz del árbol de Merkle de las transacciones del bloque. Esto asegura que las transacciones del bloque no se pueden cambiar una vez que son parte de un bloque
- Una marca temporal tipo UNIX (4 bytes)( número de segundos desde enero de 1970).
- Dificultad minera del bloque (4 bytes). Indica el número de ceros que tiene que poseer el hash al principio de este. Esto regula la dificultad para validar un bloque.
- El nonce (4 bytes). Es una serie de bits con valor arbitrario.
- Contador de transacciones
- Lista de las transacciones incluidas en el bloque
Comentarios
Publicar un comentario