Ухаалаг гэрээний танилцуулга

Энэ нийтлэлд бид ухаалаг гэрээ гэж юу болох, тэдгээр нь юу болох, янз бүрийн ухаалаг гэрээний платформууд, тэдгээрийн онцлог шинж чанаруудтай танилцах, мөн тэд хэрхэн ажилладаг, ямар давуу талтай болох талаар ярилцах болно. Ухаалаг гэрээний сэдвийг сайн мэдэхгүй ч ойлгоход ойртохыг хүсч буй уншигчдад энэ материал маш их хэрэгтэй болно.

Ердийн гэрээ vs. ухаалаг гэрээ

Нарийвчилсан мэдээлэлд орохын өмнө цаасан дээр заасан ердийн гэрээ болон дижитал хэлбэрээр илэрхийлэгддэг ухаалаг гэрээ хоёрын ялгааг жишээ болгон авч үзье.

Ухаалаг гэрээний танилцуулга

Ухаалаг гэрээ гарч ирэхээс өмнө энэ нь хэрхэн ажилладаг байсан бэ? Үнэт зүйлийг хуваарилах тодорхой дүрэм, нөхцөл, түүнчлэн өгөгдсөн дүрэм, нөхцлийн дагуу энэхүү хуваарилалтыг хэрэгжүүлэх баталгааны тодорхой механизмыг бий болгохыг хүсч буй хэсэг бүлэг хүмүүсийг төсөөлөөд үз дээ. Дараа нь тэд хамтдаа цугларч, цаасан дээр өөрсдийн таних тэмдэг, нэр томъёо, холбогдох үнэт зүйлсээ бичиж, огноог нь зурж, гарын үсэг зурна. Энэ гэрээг нотариат гэх мэт итгэмжлэгдсэн этгээд ч баталгаажуулсан. Цаашилбал, эдгээр хүмүүс ийм гэрээний цаасан хуулбараараа янз бүрийн чиглэлд явж, гэрээнд тохирохгүй байж болох зарим үйлдлүүдийг хийж эхэлсэн, өөрөөр хэлбэл тэд нэг зүйлийг хийсэн боловч цаасан дээр ямар нэгэн зүйл хийх ёстой гэж баталгаажуулсан. огт өөр. Мөн энэ байдлаас хэрхэн гарах вэ? Уг нь бүлгийн гишүүдийн аль нэг нь энэ баримт бичгийг авч, зарим нотлох баримтыг авч, шүүхэд шилжүүлж, гэрээ болон бодит үйлдлүүдийн хооронд нийцэх ёстой. Ихэнхдээ энэ гэрээг шударгаар хэрэгжүүлэхэд хэцүү байдаг бөгөөд энэ нь таагүй үр дагаварт хүргэдэг.

Ухаалаг гэрээний талаар юу хэлэх вэ? Тэд гэрээний нөхцөлийг бичих боломж, тэдгээрийг хатуу хэрэгжүүлэх механизмыг хоёуланг нь хослуулсан. Хэрэв нөхцөлүүд тавигдаж, холбогдох гүйлгээ, хүсэлтэд гарын үсэг зурсан бол тухайн хүсэлт, гүйлгээг хүлээн авсны дараа нөхцөлийг өөрчлөх, тэдгээрийн хэрэгжилтэд нөлөөлөх боломжгүй болно.

Нэг баталгаажуулагч эсвэл бүхэл бүтэн сүлжээ, мөн он цагийн дарааллаар гүйцэтгэхээр ирүүлсэн бүх ухаалаг гэрээг хадгалдаг мэдээллийн сан байдаг. Энэхүү мэдээллийн сан нь ухаалаг гэрээг хэрэгжүүлэх бүх нөхцлийг агуулсан байх нь чухал юм. Нэмж дурдахад, хуваарилалтыг гэрээнд заасан үнэ цэнийг харгалзан үзэх ёстой. Хэрэв энэ нь зарим дижитал валюттай холбоотой бол энэ мэдээллийн сан үүнийг анхаарч үзэх хэрэгтэй.

Өөрөөр хэлбэл, ухаалаг гэрээ баталгаажуулагч нь ухаалаг гэрээний ажиллаж буй бүх өгөгдөлд хандах эрхтэй байх ёстой. Жишээлбэл, тоон валют, хэрэглэгчийн үлдэгдэл, хэрэглэгчийн гүйлгээ, цагийн тэмдэг зэргийг нэгэн зэрэг бүртгэхийн тулд нэг мэдээллийн санг ашиглах ёстой. Дараа нь ухаалаг гэрээнд хэрэглэгчийн тодорхой мөнгөн тэмдэгт дэх үлдэгдэл, тодорхой цаг ирэх эсвэл тодорхой гүйлгээ хийгдсэн байх нөхцөл байж болно, гэхдээ үүнээс өөр зүйл байхгүй.

Ухаалаг гэрээний тодорхойлолт

Ерөнхийдөө энэ нэр томъёог өөрөө судлаач Ник Сабо гаргаж, 1994 онд анх ашигласан бөгөөд 1997 онд ухаалаг гэрээний санааг тодорхойлсон нийтлэлд баримтжуулсан.

Ухаалаг гэрээнүүд нь үнэ цэнийн хуваарилалтын зарим автоматжуулалтыг гүйцэтгэдэг гэсэн үг бөгөөд энэ нь зөвхөн урьдчилан тодорхойлсон нөхцлөөс хамаарна. Хамгийн энгийнээр хэлбэл, тодорхой талуудын гарын үсэг зурсан, хатуу тодорхойлсон нөхцөлтэй гэрээ шиг харагдаж байна.

Ухаалаг гэрээ нь гуравдагч этгээдэд итгэх итгэлийг багасгах зорилготой юм. Заримдаа бүх зүйл хамаардаг шийдвэр гаргах төвийг бүрэн хасдаг. Үүнээс гадна ийм гэрээ нь аудит хийхэд хялбар байдаг. Энэ нь ийм системийн дизайны зарим онцлог шинж чанаруудын үр дагавар боловч ихэнхдээ бид ухаалаг гэрээгээр төвлөрсөн бус орчин, хэн нэгэнд мэдээллийн санд дүн шинжилгээ хийх, гэрээний гүйцэтгэлд бүрэн аудит хийх боломжийг олгодог функцүүд байгааг ойлгодог. Энэ нь гэрээний гүйцэтгэлд өөрчлөлт оруулах буцаан өгөгдлийн өөрчлөлтөөс хамгаална. Ухаалаг гэрээг бий болгох, эхлүүлэх үед ихэнх үйл явцыг дижитал болгох нь технологи, тэдгээрийг хэрэгжүүлэх зардлыг хялбаршуулдаг.

Энгийн жишээ - Эскроу үйлчилгээ

Маш энгийн жишээг харцгаая. Энэ нь ухаалаг гэрээний функцийг ойлгоход ойртож, ямар тохиолдолд ашиглах ёстойг илүү сайн ойлгоход тусална.

Ухаалаг гэрээний танилцуулга

