🇹🇿 Mwongozo wa kina wa usalama wa Marlowe: matokeo ya ukaguzi, vikwazo vya utendakazi vilivyojumuishwa, na vipengele vya usalama vya leja

Source: https://iohk.io/en/blog/posts/2023/06/27/a-comprehensive-guide-to-marlowes-security-audit-outcomes-built-in-functional-restrictions-and-ledger-security-features/
Jifunze kuhusu kinachofanya Marlowe kuwa jukwaa salama la uundaji kandarasi mahiri
图片
Kanusho: Yaliyomo katika nakala hii ya Usalama ya Marlowe yametolewa “KAMA ILIVYO” bila hakikisho la aina yoyote. Hakuna chochote katika hati hii kinachokusudiwa kuwa ushauri wa kitaalamu, ikijumuisha bila kikomo, ushauri wa kifedha, uwekezaji, kisheria au kodi. Input Output Global haiwajibikii matumizi yako au kutegemea taarifa yoyote katika hati hii.

Utangulizi
Katika blockchains nyingi, mkataba wa smart ni programu ya kompyuta ambayo hujitekeleza yenyewe mara tu hali fulani zilizoainishwa zinatimizwa. Katika Cardano, ni tofauti kidogo, kwani utekelezaji wa kandarasi mahiri hufanyika katika shughuli iliyowasilishwa nje ya nodi ya Cardano. Lakini bila kujali jinsi inavyofanya kazi chini ya kofia, mikataba smart ni muhimu kwa tasnia nyingi: kifedha, mali isiyohamishika, biashara, na zingine nyingi.

Miamala inayotumia mikataba mahiri inaweza kuhusisha uhamishaji na uhamishaji wa thamani kubwa, ambayo inaweza kuwa shabaha ya wahusika wabaya. Kwa usawa, thamani hii inaweza kufungwa, au kupotea kabisa, kutokana na dosari au udhaifu katika usimbaji.

Ili kuepuka matokeo yoyote yasiyotakikana kunahitaji utekelezaji wa mfumo thabiti wa usalama, ambao unahusisha mseto wa kanuni za muundo, ukaguzi na mbinu bora za wasanidi programu, ubadilishanaji na wahusika wengine wowote wanaoshughulikia mikataba mahiri.

Ikiongeza rasilimali nyingi zinazoendelea kuongezeka kutoka katika jumuiya ya kiufundi ya Cardano, Marlowe ni mfumo ikolojia wa zana na lugha ulioundwa na Input Output Global (IOG) ili kuwezesha uundaji wa mikataba mahiri ya kifedha na miamala kwenye blockchain ya Cardano.

Suite ya Marlowe imeundwa na kuendelezwa kwa kuzingatia usalama. Watayarishi wa Marlowe wameweka vikwazo vya kiutendaji ambavyo vinahakikisha kuwa kandarasi zina kikomo na hukatizwa kila wakati, kwa mfano. Marlowe pia huepuka miundo fulani ya programu ili kuzuia matokeo yasiyotakikana, kwa mfano, kujirudia na kuzunguka. Mhusika wa tatu, Tweag, alifanya ukaguzi thabiti na thabiti kabla ya kutumwa kwa Marlowe kwenye mainnet. Matokeo ya vipengele hivi vyote vya usalama, na vingine vingi, ni uundaji wa kandarasi mahiri na jukwaa la usanidi salama na salama.

Makala haya yanaangazia usalama wa Marlowe, yakifafanua matokeo ya ukaguzi wa usalama, na jinsi timu ilivyoyajibu, vikwazo vya utendakazi vilivyojumuishwa, zana za uchambuzi wa usalama zilizojumuishwa katika utumaji, na baadhi ya tahadhari na mambo yanayopaswa kuzingatiwa unapotumia Marlowe.

Muundo wa hati hii
Hati hii imegawanywa katika sehemu sita zilizofafanuliwa wazi:

  1. Ukaguzi wa busara wa mkataba
  2. Mashambulizi mahiri kulingana na mkataba
  3. Tweag ukaguzi
  4. Vizuizi vya utendaji vya kuimarisha usalama vilivyojumuishwa ndani ya Marlowe
  5. Uthibitishaji wa muamala
  6. Sera za fedha
    Kwa ujumla, hati hii inanuia kutoa uelewa mpana wa umuhimu wa ukaguzi wa kandarasi mahiri na aina tofauti za mashambulizi mahiri kulingana na kandarasi yaliyopo leo, kabla ya kuangazia haswa jinsi kitengo cha Marlowe kinavyotumia ukaguzi na kanuni dhabiti za usalama. kudumisha mazingira salama na salama ya maendeleo ya kandarasi mahiri.

