Ağıllı Müqavilələrə Giriş

Bu yazıda ağıllı müqavilələrin nə olduğuna, nə olduğuna baxacağıq, fərqli smart müqavilə platformaları, xüsusiyyətləri ilə tanış olacağıq, həmçinin onların necə işlədiyini və hansı üstünlüklər gətirə biləcəyini müzakirə edəcəyik. Bu material ağıllı müqavilələr mövzusu ilə yaxşı tanış olmayan, lakin onu başa düşməyə daha yaxın olmaq istəyən oxucular üçün çox faydalı olacaq.

Adi müqavilə vs. ağıllı müqavilə

Təfərrüatlara keçməzdən əvvəl kağız üzərində göstərilən adi müqavilə ilə rəqəmsal şəkildə təmsil olunan ağıllı müqavilə arasındakı fərqlərə bir nümunə götürək.

Ağıllı Müqavilələrə Giriş

Ağıllı müqavilələrin meydana çıxmasından əvvəl bu necə işləyirdi? Təsəvvür edin ki, dəyərlərin bölüşdürülməsi üçün müəyyən qayda və şərtlər, habelə bu bölgüsünün verilmiş qayda və şərtlərə uyğun həyata keçirilməsinə zəmanət verən müəyyən mexanizm yaratmaq istəyən bir qrup insan var. Sonra bir araya gələrək, şəxsiyyət təfərrüatlarını, şərtləri, aidiyyəti dəyərləri yazdıqları bir kağız tərtib edər, onlara tarix qoyar və imzalayardılar. Bu müqavilə həm də notarius kimi etibarlı tərəf tərəfindən təsdiq edilmişdir. Bundan əlavə, bu insanlar belə bir müqavilənin kağız nüsxəsi ilə müxtəlif istiqamətlərə getdilər və müqavilənin özünə uyğun gəlməyən bəzi hərəkətləri etməyə başladılar, yəni bir şey etdilər, amma kağız üzərində bir şey etməli olduqları təsdiq edildi. tamamilə fərqli. Və bu vəziyyətdən necə çıxmaq olar? Əslində, qrup üzvlərindən biri bu kağızı götürməli, bəzi sübutlar götürməli, məhkəməyə verməlidir və müqavilə ilə faktiki hərəkətlər arasında uyğunluğa nail olmalıdır. Çox vaxt xoşagəlməz nəticələrə səbəb olan bu müqavilənin ədalətli icrasına nail olmaq çətindir.

Ağıllı müqavilələr haqqında nə demək olar? Onlar həm müqavilənin şərtlərini yazmaq imkanını, həm də onların ciddi şəkildə yerinə yetirilməsi mexanizmini birləşdirir. Şərtlər müəyyən edilibsə və müvafiq əməliyyat və ya sorğu imzalanıbsa, həmin sorğu və ya əməliyyat qəbul edildikdən sonra şərtləri dəyişdirmək və ya onların icrasına təsir etmək artıq mümkün deyil.

Bir validator və ya bütöv bir şəbəkə, həmçinin ciddi xronoloji ardıcıllıqla icra üçün təqdim edilmiş bütün smart müqavilələri saxlayan verilənlər bazası var. Bu verilənlər bazasında ağıllı müqavilənin icrası üçün bütün tetikleyici şərtlərin olması da vacibdir. Bundan əlavə, paylanması müqavilədə təsvir olunan dəyəri nəzərə almalıdır. Əgər bu hansısa rəqəmsal valyutaya aiddirsə, o zaman bu verilənlər bazası bunu nəzərə almalıdır.

Başqa sözlə, ağıllı müqavilə təsdiqləyiciləri ağıllı müqavilənin işlədiyi bütün məlumatlara çıxış əldə etməlidir. Məsələn, rəqəmsal valyutaların, istifadəçi balanslarının, istifadəçi əməliyyatlarının və vaxt ştamplarının eyni vaxtda uçotu üçün vahid verilənlər bazasından istifadə edilməlidir. Sonra, ağıllı bir müqavilədə, şərt istifadəçinin müəyyən bir valyutada balansı, müəyyən bir vaxtın gəlməsi və ya müəyyən bir əməliyyatın həyata keçirilməsi faktı ola bilər, lakin başqa bir şey deyil.

Ağıllı müqavilənin tərifi

Ümumiyyətlə, terminologiyanın özü tədqiqatçı Nik Szabo tərəfindən yaradılmış və ilk dəfə 1994-cü ildə istifadə edilmişdir və 1997-ci ildə ağıllı müqavilələr ideyasını təsvir edən məqalədə sənədləşdirilmişdir.

Ağıllı müqavilələr, dəyər paylanmasının bəzi avtomatlaşdırılmasının həyata keçirildiyini nəzərdə tutur, bu da yalnız əvvəlcədən müəyyən edilmiş şərtlərdən asılı ola bilər. Ən sadə formada o, müəyyən tərəflər tərəfindən imzalanan, ciddi şəkildə müəyyən edilmiş şərtləri olan müqaviləyə bənzəyir.

Ağıllı müqavilələr üçüncü tərəflərə inamı minimuma endirmək üçün nəzərdə tutulub. Bəzən hər şeyin asılı olduğu qərar qəbuletmə mərkəzi tamamilə istisna olunur. Bundan əlavə, bu cür müqavilələrin yoxlanılması daha asandır. Bu, belə bir sistemin bəzi dizayn xüsusiyyətlərinin nəticəsidir, lakin çox vaxt biz ağıllı müqavilə ilə mərkəzləşdirilməmiş mühiti və hər kəsə verilənlər bazasını təhlil etməyə və müqavilələrin icrasının tam auditini aparmağa imkan verən funksiyaların mövcudluğunu başa düşürük. Bu, müqavilənin özünün icrasında dəyişikliklərə səbəb olacaq retroaktiv məlumat dəyişikliklərindən qorunma təmin edir. Ağıllı müqavilənin yaradılması və işə salınması zamanı əksər proseslərin rəqəmsallaşdırılması çox vaxt onların həyata keçirilməsi texnologiyasını və xərclərini asanlaşdırır.

Sadə bir nümunə - Escrow xidməti

Çox sadə bir misala baxaq. Bu, ağıllı müqavilələrin funksionallığını başa düşməyə, eləcə də hansı hallarda istifadə edilməli olduğunu daha yaxşı başa düşməyə kömək edəcək.

Ağıllı Müqavilələrə Giriş

