作者是各自领域的资深专家,并就他们有经验的主题撰写文章。. 我们所有的内容都经过了Toptal专家的同行审查和验证。.
Demir Selmanovic
Verified Expert in Engineering
24 Years of Experience

Demir是一名开发人员和项目经理,在广泛的软件开发角色中拥有超过15年的专业经验。.

Share

Bitcoin creó un montón de zumbido en Internet. Fue ridiculizado, fue atacado, y finalmente fue aceptado y se convirtió en una parte de nuestras vidas. Sin embargo, Bitcoin no está solo. En este momento, hay más de 700 AltCoin implementaciones, que utilizan principios similares de CryptoCurrency.

Entonces, ¿qué necesitas para crear algo como Bitcoin?

没有试着去理解他的个人动机,去建立一个分散的、匿名的系统来交换金钱/信息(但仍然希望它是在道德和法律活动的领域), 让我们先来看看我们的新支付系统的基本要求:

  1. Todas las transacciones deben realizarse a través de Internet
  2. No queremos tener una autoridad central que procese las transacciones
  3. Los usuarios deben ser anónimos e identificados sólo por su identidad virtual
  4. 一个用户可以拥有任意数量的虚拟身份
  5. 必须以受控方式添加价值(新的虚拟账户)

Intercambio de información descentralizada a través de Internet

El cumplimiento de los dos primeros requisitos de nuestra lista, 取消互联网信息共享的中央权威已经成为可能. Lo que necesita es una red peer-to-peer (P2P).

P2P网络上的信息共享类似于朋友和家人之间的信息共享。. Si compartes información con al menos un miembro de la red, eventualmente esta información llegará a todos los demás miembros de la red. 唯一的区别是,在数字网络中,这些信息不会以任何方式改变。.

Cryptocurrency y Toptal

Usted probablemente ha oído hablar de BitTorrent, 最流行的P2P文件共享系统之一(内容交付). 另一个流行的P2P共享应用程序是Skype和其他聊天系统。.

En pocas palabras, 可以实现或使用现有的开源P2P协议之一来支持新的加密转换, a la que llamaremos Topcoin.

Hashing

Para entender las identidades digitales, necesitamos entender cómo funciona el “hashing criptográfico”. 哈希是将任意大小的数字数据映射到固定大小的数据的过程. En palabras más simples, 哈希是一个过程,获取一些可读的信息,然后做一些完全没有意义的事情。.

Puedes comparar el hash a obtener respuestas de los políticos. La información que tú les proporcionas es clara y comprensible, 而他们提供的输出看起来像一个随机的单词流。.

P2P Protocols

Hay algunos requisitos que un buen algoritmo hash necesita:

  1. 哈希算法的输出长度必须是固定的(一个好的值是256字节)。
  2. 即使输入数据的最小变化也会对输出产生显著影响。
  3. La misma entrada producirá siempre la misma salida
  4. No debe haber manera de invertir el valor de salida para calcular la entrada
  5. Calcular el valor de HASH no debe ser intenso de cálculo y debe ser rápido

Si echas un vistazo a las estadísticas simples, tendremos un número limitado (pero enorme) de posibles valores de HASH, simplemente porque nuestra longitud de HASH es limitada. Sin embargo, 我们的哈希算法(称为Politician256)必须足够可靠,它只会为不同的条目产生重复的哈希值,就像动物园里的一只猴子在打字机上成功地写出哈姆雷特一样。!

如果你认为哈姆雷特只是一个名字或一个词,请停止阅读现在,或阅读关于他。 Infinite Monkey Theorem (ó el Teorema Infinito del Mono).

Firma Digital

在签署文档时,只需将签名附加到文档文本上即可。. 数字签名类似:只需将您的个人信息附加到您正在签署的文件中.

Si entiende que el algoritmo hash se adhiere a la regla donde 即使输入数据的微小变化也会对输出产生显著影响。, 很明显,为原始文档创建的HASH值将不同于为带有附加签名的文档创建的HASH值。.

原始文档和为文档生成的HASH值及其所附个人数据的组合是一个 documento firmado digitalmente.

Y así es como llegamos a su identidad virtual,定义为在创建该HASH值之前添加到文档中的数据。.

A continuación, debes asegurarte de que su firma no se puede copiar, y nadie puede ejecutar ninguna transacción en su nombre. La mejor manera de asegurarse de que su firma está asegurada, 是您自己维护它,并为其他人提供一种不同的方法来验证已签署的文档。. 再一次,我们可以利用现成的技术和算法。. Lo que necesitamos utilizar es criptografía de clave pública también conocida como criptografía asimétrica.

Para que esto funcione, debe crear una clave privada y una clave pública. 这两个键将在某种数学相关性和相互依赖。. 创建这些密钥的算法将确保每个私钥都有不同的公钥。. Como sugieren sus nombres, una clave privada es la información que guardará solo para ti, mientras que una clave pública es la información que compartirás.