Үүнийг Bitcoin ашиглан хэрэгжүүлэх боломжтой, гэхдээ яг одоо биткойныг ухаалаг гэрээний бүрэн платформ гэж нэрлэх боломжгүй хэвээр байна. Тиймээс бид худалдан авагчтай, онлайн дэлгүүртэй болсон. Үйлчлүүлэгч энэ дэлгүүрээс дэлгэц худалдаж авахыг хүсч байна. Хамгийн энгийн тохиолдолд худалдан авагч төлбөрөө хийж, илгээдэг бөгөөд онлайн дэлгүүр үүнийг хүлээн авч, баталгаажуулж, дараа нь бараагаа ачдаг. Гэсэн хэдий ч, энэ нөхцөлд маш их итгэлцэл хэрэгтэй - худалдан авагч нь мониторын бүх зардлыг онлайн дэлгүүрт итгэх ёстой. Онлайн дэлгүүр нь худалдан авагчийн өмнө нэр хүнд муутай байж болох тул төлбөрийг хүлээн авсны дараа ямар нэг шалтгааны улмаас дэлгүүр үйлчилгээ үзүүлэхээс татгалзаж, бараагаа худалдан авагч руу илгээхгүй байх эрсдэлтэй байдаг. Тиймээс худалдан авагч нь ийм эрсдэлийг багасгах, ийм гүйлгээг илүү найдвартай болгохын тулд энэ тохиолдолд юу хэрэглэж болох вэ гэсэн асуултыг тавьдаг (мөн үүний дагуу онлайн дэлгүүр энэ асуултыг асуудаг).

Биткойны хувьд худалдан авагч болон худалдагч зуучлагчийг бие даан сонгох боломжийг олгох боломжтой. Маргаантай асуудлыг шийдвэрлэхэд гар бие оролцдог олон хүн бий. Мөн манай оролцогчид эвлэрүүлэн зуучлагчдын ерөнхий жагсаалтаас өөртөө итгэх хүнээ сонгох боломжтой. Тэд хамтдаа гурван түлхүүртэй олон гарын үсэгтэй хаягийн 2-ыг үүсгэдэг бөгөөд тухайн хаягаас зоос зарцуулахын тулд дурын хоёр түлхүүртэй хоёр гарын үсэг шаардлагатай. Нэг түлхүүр нь худалдан авагчид, хоёр дахь нь онлайн дэлгүүрт, гурав дахь нь зуучлагчийнх байх болно. Ийм олон гарын үсэгтэй хаяг руу худалдан авагч нь мониторын төлбөрийг төлөхөд шаардлагатай мөнгийг илгээх болно. Одоо худалдагч мөнгө өөрөөсөө хамаарах олон гарын үсэгтэй хаягаар хэсэг хугацаанд хаагдсаныг хараад мониторыг шуудангаар аюулгүй илгээх боломжтой.

Дараа нь худалдан авагч илгээмжийг хүлээн авч, барааг шалгаж, эцсийн худалдан авалтын талаар шийдвэр гаргадаг. Тэрээр үзүүлж буй үйлчилгээтэй бүрэн санал нийлж, түлхүүрээрээ гүйлгээнд гарын үсэг зурж, олон гарын үсэгтэй хаягаас худалдагч руу зоос шилжүүлэх эсвэл ямар нэгэн зүйлд сэтгэл дундуур байж магадгүй юм. Хоёр дахь тохиолдолд тэрээр зуучлагчтай холбогдож, эдгээр зоосыг өөрөөр тараах өөр гүйлгээг зохион байгуулдаг.

Монитор бага зэрэг маажин ирсэн гэж бодъё, иж бүрдэлд компьютерт холбогдох кабель байхгүй байсан ч онлайн дэлгүүрийн вэбсайтад уг кабелийг иж бүрдэлд оруулах ёстой гэж бичсэн байна. Дараа нь худалдан авагч нь зуучлагчийг ийм нөхцөлд хууртагдсан гэдгээ нотлоход шаардлагатай нотлох баримтуудыг цуглуулдаг: тэр сайтын дэлгэцийн агшинг авч, шуудангийн баримтын зургийг авч, монитор дээрх зураасны зургийг авч, лац нь байсан гэдгийг харуулж байна. эвдэрсэн, кабель нь суга татагдсан. Онлайн дэлгүүр нь эргээд нотлох баримтаа цуглуулж, зуучлагч руу шилжүүлдэг.

Зуучлагч нь худалдан авагчийн уур хилэн, онлайн дэлгүүрийн ашиг сонирхлыг нэгэн зэрэг хангах сонирхолтой байдаг (яагаад нь дараа нь тодорхой болно). Энэ нь олон гарын үсэгтэй хаягийн зоосыг худалдан авагч, онлайн дэлгүүр, зуучлагч хоёрын хооронд тодорхой хэмжээгээр зарцуулдаг гүйлгээг хэлнэ, учир нь тэр өөрөө ажлынхаа шагнал болгон нэг хэсгийг авдаг. Нийт дүнгийн 90% нь худалдагчид, 5% нь зуучлагчид, 5% нь худалдан авагчид очно гэж бодъё. Зуучлагч энэ гүйлгээнд өөрийн түлхүүрээр гарын үсэг зурдаг боловч үүнийг хэрэгжүүлэх боломжгүй, учир нь энэ нь хоёр гарын үсэг шаарддаг боловч зөвхөн нэг нь үнэ цэнэтэй юм. Энэ нь худалдан авагч болон худалдагчийн аль алинд нь ийм гүйлгээг илгээдэг. Хэрэв тэдний дор хаяж нэг нь зоосыг дахин хуваарилах энэ сонголтод сэтгэл хангалуун байвал гүйлгээг урьдчилан гарын үсэг зурж, сүлжээнд тараана. Үүнийг батлахын тулд хэлцлийн талуудын аль нэг нь зуучлагчийн сонголтыг зөвшөөрсөн байхад хангалттай.

Эхний ээлжинд зуучлагчийг сонгох нь чухал бөгөөд ингэснээр оролцогчид хоёулаа түүнд итгэх болно. Энэ тохиолдолд тэрээр аль нэгнийх нь ашиг сонирхлоос үл хамааран ажиллаж, нөхцөл байдлыг бодитойгоор үнэлэх болно. Хэрэв зуучлагч дор хаяж нэг оролцогчийн сэтгэлд нийцэх зоос тараах сонголтыг өгөөгүй бол худалдан авагч болон онлайн дэлгүүр хоёулаа тохиролцсоны дараа хоёр гарын үсгээ зурж зоосыг олон гарын үсгийн шинэ хаяг руу илгээх боломжтой. Олон гарын үсэгтэй шинэ хаягийг өөр зуучлагчаар эмхэтгэх бөгөөд тэр нь энэ асуудалд илүү чадварлаг байж, илүү сайн сонголтыг өгөх болно.

Дотуур байр, хөргөгчтэй жишээ

Ухаалаг гэрээний чадварыг илүү тодорхой харуулсан илүү төвөгтэй жишээг харцгаая.

Ухаалаг гэрээний танилцуулга

Саяхан нэг дотуур байранд нүүж ирсэн гурван залуу байна гэж бодъё. Гурвуулаа өрөөндөө хамт хэрэглэж болох хөргөгч авах сонирхолтой байгаа. Тэдний нэг нь хөргөгч авахын тулд сайн дурын мөнгөө цуглуулж, худалдагчтай тохиролцов. Гэсэн хэдий ч тэд саяхан бие биетэйгээ танилцсан бөгөөд тэдний хооронд хангалттай итгэлцэл байхгүй байна. Хоёр нь гуравт мөнгө өгч эрсдэлд орж байгаа нь ойлгомжтой. Үүнээс гадна тэд худалдагч сонгохдоо тохиролцоонд хүрэх хэрэгтэй.

