El algoritmo Scrypt es un encriptado que utiliza mucha memoria y que toma mucho tiempo para la selección. El algoritmo Scrypt está implementado para la minería de criptomonedas, lo que permite hacerlo más complicado para los mineros especializados con ASIC.
El algoritmo Scrypt es una función hash que fue utilizada por primera vez por la criptomoneda Litecoin.
El Bitcoin junto con otras criptomonedas utiliza el algoritmo SHA-256, y no el Scrypt. A diferencia de la criptomoneda scrypt, Bitcoin y otras monedas en este algoritmo se pueden extraer fácilmente en ASIC (los dispositivos que se desarrollan específicamente para resolver las tareas de minería). A menudo provoca una reacción negativa por parte de los creadores de criptomonedas scrypt, ya que proporciona una ventaja a los mineros con grandes recursos y viola la descentralización.
Bitcoin que no usa Scrypt es solo un ejemplo. De ahí surge la popularidad de las monedas scrypt entre los mineros que utilizan procesadores (CPU) o tarjetas de video (GPU) para la minería. Revisemos el algoritmo scrypt, sus peculiaridades y ventajas.
¿Cómo funciona el Scrypt?
Antes de revisar las monedas del algoritmo scrypt en relación con la minería, echemos un vistazo al sistema en sí.Colin Percival es el desarrollador del algoritmo scrypt utilizado como protección del servicio en línea para mantener las copias de respaldo de sistemas operativos similares a UNIX. El algoritmo scrypt complica de manera intencional la selección de opciones para resolver una tarea criptográfica llenándola de "ruido". Nos referimos a ruido a la generación aleatoria de números que se incrustan en el código principal del algoritmo scrypt, lo que aumenta el tiempo de trabajo.
Si el scrypt comprueba la clave del usuario, este retraso será casi invisible. Sin embargo, si un estafador intenta romper el núcleo utilizando el método de búsqueda exhaustiva, Scrypt lo complica: juntas, todas las operaciones llevan mucho tiempo.
Para cualquier moneda Scrypt significa que su minería requerirá un gran número de participantes en la red, y cada uno de ellos hará una parte del trabajo.
Minería Scrypt
Un aspecto importante a la hora de seleccionar una criptomoneda que utiliza el algoritmo scrypt, es el saber donde minarla.A diferencia de SHA-256, la minería scrypt necesita menos recursos, gracias a los cuales las monedas que utilizan el algoritmo scrypt se pueden extraer con éxito con varias herramientas. Estos son el grupo de scrypt, y la CPU y GPU de scrypt miner, e incluso scrypt ASIC miner: los fabricantes de equipos ASIC también buscan la manera de implementar la minería con Scrypt en su tecnología.
Cuando un recién llegado comienza a estudiar el algoritmo scrypt, aparece la pregunta principal: qué usar para la minería. Su principal razón de elección es la tasa de hash de scrypt, es decir, el rendimiento requerido del equipo, que permitirá extraer la criptomoneda.
Para calcular el hash de Scrypt, es decir, encontrar esa solución que permitirá crear un nuevo bloque en la cadena de bloques, los mineros experimentados recomiendan usar GPU. Las tarjetas de video tienen más rendimiento que los procesadores, además, también son mejores para realizar una operación. Scrypt miner AMD se adaptará mejor: estas tarjetas de video tienen un rendimiento mayor que Nvidia, y armar una granja de servidores es más barato. La minería Scrypt también requiere mayores volúmenes de memoria.
Por cierto, los fabricantes de mineros de ASIC tampoco se quedan quietos. Hoy en día, ASIC puede hacer frente al algoritmo Scrypt, pero los desarrolladores continúan en esta guerra tecnológico, para permitir que el minero que seleccione el algoritmo Scrypt con el equipo menos productivo también tenga la posibilidad de extraer.
Sin embargo, se requieren recursos bastante grandes para iniciar la minería en solitario de Scrypt. Una forma alternativa son las piscinas scrypt. Estas son las comunidades, donde proporciona el poder de sus equipos para unir fuerzas. Tal enfoque da un mejor resultado que la minería en solitario, pero la recompensa se vuelve más baja.
Para encontrar los mejores grupos para la minería de criptografía de las criptomonedas, debe prestar atención a su orientación. Hay grupos personalizados para una sola moneda, y hay grupos de monedas múltiples, donde uno puede cambiar de una criptomoneda a otra. En relación con la estabilidad de los ingresos, los mejores grupos de scrypt pertenecen a la primera categoría.
Criptomoneda en Scrypt
La pregunta principal después de haber entendido qué es el algoritmo Scrypt, es qué hacer con él. La primera criptomoneda que utiliza el algoritmo scrypt es Litecoin. Todos los tenedores de Litecoin también trabajan en ello. Por ejemplo, la menor popularidad está en el algoritmo de la moneda Scrypt Dogecoin.Entre otras criptomonedas que utilizan el algoritmo scrypt se encuentran las monedas ProsperCoin, CashCoin, MonaCoin, Mooncoin y muchas otras.
Algoritmo
El algoritmo incluye los siguientes parámetros:Passphrase - la cadena de caracteres que se va a hash.
Salt - Una cadena de caracteres que modifica el hash para proteger contra ataques de tabla Rainbow
N - Parámetro de coste de CPU/memoria.
p - Parámetro de paralelización; un entero positivo que satisface p ≤ (2^32−1) * hLen/MFLen.
dkLen - Longitud de salida prevista en octetos de la clave derivada; un entero positivo que satisface dkLen ≤ (2^32>− 1) * hLen.
r - El parámetro de tamaño de bloque, que optimiza el tamaño y el rendimiento de la lectura secuencial de la memoria. 8 se utiliza comúnmente.
hLen - La longitud en octetos de la función hash (32 para SHA256).
MFlen - La longitud en octetos de la salida de la función de mezcla (SMix abajo). Definido como r * 128 en RFC7914.
Function scrypt Inputs: Passphrase: Bytes cadena de caracteres para ser hash Salt: Bytes Salt aleatorio CostFactor (N): Integer Parámetro de coste de CPU/memoria BlockSizeFactor (r): Integer Parámetro de tamaño de bloque (8 se usa comúnmente) ParallelizationFactor (p): Integer Parámetro de paralelización. (1..2^-1 * hLen/MFlen) DesiredKeyLen: Integer Longitud de clave deseada en bytes Output: DerivedKey: Bytes matriz de bytes, DesiredKeyLen largo Paso 1. Generar valor para Salt blockSize ← 128*BlockSizeFactor //Longitud (en bytes) de la salida de la función de mezcla SMix (por ejemplo, 128*8 = 1024 bytes) Utilice PBKDF2 para generar 128*BlockSizeFactor*p bytes de datos iniciales (por ejemplo, 128*8*3=3072 bytes) Considere el resultado como una matriz de elementos p, cada entrada tiene un tamaño de bloque de bytes (por ejemplo, 3 elementos, cada uno de 1024 bytes) [B0...Bp−1] ← PBKDF2HMAC-SHA256(Passphrase, Salt, 1, blockSize*ParallelizationFactor) Mezcle cada bloque en B 2^CostFactor veces usando la función ROMix (cada bloque puede mezclarse en paralelo) for i ← 0 to p-1 do Bi ← ROMix(Bi, 2^CostFactor) Todos los elementos de B son el nuevo valor de Salt. expensiveSalt ← B0∥B1∥B2∥ ... ∥Bp-1 //Donde || es concatenación Paso 2. Use PBKDF2 para generar el número deseado de bytes, pero usando el valor de Salt que acabamos de generar return PBKDF2HMAC-SHA256(Passphrase, expensiveSalt, 1, DesiredKeyLen); |
Function ROMix(Block, Iterations) Crea copias de iteraciones de X X ← Block for i ← 0 to Iterations−1 do Vi ← X X ← BlockMix(X) for i ← 0 to Iterations−1 do //Convertir los primeros 8 bytes del último bloque de 64 bytes de X en un UInt64, asumiendo el pequeño formato de endian (Intel) j ← Integerify(X) mod N X ← BlockMix(X xor Vj) return X |
Function BlockMix(B): El bloque B es r trozos de 128 bytes (que es equivalente a 2r trozos de 64 bytes) r ← Length(B) / 128; Trate a B como un de arreglo de 2 bytes de 64 bytes [B0...B2r-1] ← B X ← B2r−1for i ← 0 to 2r−1 do X ← Salsa20/8(X xor Bi) //Salsa20/8 hashes de 64 bytes a 64 bytes Yi ← X return ← Y0∥Y2∥...∥Y2r−2 ∥ Y1∥Y3∥...∥Y2r−1 |
Fuente:
bitcoinwiki.org - Scrypt
0 Comentarios