Ukaguzi wa mkataba mahiri
Muhtasari

Uhuru wa asili wa mikataba mahiri na hisa nyingi zinazohusika katika miamala fulani inamaanisha kuwa kuhakikisha uthabiti na usalama ni muhimu. Hili linahitaji kujua jinsi mkataba mahiri utakavyofanya wakati unatekelezwa ili dosari zozote zinazoweza kutokea au msimbo wa kukusudia uweze kutambuliwa na kushughulikiwa. Kukagua mikataba mahiri kwa mtazamo wa usalama ndiyo njia bora ya kuzuia kushindwa au uharibifu unaofuata. Ukaguzi huchunguza kwa kina kanuni na masharti ya mkataba mahiri kabla ya kutumwa, ili kuhakikisha kuwa mkataba unafanya kazi inavyotarajiwa.

Mbinu za ukaguzi
Ingawa mbinu za ukaguzi wa mikataba mahiri zinaweza kutofautiana na kutofautiana kutoka mradi hadi mradi, mikataba mahiri inaweza kuchanganuliwa kwa kutumia mbinu za mwongozo au otomatiki. Kawaida, miradi mingi hutumia mchanganyiko wa zote mbili.

Mkusanyiko wa nyaraka

Kabla ya mchakato wa ukaguzi kuanza, wakaguzi wanaweza kutumia muda kukusanya nyaraka zozote zinazohusiana na mradi. Hii inaweza kujumuisha hati za kiufundi, karatasi nyeupe, codebase, na nyenzo nyingine yoyote ambayo inaweza kuwa muhimu na kusaidia katika mchakato wa ukaguzi.

Ukaguzi wa mwongozo
Aina hii ya ukaguzi wa mikataba mahiri inahusisha kundi la watu wanaochanganua kila mstari wa kanuni, mantiki ya mkataba, usanifu wa mkataba, na hatua zozote za usalama zilizojumuishwa ili kuhakikisha muundo na usahihi. Kando na kufichua makosa ya usimbaji, ukaguzi wa mwongozo unaweza pia kugundua dosari za muundo. Ukaguzi wa mikono unaelekea kuchukuliwa kuwa njia kamili na sahihi.

Ukaguzi wa kiotomatiki
Tofauti na ukaguzi wa mikono, ukaguzi wa kiotomatiki kwa kawaida huchukua mbinu inayozingatia programu katika majaribio. Zana za ukaguzi wa programu zinazomilikiwa au zisizo kwenye rafu zinaweza kusaidia kugundua hitilafu, lakini udhaifu fulani huenda usionekane.

Kwa sababu ya upatanishi wa mbinu hizi, mbinu bora za ukaguzi zinahusisha mseto wa ukaguzi wa kiotomatiki na wa kiotomatiki ili kuhakikisha kuwa dosari, hitilafu na udhaifu wote unaowezekana unatambuliwa na kurekebishwa.

Vitendo vya baada ya ukaguzi
Mara tu mchakato wa ukaguzi utakapokamilika, mkaguzi atatoa ripoti inayoelezea matokeo yao. Hizi zinaweza kujumuisha uainishaji wa makosa kulingana na ukali na safu ya mapendekezo.

Makosa ya mkataba yanaweza kuainishwa kama:

  • Muhimu: aina hii ya dosari itazuia utendakazi salama wa mkataba na/au itifaki.

  • Kubwa: hitilafu fulani katika usimbaji au mantiki zinaweza kusababisha upotevu wa fedha, au hali ya itifaki isiyodhibitiwa.

  • Wastani: ingawa huenda pesa zisiwe hatarini, aina hizi za hitilafu zinaweza kuathiri utendakazi au kutegemewa kwa mkataba.

  • Kidogo: uainishaji huu kwa kawaida hujumuisha msimbo usiofaa na athari kidogo au bila kwa usalama. Taarifa: kwa kawaida hurejelea mtindo wa usimbaji au masuala ya utendaji bora.

Faida za ukaguzi wa mikataba mzuri
Ingawa ukaguzi ni muhimu kwa maombi yoyote, ni muhimu hasa kwa kandarasi mahiri na programu zilizogatuliwa (DApps) zinazoendeshwa kwenye blockchain kwa sababu ya kutobadilika kwa leja hizi zilizogatuliwa.