Тэд эскроу үйлчилгээг ашиглаж болно, өөрөөр хэлбэл гүйлгээний гүйцэтгэлд хяналт тавьж, маргаантай асуудлыг шийдвэрлэх зуучлагчийг сонгох боломжтой. Дараа нь тохиролцсоны дараа тэд ухаалаг гэрээ байгуулж, түүнд тодорхой нөхцлийг зааж өгдөг.

Эхний нөхцөл бол тодорхой хугацаанаас өмнө, нэг долоо хоногийн дотор, харгалзах ухаалаг гэрээний данс нь тодорхой хаягаас тодорхой хэмжээгээр гурван төлбөр хүлээн авах ёстой. Хэрэв ийм зүйл болохгүй бол ухаалаг гэрээ ажиллахаа больж, бүх оролцогчдод зоосыг буцааж өгнө. Хэрэв нөхцөл хангагдсан бол худалдагч, зуучлагчийн тодорхойлогчдын утгыг тогтоож, бүх оролцогчид худалдагч, зуучлагчийн сонголтыг зөвшөөрч байгаа эсэхийг шалгана. Бүх нөхцөл хангагдсаны дараа хөрөнгийг заасан хаягууд руу шилжүүлнэ. Энэ арга нь оролцогчдыг аль ч талаас нь хууран мэхлэхээс хамгаалж, ерөнхийдөө итгэх хэрэгцээг арилгадаг.

Нөхцөл бүрийг биелүүлэхийн тулд параметрүүдийг алхам алхмаар тохируулах чадвар нь ямар ч төвөгтэй байдал, үүрлэсэн түвшний гүнтэй системийг бий болгох боломжийг олгодог зарчмыг бид энэ жишээнээс харж байна. Нэмж хэлэхэд, та эхлээд ухаалаг гэрээнд эхний нөхцөлийг тодорхойлж болох бөгөөд зөвхөн түүнийг биелүүлсний дараа дараагийн нөхцлийн параметрүүдийг тохируулах боломжтой. Өөрөөр хэлбэл, нөхцөл нь албан ёсоор бичигдсэн бөгөөд түүний параметрүүдийг үйл ажиллагааны явцад аль хэдийн тохируулж болно.

Ухаалаг гэрээний ангилал

Ангилахын тулд та өөр өөр бүлэг шалгууруудыг тогтоож болно. Гэсэн хэдий ч технологи хөгжиж буй энэ үед тэдгээрийн дөрөв нь хамааралтай.

Ухаалаг гэрээг төвлөрсөн эсвэл төвлөрсөн бус байдлаар гүйцэтгэх орчноор нь ялгаж болно. Төвлөрлийг сааруулах тохиолдолд бид ухаалаг гэрээг гүйцэтгэхдээ илүү бие даасан байдал, алдааг тэсвэрлэх чадвартай болно.

Тэдгээрийг нөхцөлийг тогтоох, биелүүлэх үйл явцаар нь ялгаж болно: тэдгээр нь чөлөөтэй програмчлагдах, хязгаарлагдмал эсвэл урьдчилан тодорхойлсон, өөрөөр хэлбэл хатуу бичигдсэн байж болно. Ухаалаг гэрээний платформ дээр зөвхөн 4 тусгай ухаалаг гэрээ байгаа тохиолдолд тэдгээрийн параметрүүдийг ямар ч байдлаар тохируулах боломжтой. Үүний дагуу тэдгээрийг тохируулах нь илүү хялбар байдаг: бид жагсаалтаас гэрээг сонгоод параметрүүдийг дамжуулдаг.

Эхлэх аргын дагуу автоматжуулсан ухаалаг гэрээнүүд байдаг, өөрөөр хэлбэл тодорхой нөхцөл байдал үүссэн тохиолдолд тэдгээр нь өөрөө биелдэг, нөхцөлийг заасан гэрээнүүд байдаг боловч платформ нь тэдгээрийн биелэлтийг автоматаар шалгадаггүй; үүний тулд тэд тусад нь эхлүүлэх шаардлагатай.

Нэмж дурдахад ухаалаг гэрээ нь нууцлалын түвшиндээ өөр өөр байдаг. Эдгээр нь бүрэн нээлттэй, хэсэгчлэн эсвэл бүрэн нууцлалтай байж болно. Сүүлийнх нь гуравдагч этгээдийн ажиглагчид ухаалаг гэрээний нөхцлийг хардаггүй гэсэн үг юм. Гэсэн хэдий ч нууцлалын сэдэв нь маш өргөн хүрээтэй бөгөөд үүнийг одоогийн нийтлэлээс тусад нь авч үзэх нь дээр.

Доор бид одоогийн сэдвийг ойлгоход илүү тодорхой болгохын тулд эхний гурван шалгуурыг нарийвчлан авч үзэх болно.

Ухаалаг гэрээнүүд ажиллах хугацаандаа

Ухаалаг гэрээний танилцуулга

Гүйцэтгэлийн орчинд үндэслэн төвлөрсөн болон төвлөрсөн бус ухаалаг гэрээний платформуудыг ялгадаг. Төвлөрсөн дижитал гэрээний хувьд нэг үйлчилгээг ашигладаг бөгөөд зөвхөн нэг валидатор байдаг бөгөөд нөөцлөх, сэргээх үйлчилгээ байж болох бөгөөд энэ нь мөн төвлөрсөн удирдлагатай байдаг. Ухаалаг гэрээний нөхцөлийг тогтоох, яг энэ үйлчилгээний мэдээллийн санд тооцсон үнэ цэнийг түгээхэд шаардлагатай бүх мэдээллийг хадгалдаг нэг мэдээллийн сан байдаг. Ийм төвлөрсөн үйлчилгээ нь тодорхой хүсэлтээр болзол тавьж, ийм гэрээг ашигладаг үйлчлүүлэгчтэй байдаг. Платформын төвлөрсөн шинж чанараас шалтгаалан баталгаажуулах механизм нь криптовалюттай харьцуулахад аюулгүй байдал багатай байж болно.

Жишээлбэл, бид үүрэн холбооны үйлчилгээ үзүүлэгчдийг (өөр өөр үүрэн холбооны операторууд) авч болно. Тодорхой оператор сервер дээрээ траффикийн төвлөрсөн бүртгэлийг хөтөлдөг бөгөөд үүнийг янз бүрийн форматаар дамжуулах боломжтой, жишээлбэл: дуут дуудлага, SMS дамжуулах, гар утасны интернет траффик хэлбэрээр, өөр өөр стандартын дагуу бүртгэл хөтөлдөг гэж бодъё. хэрэглэгчийн үлдэгдэл дээрх хөрөнгө. Үүний дагуу үүрэн холбооны үйлчилгээ үзүүлэгч нь үзүүлж буй үйлчилгээний нягтлан бодох бүртгэл, төлбөрийг өөр өөр нөхцлөөр хийх гэрээ байгуулж болно. Энэ тохиолдолд “Тийм дугаар руу ийм ийм кодтой мессэж илгээвэл замын хөдөлгөөний ийм ийм нөхцөлийг хүлээн авна” гэх мэт нөхцөлүүдийг тавихад хялбар байдаг.

