Agosto de 2018

Volumen 33, número 8

Cadena de bloques: aspectos básicos de la cadena de bloques: profundice en las cadenas de hash de transacción

Por Jonathan Waldman | Agosto de 2018

En el primer artículo de esta serie (msdn.com/magazine/mt845650), presenté los conceptos fundamentales necesarios para entender ampliamente las cadenas de bloques de cada día, con ejemplos de alto nivel para ilustrar los conceptos básicos. En este artículo, recrearé algunos de los temas del artículo anterior, vaya a más detalles acerca de las cadenas de hash de transacción, la función de grupo de transacciones y cómo siempre prevalece una cadena de bloques más larga. En este artículo se lee mejor como un complemento para el artículo anterior y contiene material de introducción para desarrolladores nuevos en las tecnologías de cadena de bloques.

Por cierto, mientras que los artículos de esta serie se basan en la cadena de bloques de Bitcoin, no Soy partidario dedicar la adopción de una tecnología o producto de bloques concreta. En su lugar, mi objetivo es explorar la base de qué cadena de bloques más popular se crean las tecnologías y al disponer de conocimiento se puede aplicar si decide aprovechar las cadenas de bloques existentes o diseñe su propio. Como estudiar las cadenas de bloques, pronto se dará cuenta que los detalles de implementación difieren considerablemente entre ellos. Si decide se especializan en una implementación de bloques concreta, deberá mantener el ritmo con sus correcciones y actualizaciones para mantener la experiencia. Pero advertirá que la naturaleza dinámica de estas nuevas tecnologías a menudo significa ese libros disponibles, vídeos, blogs, foros y otro otoño de recursos de documentación subyacente, en ocasiones, lo que es necesario consultar el código fuente más reciente implementada como un determinado referencia definitiva de la implementación de la cadena de bloques.

Revisar la cadena de Hash de transacción

Mi artículo anterior describe la estructura de datos de transacción hash cadena, que realiza el seguimiento de propiedad de activos digitales. En este artículo, profundizaré más profundamente en funcionamiento de esa cadena de hash.

Para pagar homenaje a las raíces de la cadena de bloques, comenzaré centrándose en libro seminal notas de Satoshi Nakamoto del producto acerca de Bitcoin (bitcoin.org/bitcoin.pdf) publicado en el 31 de octubre de 2008: meses antes del lanzamiento de Bitcoin en 3 de enero de 2009. Aunque los detalles de implementación han cambiado un poco de Bitcoin, a continuación, las notas se mantiene una referencia útil, en particular en el diagrama 2 p. que expresa la cadena de hash de transacción originales diseñar concepto.

De ese diagrama sirve para transmitir cómo se construye una cadena de hash de transacción y cómo las firmas digitales, autorizar a la transferencia de secuencia de la propiedad. Sin embargo, que es muy extraen y, por lo tanto, es un poco confuso. Para agregar una mayor claridad, he creado una versión más detallada que describe las cadenas de hashes de transacciones actual cómo funcionan realmente (vea figura 1).

Versión actualizada del diagrama de cadena de Satoshi Nakamoto Original transacción Hash
Figura 1 versión actualizada de diagrama de cadena de Satoshi Nakamoto Original transacción Hash

Mi diagrama revisado muestra tres transacciones (basado en 0, como se muestra en el documento original): Transacción0 para Alice, transacción1 Bob y transacciones2 para Carlos. La primera transacción establece el propietario original del activo digital; Alice la segunda transacción transfiere la propiedad a Roberto; y su transacción tercer transfiere la propiedad de Charlie. Cada transacción se compone de estos campos (se muestra con un contorno sólido): hash de transacción, Id. de activos digitales, datos opcionales, clave pública y la firma. Otros campos se utilizan, pero no se almacenan en la transacción (que se muestra con un contorno discontinuo): clave privada y el nuevo hash de transacción. El diagrama expresa los valores de campo como nombres de subíndice, mayúsculas y minúsculas, por ejemplo, el valor de hash de transacción para transacciones0 es TransactionHash0 y el valor de clave público para transacciones2 es la clave pública2.

