Blockchain, contratos inteligentes ... ¿Es fácil o difícil?

En el caso de almacenar información en una base de datos, un atacante puede acceder de una forma u otra y realizar cambios para hacerse con dinero.

No necesita cambiar toda la base de datos, sino reemplazar solo una parte de los datos almacenados en la base de datos. En el caso de una cadena de bloques, será necesario cambiar toda la cadena de bloques con datos, lo que será extremadamente difícil de hacer.

Por una razón u otra, cualquier cambio en los datos puede ocurrir sin intención maliciosa: un corte de energía, falla del equipo, etc.

¿Cómo funciona?

Entonces, hay datos y deben protegerse de cambios no deseados. La información puede ser cualquier cosa: transacciones de fondos, movimiento de paquetes, billetes de avión, etc.

Dividiremos la información (datos) en partes (bloques) y construiremos una cadena de estos bloques.

En nuestro ejemplo, se almacenarán datos sobre transacciones monetarias.

Creemos el primer bloque.

Dado que el bloque es el primero, solo se almacenarán los datos y el número de bloque.

Los datos del bloque contendrán el tamaño de todo el problema de la criptomoneda y el número de la primera billetera en la que están todos en la etapa inicial.

Para mayor claridad, puede formar una matriz de datos que consta de un hash y un número de billetera.

– SHA 256, « » MD5, ( ), SHA 256.

c4ca4238a0b923820dcc509a6f75849b ( 1).

1 .

( 1) (1, 2, 3, …).

, : 45d04629fc2f54182ba55aad029152ae.

, № 1 «2».

, , , .

.

.

.

, ( ), , .

— , , .

-

- ?

( -) .

, 1 ( ) , ( 2), .

( ) , , , 1 , (2) ( , ).

( 1 2) 1 , , , 2 , , .

, , .

, .

( ), , , .

( ) , , .., .

– ( ) , .

Código PHP para ejecutar la operación de venta de criptomonedas (ETH) y compra de rublos en el intercambio exmo.me.

<?php

//exmo.me

$key = 'K-9………';
$secret = 'S-6…………';

$mt = explode(' ', microtime());
$NONCE = $mt[1] . substr($mt[0], 2, 6);

$url = "https://api.exmo.com/v1.1/order_create";

$req = array(
	"nonce"=>$NONCE,
	"pair"=>"ETC_RUB",
	"quantity"=>0.01, //
	"price"=>449.0754, //
	"type"=>"buy",
);

$post_data = http_build_query($req, '', '&');

$sign = hash_hmac('sha512', $post_data, $secret);

$headers = array(
	'Sign: ' . $sign,
	'Key: ' . $key,
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$output = curl_exec($ch);
$output = json_decode($output, true);

echo '<pre>';
var_dump($output);
echo '</pre>';

?>




All Articles