Өөр нэг жишээг дурдаж болно: Интернэт банкны өргөтгөсөн функц бүхий уламжлалт банкууд, тогтмол төлбөр хийх, ирж буй төлбөрийг автоматаар хөрвүүлэх, тодорхой дансанд хүүг автоматаар хасах гэх мэт маш энгийн гэрээнүүд.

Хэрэв бид төвлөрсөн бус гүйцэтгэлийн орчинтой ухаалаг гэрээний тухай ярьж байгаа бол бидэнд баталгаажуулагч бүлэг бий. Хамгийн тохиромжтой нь хэн ч баталгаажуулагч болж чадна. Өгөгдлийн сангийн синхрончлолын протокол болон зөвшилцөлд хүрсэн тул бид зарим нэг нөхцөлт асуулга биш, харин формат нь байнга өөрчлөгддөг, нээлттэй тодорхойлолт байдаггүй, бүх гүйлгээг хатуу тодорхойлсон гэрээнүүдээр хадгалах нийтлэг мэдээллийн сантай болсон. Энд гүйлгээ нь гэрээг нарийн тодорхой зааврын дагуу гүйцэтгэх зааврыг агуулна. Энэхүү тодорхойлолт нь нээлттэй тул платформын хэрэглэгчид өөрсдөө ухаалаг гэрээг шалгаж, баталгаажуулах боломжтой. Эндээс бид төвлөрсөн бус платформууд нь төвлөрсөн платформуудаас хараат бус байдал, алдааг тэсвэрлэх чадвараараа давуу байдгийг харж байна, гэхдээ тэдгээрийн дизайн, засвар үйлчилгээ нь илүү төвөгтэй байдаг.

Нөхцөл байдлыг тогтоох, биелүүлэх арга замаар ухаалаг гэрээ

Одоо ухаалаг гэрээнүүд нь нөхцөлийг тогтоож, биелүүлэх байдлаараа хэрхэн ялгаатай болохыг нарийвчлан авч үзье. Энд бид санамсаргүй байдлаар програмчлагдах боломжтой, Тюринг бүрэн гүйцэд хийгдсэн ухаалаг гэрээнүүдэд анхаарлаа хандуулж байна. Тьюрингийн бүрэн ухаалаг гэрээ нь гэрээг гүйцэтгэх нөхцөл болгон бараг бүх алгоритмыг тохируулах боломжийг олгодог: бичих мөчлөг, магадлалыг тооцоолох зарим функцууд гэх мэт - өөрийн цахим гарын үсгийн алгоритм хүртэл. Энэ тохиолдолд бид логикийг үнэхээр дур зоргоороо бичих гэсэн үг юм.

Мөн дур зоргоороо ухаалаг гэрээнүүд байдаг, гэхдээ Тюринг бүрэн гэрээ биш. Үүнд өөрийн гэсэн скрипттэй Bitcoin болон Litecoin орно. Энэ нь та зөвхөн тодорхой үйлдлүүдийг дурын дарааллаар ашиглах боломжтой, гэхдээ та гогцоо болон өөрийн алгоритмаа бичих боломжгүй болно гэсэн үг юм.

Үүнээс гадна урьдчилан тодорхойлсон ухаалаг гэрээг хэрэгжүүлдэг ухаалаг гэрээний платформууд байдаг. Үүнд Bitshares болон Steemit орно. Bitshares нь арилжаа хийх, дансны менежмент, платформ өөрөө болон түүний параметрүүдийг удирдах олон төрлийн ухаалаг гэрээтэй. Steemit бол үүнтэй төстэй платформ боловч Bitshares шиг токен гаргах, арилжаанд чиглэхээ больсон, харин блог хөтлөх, өөрөөр хэлбэл төвлөрсөн бус байдлаар агуулгыг хадгалж, боловсруулдаг.

Дурын Тьюрингийн бүрэн гэрээнд Ethereum платформ болон RootStock багтдаг бөгөөд одоо ч хөгжүүлэгдэж байна. Тиймээс доор бид Ethereum ухаалаг гэрээний платформын талаар бага зэрэг дэлгэрэнгүй ярих болно.

Эхлэх аргын дагуу ухаалаг гэрээ

Эхлэх аргад үндэслэн ухаалаг гэрээг автоматжуулсан ба гарын авлага (автоматжаагүй) гэсэн хоёр бүлэгт хувааж болно. Автоматжуулсан гэрээнүүд нь мэдэгдэж байгаа бүх параметр, нөхцөлийг харгалзан ухаалаг гэрээг бүрэн автоматаар гүйцэтгэдэг, өөрөөр хэлбэл нэмэлт гүйлгээ илгээх, дараагийн гүйцэтгэл бүрт нэмэлт комисс зарцуулах шаардлагагүй гэдгээрээ онцлог юм. Платформ нь өөрөө ухаалаг гэрээ хэрхэн дуусахыг тооцоолох бүх өгөгдөлтэй. Тэнд байгаа логик нь дур зоргоороо биш, харин урьдчилан тодорхойлсон бөгөөд энэ бүгдийг урьдчилан таамаглах боломжтой. Өөрөөр хэлбэл, та ухаалаг гэрээг гүйцэтгэх нарийн төвөгтэй байдлыг урьдчилан тооцоолж, түүнд зориулж ямар нэгэн байнгын комисс ашиглах боломжтой бөгөөд түүнийг хэрэгжүүлэх бүх үйл явц илүү үр дүнтэй байдаг.

Чөлөөт програмчлагдсан ухаалаг гэрээний хувьд гүйцэтгэл нь автоматжаагүй байна. Ийм ухаалаг гэрээг эхлүүлэхийн тулд бараг алхам тутамд шинэ гүйлгээ үүсгэх шаардлагатай бөгөөд энэ нь дараагийн гүйцэтгэлийн үе шат эсвэл дараагийн ухаалаг гэрээний аргыг дуудаж, зохих шимтгэл төлж, гүйлгээг баталгаажуулахыг хүлээх хэрэгтэй. Ухаалаг гэрээний код нь дур зоргоороо байдаг бөгөөд мөнхийн гогцоо, зарим параметр, аргумент дутмаг, зохицуулагдаагүй үл хамаарах зүйлүүд гэх мэт урьдчилан таамаглах боломжгүй мөчүүд гарч болзошгүй тул гүйцэтгэл амжилттай дуусч магадгүй юм.

Ethereum дансууд

Ethereum дансны төрлүүд

Ethereum платформ дээр ямар төрлийн данс байж болохыг харцгаая. Энд зөвхөн хоёр төрлийн данс байгаа бөгөөд өөр сонголт байхгүй. Эхний төрлийг хэрэглэгчийн данс гэж нэрлэдэг, хоёр дахь нь гэрээний данс юм. Тэд хэрхэн ялгаатай болохыг олж мэдье.

Хэрэглэгчийн бүртгэлийг зөвхөн цахим гарын үсгийн хувийн түлхүүрээр удирддаг. Дансны эзэмшигч нь ECDSA (Elliptic Curve Digital Signature Algorithm) алгоритмыг ашиглан цахим гарын үсгийн түлхүүрийн хослолыг өөрөө үүсгэдэг. Зөвхөн энэ түлхүүрээр хийсэн гүйлгээ нь энэ дансны төлөвийг өөрчлөх боломжтой.