Manufaa ya ukaguzi wa busara wa mikataba ni pamoja na kutambua hatari kwa haraka, kuepuka makosa yanayoweza kuwa ghali, mazingira bora ya uendelezaji kwa ujumla, na kupata maarifa kuhusu udhaifu, na jinsi ya kuziondoa.

Utambulisho makini wa hatari

Usambazaji wa kandarasi mahiri ambazo hazijakaguliwa ni kamari ambayo hakuna msanidi programu au kampuni yoyote inapaswa kuchukua. Baadhi ya mikataba mahiri inaweza kuhusisha pesa nyingi, ambazo, zikipotea au kuathiriwa, zinaweza kusababisha madeni makubwa zaidi. Kwa kufanya kazi kwa bidii ili kurekebisha hatari hizi, uwezekano wa kitu kwenda vibaya hupunguzwa sana.

Kuepuka makosa yanayoweza kuwa ya gharama kubwa

Pesa kufungwa milele kwa sababu ya hitilafu za usimbaji/mantiki au kwa sababu ya kuingiliwa kwa nia mbaya katika mkataba ni jambo ambalo hakuna mteja au msanidi programu anayetaka kupata uzoefu. Hasara ya kifedha ni upande mmoja tu. Kunaweza pia kuwa na athari kubwa za kisheria.

Mazingira bora ya maendeleo kwa ujumla

Programu ya ukaguzi haipendekezi tu, ni hitaji. Kuhakikisha usalama wa maombi au msururu wa maombi na kufuata mbinu bora huimarisha toleo na kuunda mazingira bora ya maendeleo.

Kupata maarifa kuhusu udhaifu, na jinsi ya kuuondoa

Katika maendeleo ya programu, kuzuia ni bora zaidi kuliko kuunganisha. Na linapokuja suala la mikataba mahiri, hakuna nafasi ya kuweka viraka kwa sababu ya asili isiyobadilika ya blockchain. Ukaguzi wa kina utatoa taarifa nyingi kuhusu kanuni, mantiki ya mkataba, usanifu, na vigezo vingine vingi, kuwezesha wasanidi kuboresha na kutoa mkataba bora zaidi.

Mashambulizi mahiri kulingana na mkataba
Mashambulizi ya kuingia tena

Katika shambulio hili, utendakazi mahiri wa kandarasi huacha udhibiti wa muamala kwa muda kwa kupiga simu kwa mkataba wa pili, ambao huanza kupiga simu za kujiondoa kwa mkataba wa kwanza, na kuondoa pesa zake kabla ya mkataba wa kwanza kusasisha hali yake. Mashambulizi ya aina hii yanawezekana kwa sababu ya hitilafu katika usimbaji wa mikataba mahiri. Tukio la DAO la 2016 lilihusisha shambulio la kuingia tena.

Muundo wa blockchain ya Cardano hufanya mashambulizi ya kuingia tena yasiwezekane. Kwa sababu Cardano hutumia kielelezo cha EUTXO, mikataba mahiri ni ya atomiki na haipigii simu, jambo ambalo hufanya ushirikishwaji upya kuwa jambo lisilowezekana.

Uvamizi wa mbele
Baadhi ya miundo ya blockchain huruhusu mikataba mahiri na miamala ionekane hadharani kwa muda, kabla ya kuthibitishwa kwenye mnyororo. Malipo haya ambayo hayajashughulikiwa hushirikiwa katika mempools kwenye mtandao, jambo ambalo huwezesha adui kuona matokeo yaliyokusudiwa ya mkataba. Mpinzani kama huyo aliye na mwonekano wa miamala ambayo haijashughulikiwa anaweza kuanzisha biashara au muamala mpya akifahamu kuwa kufanya hivyo kutapata faida kulingana na biashara ambayo haijashughulikiwa, kwa gharama ya faida za watumiaji wengine. Kimsingi, adui hubadilisha agizo la utekelezaji wa shughuli kwa faida yao wenyewe.

Ingawa aina hii ya tukio ni suala kubwa kwa blockchains nyingine, hakuna ushahidi kwamba Cardano (na kwa ugani, Marlowe) atakuwa katika hatari ya uvamizi wa mbele.