Figura 1 es la cadena de hash de una transacción simplificada porque realiza un seguimiento únicamente un solo activo digital (DigitalAssetID0) cuando se produzcan cambios de propiedad (por el contrario, las cadenas de hash de transacción de criptomoneda suelen tienen varias entradas de activos digitales y salidas). Además, no confunda la cadena de hash de transacción con la cadena de bloques, que agrega habían comprobado las transacciones en bloques. Por último, la cadena de hash de transacción normalmente no se guarda como la estructura de datos de lista vinculada única descrita. En su lugar, se puede construir (rápidamente, con la Ayuda de los índices) de los datos de transacción que se almacenan en la cadena de bloques.

Tal como describí en mi artículo anterior, la secuencia de transacciones se conserva porque la transacción del propietario de cada nuevo contiene un valor hash que está vinculado a la parte posterior a la transacción del propietario anterior. En figura 1, se forman vínculos hacia atrás cuando el valor de hash de transacción de la transacción anterior se almacena en la transacción actual. Por ejemplo, la transacción de Bob contiene un campo de hash de transacción que contiene TransactionHash de Alice0 valor; del mismo modo, la transacción de Juan Carlos contiene un campo de hash de transacción que contiene TransactionHash de Bob1 valor y así sucesivamente.

Vínculos hacia atrás son solo uno de varios componentes de integridad de los datos de la cadena de hash de transacción. La cadena también exige la autorización de transferencia de propiedad. Para seguir un ejemplo, imagine que Alice es un proveedor de vinos finest de todo el mundo y quiere mantener un libro de contabilidad que hace un seguimiento el destino de cada bottle que posee. Un día, Alicia se dirige a su bodega y decide que se registra su propio en la cadena de bloques de su empresa como el propietario original del cada bottle de vino en existencias, propagación eficazmente las cadenas de hash de transacción para cada uno de sus preciados botellas de vino. Para empezar, ocasionales toma una botella de apoyen Blanc 1947 Saint-Émilion y etiquetas, con un código QR que contiene un identificador único. A continuación, explora la etiqueta QR su software de cliente de la cadena de bloques que se ejecuta como un nodo en la red. El software traduce el código digitalizado en un identificador de activos digitales (DigitalAssetID0), a continuación, agrega datos opcionales (OptionalData0) junto con la clave pública de Alicia (PublicKey0). Como puede ver en figura 1, estos campos son en su propia rectángulo con contorno que representa una transacción sin signo. Cada transacción también contiene un vínculo de retroceso de hash de transacción y una firma, pero dado que esta es la primera transacción en la cadena de hash, esos campos están en blanco (indicado por los campos sombreados de transacción0).

Se muestra la parte superior de cada transacción es un valor de hash de transacción único que el software cliente calcula mediante SHA-256-hashing junto todos los campos de la transacción (el hash de transacción, Id. de activos digitales, datos opcionales, del propietario de la clave pública y firma). De nuevo, es este valor de hash de transacción que se usa como vínculo hacia atrás de la transacción siguiente para DigitalAssetID0.

Cuando el supervisor de restaurante de Manhattan de Alice, Bob desea adquirir bottle Alicia de Cheval Blanc, utiliza su software de cliente para generar un nuevo par de claves pública y privada para la transacción. Bob podría omitir este paso y de agregado de todos sus activos digitales en una clave pública usada anteriormente, única, pero eso expondría en contacto con él a riesgos innecesarios. En su lugar, genera un nuevo par de claves y proporciona una clave pública que nunca se usa antes de Alice. De este modo, si pierde alguna vez la clave privada correspondiente, pierde el acceso a un solo activo digital.