Ухаалаг гэрээний дансны хувьд тусдаа логикийг оруулсан болно. Үүнийг зөвхөн урьдчилан тодорхойлсон програм хангамжийн кодоор удирдаж болно, энэ нь ухаалаг гэрээний зан төлөвийг бүрэн тодорхойлдог: энэ нь тодорхой нөхцөлд зоосоо хэрхэн удирдах, ямар хэрэглэгчийн санаачилгаар, ямар нэмэлт нөхцөлд эдгээр зоосыг тараах вэ. Хэрэв програмын кодонд хөгжүүлэгчид зарим зүйлийг заагаагүй бол асуудал гарч болзошгүй. Жишээлбэл, ухаалаг гэрээ нь аль ч хэрэглэгчээс цаашдын гүйцэтгэлийг эхлүүлэхийг хүлээн зөвшөөрдөггүй тодорхой төлөвийг хүлээн авч болно. Энэ тохиолдолд ухаалаг гэрээ нь энэ төлөвөөс гарахыг заагаагүй тул зоос нь үнэндээ царцах болно.

Ethereum дээр данс хэрхэн бий болдог

Хэрэглэгчийн дансны хувьд эзэмшигч нь ECDSA ашиглан түлхүүрийн хослолыг бие даан үүсгэдэг. Ethereum нь цахим гарын үсгийн хувьд Bitcoin-тэй яг ижил алгоритм, яг ижил зууван муруйг ашигладаг боловч хаягийг арай өөр аргаар тооцдог гэдгийг анхаарах нь чухал юм. Энд биткойных шиг давхар хэшний үр дүнг ашиглахаа больсон боловч дан хэшийг 256 битийн урттай Keccak функцээр хангадаг. Үр дүнгийн утгаас хамгийн бага ач холбогдолтой битүүд, тухайлбал гаралтын хэш утгын хамгийн бага ач холбогдол бүхий 160 бит нь таслагдана. Үүний үр дүнд бид Ethereum дахь хаягийг олж авдаг. Үнэн хэрэгтээ энэ нь 20 байт эзэлдэг.

Биткойн болон бусад олон системээс ялгаатай нь Ethereum дахь дансны танигч нь хяналтын нийлбэрийг оруулалгүйгээр гекс хэлбэрээр кодлогдсон байдаг тул хаяг нь хяналтын нийлбэр нэмсэн үндсэн 58 тооны системд кодлогдсон байдаг гэдгийг анхаарна уу. Энэ нь Ethereum дахь данс танигчтай ажиллахдаа болгоомжтой байх хэрэгтэй гэсэн үг юм: танигч дахь нэг алдаа ч гэсэн зоосыг алдахад хүргэдэг.

Нэг чухал шинж чанар байдаг бөгөөд энэ нь анхны ирж буй төлбөрийг хүлээн авах үед ерөнхий мэдээллийн сангийн түвшинд хэрэглэгчийн данс үүсдэг.

Ухаалаг гэрээний данс үүсгэх нь огт өөр арга барил шаарддаг. Эхлээд хэрэглэгчдийн нэг нь ухаалаг гэрээний эх кодыг бичдэг бөгөөд үүний дараа кодыг Ethereum платформд зориулсан тусгай хөрвүүлэгчээр дамжуулж, өөрийн Ethereum виртуал машинд зориулж байт код авдаг. Үүссэн байт кодыг гүйлгээний тусгай талбарт байрлуулна. Энэ нь санаачлагчийн дансны нэрийн өмнөөс баталгаажуулсан болно. Дараа нь энэ гүйлгээг сүлжээгээр тарааж, ухаалаг гэрээний кодыг байрлуулна. Гүйлгээ, үүний дагуу гэрээг гүйцэтгэх комиссыг санаачлагчийн дансны үлдэгдэлээс хасна.

Ухаалаг гэрээ бүр өөрийн бүтээгчийг (энэ гэрээний) агуулсан байх ёстой. Энэ нь хоосон эсвэл агуулгатай байж болно. Барилга бүтээгчийг ажиллуулсны дараа ухаалаг гэрээний данс танигчийг үүсгэсэн бөгөөд үүнийг ашиглан та зоос илгээх, тодорхой ухаалаг гэрээний аргууд руу залгах гэх мэт боломжтой.

Ethereum гүйлгээний бүтэц

Үүнийг илүү ойлгомжтой болгохын тулд бид Ethereum гүйлгээний бүтэц, ухаалаг гэрээний кодыг авч үзэх болно.

Ухаалаг гэрээний танилцуулга

Ethereum-ийн гүйлгээ нь хэд хэдэн талбараас бүрдэнэ. Эдгээрийн эхнийх нь гүйлгээний тодорхой серийн дугаар нь түүнийг түгээдэг данстай холбоотой бөгөөд зохиогч нь юм. Энэ нь давхар гүйлгээг ялгах, өөрөөр хэлбэл нэг гүйлгээг хоёр удаа хүлээн зөвшөөрсөн тохиолдлыг оруулахгүй байх шаардлагатай. Тодорхойлогчийг ашигласнаар гүйлгээ бүр өвөрмөц хэш утгатай байна.

Дараа нь иймэрхүү талбар ирдэг хийн үнэ. Энэ нь ухаалаг гэрээний гүйцэтгэл, виртуал машины нөөцийг хуваарилахад ашигладаг Ethereum-ийн үндсэн валютыг хий болгон хөрвүүлэх үнийг заадаг. Энэ нь юу гэсэн үг вэ?

Биткойны хувьд хураамжийг үндсэн валют буюу биткойн өөрөө шууд төлдөг. Энэ нь тэдгээрийг тооцоолох энгийн механизмын ачаар боломжтой юм: бид гүйлгээнд агуулагдах өгөгдлийн хэмжээг хатуу төлдөг. Ethereum-д нөхцөл байдал илүү төвөгтэй байдаг, учир нь гүйлгээний өгөгдлийн эзлэхүүнд найдах нь маш хэцүү байдаг. Энд гүйлгээ нь виртуал машин дээр гүйцэтгэх програмын кодыг агуулж болох ба виртуал машины үйл ажиллагаа бүр өөр өөр төвөгтэй байж болно. Мөн хувьсагчдад санах ой хуваарилах үйлдлүүд байдаг. Тэд үйл ажиллагаа бүрийн төлбөрөөс хамаарах өөрийн гэсэн нарийн төвөгтэй байдалтай байх болно.

Хийн эквивалент дахь үйл ажиллагаа бүрийн өртөг тогтмол байх болно. Үйл ажиллагаа бүрийн тогтмол зардлыг тодорхойлохын тулд үүнийг тусгайлан нэвтрүүлсэн. Сүлжээний ачааллаас хамааран хийн үнэ өөрчлөгдөнө, өөрөөр хэлбэл үндсэн валютыг энэ туслах нэгж болгон хөрвүүлж, комиссын төлбөрийг төлнө.