O, həmçinin Bitcoin-dən istifadə etməklə də həyata keçirilə bilər, baxmayaraq ki, hazırda Bitcoin-i hələ çətin ki, ağıllı müqavilələr üçün tam hüquqlu platforma adlandırmaq olar. Beləliklə, bir az alıcımız var və onlayn mağazamız var. Müştəri bu mağazadan monitor almaq istəyir. Ən sadə halda, alıcı ödənişi tamamlayır və göndərir və onlayn mağaza onu qəbul edir, təsdiqləyir və sonra malları göndərir. Bununla belə, bu vəziyyətdə böyük etibara ehtiyac var - alıcı monitorun bütün dəyəri üçün onlayn mağazaya etibar etməlidir. İnternet mağazası alıcının gözündə aşağı reputasiyaya malik ola bildiyindən, nədənsə ödənişi qəbul etdikdən sonra mağazanın xidmətdən imtina etməsi və malı alıcıya göndərməməsi riski var. Buna görə də, alıcı bu cür riskləri minimuma endirmək və bu cür əməliyyatları daha etibarlı etmək üçün bu halda nə tətbiq oluna biləcəyi sualını verir (və buna uyğun olaraq onlayn mağaza da bu sualı verir).

Bitkoin vəziyyətində alıcı və satıcının müstəqil olaraq vasitəçi seçməsinə icazə vermək mümkündür. Mübahisəli məsələlərin həllində iştirak edənlər çoxdur. İştirakçılarımız isə ümumi vasitəçi siyahısından etibar edəcəklərini seçə bilərlər. Birlikdə onlar üç açarın olduğu 2-dən 3-ü çox imzalı ünvan yaradırlar və həmin ünvandan sikkələrin xərclənməsi üçün istənilən iki açarı olan iki imza tələb olunur. Bir açar alıcıya, ikincisi onlayn mağazaya, üçüncüsü isə vasitəçiyə məxsus olacaq. Və belə bir çox imzalı ünvana alıcı monitor üçün ödəmək üçün lazım olan məbləği göndərəcək. İndi satıcı pulun özündən asılı olan çox imzalı ünvanda bir müddət bloklandığını görəndə monitoru təhlükəsiz şəkildə poçtla göndərə bilər.

Sonra alıcı bağlamanı alır, malları yoxlayır və son alış haqqında qərar qəbul edir. O, göstərilən xidmətlə tamamilə razılaşa və öz açarı ilə əməliyyatı imzalaya bilər, burada çox imzalı ünvandan pulları satıcıya köçürür və ya nədənsə narazı qala bilər. İkinci halda, o, həmin sikkələri fərqli şəkildə paylayacaq alternativ bir əməliyyat qurmaq üçün vasitəçi ilə əlaqə saxlayır.

Tutaq ki, monitor bir az cızıqlanmış gəldi və dəstdə kompüterə qoşulmaq üçün kabel yox idi, baxmayaraq ki, onlayn mağazanın saytında kabelin dəstdə olması lazım olduğunu söylədi. Sonra alıcı vasitəçiyə bu vəziyyətdə aldandığını sübut etmək üçün lazım olan sübutları toplayır: o, saytın skrinşotlarını çəkir, poçt qəbzinin şəklini çəkir, monitorda cızıqların şəklini çəkir və möhürün olduğunu göstərir. qırıldı və kabel çıxarıldı. Onlayn mağaza da öz dəlillərini toplayır və vasitəçiyə ötürür.

Vasitəçi həm alıcının qəzəbini, həm də onlayn mağazanın maraqlarını eyni vaxtda təmin etməkdə maraqlıdır (niyə daha sonra aydın olacaq). Bu, çox imzalı ünvandan sikkələrin alıcı, onlayn mağaza və vasitəçi arasında müəyyən nisbətdə xərclənəcəyi bir əməliyyat təşkil edir, çünki o, işinə görə mükafat olaraq bir hissəni özü üçün alır. Tutaq ki, ümumi məbləğin 90%-i satıcıya, 5%-i vasitəçiyə, 5%-i isə alıcıya gedir. Vasitəçi bu əməliyyatı öz açarı ilə imzalayır, lakin o, hələ tətbiq oluna bilməz, çünki bu, iki imza tələb edir, lakin yalnız biri buna dəyər. Belə bir əməliyyatı həm alıcıya, həm də satıcıya göndərir. Əgər onlardan ən azı biri sikkələrin yenidən paylanması üçün bu seçimdən razıdırsa, o zaman əməliyyat əvvəlcədən imzalanacaq və şəbəkəyə paylanacaq. Bunu təsdiqləmək üçün əməliyyatın tərəflərindən birinin vasitəçinin seçimi ilə razılaşması kifayətdir.

Əvvəlcə vasitəçi seçmək vacibdir ki, hər iki iştirakçı ona etibar etsin. Bu zaman o, bu və ya digərinin maraqlarından asılı olmayaraq hərəkət edəcək və vəziyyəti obyektiv qiymətləndirəcək. Vasitəçi ən azı bir iştirakçını qane edəcək sikkələrin paylanması variantını təqdim etmirsə, o zaman həm alıcı, həm də onlayn mağaza razılaşaraq iki imzanı qoyaraq sikkələri yeni çox imzalı ünvana göndərə bilər. Yeni çox imzalı ünvan, məsələdə daha səriştəli və daha yaxşı seçim təqdim edən fərqli vasitəçi ilə tərtib olunacaq.

Məsələn, yataqxana və soyuducu

Ağıllı müqavilənin imkanlarını daha aydın şəkildə göstərən daha mürəkkəb nümunəyə baxaq.

Ağıllı Müqavilələrə Giriş

Tutaq ki, bu yaxınlarda eyni yataqxanaya köçən üç oğlan var. Onların üçü otaqlarına birlikdə istifadə edə biləcəkləri soyuducu almaqda maraqlıdırlar. Onlardan biri könüllü olaraq soyuducu almaq üçün lazım olan məbləği toplayıb və satıcı ilə danışıqlar aparıb. Lakin onlar bir-birləri ilə yeni tanış olublar və aralarında kifayət qədər inam yoxdur. Açığı, ikisi üçüncüyə pul verməklə riskə gedir. Bundan əlavə, onlar satıcı seçimində razılığa gəlməlidirlər.

