A blokklánc működése

Befejeződött

Most, hogy megismertük a blokklánc alapjait, nézzük meg, hogyan működik a szolgáltatás a háttérben. Ezek az információk segítenek eldönteni, hogy a blokklánc működik-e a forgatókönyvhöz.

Hogyan történik az adatelosztás?

A mi forgatókönyvünk több céget is tartalmaz. Működtethetnénk egy központi adatbázist a tejtermék-feldolgozó cégnél. Azonban egyetlen résztvevő sem szeretne a központi hatóság lenni. Használhatunk egy blokkláncos elosztott tranzakciónaplót. A blokklánc használatával nincs szükség központi fennhatóságra. Emellett minden blokklánccsomóponttal rendelkező résztvevő rendelkezik egy-egy tranzakciónapló-példánnyal, így saját ellenőrzést és rendszerintegrációt végezhetnek. Az, hogy minden cég saját csomóponttal rendelkezzen, azonban nem követelmény. A csomópontok megoszthatók a partnerek között.

Minden csomópont további csomópontokhoz kapcsolódik a blokklánchálózattal. Például a Dalia Pelayo Farms, a fagylaltgyár és a fagylaltüzletek mind saját maguk által kezelt csomóponttal rendelkeznek. A Contoso West és a Contoso East különálló partnerek, amelyek azonos anyacéggel rendelkeznek. A Contoso egy csomóponttal rendelkezik. Nincs szükség egy-az-egyhez típusú kapcsolatra a többi cég csomópontjaival.

Several participant blockchain nodes connected by a network.

Állapotmódosítás

A blokklánc adatai az állapotot képviselik. Ezért működnek jól a digitális jogkivonatok (például a kriptovaluta) a blokklánccal. Ha a fizikai pénznemek tulajdonjogára gondolunk, egy pénzérme egyszerre csak egy ember zsebében lehet. Ha az érme a zsebében van, Ön a tulajdonosa. Ha az érmét egy barátjának adja, ő lesz a tulajdonosa. A mi esetünkben a szállítmányok végighaladnak az ellátási láncon. A termékre vonatkozó felelősséget tovább kell adni. Minket az alábbi adatok érdekelnek: a felelős fél, a hőmérséklet, valamint a termék megfelelősége.

A blokklánc tranzakciókkal módosítja az adatok állapotát egyik értékről a másikra. Tudnunk kell például, hogy a fagylaltot fagypont alatti hőmérsékleten tárolják-e. Fagylaltszállítmány esetén a hőmérséklet-érzékelő időszakosan jelentéseket készít a hőmérsékletről. A jelentett hőmérséklet egy tranzakció, amelyet az érzékelő a blokklánc tranzakciós csomópontjára küld.

Example transaction from an IoT temperature sensor. The transaction sets the temperature to -2° celsius in the ledger.

A fagylaltos forgatókönyvben, ahol a szállítmány végighalad az ellátási láncon, a rendszer minden alkalommal elküldi a tranzakciót, amikor az állapot módosul. Az ábrán egy átlagos, a fagylaltgyárnak küldött szállítmány tranzakciói láthatók. Minden tranzakció módosítja a felelős felet vagy a hőmérsékletet. A tranzakciónapló aktuális állapota a sorrendben történt tranzakciókat mutatja.

List of transactions in order that change the responsible party and temperature. The combination of transactions result in a ledger state based on the order of transaction changes.

Tranzakció küldésekor egy blokklánc tranzakciós csomópontjának küldi azt. Tegyük fel, hogy a Dalia Pelayo Farms tejszállítmány ad fel a Contoso West Shipping céggel. Dalia Pelayo Farms szállítmányozási rendszere egy tranzakciót küld a blokklánccsomópontnak. A tranzakció gazdáról a Contoso West Shippingre módosítja a szállítási felelősséget.

A transaction from the farmer being sent to the farmer's blockchain node.

A blokklánc a tranzakciót a blokklánchálózaton küldi el. Minden csomópont kap egy másolatot a tranzakcióról.

A transaction being copied to all participant blockchain node peers.