Ethereum дахь гүйлгээний бас нэг онцлог байдаг: виртуал машинд гүйцэтгэхэд зориулагдсан байт код нь тодорхой үр дүнд хүрэх хүртэл (амжилттай эсвэл бүтэлгүйтэл) эсвэл тодорхой хэмжээний зоосыг шимтгэл төлөх хүртэл гүйцэтгэнэ. . Энэ нь ямар нэг алдаа гарсан тохиолдолд илгээгчийн данснаас бүх зоосыг комисст зарцуулсан нөхцөл байдлаас зайлсхийхийн тулд (жишээлбэл, виртуал машинд ямар нэгэн мөнхийн мөчлөг эхэлсэн) дараах талбар бий. хий эхлүүлэх (ихэвчлэн хийн хязгаар гэж нэрлэдэг) - энэ нь тодорхой гүйлгээг дуусгахад илгээгч зарцуулахад бэлэн байгаа зоосны дээд хэмжээг тодорхойлдог.

Дараагийн талбарыг дуудна очих хаяг. Үүнд зоос хүлээн авагчийн хаяг эсвэл аргуудыг дуудах тодорхой ухаалаг гэрээний хаяг орно. Үүний дараа талбай ирдэг үнэ цэнэ, очих хаяг руу илгээсэн зоосны хэмжээг оруулсан болно.

Дараагийнх нь сонирхолтой талбар юм мэдээ, бүх бүтэц нь тохирох газар. Энэ бол тусдаа талбар биш, харин виртуал машины кодыг тодорхойлсон бүхэл бүтэн бүтэц юм. Та энд дурын өгөгдлийг байрлуулж болно - үүнд тусдаа дүрэм байдаг.

Мөн сүүлчийн талбарыг дууддаг гарын үсэг. Энэ нь гүйлгээний зохиогчийн цахим гарын үсэг болон энэхүү гарын үсгийг баталгаажуулах нийтийн түлхүүрийг нэгэн зэрэг агуулна. Нийтийн түлхүүрээс та энэ гүйлгээг илгээгчийн дансны таниулбарыг авах боломжтой, өөрөөр хэлбэл систем дэх илгээгчийн дансыг өвөрмөц байдлаар тодорхойлох боломжтой. Гүйлгээний бүтцийн талаархи гол зүйлийг бид олж мэдсэн.

Solidity-д зориулсан ухаалаг гэрээний кодын жишээ

Одоо жишээ ашиглан хамгийн энгийн ухаалаг гэрээг нарийвчлан авч үзье.

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);
    }
}

Дээр нь хялбаршуулсан эх код нь хэрэглэгчдийн зоосыг барьж, хүссэн үедээ буцааж өгөх боломжтой.

Тэгэхээр, дараах чиг үүргийг гүйцэтгэдэг Банкны ухаалаг гэрээ байдаг: энэ нь үлдэгдэл дээрээ зоос хуримтлуулдаг, өөрөөр хэлбэл, гүйлгээ баталгаажсан, ийм ухаалаг гэрээг байршуулах үед түүний үлдэгдэлд зоос оруулах боломжтой шинэ данс бий болно; энэ нь хэрэглэгчид болон тэдний хооронд зоосны хуваарилалтыг санаж байна; үлдэгдлийг удирдах хэд хэдэн арга байдаг, өөрөөр хэлбэл хэрэглэгчийн үлдэгдлийг нөхөх, авах, шалгах боломжтой.

Эх кодын мөр бүрийг авч үзье. Энэхүү гэрээ нь байнгын талбаруудтай. Тэдгээрийн нэг нь хаягийн төрлийг эзэмшигч гэж нэрлэдэг. Энд гэрээ нь энэхүү ухаалаг гэрээг үүсгэсэн хэрэглэгчийн хаягийг санаж байна. Цаашилбал, хэрэглэгчийн хаяг, үлдэгдэл хоорондын захидал харилцааг хадгалдаг динамик бүтэц байдаг.

Үүний дараа Банкны арга - гэрээтэй ижил нэртэй байна. Үүний дагуу энэ бол түүний бүтээгч юм. Энд эзэмшигч хувьсагч нь сүлжээнд энэ ухаалаг гэрээг байрлуулсан хүний ​​хаягийг зааж өгсөн болно. Энэ нь бүтээгч дээр тохиолддог цорын ганц зүйл юм. Өөрөөр хэлбэл, энэ тохиолдолд мессеж нь энэ гэрээний бүх кодыг агуулсан гүйлгээний хамт виртуал машин руу шилжүүлсэн өгөгдөл юм. Үүний дагуу msg.sender нь энэ кодыг байршуулсан энэхүү гүйлгээний зохиогч юм. Тэр ухаалаг гэрээний эзэн болно.

Хадгаламжийн арга нь гүйлгээгээр тодорхой тооны зоосыг гэрээний данс руу шилжүүлэх боломжийг олгодог. Энэ тохиолдолд ухаалаг гэрээ нь эдгээр зоосыг хүлээн авснаар тэдгээрийг балансад үлдээдэг боловч хэнд хамаарахыг мэдэхийн тулд эдгээр зоосыг илгээгч нь яг хэн байсныг балансын бүтцэд бүртгэдэг.

Дараагийн аргыг буцаан татах гэж нэрлэдэг бөгөөд энэ нь нэг параметрийг шаарддаг - хэн нэгэн энэ банкнаас авахыг хүсч буй зоосны хэмжээ. Энэ нь энэ аргыг дуудсан хэрэглэгчийн дансанд зоос илгээх хангалттай мөнгө байгаа эсэхийг шалгадаг. Хэрэв тэдгээр нь хангалттай байгаа бол ухаалаг гэрээ нь өөрөө тэр тооны зоосыг дуудлага хийгчид буцааж өгдөг.

Дараа нь хэрэглэгчийн одоогийн үлдэгдлийг шалгах арга ирдэг. Энэ аргыг дуудсан хүн ухаалаг гэрээнд энэ үлдэгдлийг сэргээхэд ашиглагдана. Энэ аргын хувиргагч нь харагдац гэдгийг тэмдэглэх нь зүйтэй. Энэ нь арга нь өөрөө ангийнхаа хувьсагчдыг ямар ч байдлаар өөрчилдөггүй бөгөөд энэ нь үнэндээ зөвхөн унших арга гэсэн үг юм. Энэ аргыг дуудахын тулд тусдаа гүйлгээ хийгдээгүй, төлбөр төлөхгүй, бүх тооцооллыг дотооддоо хийдэг бөгөөд үүний дараа хэрэглэгч үр дүнг хүлээн авдаг.

Ухаалаг гэрээний төлөвийг устгахын тулд алах арга хэрэгтэй. Мөн энэ аргын дуудагч нь энэхүү гэрээний эзэмшигч мөн эсэхийг шалгах нэмэлт шалгалт байна. Хэрэв тийм бол гэрээ өөрөө устаж, устгах функц нь нэг параметрийг авдаг - гэрээ нь түүний үлдэгдэлд үлдсэн бүх зоосыг илгээх дансны танигч. Энэ тохиолдолд үлдсэн зоос автоматаар гэрээ эзэмшигчийн хаяг руу очно.

Ethereum сүлжээний бүтэн зангилаа хэрхэн ажилладаг вэ?

Ethereum платформ дээр ийм ухаалаг гэрээг хэрхэн гүйцэтгэдэг, сүлжээний бүрэн зангилаа хэрхэн ажилладаг талаар бүдүүвчээр харцгаая.

Ухаалаг гэрээний танилцуулга