如果您使用您的私钥(您的身份)和原始文件作为输入值,您可以使用您的密码登录。 algoritmo de firma para crear un valor HASH, asumiendo que mantuvo su clave en secreto, 可以确保没有其他人能够为该文档生成相同的HASH值。.

Cómo funcionan el Bitcoin y Cryptocurrency

Si alguien necesita validar su firma, él o ella usará el documento original, el valor HASH que produjo y su clave pública como entradas para el algoritmo de verificación de firma para verificar que estos valores coincidan.

Cómo enviar Bitcoin/Dinero

Suponiendo que tú has implementado la comunicación P2P, mecanismos para crear identidades digitales (claves privadas y públicas), 并为用户提供了使用私钥签署文档的方法, estás listo para comenzar a enviar información a sus pares.

Puesto que no tenemos una autoridad central que valide cuánto dinero tiene, el sistema tendrá que preguntarle sobre él cada vez, y entonces compruebe si usted mintió o no. 因此,您的交易日志可能包含以下信息:

  1. Tengo 100 Topcoins
  2. Quiero enviar 10 monedas a mi farmacéutico para la medicación (incluirías la llave pública de los farmacéuticos aquí)
  3. Quiero dar una moneda como honorario de la transacción al sistema (volveremos a esto más adelante)
  4. Quiero mantener las 89 monedas restantes

你所要做的就是用你的私钥对交易日志进行数字签名,然后将交易日志传输给你的网络同行。. En ese momento, 每个人都将收到某人(他们的虚拟身份)向另一个人(他们的药剂师的虚拟身份)汇款的信息。.

Tu trabajo está hecho. Sin embargo, 你的药物不会支付,直到整个网络接受你真的有100个硬币。, y por lo tanto podría ejecutar esta transacción. 只有在您的交易被验证后,您的药剂师才会获得资金并将药物寄给您。.

Mineros - La nueva raza de agentes

众所周知,矿工是非常勤劳的人,在我看来,他们的工资很低。. En el mundo digital de la criptocurrencia, los mineros desempeñan un papel muy similar, excepto en este caso, 做计算密集型的工作,而不是挖土堆. A diferencia de los verdaderos mineros, 一些加密货币矿工在过去的五年里赚了一大笔钱, pero muchos otros perdieron una fortuna en este arriesgado esfuerzo.

矿工是该系统的核心组成部分,其主要目的是确认用户请求的每一笔交易的有效性.

确认您的事务(或其他一些用户请求的多个事务的组合)的有效性, los mineros harán dos cosas.

En primer lugar, se basarán en el hecho de que “todo el mundo sabe todo”, 这意味着在系统上执行的每一个事务都被复制并可用于网络上的任何对等体。. 他们会检查你的交易历史,以验证你实际上有100个硬币开始。. Una vez confirmado el saldo de su cuenta, generarán un valor específico de HASH. Este valor hash debe tener un formato específico; debe comenzar con cierto número de ceros.

Hay dos entradas para calcular este valor de HASH:

  1. Datos de registros de transacciones
  2. Prueba de trabajo del minero

Teniendo en cuenta que 即使输入数据的最小变化也会对HASH输出值产生显著影响, los mineros tienen una tarea muy difícil. Necesitan encontrar un valor específico para una variable prueba de trabajo que produzca un HASH que comience con ceros. Si tu sistema requiere un mínimo de 40 ceros en cada transacción validada, 矿工将需要计算大约2 ^ 40个不同的HASH值来找到 prueba de trabajo correcta.

Una vez que un minero encuentra el valor apropiado para la prueba de trabajo, 他或她有权获得交易费(他或她愿意支付的单一货币), que se puede agregar como parte de la transacción validada. 每一个经过验证的事务都被传输到网络上的伙伴,并存储在一个称为数据库格式的特定数据库中。 Blockchain.

但如果矿工的数量上升,他们的硬件变得更有效率呢?? Bitcoin solía ser minado en CPUs, GPUs y FPGAs, pero en última instancia los mineros comenzaron a diseñar sus propios chips ASIC, que eran mucho más poderosos que estas soluciones tempranas. A medida que la tasa de hash sube, también lo hace la dificultad de minería, garantizando así el equilibrio. Cuando se introduce más potencia de hashing en la red, la dificultad aumenta y viceversa; si muchos mineros deciden desconectar el enchufe es porque su operación ya no es rentable, la dificultad se reajusta para que coincida con la nueva tasa de hash.

Blockchain - El Libro Global de la Criptocurrencia

区块链包含系统上所有事务的历史记录. 每一个经过验证的事务或事务批处理都会成为链中的另一个环。.