Onlar eskrow xidmətindən istifadə edə bilərlər, yəni əməliyyatın icrasına nəzarət edəcək və yaranarsa mübahisəli məsələləri həll edəcək vasitəçi seçə bilərlər. Sonra razılaşaraq, ağıllı bir müqavilə tərtib edir və orada müəyyən şərtlər təyin edirlər.

Birinci şərt odur ki, müəyyən vaxtdan əvvəl, deyək ki, bir həftə ərzində, müvafiq smart müqavilə hesabı müəyyən ünvanlardan müəyyən məbləğ üçün üç ödəniş almalıdır. Bu baş vermədikdə, ağıllı müqavilə icrasını dayandırır və sikkələri bütün iştirakçılara qaytarır. Şərt yerinə yetirilərsə, satıcı və vasitəçi identifikatorlarının dəyərləri təyin edilir və bütün iştirakçıların satıcı və vasitəçinin seçimi ilə razı olması şərti yoxlanılır. Bütün şərtlər yerinə yetirildikdə, vəsaitlər göstərilən ünvanlara köçürüləcək. Bu yanaşma iştirakçıları istənilən tərəfdən saxtakarlıqdan qoruya bilər və ümumiyyətlə etibar ehtiyacını aradan qaldırır.

Bu misalda, hər bir şərti yerinə yetirmək üçün addım-addım parametrlər təyin etmək bacarığının istənilən mürəkkəblik və dərinlikdəki sistemləri yaratmağa imkan verdiyi prinsipini görürük. Bundan əlavə, siz əvvəlcə smart müqavilədə birinci şərti müəyyən edə bilərsiniz və yalnız onun yerinə yetirilməsindən sonra növbəti şərt üçün parametrlər təyin edə bilərsiniz. Başqa sözlə, şərt formal olaraq yazılır və onun parametrləri onun işləməsi zamanı artıq təyin edilə bilər.

Ağıllı müqavilələrin təsnifatı

Təsnifat üçün müxtəlif meyar qrupları təyin edə bilərsiniz. Bununla belə, texnologiyanın inkişafı zamanı onlardan dördü aktualdır.

Ağıllı müqavilələr mərkəzləşdirilmiş və ya mərkəzləşdirilməmiş ola bilən icra mühiti ilə fərqlənə bilər. Mərkəzsizləşdirmə vəziyyətində, ağıllı müqavilələri yerinə yetirərkən daha çox müstəqilliyə və səhvlərə dözümlülüyünə sahibik.

Şərtlərin qurulması və yerinə yetirilməsi prosesi ilə də fərqlənə bilər: onlar sərbəst proqramlaşdırıla, məhdud və ya əvvəlcədən təyin edilə bilər, yəni ciddi şəkildə yazıla bilər. Ağıllı müqavilə platformasında yalnız 4 xüsusi smart müqavilə olduqda, onlar üçün parametrlər istənilən şəkildə təyin edilə bilər. Müvafiq olaraq, onların qurulması daha sadədir: siyahıdan müqavilə seçirik və parametrləri keçirik.

Başlama metoduna görə, avtomatlaşdırılmış smart müqavilələr var, yəni müəyyən şərtlər yarandıqda, onlar öz-özünə icra olunur və şərtlərin göstərildiyi müqavilələr var, lakin platforma avtomatik olaraq onların yerinə yetirilməsini yoxlamır; bunun üçün onlar ayrıca başlamaq lazımdır.

Bundan əlavə, ağıllı müqavilələr məxfilik səviyyəsinə görə dəyişir. Onlar tamamilə açıq, qismən və ya tamamilə məxfi ola bilər. Sonuncu o deməkdir ki, üçüncü tərəf müşahidəçiləri ağıllı müqavilələrin şərtlərini görmürlər. Bununla belə, məxfilik mövzusu çox genişdir və onu indiki məqalədən ayrıca nəzərdən keçirmək daha yaxşıdır.

Aşağıda cari mövzunun başa düşülməsinə daha çox aydınlıq gətirmək üçün ilk üç meyara daha yaxından nəzər salacağıq.

İş vaxtı ilə ağıllı müqavilələr

Ağıllı Müqavilələrə Giriş

İcra mühitinə əsasən, mərkəzləşdirilmiş və mərkəzləşdirilməmiş ağıllı müqavilə platformaları arasında fərq qoyulur. Mərkəzləşdirilmiş rəqəmsal müqavilələr vəziyyətində tək bir xidmətdən istifadə olunur, burada yalnız bir validator var və ehtiyat nüsxə və bərpa xidməti də ola bilər ki, bu da mərkəzdən idarə olunur. Ağıllı müqavilənin şərtlərini təyin etmək və bu xidmət bazasında nəzərə alınan dəyəri yaymaq üçün bütün lazımi məlumatları saxlayan bir verilənlər bazası var. Belə bir mərkəzləşdirilmiş xidmətdə müəyyən sorğularla şərtlər qoyan və belə müqavilələrdən istifadə edən müştəri var. Platformanın mərkəzləşdirilmiş xarakterinə görə, autentifikasiya mexanizmləri kriptovalyutalara nisbətən daha az təhlükəsiz ola bilər.

Nümunə olaraq mobil rabitə provayderlərini (müxtəlif mobil operatorları) götürə bilərik. Tutaq ki, müəyyən operator öz serverlərində müxtəlif formatlarda ötürülə bilən trafikin mərkəzləşdirilmiş qeydini aparır, məsələn: səsli zənglər, SMS ötürülməsi, mobil internet trafiki şəklində və müxtəlif standartlara uyğun olaraq, həmçinin qeydlər aparır. istifadəçi qalıqlarındakı vəsaitlərin. Müvafiq olaraq, mobil rabitə provayderi göstərilən xidmətlərin uçotu və müxtəlif şərtlərlə ödənilməsi üçün müqavilələr tərtib edə bilər. Bu halda, “filan nömrəyə filan kodu olan SMS göndərin və siz trafikin paylanması üçün filan şərtləri alacaqsınız” kimi şərtləri təyin etmək asandır.

Daha bir misal göstərmək olar: İnternet bankçılığın genişləndirilmiş funksionallığına malik ənənəvi banklar və müntəzəm ödənişlər, daxil olan ödənişlərin avtomatik konvertasiyası, müəyyən edilmiş hesaba faizlərin avtomatik tutulması və s. kimi çox sadə müqavilələr.