Ethereum сүлжээний бүтэн зангилаа дор хаяж дөрвөн модультай байх ёстой.
Төвлөрсөн бус протоколын хувьд эхнийх нь P2P сүлжээний модуль - сүлжээний холболт болон бусад зангилаатай ажиллах модуль бөгөөд блок, гүйлгээ, бусад зангилааны талаарх мэдээллийг солилцдог. Энэ нь бүх төвлөрсөн бус криптовалютуудын уламжлалт бүрэлдэхүүн хэсэг юм.

Дараа нь бид блокчейн өгөгдлийг хадгалах, боловсруулах, тэргүүлэх салбарыг сонгох, блок нэмэх, блокуудыг салгах, эдгээр блокуудыг баталгаажуулах гэх мэт модультай.

Гурав дахь модулийг EVM (Ethereum виртуал машин) гэж нэрлэдэг - энэ нь Ethereum-ийн гүйлгээнээс байт код хүлээн авдаг виртуал машин юм. Энэ модуль нь тухайн дансны одоогийн төлөвийг авч, хүлээн авсан байт код дээр үндэслэн төлөвт нь өөрчлөлт оруулдаг. Сүлжээний зангилаа бүр дээрх виртуал машины хувилбар ижил байх ёстой. Ethereum зангилаа бүр дээр хийгддэг тооцоолол нь яг адилхан боловч тэдгээр нь асинхрон байдлаар явагддаг: хэн нэгэн энэ гүйлгээг өмнө нь шалгаж, хүлээн авдаг, өөрөөр хэлбэл түүнд агуулагдах бүх кодыг гүйцэтгэдэг, хэн нэгэн нь дараа нь. Үүний дагуу гүйлгээг үүсгэх үед сүлжээнд хуваарилагдаж, зангилаанууд үүнийг хүлээн зөвшөөрч, баталгаажуулах үед Bitcoin Script-г Bitcoin-д гүйцэтгэдэгтэй адил виртуал машины байт кодыг энд гүйцэтгэдэг.

Гүйлгээнд байгаа бүх кодыг гүйцэтгэсэн, тодорхой дансны шинэ төлөвийг үүсгэж, энэ гүйлгээ хийгдсэн эсэх нь тодорхой болтол хадгалсан бол гүйлгээг баталгаажуулсан гэж үзнэ. Хэрэв гүйлгээ хийгдсэн бол энэ төлөвийг зөвхөн дууссан төдийгүй одоогийн гэж үзнэ. Сүлжээний зангилаа бүрийн бүртгэл бүрийн төлөвийг хадгалдаг мэдээллийн сан байдаг. Бүх тооцоолол ижилхэн хийгдэж, блокчэйний төлөв ижил байдаг тул бүх дансны төлөвийг агуулсан мэдээллийн сан нь зангилаа бүрт ижил байх болно.

Ухаалаг гэрээний домог ба хязгаарлалт

Ethereum-тай төстэй ухаалаг гэрээний платформуудад тавигдах хязгаарлалтуудын хувьд дараахь зүйлийг дурдаж болно.

  • кодын гүйцэтгэл;
  • санах ойг хуваарилах;
  • блокчейн өгөгдөл;
  • төлбөр илгээх;
  • шинэ гэрээ байгуулах;
  • бусад гэрээг дуудах.

Виртуал машинд тавигдсан хязгаарлалтуудыг авч үзье, үүний дагуу ухаалаг гэрээний талаархи зарим домгийг арилгах болно. Зөвхөн Ethereum-д төдийгүй ижил төстэй платформ дээр байж болох виртуал машин дээр та үнэхээр дур зоргоороо логик үйлдлүүд хийж болно, өөрөөр хэлбэл код бичиж, тэнд ажиллах болно, та нэмэлт санах ойг хуваарилж болно. Гэсэн хэдий ч төлбөрийг үйл ажиллагаа бүрт тус тусад нь төлдөг бөгөөд нэмэлт санах ойн нэгжийг хуваарилдаг.

Дараа нь виртуал машин нь блокчейн мэдээллийн сангаас өгөгдлийг уншиж, энэ өгөгдлийг нэг буюу өөр ухаалаг гэрээний логикийг хэрэгжүүлэх гох болгон ашиглах боломжтой. Виртуал машин нь гүйлгээ үүсгэж, илгээж, шинэ гэрээ байгуулж, сүлжээнд аль хэдийн нийтлэгдсэн бусад ухаалаг гэрээний дуудлагын аргуудыг үүсгэж болно: одоо байгаа, боломжтой гэх мэт.

Хамгийн түгээмэл домог бол Ethereum ухаалаг гэрээ нь интернетийн аль ч эх сурвалжийн мэдээллийг өөрийн нөхцөлөөр ашиглаж болно гэсэн үг юм. Үнэн бол виртуал машин нь интернетийн зарим гадаад мэдээллийн нөөц рүү сүлжээний хүсэлт илгээж чадахгүй, өөрөөр хэлбэл гадаа цаг агаар ямар байхаас хамаарч хэрэглэгчдийн хооронд үнэ цэнийг хуваарилах ухаалаг гэрээ бичих боломжгүй юм. эсвэл хэн түрүүлсэн бэ, эсвэл гадаад ертөнцөд болсон өөр үйл явдалд үндэслэсэн, учир нь эдгээр ослын талаарх мэдээлэл нь платформын мэдээллийн санд байдаггүй. Өөрөөр хэлбэл, блокчейн дээр энэ талаар юу ч байхгүй. Хэрэв энэ нь тэнд харагдахгүй бол виртуал машин энэ өгөгдлийг триггер болгон ашиглах боломжгүй болно.

Ethereum-ийн сул тал

Голыг нь жагсаацгаая. Эхний сул тал нь Ethereum-д ухаалаг гэрээг зохиох, хөгжүүлэх, туршихад зарим хүндрэлүүд байдаг (Ethereum нь ухаалаг гэрээ бичихдээ Solidity хэлийг ашигладаг). Үнэн хэрэгтээ бүх алдааны маш их хувь нь хүний ​​хүчин зүйлээс хамаардаг болохыг практик харуулж байна. Энэ нь дундаж буюу түүнээс дээш нарийн төвөгтэй Ethereum-ийн аль хэдийн бичигдсэн ухаалаг гэрээний хувьд үнэн юм. Хэрэв энгийн ухаалаг гэрээний хувьд алдаа гарах магадлал бага байдаг бол нарийн төвөгтэй ухаалаг гэрээнд мөнгө хулгайлах, царцаах, ухаалаг гэрээг гэнэтийн байдлаар устгах гэх мэт алдаанууд ихэвчлэн гардаг. Ийм олон тохиолдол аль хэдийн гарсан байна. мэдэгдэж байна.

Хоёрдахь сул тал бол виртуал машин өөрөө төгс биш, учир нь үүнийг хүмүүс бас бичдэг. Энэ нь дур зоргоороо тушаалуудыг гүйцэтгэх боломжтой бөгөөд үүнд эмзэг байдал оршдог: хэд хэдэн тушаалыг тодорхой байдлаар тохируулж болох бөгөөд энэ нь урьдчилан таамаглаагүй үр дагаварт хүргэх болно. Энэ бол маш нарийн төвөгтэй талбар боловч эдгээр эмзэг байдал Ethereum сүлжээний одоогийн хувилбарт байгаа бөгөөд тэдгээр нь олон ухаалаг гэрээний бүтэлгүйтэлд хүргэж болзошгүйг харуулсан хэд хэдэн судалгаа байдаг.