Udanganyifu wa Oracle
Oracles huunganisha minyororo ya kuzuia na mifumo ya nje, na mikataba mahiri inaweza kutekelezwa kulingana na data iliyopokelewa kutoka kwa hotuba. Kuegemea huku kwa mifumo ya nje kunamaanisha kuwa ikiwa ingizo lililopokelewa na chumba cha ndani limebadilishwa kabla ya kutumwa kwa chumba cha ndani, usalama na uadilifu wa utekelezaji wa mkataba mahiri unaweza kuathiriwa.

Athari zingine za kawaida za kiusalama zinazozingatia mikataba mahiri ni pamoja na makosa ya hesabu, kufurika na kupunguka kwa idadi kamili, mipangilio mahiri ya mwonekano wa mikataba na uchezaji wa muhuri wa muda.

Ukaguzi wa Tweag
Sehemu hii inaangazia matokeo ya ukaguzi wa usalama wa Tweag, majibu kutoka kwa timu ya Marlowe, na kanuni za usalama zilizojumuishwa katika muundo wa Marlowe.

Matokeo muhimu ya ukaguzi wa usalama wa Tweag na majibu ya ndani

Tweag alifanya mwongozo na ukaguzi wa kiotomatiki wa lugha ya Marlowe, ambao ulifichua masuala kadhaa.

Matokeo ya ukali wa hali ya juu yalijumuisha utunzaji wa amana hasi, uzuiaji wa 'kutosheka maradufu’, utekelezaji wa vigeugeu vya serikali, tofauti ya utekelezaji kati ya vipimo rasmi dhidi ya utekelezaji wa Plutus, na uthibitisho wa nadharia ya kuhifadhi pesa.

Utunzaji wa amana hasi
Mapato kutoka kwa amana yanakokotolewa kwa kujumlisha pembejeo za amana, bila kujali kama ni hasi, huku semantiki inazichukulia kama amana sifuri. Ikijumuishwa na kukosekana kwa hakiki ya salio kwenye jimbo la Marlowe linaloisha, hii inaruhusu salio la mwisho kutofautiana na thamani inayolipwa kwa kiidhinishi cha Marlowe. Hii inaweza kutumiwa vibaya na mkataba wa Marlowe unaoruhusu amana hasi.

Jibu la ndani
Suala hili lilitatuliwa kwa kuongeza kinga dhidi ya amana hasi katika kithibitishaji cha semantiki cha Marlowe. Mlinzi huyo huhakikisha kuwa semantiki za kihalalishaji za amana hasi zinalingana na semantiki za Isabelle za Marlowe. Hasa, amana ya kiasi hasi inachukuliwa kama amana ya sifuri. Kwa hivyo amana hasi haitapunguza salio lolote la akaunti katika hifadhidata ya Plutus, na jumla ya salio la ndani litalingana na thamani iliyo kwenye UTXO na anwani ya hati ya semantiki ya Marlowe.

Kuzuia kuridhika mara mbili
Ingawa kithibitishaji cha Marlowe kilizuia kuridhika mara mbili kati ya nakala nyingi za hati ya kithibitishaji cha Marlowe inayoendeshwa katika shughuli hiyo hiyo, hakikuzuia katika hali ambapo kithibitishaji cha Marlowe kilitumika pamoja na kithibitishaji kingine cha Plutus katika shughuli hiyo hiyo.

Jibu la ndani
Kuridhika maradufu sasa kunazuiwa kwa kutekeleza kwamba kiidhinishi cha Marlowe ndicho hati pekee ya Plutus inayofanya kazi wakati wa miamala inayofanya malipo kwa wahusika. Hii inaruhusu kandarasi za Marlowe kuratibu na hati zingine za Plutus, lakini katika hali ambapo kutosheka mara mbili hakuwezekani. Baadhi ya majaribio ya msingi wa mali yaliongezwa ili kuangalia usahihi wa upunguzaji huu.

Utekelezaji wa tofauti za serikali
Hapo awali, kithibitishaji cha Marlowe kilikuwa na mawazo yenye matumaini kuhusu utendakazi wake mwenyewe sahihi na hakuangalia vibadilishi fulani ili kupunguza gharama za utekelezaji wa Plutus.

Jibu la ndani
Kithibitishaji cha semantiki ya Marlowe sasa kinatekeleza kwa uthabiti vibadilishi vya hali ya awali na ya mwisho, na kuhakikisha kuwa visasili vitatu vya akaunti chanya, kutorudiwa kwa maingizo ya serikali (akaunti, chaguo, na thamani zinazofungamanishwa), na jumla ya thamani ya ndani inalingana na hati ya UTXO. thamani.