Mərkəzləşdirilməmiş icra mühiti ilə ağıllı müqavilələrdən danışırıqsa, onda bir qrup təsdiqləyicimiz var. İdeal olaraq, hər kəs validator ola bilər. Verilənlər bazası sinxronizasiya protokolu və konsensusa nail olunması səbəbindən, formatları tez-tez dəyişən və açıq spesifikasiya olmayan bəzi şərti sorğular deyil, bütün əməliyyatları ciddi şəkildə təsvir edilmiş müqavilələrlə saxlayacaq ümumi verilənlər bazamız var. Burada əməliyyatlar müqaviləni ciddi spesifikasiyaya uyğun icra etmək üçün təlimatlardan ibarət olacaq. Bu spesifikasiya açıqdır və buna görə də platforma istifadəçiləri ağıllı müqavilələri yoxlaya və təsdiq edə bilərlər. Burada görürük ki, mərkəzləşdirilməmiş platformalar müstəqillik və nasazlığa dözümlülük baxımından mərkəzləşdirilmiş platformalardan üstündür, lakin onların dizaynı və texniki xidməti çox daha mürəkkəbdir.

Şərtlərin qoyulması və yerinə yetirilməsi üsulu ilə ağıllı müqavilələr

İndi ağıllı müqavilələrin şərtləri təyin etmə və yerinə yetirmə üsulu ilə necə fərqlənə biləcəyinə daha yaxından nəzər salaq. Burada diqqətimizi təsadüfi proqramlaşdırıla bilən və Turing tamamlanan ağıllı müqavilələrə yönəldirik. Turing-complete smart müqaviləsi demək olar ki, istənilən alqoritmləri müqavilənin icrası üçün şərtlər kimi təyin etməyə imkan verir: yazma dövrləri, ehtimalların hesablanması üçün bəzi funksiyalar və s. - öz elektron imza alqoritmlərinizə qədər. Bu halda məntiqin həqiqətən özbaşına yazılmasını nəzərdə tuturuq.

Özbaşına ağıllı müqavilələr də var, lakin Turing tam müqavilələri deyil. Buraya öz skripti ilə Bitcoin və Litecoin daxildir. Bu o deməkdir ki, siz istənilən qaydada yalnız müəyyən əməliyyatlardan istifadə edə bilərsiniz, lakin siz artıq döngələr və öz alqoritmlərinizi yaza bilməzsiniz.

Bundan əlavə, əvvəlcədən müəyyən edilmiş ağıllı müqavilələri həyata keçirən ağıllı müqavilə platformaları var. Bunlara Bitshares və Steemit daxildir. Bitshares ticarət, hesabların idarə edilməsi, platformanın özünün və onun parametrlərinin idarə edilməsi üçün bir sıra ağıllı müqavilələrə malikdir. Steemit oxşar platformadır, lakin o, artıq Bitshares kimi tokenlərin buraxılmasına və ticarətə deyil, blog yazmağa, yəni məzmunu mərkəzləşdirilməmiş şəkildə saxlayır və emal edir.

İxtiyari Turing-tamamlanmış müqavilələrə Ethereum platforması və hələ də inkişaf mərhələsində olan RootStock daxildir. Buna görə də, aşağıda Ethereum smart müqavilə platformasında bir az daha ətraflı dayanacağıq.

Başlama üsulu ilə ağıllı müqavilələr

Başlama üsuluna əsasən, ağıllı müqavilələr də ən azı iki qrupa bölünə bilər: avtomatlaşdırılmış və əl ilə (avtomatlaşdırılmamış). Avtomatlaşdırılmış olanlar, bütün məlum parametrlər və şərtlər nəzərə alınmaqla, ağıllı müqavilənin tamamilə avtomatik olaraq icra edilməsi ilə xarakterizə olunur, yəni hər hansı bir əlavə əməliyyatın göndərilməsini və hər bir sonrakı icra üçün əlavə komissiyanın xərclənməsini tələb etmir. Platformanın özündə ağıllı müqavilənin necə tamamlanacağını hesablamaq üçün bütün məlumatlar var. Orada məntiq ixtiyari deyil, əvvəlcədən müəyyənləşdirilmişdir və bütün bunlar proqnozlaşdırıla biləndir. Yəni, ağıllı bir müqavilənin icrasının mürəkkəbliyini əvvəlcədən qiymətləndirə, bunun üçün bir növ daimi komissiyadan istifadə edə bilərsiniz və onun həyata keçirilməsi üçün bütün proseslər daha səmərəlidir.

Sərbəst proqramlaşdırılmış ağıllı müqavilələr üçün icra avtomatlaşdırılmır. Belə bir ağıllı müqaviləyə başlamaq üçün, demək olar ki, hər addımda növbəti icra mərhələsini və ya növbəti smart müqavilə metodunu çağıracaq, müvafiq komissiya ödəməli və əməliyyatın təsdiqlənməsini gözləyəcək yeni bir əməliyyat yaratmalısınız. İcra müvəffəqiyyətlə tamamlana və ya olmaya bilər, çünki ağıllı müqavilə kodu ixtiyaridir və bəzi gözlənilməz məqamlar görünə bilər, məsələn, əbədi döngə, bəzi parametrlərin və arqumentlərin olmaması, idarə olunmayan istisnalar və s.

Ethereum Hesabları

Ethereum Hesab Növləri

Ethereum platformasında hansı növ hesabların ola biləcəyinə baxaq. Burada yalnız iki növ hesab var və başqa seçim yoxdur. Birinci növ istifadəçi hesabı adlanır, ikincisi müqavilə hesabıdır. Onların necə fərqləndiyini anlayaq.

İstifadəçi hesabı yalnız elektron imzanın şəxsi açarı ilə idarə olunur. Hesab sahibi ECDSA (Elliptik Əyri Rəqəmsal İmza Alqoritmi) alqoritmindən istifadə edərək elektron imza üçün öz açar cütünü yaradır. Yalnız bu açarla imzalanmış əməliyyatlar bu hesabın vəziyyətini dəyişə bilər.

Ağıllı müqavilə hesabı üçün ayrıca məntiq verilir. O, yalnız smart müqavilənin davranışını tamamilə müəyyən edən əvvəlcədən təyin edilmiş proqram kodu ilə idarə oluna bilər: o, müəyyən şəraitdə öz sikkələrini necə idarə edəcək, hansı istifadəçinin təşəbbüsü ilə və hansı əlavə şərtlərlə bu sikkələr paylanacaq. Proqram kodunda bəzi məqamlar tərtibatçılar tərəfindən nəzərdə tutulmayıbsa, problemlər yarana bilər. Məsələn, ağıllı müqavilə müəyyən bir vəziyyət ala bilər ki, o, hər hansı bir istifadəçidən sonrakı icraya başlamağı qəbul etmir. Bu halda, sikkələr əslində dondurulacaq, çünki ağıllı müqavilə bu vəziyyətdən çıxmağı nəzərdə tutmur.