En respuesta a solicitud de Bob, Alice inicia su software de cliente y examina sus activos digitales. Selecciona la transacción ID asociado con la botella Cheval Blanc Bob quiere y, a continuación, inicia la solicitud de transferencia proporcionando la clave pública de Bob, lo que duplica como una especie de dirección de destino. El nodo, a continuación, crea una nueva transacción (transacción1) que contiene el valor de vínculo hacia atrás de lo hash de transacción anterior (TransactionHash0), el valor del identificador de activos digitales (DigitalAssetID0) para la botella Cheval Blanc (Esto es el mismo valor que el identificador de activos digitales de transacción0), el valor de los campos personalizados relacionados con la transacción (OptionalData1) y el valor de clave pública (PublicKey1) ya que Bob es propietario de la transacción.

Hasta ahora, el nodo construye una nueva transacción sin signo1 para Bob. El siguiente paso es iniciar la transacción mediante la clave privada de Alicia. Se trata de un paso crítico: Alice posee actualmente el activo digital en cuestión sólo que puede autorizar a la transferencia del activo digital a Bob.

Criptografía de curva elíptica

En figura 1, las etiquetas 1 y 2 indican dónde se firma la transacción y donde se comprueba, respectivamente. En su versión actual, la cadena de bloques de Bitcoin aprovecha una implementación de criptografía de claves públicas (PKC) llama a la criptografía de curva elíptica (ECC). ECC proporciona resultados cifrados más fuertes y claves más cortas que la alternativa RSA y Diffie-Hellman popular. Nodos de la cadena de bloques usan ECC para generar pares de claves asimétricas mediante una fórmula que implica puntos seleccionados aleatoriamente en un gráfico bidimensional. Este esquema permite la pérdida de una clave pública para regenerarse a partir de la clave privada (pero evidentemente no permite la pérdida de una clave privada a regenerarse a partir de una clave pública).

Las cadenas de bloques se modelan después de Bitcoin también aprovechar ECC en cuanto a las firmas digitales. A diferencia de los ejemplos simplificados de PKC Rivest-Shamir-Adleman (RSA) que se muestra en mi artículo anterior, Bitcoin ahora usa una firma curva elíptica Digital algoritmo (ECDSA) (en concreto, SHA256withECDSA) para firmar las transacciones. Este algoritmo funciona un poco distinto de otras tecnologías de firmas: En ECDSA, debe pasar la clave del firmante privada junto con el mensaje para iniciar sesión para una función que usa un algoritmo de generación de firmas ECDSA para crear una firma (este paso se indica mediante el marcador 1 en figura 1). Para comprobar más adelante esa firma, debe pasar la clave pública del firmante, mensajes y firma a una función que usa un algoritmo de comprobación de ECDSA para generar un valor true o false, que indica si la firma es válida (este paso se indica mediante el marcador 2 en figura 1). Figura 2 resume firmar y comprobar el uso de ECDSA.

Generación de firmas de algoritmo de firma Digital de curva elíptica (superior) y el algoritmo de comprobación (inferior)
Figura generación de firmas de algoritmo de firma Digital de curva elíptica 2 (superior) y el algoritmo de comprobación (inferior)

Al crear una firma digital mediante PKC RSA, comprobar la firma mediante la comparación de valores hash, tal como se muestra en mi artículo anterior. Para los curiosos preocupados por, esa estrategia de comprobación de firma no es posible con ECDSA. RSA PKC es un algoritmo de firma digital determinista porque se firma un mensaje determinado con una determinada clave privada genera la misma firma cada vez. ECDSA, por otro lado, es no determinista: Cada vez que pasa un mensaje y una clave privada para el ECDSA firma de función se puede obtener una firma diferente. Para ver esto en acción, vaya a bit.ly/2MCTuwI.

