Cur i láthair maidir le conarthaí cliste
Cad is conradh cliste ann?
Is ionann "conradh cliste" agus clár a ritheann ar blocshlabhra Ethereum. Is bailiúchán de chód (a fheidhmeanna) agus sonraí (a staid) atá lonnaithe ag seoladh ar leith ar an blocshlabhra Ethereum.
Is cineál cuntais Ethereum iad conarthaí cliste. Ciallaíonn sé seo go bhfuil iarmhéid acu agus gur féidir iad a úsáid mar sprioc -idirbheart. Níl siad á rialú ag úsáideoir, áfach, ina ionad sin déantar iad a imscaradh chuig an líonra agus a rith mar atá cláraithe. Is féidir le cuntais úsáideora idirghníomhú ansin le conradh cliste trí idirbhearta a chur isteach a fhorghníomhaíonn feidhm atá sainithe ar an gconradh cliste. Is féidir le conarthaí cliste rialacha a shainiú, amhail conradh rialta, agus iad a fhorfheidhmiú go huathoibríoch tríd an gcód. Ní féidir conarthaí cliste a scriosadh de réir réamhshocraithe, agus tá idirghníomhaíochtaí leo do-aisiompaithe.
Réamhriachtanais
Má tá tú díreach ag tosú amach nó ag lorg réamhrá nach bhfuil chomh teicniúil, molaimid ár réamhrá ar chonarthaí cliste.
Bí cinnte go mbíonn staidéar déanta agat ar cuntais, idirbhearta agus na meaisín fíorúil Ethereum roimh léim isteach i saol na gconarthaí cliste.
Meaisín díola digiteach
B’fhéidir gurb é an meafar is fearr le haghaidh conradh cliste ná meaisín díola, mar a thuairiscíonn Nick Szabo. Leis na hionchuir chearta, ráthaítear aschur áirithe.
Sneaiceanna a fháil ó mheaisín díola:
1money + snack selection = snack dispensed
Tá an loighic seo ríomhchláraithe isteach sa mheaisín díola.
Tá loighic ríomhchláraithe isteach i gconradh cliste, cosúil le meaisín díola. Seo sampla simplí den chuma a bheadh ar an meaisín díola seo dá mba chonradh cliste é a scríobhadh i Solidity:
1pragma solidity 0.8.7;23contract VendingMachine {45 // Declare state variables of the contract6 address public owner;7 mapping (address => uint) public cupcakeBalances;89 // When 'VendingMachine' contract is deployed:10 // 1. set the deploying address as the owner of the contract11 // 2. set the deployed smart contract's cupcake balance to 10012 constructor() {13 owner = msg.sender;14 cupcakeBalances[address(this)] = 100;15 }1617 // Allow the owner to increase the smart contract's cupcake balance18 function refill(uint amount) public {19 require(msg.sender == owner, "Only the owner can refill.");20 cupcakeBalances[address(this)] += amount;21 }2223 // Allow anyone to purchase cupcakes24 function purchase(uint amount) public payable {25 require(msg.value >= amount * 1 ether, "You must pay at least 1 ETH per cupcake");26 require(cupcakeBalances[address(this)] >= amount, "Not enough cupcakes in stock to complete this purchase");27 cupcakeBalances[address(this)] -= amount;28 cupcakeBalances[msg.sender] += amount;29 }30}Taispeáin gach rudCóip
Mar a chuireann meaisín díola deireadh leis an ngá atá le fostaí díoltóra, is féidir le conarthaí cliste áit idirghabhálaithe a ghlacadh i go leor tionscail.
Gan chead
Is féidir le duine ar bith conradh cliste a scríobh agus é a imscaradh chuig an líonra. Ní gá duit ach foghlaim conas códú i dteanga conartha chliste, agus go leor ETH a bheith agat chun do chonradh a imscaradh. Is idirbheart teicniúil é conradh cliste a imscaradh, mar sin ní mór duit gas a íoc ar an mbealach céanna is gá duit gás a íoc as aistriú simplí ETH. Mar sin féin, tá costais gháis le haghaidh imscaradh conartha i bhfad níos airde.
Tá teangacha atá áisiúil don fhorbróir ag Ethereum chun conarthaí cliste a scríobh:
- Solidity
- Vyper
Mar sin féin, ní mór iad a thiomsú sular féidir iad a imscaradh ionas gur féidir le meaisín fíorúil Ethereum an conradh a léirmhíniú agus a stóráil. Tuilleadh faoin tiomsú
In-chumthacht
Tá conarthaí cliste poiblí ar Ethereum agus is féidir smaoineamh orthu mar API oscailte. Ciallaíonn sé seo gur féidir leat conarthaí cliste eile a ghlaoch i do chonradh cliste féin chun an méid atá indéanta a leathnú go mór. Is féidir le conarthaí fiú conarthaí eile a imscaradh.
Foghlaim tuilleadh faoi inchumthacht conartha cliste.
Teorainneacha
Ní féidir le conarthaí cliste leo féin faisnéis a fháil faoi imeachtaí “dáiríre” toisc nach féidir leo sonraí a aisghabháil ó fhoinsí seachshlabhra. Ciallaíonn sé seo nach féidir leo freagairt d'imeachtaí sa saol fíor. Is d'aon ghnó atá sé seo amhlaidh. D’fhéadfaí comhdhearcadh a chur i mbaol, rud atá tábhachtach don tslándáil agus don dílárú, trí bheith ag brath ar fhaisnéis sheachtrach.
Mar sin féin, tá sé tábhachtach go mbeadh feidhmchláir bhlocshlabhra in ann sonraí as slabhra a úsáid. Is é an réiteach ná oracail, uirlisí a ionchorpraíonn sonraí as slabhra agus a chuireann ar fáil do chonarthaí cliste iad.
Teorainn eile ar chonarthaí cliste ná uasmhéid an chonartha. Is féidir le conradh cliste a bheith d'uasmhéid 24KB nó rithfidh sé as gás. Is féidir dul timpeall air seo trí úsáid a bhaint as An Patrún Diamond.
Conarthaí multisig
Is éard atá i gconarthaí multisig (sínithe iolracha) cuntais chonarthaí cliste a éilíonn sínithe bailí iolracha chun idirbheart a dhéanamh. Tá sé seo an-úsáideach chun pointí aonair teipe a sheachaint i gcás conarthaí a bhfuil méideanna suntasacha éitear nó comharthaí eile acu. Roinneann Multisigs freisin an fhreagracht as forghníomhú conartha agus an phríomhbhainistíocht idir ilpháirtithe agus cuireann siad cosc ar chailliúint eochair phríobháideach aonair as a dtiocfaidh caillteanas do-aisiompaithe cistí. Ar na cúiseanna sin, is féidir conarthaí multisig a úsáid le haghaidh rialachas simplí DAO. Éilíonn multisigs N sínithe as M sínithe inghlactha féideartha (nuair a bhíonn N ≤ M, agus M > 1) chun é a rith. Úsáidtear N = 3, M = 5
agus N = 4, M = 7
go coitianta. Éilíonn multisig 4/7 ceithre as seacht síniú bailí féideartha. Ciallaíonn sé seo go bhfuil na cistí fós in-aisghabhála fiú má chailltear trí shíniú. Sa chás seo, ciallaíonn sé freisin go gcaithfidh formhór na sealbhóirí eochracha aontú agus síniú chun an conradh a fhorghníomhú.
Acmhainní conartha cliste
Conarthaí OpenZeppelin - Leabharlann le haghaidh forbairt conartha cliste slán.