Por lo tanto, la cadena de bloques Bitcoin es, esencialmente, un libro mayor público donde las transacciones se enumeran en orden cronológico.

El primer anillo de la cadena de bloques Bitcoin se denomina Bloque Génesis

Para leer más acerca de cómo funciona la cadena de bloques, sugiero leer Blockchain Technology Explained: Powering Bitcoin, de Nermin Hajdarbegovic.

No hay límite para cuántos mineros pueden estar activos en su sistema. 这意味着有可能两个或两个以上的矿工验证相同的交易. Si esto sucede, 系统将通过数零来验证每个矿工的总努力投入到验证交易。. 付出更多努力的矿工(发现更多的主要零)将获胜,他的区块将被接受。.

Controlando el Suministro de Dinero

La primera regla del sistema de Bitcoin es que puede haber un máximo de 21.000.000 Bitcoins generados. Este número todavía no se ha logrado, y según las tendencias actuales, se cree que este número se alcanzará en el año 2140.

Esto puede hacer que usted cuestione la utilidad de un sistema de este tipo, porque 21 millones de unidades no suena como mucho. 然而,比特币系统支持小数到8小数(0)。.00000001). Esta unidad más pequeña de un bitcoin se llama Satoshi以比特币协议背后的匿名开发者中本聪(Satoshi Nakamoto)命名.

新货币的创造是为了奖励矿工验证交易. Esta recompensa no es la tarifa de transacción 在创建事务日志时指定,但由系统定义. 奖励金额会随着时间的推移而减少,最终在达到总硬币数量(21万枚)后恢复为零. Cuando esto sucede, 交易费用将发挥更大的作用,因为矿工可能会选择优先考虑最有价值的交易以进行验证。.

Aparte de fijar el límite superior en el número máximo de monedas, 比特币系统还使用了一种有趣的方式来限制每日新货币的生产。. 通过校准工作证明计算所需的最小初始零数, 验证交易和获得新硬币奖励所需的时间总是设置在10分钟左右. Si el tiempo entre agregar nuevos bloques a la cadena de bloques disminuye, 系统可能要求工作测试产生45或50个初始零.

Por lo tanto, al limitar la rapidez y la cantidad de monedas nuevas que se pueden generar, el sistema Bitcoin está controlando efectivamente la oferta monetaria.

Comience a “Imprimir” tu Propia Moneda

Como puedes ver, hacer tu propia versión de Bitcoin no es tan difícil. Al utilizar la tecnología existente, implementada de una manera innovadora, tienes todo lo que necesitas para una criptoconversión.

  1. 所有交易都是通过互联网使用P2P通信进行的, eliminando así la necesidad de una autoridad central
  2. 用户可以使用异步加密进行匿名交易,并且只能通过他们的私钥/公钥组合进行身份识别
  3. 对已安全复制到网络上所有对等体的所有事务部署一个经过验证的全局日志
  4. Usted tiene una fuente de dinero asegurada, automatizada, y controlada, 在没有中央权力的情况下确保货币稳定

Una última cosa que vale la pena mencionar es que, en su esencia, 密码学是在分布式点对点网络中将匿名信息/价值从一个用户转移到另一个用户的一种方式.

考虑用随机数据替换交易记录中的硬币,甚至可以使用异步加密技术进行加密,这样只有发送方和接收方才能解密. ¡Ahora piensa en aplicar eso a algo como el Internet de las cosas!

加密货币系统可能是一种有趣的方式,使我们的炉子和烤面包机之间的通信成为可能。.

许多技术重量级人物已经在探索在物联网平台上使用区块链技术, 但这并不是这种相对较新的技术的唯一潜在应用。.

如果你认为没有理由创建自己的替代货币(除了开玩笑), podría intentar utilizar el mismo o similar enfoque para otra cosa, como autenticación distribuida, creación de monedas virtuales utilizadas en juegos, redes sociales , y otras aplicaciones, 或者您可以继续为您的电子商务业务创建一个新的忠诚计划。, 奖励老客户的虚拟代币,可以在以后赎回。.

Hire a Toptal expert on this topic.
Hire Now
Demir Selmanovic

Demir Selmanovic

Verified Expert in Engineering
24 Years of Experience

Sarajevo, Federation of Bosnia and Herzegovina, Bosnia and Herzegovina

Member since July 8, 2014

About the author

Demir是一名开发人员和项目经理,在广泛的软件开发角色中拥有超过15年的专业经验。.

作者是各自领域的资深专家,并就他们有经验的主题撰写文章。. 我们所有的内容都经过了Toptal专家的同行审查和验证。.

World-class articles, delivered weekly.

Subscription implies consent to our privacy policy

World-class articles, delivered weekly.

Subscription implies consent to our privacy policy

Toptal Developers

Join the Toptal® community.