A csomópontok feldolgozzák a tranzakciót, amely továbbra is ellenőrzést igényel egy megegyezéses mechanizmussal. A megegyezés konzisztenciát eredményez, és megbízhatóvá teszi az elosztott tranzakciónaplót.

Hogyan győződhetünk meg arról, hogy a tranzakciónapló adatai konzisztensek?

Egy elosztott hálózatban nehéz megállapítani, hogy mi valós, mert az adatváltozásoknak minden csomóponton meg kell történnie. Mi történik, ha a fagylaltgyár csomópontja nem kap kézbesítési tranzakciót? Honnan tudhatják, hogy elszállították a tejet a farmról? Mi történik, ha a szállítmányozó cég hűtőkocsija meghibásodik, a tej pedig megromlik? A szállítási cég módosíthatja a tranzakciónaplót, hogy ne őt terhelje a felelősség?

A blokklánc megegyezéses mechanizmussal ellenőrzi és hitelesíti az adatokat minden blokklánccsomóponton. A megegyezéssel minden központosított csomópont azonos állapotba kerül. Az érték vagy a felelősség átadásakor számít a sorrend. Ha például egy autó tulajdonjogát átruházza egy barátjára, ezt nem teheti meg egy munkatárssal is. Ezt a problémát double spendingnek nevezzük, és a megegyezéses mechanizmus rá a megoldás. A megegyezés gondoskodik a tranzakciók megfelelő sorrendjéről és a blokklánc sértetlenségéről. A megegyezés részeként a rendszer egy blokként ellenőrzi a tranzakciók egy csoportját, a hálózatnak pedig bele kell egyeznie, hogy a blokk a blokklánc része legyen.

Consensus mechanism agrees on validated transactions across nodes. Each blockchain node writes the latest validated block to the blockchain.

Számos blokkláncmegegyezéses algoritmus létezik, például a proof of work, a proof of stake és a proof of authority. Minden algoritmus eltérő módon oldja meg a konzisztenciát. Egyszerűbben fogalmazva, a megegyezéssel az elosztott tranzakciónapló közös állapotra állítható.

Mi az a blokk?

A blokk a blokkláncon belüli adatfürtöt jelent, amely tranzakcióadatokat tárol. A blokkokban lévő tranzakciók száma általában időalapú. Az ábrán például egy olyan tranzakciókat tartalmazó blokk látható, amelyek az elmúlt 10 percben történek.

Example of several transactions representing a block. The order of transactions result in a given state.

A megegyezésnek köszönhetően az ellenőrzött blokkok a blokkláncba kerülnek minden csomóponton. Mivel az összes csomópont azonos blokkokkal rendelkezik a láncban, a tranzakciónapló konzisztens marad a hálózaton. Ennek eredményeképpen minden csomópont ugyanazokat az ellenőrzött adatokat tartalmazza, egy közös sorrendben.

Hogyan győződhet meg arról, hogy a tranzakciónapló nem módosítható?

Jogosan gondolhatná, hogy ha Ön rendelkezik a csomópont tranzakciónaplója felett, módosíthatja a saját példánya adatait. Hogyan lehet tehát módosíthatatlan?

A blokklánc titkosítási kivonatot használ a blokkok közötti kapcsolat létrehozásához. A blokkok összekapcsolásával a tranzakciók sorrendjéről megegyezés születhet a megegyezéses algoritmusban. A titkosítási kivonat olyan algoritmus, amely tetszőleges méretű adatokat képez le egy rögzített méretű bináris reprezentációra. Erre tekinthetünk digitális ujjlenyomatként. A Bitcoin az SHA-256 kivonatoló algoritmust használja. Ha SHA-256 kivonatfüggvényt használ egy 100 oldalas dokumentumban, a függvény kimenete 256 bites kivonatérték. Ha csak egy karaktert módosít a dokumentumban, és újra generálja a kivonatot, a kimenet egy másik 256 bites kivonatérték. Most tegyük fel, hogy egy blokkot a kivonatoló függvény bemenetként adunk meg. Az eredmény egy egyedi kivonatérték lesz a blokk adataihoz.

A block is sent through a hash function and a cryptographic hash is generated.

A blokklánc a kivonatokkal állapítja meg, hogy módosultak-e a blokkok. Az előző blokk kivonatértékét a következő blokk kivonatában való feltüntetésekor a blokkok között egy kivonatlánc jön létre.