Tofauti ya utekelezaji kati ya vipimo rasmi dhidi ya utekelezaji wa Plutus
Ukaguzi ulibaini baadhi ya tofauti kati ya vipimo rasmi na utekelezaji halisi wa Plutus. Hasa, tofauti za lugha na kuzingatia kwa ufanisi kuhusiana na Isabelle, Haskell, na Plutus Tx.

Ubainishaji rasmi umeandikwa katika Isabelle, lugha ya mbinu rasmi, huku utekelezaji halisi wa Marlowe umeandikwa katika Haskell na Plutus Tx. Timu ya Marlowe ilifanya kazi ili kufuata vipimo vya Isabelle kwa karibu iwezekanavyo, lakini mikengeuko mingine haikuepukika kwa sababu ya lugha tofauti. Kwa mfano, baadhi ya vipengele vya utekelezaji wa Marlowe havitakuwa na ufanisi katika Isabelle, kwa hivyo mabadiliko yalikuwa muhimu kwa utekelezaji bora zaidi wa Haskell.

Jibu la ndani
Suala hili lilipunguzwa kupitia uchanganuzi wa msimbo na majaribio ya msingi wa mali

Uthibitisho wa nadharia ya uhifadhi wa pesa
Nadharia ya uhifadhi wa pesa ilikuwa imezingatia tu kiasi cha mali lakini sio aina yao. Hii ilimaanisha kuwa uthibitisho hautazingatia kesi ambapo mkataba unaweza, kwa mfano, kupokea ada 20 na 15 Djed na kulipa 20 Djed na 15 ada.

Jibu la ndani
Marekebisho ya msimbo wa Isabelle yalisuluhisha tatizo hili. Hasa, kuongezwa kwa aina mpya ya MultiAssets na urekebishaji upya wa msimbo wa Isabelle (bila kurekebisha mkalimani) ili kuthibitisha kuwa mali zimehifadhiwa.

Vizuizi vya utendaji vya kuimarisha usalama vilivyojumuishwa ndani ya Marlowe
Marlowe anaangazia vikwazo kadhaa ili kuhakikisha kuwa hatari fulani za usalama haziwezi kutokea.

  • Mikataba ina ukomo
  • Mikataba itaisha
  • Mikataba ina maisha ya uhakika
  • Hakuna mali inayobaki mkataba unapofungwa
  • Thamani imehifadhiwa

Kando na mapungufu haya, baadhi ya miundo ya lugha ya programu haipo Marlowe ili kuhakikisha usalama:

  • Kujirudia hakuruhusiwi
  • Kurusha haitumiki
  • Kazi au makro huenda zisifafanuliwe
  • Muda wa kuisha lazima uwe nambari thabiti
  • Muendelezo wa Kesi pekee ndio unaweza kusawazishwa. Lugha ya programu ya Faustus hulegeza baadhi ya vizuizi vilivyo hapo juu, ilhali inajumlisha kumlinda Marlowe.

Vyombo vya uchambuzi wa usalama
Zana ya uchanganuzi ya timu ya Marlowe iliyoundwa na timu ya Marlowe-cli hukagua upatanifu wa mkataba wa Marlowe na sheria za leja ya Cardano.

Leja ya Cardano ina vizuizi vilivyojumuishwa ambavyo vinaweza kuzuia kandarasi ya Marlowe kufanya kazi kwenye mnyororo, hata kama mkataba wenyewe ulikuwa halali kwa heshima ya lugha ya Marlowe. Kwa mfano, leja inaweka vikwazo kwa urefu wa jukumu na majina ya ishara, na pia hupunguza gharama za utekelezaji wa Plutus. Mkataba wowote unaokiuka mojawapo ya sheria hizi hautaendeshwa kwa mnyororo, ingawa mkataba unaweza kujengwa ipasavyo. Vile vile, ingawa mikataba inaweza kuendeshwa kwenye Uwanja wa Michezo, haitaendeshwa kwa mnyororo ikiwa mkataba utakiuka vikwazo vya leja. Pata maelezo zaidi kuhusu vizuizi vya muundo wa leja iliyojengewa ndani.

Mambo muhimu ya kuchukua: ilhali Playground inahusu lugha, Runtime inahusu kutekeleza mkataba wa Marlowe kwenye msururu wa Cardano mahususi. Ikiwa mtu atatumia Marlowe kwenye blockchain nyingine, bado unaweza kutumia Playground, lakini huwezi kutumia Runtime kwenye blockchain nyingine.

Kumbuka: mkataba unaweza kufungwa ikiwa hifadhidata haitoshei kwenye mnyororo, lakini kitengo cha Marlowe kinajumuisha zana za kutathmini hatari hii. Zana hizi zinapaswa kutumika kabla ya kupeleka mkataba.

Uthibitishaji wa muamala
Aina mbili za hati za uthibitishaji wa Plutus zinahusika katika kuthibitisha matumizi ya UTXO:

  • Kithibitishaji cha semantiki
  • Kithibitishaji cha malipo

Mbinu za usalama zinaonyesha kwamba shughuli hazipaswi kusainiwa isipokuwa yaliyomo na athari za muamala zimekaguliwa na kueleweka vyema. Katika mazingira ya Marlowe, hii ina maana ya kuthibitisha mkataba wa Marlowe, mchango wake, na hali yake. Inamaanisha pia kuhakikisha kuwa sera ya kuunda jukumu (ikiwa ipo) na kithibitishaji cha Marlowe kinachotumiwa ndizo zinazofaa.

Mazingatio ya usalama yaliyo hapa chini yanatumika kwa aina zote mbili za hati za kihalali.

Kithibitishaji cha semantiki
Dhana zifuatazo zinapaswa kueleweka vyema kabla ya kutia saini muamala wa Marlowe:

  • Je, muamala unatekeleza mkataba wa Marlowe?
  • Je, jukumu lake la kuunda sera ni lipi (kama lipo)?
  • Je, tokeni za jukumu zimesambazwa vipi (ikiwa zipo)?
  • Mkataba wa sasa na hali yake ni upi?
  • Je, ni mchango gani unatumika kwenye mkataba?
  • Ni nini kingine kinachotokea katika shughuli hiyo?
  • Je, muamala unatekeleza mkataba wa Marlowe?

Hati za kihalalishaji cha Plutus ni wakalimani wa jumla kwa mikataba yote ya Marlowe ya toleo maalum, ambayo ina maana kwamba UTXO ya mkataba wa Marlowe inakaa katika heshi ya hati. Kuthibitisha kuwa muamala unatumia kutoka kwa anwani iliyo na herufi ya hati ya Marlowe kwani sehemu yake ya malipo inathibitisha kuwa kithibitishaji cha kweli cha Marlowe kitaendesha ili kuthibitisha matumizi ya UTXO hiyo mahususi. Inawezekana kukokotoa heshi ya hati ya kithibitishaji cha Marlowe kutoka kwa kanuni za kwanza kwa kukusanya kithibitishaji na kukokotoa heshi yake, kwa kudhani kuwa msimbo wa chanzo cha hati ya Marlowe katika hazina hii unaweza kuaminiwa.

Je, jukumu lake la kuunda sera ni lipi (kama lipo)?
Sera ya uchimbaji ni seti ya sheria za kuunda ishara za aina fulani ya ishara, ambayo inatambuliwa na hashi ya sera yao ya utengenezaji. Hii inajulikana kama Kitambulisho cha sera ya utengenezaji. Sera ya utengenezaji huamua ikiwa tokeni mpya zinaweza kuundwa, au kama tokeni ambazo zimeundwa ndizo zote zitawahi kuwa.

Kwa mfano, wahusika kwenye mkataba wa Marlowe, kama vile mkopeshaji na mkopaji, wanaweza kuwakilishwa kwa njia mbili:

Kwa anwani: kila sehemu ya anwani ya aina inalingana na mfano wa jozi ya ufunguo wa umma na wa kibinafsi ambao huenda unashikiliwa na mkoba wa mmoja wa wahusika. Kutumia anwani kuwakilisha vyama ni rahisi na kwa bei nafuu kuliko kutumia majukumu. Ili kujithibitisha, pande zinazowakilishwa na anwani zinahitaji tu kutia sahihi shughuli zinazohitaji kuthibitishwa (yaani zile zinazotekeleza amana au chaguo kwa chama).
Kwa ishara ya jukumu: kila sehemu ya jukumu la aina inalingana na ishara iliyohifadhiwa kwenye mnyororo. Ili mkataba utumie tokeni za jukumu kama uthibitishaji, mkataba unahitaji kutangaza kuwa kitambulisho cha sera ya kuunda tokeni ndicho kitambulisho cha sera ya uundaji wa tokeni ambayo inataka kutumia kama ishara ya jukumu. Katika hali hii, kila moja ya majina ya kipengee cha tokeni iliyotambuliwa na Kitambulisho cha sera ya uchimbaji kinawakilisha mhusika tofauti. Ili kuthibitisha muamala, mmiliki wa tokeni ya jukumu anahitaji tu kuijumuisha kama sehemu ya shughuli inayohitaji uthibitishaji wa mmiliki wa tokeni ya jukumu. Kunaweza kuwa na zaidi ya tokeni moja yenye jina sawa la kipengee, kwa hivyo humiliki mhusika kitaalam isipokuwa kama unamiliki matukio yote ya tokeni ya jukumu ambayo ina jina la kipengee cha chama.
Je, tokeni za jukumu zimesambazwa vipi?
Iwapo mkataba unatumia tu anwani kwa wahusika wanaowakilisha, sera za kuunda majukumu sio jambo la kusumbua. Ubaya wa anwani ni kwamba haziwezi kuhamishwa, kwa hivyo ufunguo wa kibinafsi wa anwani unapojulikana, huwezi kuonyesha kuwa umeisahau na kuifuta. Kwa mtazamo wa mpokeaji anwani, anwani si salama kila wakati. Njia pekee ya kuwa na anwani salama ni kutengeneza mwenyewe.

Faida au majukumu ni kwamba, kwa sababu tokeni huchukuliwa kama mali asili kwenye msururu, zinaweza kuhamishwa kama ada au mali nyingine yoyote. Lakini mtu yeyote anayemiliki tokeni iliyo na kitambulisho sahihi cha sera ya uundaji na jina la mali anaweza kutenda kama mhusika anayewakilisha, kwa hivyo unahitaji kuhakikisha kuwa ni wewe pekee unayemiliki tokeni kama hiyo, ama sivyo wewe si unadhibiti kabisa chama.

Bila shaka unaweza kuhakikisha kuwa wewe ndiwe pekee unayemiliki tokeni hiyo kwa kutengeneza tokeni za jukumu mwenyewe (Marlowe Runtime hufanya hivi kwa usalama kama sehemu ya mchakato wa kuunda mkataba). Ikiwa mtu mwingine alitengeneza ishara za jukumu au kuunda mkataba, unahitaji kuhakikisha kuwa:

Una ishara zote zilizopo zinazodhibiti chama
Hakuna tokeni kama hizi zinazoweza kuundwa (kwa sababu sera ya uchimbaji hairuhusu)
Ikiwa sera ya uchimbaji ni rahisi vya kutosha, njia rahisi zaidi ya kuangalia hii ni kutumia kichanganuzi cha Marlowe ili kujua kitambulisho cha sera ya kuunda jukumu la mkataba. Kisha, tumia mpelelezi wa Cardano ili kuangalia sera ya sera ya uchimbaji ni nini (ili kuhakikisha hakuna majukumu zaidi yanayoweza kutolewa) na kuangalia usambazaji wa sasa wa majukumu yaliyopo ambayo tayari yameundwa (nani ana ishara zipi, kwa maneno mengine).

Mkataba wa sasa na hali yake ni upi?
Hali ya awali ya muamala wa mkataba imefafanuliwa katika kumbukumbu ya Plutus inayohusishwa na UTXO inayotumika kutoka kwa anwani ya hati ya Marlowe. Data hii lazima itolewe katika shughuli na lazima iwe na yafuatayo:

mizani ya hesabu za ndani ya mkataba
historia ya chaguzi zilizofanywa hadi hatua hii katika utekelezaji wa mkataba
thamani za sasa za vigezo vya mkataba
sehemu ya mkataba ambayo inabaki kutekelezwa
Data inaweza kutolewa kutoka kwa shirika la muamala ambalo halijatiwa saini na kuondolewa kuwa Language.Marlowe.Core.V1.Semantics.MarloweData kwa kutumia chaguo za kukokotoa Plutus.V2.Ledger.Api.fromData.
Vinginevyo:

zana ya mstari wa amri marlowe log --show mkataba itaonyesha historia ya mkataba kwenye mnyororo.
Zana hii ya mtandaoni pia huwezesha mikataba ya kutazama na hali kwenye mnyororo
API ya REST hutoa habari sawa iliyopatikana kupitia marlowe log --show
Je, ni mchango gani unatumika kwenye mkataba?
Mkomboaji wa Plutus unaohusishwa na matumizi ya UTXO kutoka kwa anwani ya hati ya Marlowe hufafanua ingizo linalotumika kwa mkataba, pamoja na muda wa uhalali wa nafasi kwa muamala uliobainishwa kwenye shirika la muamala. Ingizo ni mlolongo wa amana sifuri au zaidi, chaguo na arifa. Kwa kutumia zana kama vile Marlowe Playground au marlowe-cli run prepare, inawezekana kuchanganua matokeo ya kutumia ingizo hili kwenye mkataba.

Kikombozi kinaweza kutolewa kutoka kwa shirika la muamala ambalo halijatiwa saini na kuondolewa kwa Lugha.Marlowe.Scripts.MarloweInput kwa kutumia chaguo za kukokotoa Plutus.V2.Ledger.Api.fromData. Zana ya mstari wa amri marlowe-cli util slotting itakokotoa uhusiano kati ya nafasi zilizotajwa katika muda wa uhalali hadi nyakati za POSIX katika mkataba.

Ni nini kingine kinachotokea katika shughuli hiyo?
Muamala ambao haujatiwa saini unaweza kuwa na matumizi na malipo mengine zaidi ya yale yaliyoainishwa kwa mkataba wa Marlowe. Hii inaweza kuchunguzwa kwa mtazamo wa muamala wa kadiano-cli.

Sera za fedha
Kwa kawaida, sera za fedha (kama zile zinazotumika katika Marlowe Runtime) zinazotekeleza tukio moja la kutengeneza na tokeni moja kwa kila jukumu zinapaswa kutumika. Sera hizi huhakikisha kuwa tokeni za jukumu ni tokeni za kweli zisizoweza kuvumbuliwa (NFTs), kwa hivyo wanaomiliki tokeni za jukumu ndio pekee ambao wanaweza kuhudumu kama wahusika katika mkataba.

Sera za fedha zinazounda nakala nyingi za tokeni ya jukumu fulani, au sera zilizo na sera ya wazi ya uchimbaji, zinaunga mkono kesi za matumizi yasiyo ya kawaida. Kwa mfano, kuunda nakala mbili za kila tokeni ya jukumu na kuzisambaza kwa mhusika mmoja huruhusu mhusika kuweka tokeni moja kwenye hifadhi baridi kama chelezo ikiwa pochi iliyo na tokeni ya jukumu la “moto” haitaweza kufikiwa. Baadhi ya mikataba ya riwaya ya kutafuta watu wengi inaweza kuhusisha kugawa jukumu (kupitia ishara za jukumu zinazofanana ambazo zinaweza kutengenezwa hata baada ya mkataba kuanza) kwa washiriki wengi. Hatimaye, sera ya uundaji ya mkataba wa Plutus kwa ishara za jukumu inaweza kuratibu na utendakazi wa kandarasi moja au zaidi za Marlowe.
Tokeni za jukumu
Tokeni za jukumu zinaweza kuidhinisha amana na chaguo katika miamala ya Marlowe. Kuidhinisha matumizi ya tokeni ya jukumu ni rahisi zaidi kuliko kuidhinisha na ufunguo wa umma, kwa sababu ishara ya jukumu (na hivyo kushiriki katika mkataba wa Marlowe) inaweza kuhamishwa kati ya pochi au kwa mtu mwingine.

Hati za kithibitishaji cha Marlowe hazitekelezei sera mahususi ya fedha kwa ishara za jukumu, ili kuwezesha visa vya matumizi ya riwaya. Hata hivyo, usalama wa uidhinishaji katika mkataba wa jukumu la Marlowe unategemea sana sera ya fedha ya ishara dhima. Hii ina maana kwamba sera ya fedha na utoaji wa tokeni kwa njia ya mtandao unapaswa kuchunguzwa kwa makini kabla ya kushiriki katika mkataba wa Marlowe. Kuthibitisha sera ya fedha ya hati rahisi inahusisha kurejesha hati kutoka kwa blockchain na kuisoma. Kuthibitisha sera ya fedha ya hati ya Plutus kunahusisha kupata na kujifunza msimbo wa chanzo wa Plutus wa hati na kuharakisha msimbo wa chanzo ili kuangalia kitambulisho cha sera ya fedha.

Shukrani: Joseph Fajen, Brian Bush, na Omer Husain wote walitoa mchango muhimu kwa makala haya.