Ethereum-da hesablar necə yaradılır

İstifadəçi hesabı vəziyyətində, sahibi ECDSA-dan istifadə edərək müstəqil olaraq açar cütü yaradır. Qeyd etmək vacibdir ki, Ethereum Bitcoin kimi elektron imzalar üçün tam olaraq eyni alqoritmdən və eyni elliptik əyridən istifadə edir, lakin ünvan bir az fərqli şəkildə hesablanır. Burada Bitcoin-də olduğu kimi ikiqat hashing nəticəsi artıq istifadə edilmir, lakin 256 bit uzunluğunda Keccak funksiyası ilə tək hashing təmin edilir. Ən az əhəmiyyətli bitlər nəticədə alınan dəyərdən, yəni çıxış hash dəyərinin ən az əhəmiyyətli 160 bitindən kəsilir. Nəticədə Ethereum-da bir ünvan əldə edirik. Əslində, 20 bayt yer tutur.

Nəzərə alın ki, Ethereum-da hesab identifikatoru, bitkoin və bir çox digər sistemlərdən fərqli olaraq yoxlama məbləği tətbiq edilmədən hex ilə kodlanır, burada ünvan yoxlama məbləği əlavə edilməklə baza 58 say sistemində kodlanır. Bu o deməkdir ki, Ethereum-da hesab identifikatorları ilə işləyərkən diqqətli olmaq lazımdır: identifikatorda hətta bir səhvin sikkələrin itirilməsinə səbəb olacağına zəmanət verilir.

Əhəmiyyətli bir xüsusiyyət var və o, ilk daxil olan ödənişi qəbul etdiyi anda ümumi verilənlər bazası səviyyəsində istifadəçi hesabı yaradılır.

Ağıllı müqavilə hesabı yaratmaq tamamilə fərqli bir yanaşma tələb edir. Əvvəlcə istifadəçilərdən biri smart müqavilənin mənbə kodunu yazır, bundan sonra kod Ethereum platforması üçün xüsusi tərtibatçıdan keçir, öz Ethereum virtual maşını üçün bayt kodu əldə edir. Yaranan bayt kodu əməliyyatın xüsusi sahəsinə yerləşdirilir. Təşəbbüskarın hesabı adından təsdiqlənir. Sonra, bu əməliyyat bütün şəbəkədə yayılır və ağıllı müqavilə kodunu yerləşdirir. Əməliyyata görə və müvafiq olaraq müqavilənin icrasına görə komissiya təşəbbüsçünün hesabından çıxarılır.

Hər bir ağıllı müqavilə mütləq öz konstruktorunu (bu müqavilənin) ehtiva edir. O, boş və ya məzmunlu ola bilər. Konstruktor icra edildikdən sonra ağıllı müqavilə hesabı identifikatoru yaradılır, ondan istifadə edərək sikkələr göndərə, müəyyən smart müqavilə üsullarına zəng edə və s.

Ethereum əməliyyat strukturu

Bunu daha aydın etmək üçün biz Ethereum əməliyyatının strukturuna və nümunə smart müqavilə koduna baxmağa başlayacağıq.

Ağıllı Müqavilələrə Giriş

Ethereum əməliyyatı bir neçə sahədən ibarətdir. Bunlardan birincisi, qeyri-neft, onu paylayan və onun müəllifi olan hesabın özünə nisbətən əməliyyatın müəyyən seriya nömrəsidir. Bu, ikiqat əməliyyatları fərqləndirmək, yəni eyni əməliyyatın iki dəfə qəbul edildiyi halı istisna etmək üçün lazımdır. Bir identifikatordan istifadə etməklə, hər bir əməliyyat unikal hash dəyərinə malikdir.

Sonrakı kimi bir sahə gəlir qazın qiyməti. Bu, ağıllı müqavilənin icrası və virtual maşın resursunun ayrılması üçün ödəniş etmək üçün istifadə olunan Ethereum baza valyutasının qaza çevrildiyi qiyməti göstərir. Bunun mənası nədi?

Bitcoin-də ödənişlər birbaşa əsas valyuta - Bitkoinin özü tərəfindən ödənilir. Bu, onların hesablanmasının sadə mexanizmi sayəsində mümkündür: biz əməliyyatda olan məlumatların miqdarını ciddi şəkildə ödəyirik. Ethereum-da vəziyyət daha mürəkkəbdir, çünki əməliyyat məlumatlarının həcminə etibar etmək çox çətindir. Burada əməliyyat həm də virtual maşında icra olunacaq proqram kodunu ehtiva edə bilər və virtual maşının hər bir əməliyyatı fərqli mürəkkəbliyə malik ola bilər. Dəyişənlər üçün yaddaş ayıran əməliyyatlar da var. Onların hər bir əməliyyat üçün ödənişin asılı olacağı öz mürəkkəbliyi olacaq.

Qaz ekvivalentində hər bir əməliyyatın dəyəri sabit olacaqdır. Hər bir əməliyyatın sabit dəyərini müəyyən etmək üçün xüsusi olaraq təqdim olunur. Şəbəkəyə düşən yükdən asılı olaraq qazın qiyməti, yəni komissiyanın ödənilməsi üçün baza valyutasının bu köməkçi vahidə çevriləcəyi əmsal dəyişəcək.

Ethereum-da əməliyyatın daha bir xüsusiyyəti var: virtual maşında icra etmək üçün onun ehtiva etdiyi bayt kodu müəyyən bir nəticə (uğur və ya uğursuzluq) ilə tamamlanana qədər və ya komissiyanı ödəmək üçün ayrılmış müəyyən miqdarda sikkələr bitənə qədər icra ediləcək. . Bəzi səhvlər baş verərsə, göndəricinin hesabından bütün sikkələrin komissiyaya xərcləndiyi bir vəziyyətin qarşısını almaq üçün (məsələn, virtual maşında bir növ əbədi dövr başladı), aşağıdakı sahə mövcuddur - qaza başlayın (tez-tez qaz limiti adlanır) - göndərənin müəyyən bir əməliyyatı başa çatdırmaq üçün sərf etməyə hazır olduğu sikkələrin maksimum miqdarını müəyyən edir.