A block includes the previous block's hash when generating it's hash. Including the previous hash links the blocks together.

A blokklánc kivonatokkal bizonyítja, hogy az adatelőzmények nem módosultak, így nyújt megbízhatóságot. Az előző blokk kivonatának az új blokk létrehozásakor való belefoglalásával egy nem módosítható, adott sorrenddel rendelkező tranzakciólánc jön létre.

Three blocks linked together by the previous block's hash

Ha a lánc egyik blokkja módosul, a későbbi blokkok kivonata eltérő lesz. Ennek eredményeképpen az ellenőrzés felfedi az eltérést.

Megbízható logika

A blokklánccal konzisztens és megbízható adatokat tárolhatunk. Hogyan adható hozzá olyan logika, amely minden csomóponton ugyanúgy fut?

A mi forgatókönyvünkben olyan logikára van szükség, amely a termék felelősségét egyik résztvevőről a másikra helyezi át. Emellett az IoT-hőmérséklet-érzékelő adataival meg kell tudnunk állapítani, hogy a hőmérséklet túl magas-e.

Egy decentralizált alkalmazás (DApp) egy elosztott számítástechnikai rendszer alkalmazása. Ebben a modulban az Ethereum blokkláncprotokoll használatára összpontosítunk. Az Ethereum DAppjait intelligens szerződéseknek nevezzük. Az intelligens szerződés olyan logikát tartalmaz, amelyet a rendszer a tranzakció részeként hajt végre. Az Ethereumban egy Solidity nevű programnyelvvel programozható a logika.

Az intelligens szerződéseket a rendszer üzembe helyezi a blokkláncon, és címként hivatkozik rájuk. Intelligens szerződés használatához egy példányt kell létrehoznia. Egy intelligens szerződés egy példánya állapotadatokat és programlogikát tartalmaz. A mi forgatókönyvünkben az intelligens szerződés példánya olyan adatokat tartalmaz, mint a felelős résztvevő, a hely, valamint a termék hőmérsékletének megfelelősége. Függvényekkel áthelyezhetjük a felelősséget, vagy telemetriai adatokat fogadhatunk a példányon a hőmérsékletről.

Components of a smart contract include address, logic, and data.

Amikor egy termék felelősségét áthelyezik egy másik félre, tranzakció megy végbe. Az intelligens szerződés logikája frissíti az állapotadatokat. A fagylaltos forgatókönyvben a fagylaltgyár szállítási rendszere létrehoz egy intelligensszerződés-példányt egy új fagylaltszállítmányhoz. A gyár szállítási rendszere egy tranzakciót küld, amely meghívja a TransferResponsibility függvényt, hogy az áthelyezze a szállítmány felelősségét a Contoso East cégre. A blokklánchálózat minden csomópontnak elküldi a tranzakciót. Az intelligens szerződés logikája minden csomóponton lefut.

A smart contract transaction is sent to one node and copied to the other peer nodes.

Mi történik, ha a szállítás során a hűtőegység meghibásodik, a fagylalt hőmérséklete pedig fagypont fölé emelkedik? Az IoT-hőmérséklet-érzékelő szemmel tartja a fagylalt hőmérsékletét, és rendszeres tranzakciókat küld. Ha a hőmérséklet fagyás felett van, az intelligens szerződés logikája nem megfelelőként jelöli meg a szállítmányt.

A smart contract transaction executes logic to set the shipment to out of compliance due to the temperature. The transaction is copied and executed on other peer nodes.

Mivel a tranzakció egy blokklánc része, nem módosítható az a rekord, amikor a szállítmány nem megfelelővé vált. A fagylaltüzlet így megtagadhatja az átvételt, és elkerülheti az élelmiszer-biztonsággal kapcsolatos problémákat.

A blokklánchoz hasonlóan az intelligens szerződés sem módosítható. Az üzembe helyezés után a logika nem módosítható. Ezért biztos lehet abban, hogy az intelligens szerződés logikája mindig ugyanúgy fut len minden csomóponton. A csomópont-módosításokhoz egy új címen üzembe helyezett új intelligens szerződésre van szükség.