Siguiendo con el ejemplo, Alice está a punto de iniciar la transacción que transfiere la propiedad del DigitalAsset0 a Bob. El software del nodo pasa su clave privada (PrivateKey0) junto con un mensaje (NewTransactionHash1) para la función de algoritmo de generación de firmas ECDSA y obtiene una firma como salida (firma1). El nodo agrega este valor de firma para el campo de firma de la nueva transacción. Por último, el nodo calcula el hash de transacción (TransactionHash1) valor, que es un hash SHA-256 de todos los campos de la transacción, incluida la firma. En ese momento, el nodo generó correctamente una transacción con signo que puede enviarse al grupo de transacciones.

Una transacción con signo se considera sin comprobar hasta que se ha validado por un nodo miner. Cuando un nodo miner intenta comprobar transacciones de Bob, utiliza el vínculo de retroceso de hash de transacción para tener acceso a la clave pública de la transacción anterior, lo que conduce a la transacción de Alice0. Una vez que el nodo tiene acceso a la transacción anterior, pasa la clave pública de la transacción (PublicKey0) junto con el nuevo hash de transacción (NewTransactionHash1) y la firma de transacción de Bob (firma1) para el algoritmo de comprobación de ECDSA que devuelve un valor true o false, que indica si la firma es válida.

Por cierto, clave privada de Alicia (PrivateKey0) y el nuevo hash de transacción (NewTransactionHash1) no se almacenan en la transacción. Los valores de clave privados no se deben almacenar en una cadena de bloques y no es necesario para almacenar el nuevo valor de hash de transacción porque se puede volver a calcular cada vez que sea necesario.

Bob toma su Sauce y piensa que va a saborearla al Cheval Blanc cuando recibe una llamada de Skype de Carlos, el Administrador de uno de los otros restaurantes de Alice. Charlie desea ofrecer una botella especial de vino bienvenida un sommelier recién contratado. Bob regretfully acepta transferir la propiedad de la Cheval Blanc a Carlos. Le pide para la clave pública de Juan Carlos, y el mismo proceso nuevo se lleva a cabo con el fin de transferir DigitalAsset0 propiedad de Bob para Carlos.

Ahora existen tres transacciones para DigitalAsset0: uno para Alice, uno para Bob y otro para Carlos. Cada transacción se ha comprobado y se incorporan en la cadena de bloques. Una vez haya ha extrajo un cierto número de bloques adicionales en la parte superior del bloque que contiene una transacción determinada, que se considera que la transacción confirmada (este "cierto número" es específico de la implementación). Por lo tanto, el propietario de un determinado activo digital oficial siempre es la persona que tiene la clave privada a la transacción confirmada más recientemente de la cadena de hash de transacción del activo digital.

La necesidad de consenso

Como ha visto, una cadena de hash de transacción es una estructura de datos que intenta aplicar la propiedad de un activo digital. Pero recuerde que estas transacciones se almacenan en una red distribuida, descentralizada, asincrónica, pública que es vulnerable a ataques y se expone a los nodos que no necesariamente los respetan las reglas de protocolo de cadena de bloques (llamados "actores no válidos"). El resultado es que los nodos de actor no deseado podrían comprobar las transacciones que no son realmente válidos o podrían conspiren en la red socavando la integridad de la cadena de bloques.

El grupo de transacciones para evitar estos problemas de integridad de la transacción, todas las transacciones se van a través de un proceso de comprobación y la confirmación. Cada transacción se crea mediante un único nodo en alguna parte de la red. Por ejemplo, supongamos que Alice está en Albuquerque y Juan está en Boston. Cuando Alice transfiere la propiedad de su activo digital a Roberto, transacción1 se construye mediante un nodo en Albuquerque, a continuación, difusión a otros nodos de la red. Al mismo tiempo, otros nodos difusión activamente las transacciones que acaba de crear. Estas difusiones se propagan a otros nodos en una red global y tarda tiempo en propagarse a dichas transacciones debido a la latencia de red. Independientemente de dónde en la red global se origina una transacción, el protocolo de la cadena de bloques coloca todas las nuevas transacciones en un grupo de transacciones de las transacciones no comprobados.