Növbəti sahə adlanır təyinat ünvanı. Buraya sikkələrin alıcısının ünvanı və ya üsulları çağırılacaq xüsusi smart müqavilənin ünvanı daxildir. Ondan sonra sahə gəlir dəyər, burada təyinat ünvanına göndərilən sikkələrin miqdarı daxil edilir.

Sonrakı adlanan maraqlı sahədir məlumat, bütün strukturun uyğun olduğu yer. Bu ayrı bir sahə deyil, virtual maşın üçün kodun müəyyən edildiyi bütöv bir strukturdur. Burada ixtiyari məlumatları yerləşdirə bilərsiniz - bunun üçün ayrıca qaydalar var.

Və sonuncu sahə adlanır imza. O, eyni zamanda həm bu əməliyyatın müəllifinin elektron imzasını, həm də bu imzanın yoxlanılacağı açıq açarı ehtiva edir. Açıq açardan bu əməliyyatın göndəricisinin hesab identifikatorunu əldə edə bilərsiniz, yəni sistemin özündə göndərənin hesabını unikal şəkildə müəyyənləşdirə bilərsiniz. Əməliyyatın strukturu ilə bağlı əsas şeyi öyrəndik.

Solidity üçün ağıllı müqavilə kodu nümunəsi

İndi bir nümunədən istifadə edərək ən sadə ağıllı müqaviləyə daha yaxından nəzər salaq.

contract Bank {
    address owner;
    mapping(address => uint) balances;
    
    function Bank() {
        owner = msg.sender;
    }

    function deposit() public payable {
        balances[msg.sender] += msg.value;
    }

    function withdraw(uint amount) public {
        if (balances[msg.sender] >= amount) {
            balances[msg.sender] -= amount;
            msg.sender.transfer(amount);
        }
    }

    function getMyBalance() public view returns(uint) {
        return balances[msg.sender];
    }

    function kill() public {
        if (msg.sender == owner)
            selfdestruct(owner);
    }
}

Yuxarıda istifadəçilərin sikkələrini saxlaya bilən və tələb olunduqda qaytara bilən sadələşdirilmiş mənbə kodu var.

Belə ki, aşağıdakı funksiyaları yerinə yetirən Bank smart müqaviləsi var: o, öz balansında sikkələr toplayır, yəni əməliyyat təsdiq edildikdə və belə smart müqavilə yerləşdirildikdə onun balansında sikkələr ola biləcək yeni hesab yaradılır; istifadəçiləri və onlar arasında sikkələrin paylanmasını xatırlayır; balansları idarə etmək üçün bir neçə üsula malikdir, yəni istifadəçinin balansını doldurmaq, çıxarmaq və yoxlamaq mümkündür.

Mənbə kodunun hər bir sətirindən keçək. Bu müqavilənin daimi sahələri var. Onlardan biri tip ünvanı ilə sahib adlanır. Burada müqavilə bu ağıllı müqaviləni yaradan istifadəçinin ünvanını xatırlayır. Bundan əlavə, istifadəçi ünvanları və balansları arasında yazışmaları təmin edən dinamik bir quruluş var.

Bundan sonra Bank metodu gəlir - müqavilə ilə eyni ada malikdir. Müvafiq olaraq, bu onun konstruktorudur. Burada sahib dəyişəninə bu ağıllı müqaviləni şəbəkəyə yerləşdirən şəxsin ünvanı təyin edilir. Bu konstruktorda baş verən yeganə şey budur. Yəni, bu halda mesaj tam olaraq bu müqavilənin bütün kodunu ehtiva edən əməliyyatla birlikdə virtual maşına ötürülən məlumatlardır. Müvafiq olaraq, msg.sender bu kodu özündə saxlayan bu əməliyyatın müəllifidir. O, ağıllı müqavilənin sahibi olacaq.

Depozit üsulu əməliyyatla müəyyən sayda sikkələri müqavilə hesabına köçürməyə imkan verir. Bu halda, smart müqavilə, bu sikkələri qəbul edərək, onları öz balansında qoyur, lakin onların kimə aid olduğunu bilmək üçün bu sikkələrin göndəricisinin dəqiq kim olduğunu balans strukturunda qeyd edir.

Növbəti üsul geri çəkilmə adlanır və bir parametr tələb edir - kiminsə bu bankdan çıxarmaq istədiyi sikkələrin miqdarı. Bu, onları göndərmək üçün bu metodu çağıran istifadəçinin balansında kifayət qədər sikkə olub-olmadığını yoxlayır. Əgər bunlar kifayət qədərdirsə, ağıllı müqavilənin özü zəng edənə həmin sikkələrin sayını qaytarır.

Sonra istifadəçinin cari balansını yoxlamaq üsulu gəlir. Bu üsulu kim çağırırsa, ağıllı müqavilədə bu balansı almaq üçün istifadə olunacaq. Qeyd etmək lazımdır ki, bu metodun dəyişdiricisi görünüşdür. Bu o deməkdir ki, metodun özü heç bir şəkildə öz sinfinin dəyişənlərini dəyişmir və əslində yalnız oxuma üsuludur. Bu metodu çağırmaq üçün ayrıca əməliyyat yaradılmır, heç bir komissiya ödənilmir və bütün hesablamalar yerli olaraq aparılır, bundan sonra istifadəçi nəticəni alır.

Öldürmə üsulu ağıllı müqavilənin vəziyyətini məhv etmək üçün lazımdır. Və burada bu metodu çağıran şəxsin bu müqavilənin sahibi olub-olmadığını yoxlamaq üçün əlavə bir yoxlama var. Əgər belədirsə, onda müqavilə özünü məhv edir və məhvetmə funksiyası bir parametr alır - müqavilənin balansında qalan bütün sikkələri göndərəcəyi hesab identifikatoru. Bu halda, qalan sikkələr avtomatik olaraq müqavilə sahibinin ünvanına gedəcək.

Ethereum şəbəkəsində tam node necə işləyir?

Bu cür ağıllı müqavilələrin Ethereum platformasında necə icra edildiyinə və tam şəbəkə nodeunun necə işlədiyinə sxematik şəkildə baxaq.

Ağıllı Müqavilələrə Giriş

Ethereum şəbəkəsindəki tam node ən azı dörd modula malik olmalıdır.
Birincisi, hər hansı bir qeyri-mərkəzləşdirilmiş protokol kimi, P2P şəbəkə moduludur - bloklar, əməliyyatlar və digər qovşaqlar haqqında məlumat mübadiləsi aparıldığı şəbəkə bağlantısı və digər qovşaqlarla işləmək üçün modul. Bu, bütün mərkəzləşdirilməmiş kriptovalyutalar üçün ənənəvi komponentdir.

Sonra, blokçeyn məlumatlarını saxlamaq, emal etmək, prioritet filial seçmək, blokları əlavə etmək, blokları ayırmaq, bu blokları yoxlamaq və s. üçün modulumuz var.

Üçüncü modul EVM (Ethereum virtual machine) adlanır - bu, Ethereum əməliyyatlarından bayt kodu alan virtual maşındır. Bu modul müəyyən hesabın cari vəziyyətini götürür və qəbul edilmiş bayt kodu əsasında onun vəziyyətinə dəyişikliklər edir. Hər bir şəbəkə qovşağında virtual maşın versiyası eyni olmalıdır. Hər bir Ethereum qovşağında baş verən hesablamalar tamamilə eynidir, lakin onlar asinxron şəkildə baş verir: kimsə bu əməliyyatı əvvəllər yoxlayır və qəbul edir, yəni onun içindəki bütün kodu icra edir, kimsə isə sonra. Müvafiq olaraq, tranzaksiya yaradıldıqda şəbəkəyə paylanır, qovşaqlar onu qəbul edir və yoxlama zamanı Bitcoin-də Bitcoin Skripti necə icra olunursa, virtual maşının bayt kodu da burada icra olunur.

Əməliyyat, onda olan bütün kod yerinə yetirilibsə, müəyyən hesabın yeni vəziyyəti yaradılıbsa və bu əməliyyatın tətbiq edilib-edilmədiyi aydın olana qədər saxlanılıbsa, təsdiqlənmiş hesab olunur. Əgər əməliyyat tətbiq edilirsə, bu vəziyyət təkcə başa çatmış deyil, həm də cari hesab olunur. Hər bir şəbəkə nodu üçün hər hesabın vəziyyətini saxlayan verilənlər bazası var. Bütün hesablamaların eyni şəkildə baş verməsi və blokçeynin vəziyyətinin eyni olması səbəbindən bütün hesabların vəziyyətlərini ehtiva edən verilənlər bazası da hər bir qovşaq üçün eyni olacaqdır.

Ağıllı müqavilələrin mifləri və məhdudiyyətləri

Ethereum-a bənzər ağıllı müqavilə platformaları üçün mövcud məhdudiyyətlərə gəldikdə, aşağıdakıları qeyd etmək olar:

  • kodun icrası;
  • yaddaş ayırmaq;
  • blockchain məlumatları;
  • ödənişləri göndərmək;
  • yeni müqavilə yaratmaq;
  • digər müqavilələrə zəng edin.

Virtual maşına qoyulan məhdudiyyətlərə baxaq və buna görə də ağıllı müqavilələr haqqında bəzi mifləri aradan qaldıraq. Yalnız Ethereum-da deyil, həm də oxşar platformalarda ola bilən virtual maşında siz həqiqətən ixtiyari məntiqi əməliyyatları yerinə yetirə bilərsiniz, yəni kod yaza bilərsiniz və orada icra ediləcək, əlavə olaraq yaddaş ayıra bilərsiniz. Bununla belə, ödəniş hər bir əməliyyat və ayrılmış hər bir əlavə yaddaş vahidi üçün ayrıca ödənilir.

Bundan sonra virtual maşın blokçeyn verilənlər bazasından məlumatları oxuya bilər ki, bu məlumatlardan bu və ya digər ağıllı müqavilə məntiqini yerinə yetirmək üçün tetikleyici kimi istifadə etsin. Virtual maşın əməliyyatlar yarada və göndərə bilər, o, yeni müqavilələr yarada və artıq şəbəkədə dərc edilmiş digər ağıllı müqavilələrin çağırış metodlarını yarada bilər: mövcud, mövcud və s.

Ən çox yayılmış mif, Ethereum smart müqavilələrinin istənilən internet resursundan məlumatı öz şərtlərində istifadə edə bilməsidir. Həqiqət budur ki, virtual maşın İnternetdəki bəzi xarici informasiya resursuna şəbəkə sorğusu göndərə bilməz, yəni istifadəçilər arasında məsələn, çöldə havanın necə olmasından asılı olaraq dəyər paylayacaq ağıllı müqavilə yazmaq mümkün deyil. və ya hansısa çempionluğu qazanan və ya xarici dünyada baş verən başqa bir hadisəyə əsaslanaraq, çünki bu hadisələr haqqında məlumat sadəcə olaraq platformanın məlumat bazasında deyil. Yəni blockchain-də bununla bağlı heç nə yoxdur. Əgər orada görünmürsə, virtual maşın bu məlumatları tetikleyici kimi istifadə edə bilməz.

Ethereumun mənfi cəhətləri

Əsas olanları sadalayaq. Birinci çatışmazlıq ondan ibarətdir ki, Ethereum-da smart müqavilələrin layihələndirilməsi, hazırlanması və sınaqdan keçirilməsində bəzi çətinliklər var (Ethereum smart müqavilələr yazmaq üçün Solidity dilindən istifadə edir). Həqiqətən də təcrübə göstərir ki, bütün səhvlərin çox böyük faizi insan amilinə aiddir. Bu, əslində orta və ya daha yüksək mürəkkəbliyə malik olan artıq yazılmış Ethereum smart müqavilələri üçün doğrudur. Sadə smart müqavilələr üçün xəta ehtimalı azdırsa, mürəkkəb smart müqavilələrdə çox vaxt pulların oğurlanması, onların dondurulması, smart müqavilələrin gözlənilməz şəkildə məhv edilməsi və s. məlumdur.

İkinci çatışmazlıq odur ki, virtual maşının özü də mükəmməl deyil, çünki onu da insanlar yazır. O, ixtiyari əmrləri yerinə yetirə bilər və burada zəiflik var: bir sıra əmrlər əvvəlcədən gözlənilməz nəticələrə səbəb olacaq müəyyən bir şəkildə konfiqurasiya edilə bilər. Bu, çox mürəkkəb sahədir, lakin artıq bir neçə araşdırma var ki, bu zəifliklər Ethereum şəbəkəsinin hazırkı versiyasında mövcuddur və onlar bir çox ağıllı müqavilələrin uğursuzluğuna səbəb ola bilər.

Başqa bir böyük çətinlik, bir dezavantaj hesab edilə bilər. Bu, praktiki və ya texniki olaraq bir virtual maşında icra ediləcək bir müqavilənin bayt kodunu tərtib etsəniz, bəzi əməliyyatların müəyyən bir sırasını təyin edə biləcəyiniz qənaətinə gələ bilərsiniz. Birlikdə yerinə yetirildikdə, bu əməliyyatlar virtual maşını çox yükləyəcək və bu əməliyyatları yerinə yetirmək üçün ödənilən ödənişlə qeyri-mütənasib şəkildə yavaşlatacaq.

Keçmişdə Ethereum-un inkişafında bir dövr var idi, virtual maşının işini ətraflı başa düşən bir çox oğlan bu cür zəiflikləri tapdı. Əslində, əməliyyatlar çox kiçik bir haqq ödədi, lakin praktiki olaraq bütün şəbəkəni yavaşladı. Bu problemləri həll etmək çox çətindir, çünki birincisi, onları müəyyən etmək, ikincisi, bu əməliyyatları yerinə yetirmək üçün qiyməti tənzimləmək və üçüncüsü, bütün şəbəkə qovşaqlarının yeni versiyaya yenilənməsini nəzərdə tutan sərt çəngəl həyata keçirmək lazımdır. proqram təminatı və sonra bu dəyişikliklərin eyni vaxtda aktivləşdirilməsi.

Ethereum-a gəldikdə, bir çox araşdırma aparıldı, çoxlu praktik təcrübə əldə edildi: həm müsbət, həm də mənfi, lakin buna baxmayaraq, hələ də bir şəkildə həll edilməli olan çətinliklər və zəifliklər qalır.

Beləliklə, məqalənin tematik hissəsi tamamlandı, gəlin tez-tez yaranan suallara keçək.

FAQ

— Mövcud smart müqavilənin bütün tərəfləri şərtləri dəyişdirmək istəsələr, multisig istifadə edərək bu ağıllı müqaviləni ləğv edə və sonra onun icrası üçün yenilənmiş şərtlərlə yeni smart müqavilə yarada bilərlərmi?

Burada cavab ikiqat olacaq. Niyə? Çünki bir tərəfdən ağıllı müqavilə bir dəfə müəyyən edilir və artıq heç bir dəyişikliyi nəzərdə tutmur, digər tərəfdən isə bəzi şərtlərin tam və ya qismən dəyişdirilməsini nəzərdə tutan əvvəlcədən yazılmış məntiqə malik ola bilər. Yəni ağıllı müqavilənizdə bir şeyi dəyişdirmək istəyirsinizsə, o zaman bu şərtləri yeniləyə biləcəyiniz şərtləri təyin etməlisiniz. Müvafiq olaraq, yalnız belə ehtiyatlı şəkildə müqavilənin yenilənməsi təşkil edilə bilər. Ancaq burada da problemlə üzləşə bilərsiniz: bir az səhv edin və müvafiq zəiflik əldə edin. Buna görə də, bu cür şeylər çox təfərrüatlı və diqqətlə hazırlanmalı və sınaqdan keçirilməlidir.

— Vasitəçi iştirakçı tərəflərdən biri ilə müqavilə bağlayırsa: əmanət və ya smart müqavilə? Ağıllı müqavilədə vasitəçi tələb olunurmu?

Ağıllı müqavilədə vasitəçi tələb olunmur. O, mövcud olmaya bilər. Əgər eskrov vəziyyətində vasitəçi tərəflərdən biri ilə sui-qəsd qurursa, bəli, bu sxem o zaman kəskin şəkildə bütün dəyərini itirir. Ona görə də vasitəçilər elə seçilir ki, onlara bu prosesdə iştirak edən bütün tərəflər eyni vaxtda etimad göstərsinlər. Müvafiq olaraq, siz sadəcə etibar etmədiyiniz vasitəçi ilə çox imzalı ünvana sikkə köçürməyəcəksiniz.

— Bir Ethereum əməliyyatı ilə bir çox fərqli tokenləri ünvanınızdan müxtəlif hədəf ünvanlara, məsələn, bu tokenlərin satıldığı mübadilə ünvanlarına köçürmək mümkündürmü?

Bu yaxşı sualdır və bu, Ethereum əməliyyat modelinə və onun Bitcoin modelindən nə ilə fərqləndiyinə aiddir. Və fərq radikaldır. Ethereum əməliyyat modelində siz sadəcə sikkələri köçürürsünüzsə, o zaman onlar yalnız bir ünvandan digərinə köçürülür, heç bir dəyişiklik yoxdur, sadəcə qeyd etdiyiniz konkret məbləğ. Başqa sözlə, bu, xərclənməmiş məhsullar (UTXO) modeli deyil, hesablar və müvafiq qalıqlar modelidir. Əgər hiyləgər ağıllı müqavilə yazsanız, bir əməliyyatda eyni anda bir neçə fərqli token göndərmək nəzəri cəhətdən mümkündür, lakin yenə də çoxlu əməliyyatlar etməli, müqavilə yaratmalı, sonra ona token və sikkə köçürməli və sonra müvafiq metodu çağırmalı olacaqsınız. . Bu, səy və vaxt tələb edir, buna görə də praktikada belə işləmir və Ethereum-da bütün ödənişlər ayrı-ayrı əməliyyatlarda həyata keçirilir.

— Ethereum platforması ilə bağlı miflərdən biri odur ki, xarici internet resursunun məlumatlarından asılı olacaq şərtləri təsvir etmək mümkün deyil, onda nə etməli?

Həll yolu ondan ibarətdir ki, ağıllı müqavilə özü xarici aləmdəki vəziyyət haqqında məlumat toplayan və xüsusi üsullarla ağıllı müqavilələrə ötürən bir və ya bir neçə sözdə etibarlı oracle təmin edə bilər. Müqavilənin özü etibarlı tərəflərdən aldığı məlumatları doğru hesab edir. Daha çox etibarlılıq üçün sadəcə olaraq böyük bir qrup oracle seçin və onların sövdələşməsi riskini minimuma endirin. Müqavilənin özü çoxluğa zidd olan oracle məlumatlarını nəzərə almaya bilər.

Blockchain üzrə onlayn kursun mühazirələrindən biri bu mövzuya həsr olunub - “Ağıllı Müqavilələrə Giriş".

Mənbə: www.habr.com

Добавить комментарий