Өөр нэг том бэрхшээл бол үүнийг сул тал гэж үзэж болно. Хэрэв та виртуал машин дээр гүйцэтгэх гэрээний байт кодыг хөрвүүлбэл тодорхой үйлдлийн дарааллыг тодорхойлж чадна гэсэн дүгнэлтэд практик эсвэл техникийн хувьд хүрч чадна гэсэн үг юм. Хамтдаа гүйцэтгэх үед эдгээр үйлдлүүд нь виртуал машиныг их хэмжээгээр ачаалж, эдгээр үйлдлийг гүйцэтгэхэд төлсөн төлбөртэй харьцуулшгүй удаашруулна.

Өнгөрсөн хугацаанд Ethereum-ийг хөгжүүлэх үе аль хэдийн байсан бөгөөд виртуал машины ажиллагааг нарийвчлан ойлгодог олон залуус ийм эмзэг байдлыг олж мэдсэн. Үнэн хэрэгтээ гүйлгээ нь маш бага шимтгэл төлсөн боловч бүх сүлжээг бараг удаашруулсан. Эдгээр асуудлуудыг шийдвэрлэхэд маш хэцүү байдаг, учир нь нэгдүгээрт, тэдгээрийг тодорхойлох, хоёрдугаарт, эдгээр үйлдлүүдийг гүйцэтгэх үнийг тохируулах, гуравдугаарт, сүлжээний бүх зангилааг шинэ хувилбар болгон шинэчлэх гэсэн хатуу сэрээ хийх шаардлагатай байдаг. программ хангамжийг, дараа нь эдгээр өөрчлөлтийг нэгэн зэрэг идэвхжүүлнэ.

Ethereum-ийн хувьд маш их судалгаа хийгдэж, маш их практик туршлага хуримтлуулсан: эерэг ба сөрөг аль аль нь, гэхдээ ямар нэгэн байдлаар шийдвэрлэх шаардлагатай бэрхшээл, эмзэг талууд байсаар байна.

Тиймээс, нийтлэлийн сэдэвчилсэн хэсэг дууссан тул байнга гарч ирдэг асуултууд руу шилжье.

Түгээмэл асуултууд

— Хэрэв одоо байгаа ухаалаг гэрээний бүх талууд нөхцөлийг өөрчлөхийг хүсвэл multisig ашиглан энэхүү ухаалаг гэрээг цуцалж, гүйцэтгэлийн шинэчилсэн нөхцөлтэй шинэ ухаалаг гэрээг үүсгэж болох уу?

Энд хариулт нь хоёр талтай байх болно. Яагаад? Учир нь нэг талаас ухаалаг гэрээ нь нэг удаа тодорхойлогддог бөгөөд энэ нь ямар ч өөрчлөлтийг илэрхийлэхээ больсон, нөгөө талаас зарим нөхцөлийг бүрэн эсвэл хэсэгчлэн өөрчлөх боломжийг олгодог урьдчилан бичсэн логиктой байж болно. Өөрөөр хэлбэл, хэрэв та ухаалаг гэрээндээ ямар нэг зүйлийг өөрчлөхийг хүсч байвал эдгээр нөхцлийг шинэчлэх нөхцөлийг зааж өгөх ёстой. Үүний дагуу зөвхөн ийм болгоомжтой байж гэрээг шинэчлэх ажлыг зохион байгуулж болно. Гэхдээ энд ч гэсэн та асуудалтай тулгарах болно: алдаа гаргаж, холбогдох эмзэг байдлыг олж авна. Тиймээс ийм зүйлсийг маш нарийн, нарийн боловсруулж, туршиж үзэх хэрэгтэй.

— Эвлэрүүлэн зуучлагч оролцогч талуудын аль нэгтэй гэрээ байгуулбал яах вэ: эскроу эсвэл ухаалаг гэрээ? Ухаалаг гэрээнд зуучлагч шаардлагатай юу?

Ухаалаг гэрээнд зуучлагч шаардлагагүй. Энэ нь байхгүй байж магадгүй юм. Хэрэв барьцааны тохиолдолд зуучлагч талуудын аль нэгтэй хуйвалдаан хийсэн бол тийм ээ, энэ схем нь бүх үнэ цэнээ эрс алддаг. Тиймээс эвлэрүүлэн зуучлагчдыг сонгон шалгаруулж, энэ үйл явцад оролцож буй бүх талууд нэгэн зэрэг итгэл хүлээлгэдэг. Үүний дагуу та итгэдэггүй зуучлагчтай олон гарын үсэгтэй хаяг руу зоос шилжүүлэхгүй.

— Нэг Ethereum гүйлгээгээр таны хаягаас өөр өөр зорилтот хаяг руу, жишээлбэл, эдгээр жетон арилжаалагддаг солилцооны хаяг руу шилжүүлэх боломжтой юу?

Энэ бол сайн асуулт бөгөөд Ethereum гүйлгээний загвар болон энэ нь Bitcoin загвараас юугаараа ялгаатай болохыг харуулж байна. Мөн ялгаа нь эрс тэс юм. Хэрэв Ethereum гүйлгээний загварт та зүгээр л зоос шилжүүлдэг бол тэдгээр нь зөвхөн нэг хаягаас нөгөө хаяг руу шилждэг, ямар ч өөрчлөлтгүй, зөвхөн таны заасан тодорхой хэмжээгээр л шилжинэ. Өөрөөр хэлбэл, энэ нь зарцуулагдаагүй бүтээгдэхүүний загвар (UTXO) биш, харин данс, харгалзах үлдэгдлийн загвар юм. Хэрэв та зальтай ухаалаг гэрээ бичвэл нэг гүйлгээнд хэд хэдэн өөр жетон илгээх онолын хувьд боломжтой боловч та олон гүйлгээ хийж, гэрээ байгуулж, дараа нь түүнд жетон, зоос шилжүүлж, дараа нь тохирох аргыг дуудах шаардлагатай болно. . Энэ нь хүчин чармайлт, цаг хугацаа шаарддаг тул практик дээр энэ нь тийм биш бөгөөд Ethereum дахь бүх төлбөрийг тусдаа гүйлгээгээр хийдэг.

— Ethereum платформын тухай домогуудын нэг бол гадны интернет нөөцийн өгөгдлөөс хамаарах нөхцөл байдлыг тайлбарлах боломжгүй, тэгвэл яах вэ?

Энэхүү шийдэл нь ухаалаг гэрээ нь өөрөө гадаад ертөнц дэх юмсын төлөв байдлын талаарх мэдээллийг цуглуулж, тусгай аргуудаар ухаалаг гэрээнүүд рүү дамжуулах нэг буюу хэд хэдэн итгэмжлэгдсэн оракуудыг өгөх боломжтой юм. Гэрээ нь өөрөө итгэмжлэгдсэн талуудаас хүлээн авсан мэдээллийг үнэн гэж үздэг. Илүү найдвартай байхын тулд зүгээр л том бүлгийг сонгоод, тэдний тохиролцооны эрсдлийг бууруул. Гэрээ нь өөрөө олонхийн саналтай зөрчилдөж буй oracles-ийн өгөгдлийг харгалзахгүй байж болно.

Blockchain онлайн курсын лекцүүдийн нэг нь энэ сэдэвт зориулагдсан болно - "Ухаалаг гэрээний танилцуулга".

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх