Blockchain ، العقود الذكية ... هل هي سهلة أم صعبة؟

في حالة تخزين المعلومات في قاعدة بيانات ، يمكن للمهاجم الوصول بطريقة أو بأخرى وإجراء تغييرات من أجل الحصول على المال.

لا يحتاج إلى تغيير قاعدة البيانات بأكملها ، ولكنه يستبدل فقط جزء من البيانات المخزنة في قاعدة البيانات. في حالة blockchain ، سيكون من الضروري تغيير سلسلة blockchain بأكملها بالبيانات ، وهو أمر سيكون صعبًا للغاية.

لسبب أو لآخر ، قد تحدث أي تغييرات في البيانات دون نية خبيثة - انقطاع التيار الكهربائي ، وتعطل المعدات ، وما إلى ذلك.

كيف تعمل؟

لذا ، هناك بيانات ويجب حمايتها من التغييرات غير المرغوب فيها. يمكن أن تكون المعلومات أي شيء - معاملات الأموال وحركة الطرود وتذاكر الطائرة وما إلى ذلك.

سنقسم المعلومات (البيانات) إلى أجزاء (كتل) ونبني سلسلة من هذه الكتل.

في مثالنا ، سيتم تخزين البيانات المتعلقة بالمعاملات المالية.

لنقم بإنشاء الكتلة الأولى.

نظرًا لأن الكتلة هي الأولى ، فسيتم تخزين البيانات ورقم الكتلة فقط فيها.

ستحتوي البيانات الموجودة في الكتلة على حجم مشكلة العملة المشفرة بالكامل ورقم المحفظة الأولى التي توجد عليها جميعًا في المرحلة الأولية.

من أجل الوضوح ، يمكنك إنشاء مصفوفة بيانات تتكون من تجزئة ورقم محفظة.

لن يتم استخدام دالة التجزئة بواسطة SHA 256 ، ولكن بواسطة MD5 الأبسط ، فإن التجزئة التي تم الحصول عليها باستخدام هذه الوظيفة تكون أفضل للقراءة البشرية (وهي أقصر) من SHA 256.

c4ca4238a0b923820dcc509a6f75849b ( 1).

1 .

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

, : 45d04629fc2f54182ba55aad029152ae.

, № 1 «2».

, , , .

.

.

.

, ( ), , .

— , , .

-

- ?

( -) .

, 1 ( ) , ( 2), .

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

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

, , .

, .

( ), , , .

( ) , , .., .

في حالة العقود الذكية ، يتم التحكم في استيفاء الشروط وفقًا لخوارزمية تم إنشاؤها لهذا الغرض دون تدخل بشري في الوضع التلقائي (بواسطة أجهزة الكمبيوتر) وهذا يستغرق وقتًا أقل بكثير مما يستغرقه عند عقد صفقة بموجب عقد عادي.

كود PHP لتنفيذ عملية بيع العملة المشفرة (ETH) وشراء الروبل في بورصة 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