Blockchain, contratos inteligentes ... É fácil ou difícil?

No caso de armazenar informações em um banco de dados, um invasor pode obter acesso de uma forma ou de outra e fazer alterações para conseguir dinheiro.

Ele não precisa alterar todo o banco de dados, mas substituir apenas parte dos dados armazenados no banco de dados. No caso de uma cadeia de blocos, será necessário alterar toda a cadeia de blocos com dados, o que será extremamente difícil de fazer.

Por uma razão ou outra, quaisquer alterações nos dados podem ocorrer sem intenção maliciosa - falha de energia, falha de equipamento, etc.

Como funciona?

Portanto, existem dados e eles precisam ser protegidos de alterações indesejadas. As informações podem ser qualquer coisa - transações de fundos, movimento de encomendas, bilhetes de avião, etc.

Vamos dividir as informações (dados) em partes (blocos) e construir uma cadeia desses blocos.

Em nosso exemplo, os dados sobre transações de dinheiro serão armazenados.

Vamos criar o primeiro bloco.

Como o bloco é o primeiro, apenas os dados e o número do bloco serão armazenados nele.

Os dados do bloco conterão o tamanho de todo o problema de criptomoeda e o número da primeira carteira em que estão todos no estágio inicial.

Para maior clareza, você pode formar uma matriz de dados consistindo em um hash e um número de carteira.

A função hash não será usada pelo SHA 256, mas pelo MD5 mais simples, apenas o hash obtido com esta função é melhor legível por humanos (é mais curto) do que o SHA 256.

c4ca4238a0b923820dcc509a6f75849b ( 1).

1 .

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

, : 45d04629fc2f54182ba55aad029152ae.

, № 1 «2».

, , , .

.

.

.

, ( ), , .

— , , .

-

- ?

( -) .

, 1 ( ) , ( 2), .

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

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

, , .

, .

( ), , , .

( ) , , .., .

No caso dos contratos inteligentes, o cumprimento das condições é controlado de acordo com um algoritmo criado para o efeito sem intervenção humana de forma automática (por computador) e demora muito menos tempo do que na concretização de um contrato normal.

Código PHP para executar a operação de venda de criptomoeda (ETH) e compra de rublos na bolsa 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