Prueba de trabajo y prueba de juego en una cadena de bloques que emite un premio por prueba de trabajo, nodos miner agresivamente seleccionar las transacciones del grupo de transacciones. Corresponde el nodo miner para comprobar cada transacción durante la construcción de un bloque candidato porque otros nodos se rechazarán inmediatamente un bloque que contiene las transacciones erróneas, y eso significaría naught era el trabajo realizado por el nodo.

Recuerde que en mi artículo anterior que cada nodo está en una carrera para buscar un valor nonce para el bloque candidato que ha construido para que pueda ganar un premio financiero y recuperar los costos de energía que se incurre durante la prueba de trabajo de demostración. Cuando se redactó este documento, la recompensa financiera actual en la cadena de bloques de Bitcoin es Bitcoin 12,5 (BTC), que equivale a aproximadamente 100 000 USD. A veces la recompensa financiera es un honorario por transacción y a veces resulta una recompensa financiera más una tarifa de transacción. ¿Qué es importante comprender acerca de la prueba de trabajo es que los nodos deben gastar energía e incurrir en los equipos y los costos de infraestructura para poder continuar rentabilidad bloques de minería de datos; para que un nodo sea sostenible, se deben desplazar esos costos por ingresos.

No sorprende, a continuación, que tan pronto como un extractor busca un valor nonce inmediatamente difunde ese bloque al resto de nodos en la red con la esperanza de que su bloque extrajo simplemente se agrega al final de la cadena de bloques. La cadena de bloques de Bitcoin calibra su dificultad nonce para que los nonces nuevos se detectan aproximadamente cada 10 minutos, por lo que un retraso de, incluso unos pocos segundos puede significar que otra miner también podría encontrar un valor nonce y difundir su bloque candidato.

Para apreciar las implicaciones de perder la carrera de minería de datos, tenga en cuenta los nodos de minería de datos que no se encontró un valor nonce dado: Toda la energía que gastada fue en vano. Los mineros que no se encontró un valor nonce no tengan ninguna otra opción para detener el procesamiento del bloque actual y empezar de nuevo; para hacerlo y comprobar las transacciones del grupo de transacciones. La razón por la que deben detener la minería de datos tan pronto como aprenden ese otro miner encontró un valor nonce es que un bloque candidato tiene un vínculo de retroceso para el hash del bloque anterior en la cadena de bloques. Cuando otro miner minas un bloque comprobado que se vincula al bloque anterior, la perdedora mineros deben crear un nuevo bloque al que hace referencia el valor hash para el bloque recién extraído. La perdedora mineros también deben descartar las transacciones que han seleccionan y elijan un nuevo conjunto del grupo de transacciones porque otros nodos rechazará cualquier nuevo bloque que contiene las transacciones que ya está incluidas en un bloque anterior.

Un nodo debe tener todos los costos necesarios para admitir sus equipos de minería de datos. Como ha crecido de bloques de Bitcoin, esto ha llevado a otro tipo de carrera: una carrera para el equipo de minería de datos más eficaces. La más potencia informática que puede tener acceso un nodo de minería de datos, más posibilidades existen sacarle partido y ganar cada carrera de 10 minutos para resolver el Enigma criptográfico necesario para encontrar un valor nonce.

Una crítica común de prueba de trabajo es que fomenta la construcción de centros informáticos nunca-más eficaz y el uso de aumentar la cantidad de energía eléctrica. Una ventaja competitiva se asigna al propietario de los equipos informáticos más eficaz en redes de tecnología de prueba de trabajo de cadena de bloques. Por ejemplo, los centros de datos multimillonario dólares ahora funcionan exclusivamente hacia minería bitcoin. Según digiconomist.net, blockchain consumo de energía de Bitcoin a partir de junio de 2018 es 71,12 TWh, que es similar al consumo de energía de Chile (bit.ly/2vAdzdl).

Otro algoritmo de consenso ampliamente descrito es la prueba de juego, que recompensa a los nodos que muestran una económica participan en la red. Sin duda, mayor atractivo de prueba-de-juego es que resulta más eficiente de energía. Además, no emite un premio de criptomoneda para minería de datos de un bloque, aunque las transacciones emitir como un premio. No requiere una carrera para buscar el valor nonce que resuelve un enigma criptográfico. En su lugar, la red selecciona aleatoriamente un nodo que se ha registrado como un "forger" (similar a miner"de Bitcoin") según el valor total y la antigüedad de sus unidades de criptomoneda. Para garantizar la imparcialidad y aleatoriedad en la selección entre forgers se esfuerzan por diversos detalles de implementación. Por ejemplo, una vez seleccionado un forger a menudo no puede participar en otra ronda de falsificación de al menos 30 días. De hecho, nodos de gran valor forger que contiene las monedas de criptodivisa más antiguas tienen un borde a través de otros nodos forger.

Defensores de la prueba de juego Asegúrese de lo buena que el costo de la ejecución de un nodo es mucho menor, fomentar la participación más y un mayor nivel de descentralización. Irónicamente, sin embargo, los sistemas de prueba de juego disuadir del uso de las criptomonedas esa cadena de bloques está diseñado para realizar transacciones porque gasto reducirá el valor del nodo total y disminuir la probabilidad de que se selecciona como un forger.

Una cosa reflexionar sobre es el punto realizado por la cadena de bloques experto Andreas Antonopoulos: "Prueba de trabajo también es una prueba de juego, pero la prueba de juego no es también la prueba de trabajo". Explica que la prueba de trabajo ofrece una combinación de ambos algoritmos de consenso haciendo que el punto que aunque no seleccionadas mineros que participan en una red de tecnología de prueba de trabajo en función de número o la edad de unidades de criptomoneda, nodos miner eficazmente Demuestre su inversión económica en la red mediante la financiación de la energía necesaria para participar. Por lo tanto, el "juego" en el esquema de prueba de trabajo, sostiene, es el costo de un nodo está dispuesto a incurrir en un esfuerzo por correctamente mío un bloque de electricidad (ver Antonopoulos hablando en una reunión de Bitcoin Silicon Valley en 13 de septiembre de 2016: bit.ly/2MDfkA1).

Cadena más larga la red de la cadena de bloques constantemente extiende, ramas y elimina a sí mismo. Toda la vista de la cadena de bloques se denomina árbol de bloque; cada nodo miner minas activamente en el bloque que termina la cadena más larga del árbol de bloque. Es posible que piense que la cadena más larga es definida por la cadena con el mayor número de bloques, pero realmente se define como la secuencia de bloques en el bloque de génesis que produce la mayor cantidad de trabajo. Puede derivar el trabajo total sumando la dificultad de"" de cada bloque, una medida de cómo improbable detectar un valor nonce para un bloque candidato. El protocolo de red mantiene ese valor, que ajusta la cadena de bloques de Bitcoin cada 2,016 bloques para que los bloques tardar aproximadamente 10 minutos de procesamiento de tiempo para extraer. El valor de dificultad se almacena en cada bloque para que se puede calcular el trabajo con los nodos que intentan identificar la cadena más larga.

En ocasiones, es inevitable que los dos nodos, A y B, demostrará prueba de trabajo por un nuevo bloque de minería de datos en segundos o milisegundos incluso entre sí. Dado que cada nodo agrega su nuevo bloque al final de lo que ve como la cadena más larga antes de ese bloque a la red de difusión, aparecerá una bifurcación (rama) en el árbol de bloque. Dependiendo de dónde se encuentran estos nodos y el ancho de banda de los nodos conectados en la red y otras consideraciones de latencia, una fracción de la red verá en primer lugar un bloque como el nuevo bloque y agregará al final de la cadena. La fracción de la red de otra verá bloque B como el nuevo bloque y agregará al final de la cadena. Esto deja algunos nodos con un bloque y a otros usuarios con el bloque B como el bloque de finalización (consulte figura 3).

(Superior) Un árbol de bloque que se muestra una bifurcación del árbol de bloque y dos cadenas de igual longitud (inferior); Un árbol de bloque que muestra una bifurcación del árbol de bloque y una cadena más larga
Figura 3 árbol de bloque (arriba) A que se muestra una bifurcación del árbol de bloque y dos cadenas de igual longitud (inferior); Un árbol de bloque que muestra una bifurcación del árbol de bloque y una cadena más larga

Cuando se produce una bifurcación tal como se muestra en la parte superior de figura 3, dos cadenas que se encuentran en el árbol de bloque — son iguales de longitud y ambos son válidos. El problema que esto presenta es evidente cuando considere la posibilidad de que los nodos de minería de datos buscar la cadena más larga antes de comenzar la minería de datos porque tienen el valor hash de bloque de terminación de la cadena.

Si un extractor correctamente minas de bloque de C y estaba trabajando con una cadena, agregará C de bloque al final de la cadena que tiene un bloque de como su bloque final (vea el árbol de bloque de la parte inferior en figura 3). Una vez que lo hace, difunde un bloque de C a la red y otros nodos verá que una cadena es la cadena más larga. Nodos que funcionan en cadena B verá que una cadena es mayor que la cadena de B y dejará de minería de datos que su sistema actual se bloquea para que pueden empezar a extraer un nuevo bloque que extiende el bloque de C de cadena A. En cuanto esto sucede, la red libera todas las transacciones en el bloque de B en el grupo de transacciones para que puede seleccionar en una nueva ronda de minería de datos.

Tal vez se pregunte ¿qué ocurre con el Bitcoin obtenido por el extractor que crea el bloque B: Nunca se emiten sus comisiones de transacción y las recompensas de bloque. En la red de Bitcoin, estas recompensas no se concede a un extractor de hasta 100 bloques han se ha extrajo correctamente en la parte superior del bloque en cuestión.

En este artículo, explorado más detalladamente algunos de los temas introducidos en mi artículo anterior. Juntos, los dos artículos abarcan la mayoría de los conceptos fundamentales que debe entender realmente para entender cómo funcionan las cadenas de bloques. Después de leer ambos, debe comprender la arquitectura de red distribuida, descentralizada de la cadena de bloques; Hash SHA-256; Conceptos básicos PKC y ECDSA; Cómo nodos construcción las transacciones en las cadenas de hash y digitales firmas autorización a la transferencia de propiedad de activos digitales; cómo las transacciones en el grupo de transacciones await selección y comprobación antes de obtener confirmado en un bloque; Cómo nodos especializados emplean un algoritmo de consenso determinado (por ejemplo, "mineros" mediante la prueba de trabajo o mediante la prueba de juego "forgers") para generar un bloque; y cómo agregan nodos de la red genera bloques a la cadena más larga. Si desea profundizar más en las cadenas de bloques, le recomiendo encarecidamente la libros en pantalla y los vídeos disponibles en los libros en pantalla de Safari (safaribooksonline.com) y los publicados por Andreas Antonopoulos (antonopoulos.com).


Jonathan Waldmanes un ingeniero de software de Microsoft Certified Professional, arquitecto de soluciones con riesgo técnico profundo a una variedad de sectores y especialista en ergonomía de software. Waldman es miembro del equipo técnico de Pluralsight y actualmente, dirige proyectos de desarrollo de software sector privado e institucional. Puede ponerse en jonathan.waldman@live.com y seguir en Twitter: @jwpulse.

Gracias al siguiente experto técnico de Microsoft por revisar este artículo: James McCaffrey


Discuta sobre este artículo en el foro de MSDN Magazine