Négy architektúra mintajelölt Blockchain alapú decentralizált alkalmazásokhoz

A Blockchain változatos felhasználási esetekkel rendelkezik, a pénzügyektől a decentralizált internetig. A legtöbb blokklánc-használati eset azonban viszonylag kevés minta felhasználásával valósítható meg. Például egy A Blockchain alapú alkalmazások mintagyűjteménye 15 Blockchain mintát tartalmaz.

A fent részletezett finom szemcsés minták hasznosak. A rendszer tervezéséhez azonban sokkal magasabb szintű absztrakciókra van szükség. Hasznos, ha több durva szemcsés makróminta is van, amelyeket építészeti mintáknak nevezünk. Ez a bejegyzés négy ilyen architektúra mintát ír le.

Kezdjük el. A minták leírására az Aleksandra Tešanovic által a Mi az a minta című részben leírt sablont használom.

Az IAM építészeti mintája.

Környezet: Az IAM környezetek sok felhasználót és szolgáltatót tartalmaznak. Az IAM-rendszerek minden felhasználónak adnak egy fiókot és olyan képességeket, amelyek lehetővé teszik a felhasználók számára, hogy szolgáltatókhoz forduljanak, bemutassák a fiókok tulajdonjogát, majd a képességeik alapján szolgáltatásokat kapjanak.

Erők: Olyan decentralizált IAM-környezetet kell megvalósítani, ahol egyetlen gazember vagy kevés felhasználó nem befolyásolhatja jelentősen a rendszert.

Megoldás: A javasolt mintajelölt a World Wide Web Consortium (W3C) DID specifikációját és a W3C Verifyable Claims specifikációt használja a következő módon.

Tegyük fel, hogy Alice-nek identitásra van szüksége (DID, ami egyedi azonosító). Amint azt az új DID létrehozásának ábrája mutatja, Alice létrehoz egy bejegyzést a blokkláncban. Ez a bejegyzés tartalmaz egy véletlenszerűen generált azonosítót, egy linket az adattárhoz a profiladataival és a profiladatok kivonatát. A felhasználói profil tartalmaz egy nyilvános kulcsot és egy ellenőrizhető követeléseket. A generált véletlen azonosító most Alice DID-jévé válik, mert csak ő birtokolja a nyilvános kulcsnak megfelelő magánkulcsot.

Az igazolható követelések az illetékes hatóság által aláírt átruházási tokenek. Az alkotó egy blokkláncba is bejegyzi őket a követelés kivonatával együtt a DID-hez hasonló módon.

Alice elsősorban a hatósághoz fordulva szerzi meg az ellenőrizhető állításokat. Például a személyi nyilvántartás osztálya vagy azzal egyenértékű osztálya a megfelelő hatóság a név, cím és születési dátum igazolható állításaihoz. Feltételezve, hogy a hatóságok ellenőrizhető követeléseket adnak ki, Alice először egy kihívás-válasz protokollt mutat be, hogy tulajdonosa a DID-nek. Ezután kérelmeket nyújt be az attribútumaival kapcsolatos igazolható követelések iránt, amelyek tartalmazhatják például a nevét, címét, fokozatát és születési dátumát. Profiladatainak frissítéséhez Alice új bejegyzést ad a blokklánchoz a profil új kivonatával.

A kihívás-válasz-protokollban az érvényesítő egy véletlen magot állít elő, Alice nyilvános kulcsával titkosítja, majd kihívja Alice-t, hogy a titkosított mag visszafejtésével demonstrálja, hogy rendelkezik magánkulccsal. Mivel Alice-nek van privát kulcsa, neki kell a DID tulajdonosának lennie.

Egy másik felhasználó vagy egy szervezet (hitelesítő), Bob, aki Alice-t akarja azonosítani, először megkapja a DID-t Alice-től, elolvassa az összes DID-hez kapcsolódó bejegyzést a blokkláncból, beolvassa Alice profiladatait és ellenőrizze őket. Bob újra ellenőrizheti Alice személyazonosságát (azonosítás) a challenge-response-protokoll segítségével. Ezután Bob megerősítheti az ellenőrizhető állításokat, és biztos lehet benne, hogy az Alice-val kapcsolatos állítások igazak.

A legtöbb IAM felhasználási esetet ezen architektúra minta tetejére rétegezhetjük. Például elérhetjük a hozzáférés-ellenőrzést vagy ellenőrizhető követelések kiadásával azokra a műveletekre vonatkozóan, amelyeket a felhasználóknak el akarunk hajtani, vagy csak olyan felhasználókat fogadunk el, akik ellenőrizhető követeléseikben bizonyos tulajdonságokkal (pl. Életkor, munkaköri leírás, csoporttagság) rendelkeznek. Egy megvalósítás dönthet úgy, hogy a teljesítmény javítása érdekében a profiladatok releváns részhalmazait gyorsítótárba helyezi.

Az auditálható előzmények vagy a munkaterület architektúrája

Kontextus: Két vagy több fél tranzakciókat hajt végre, vagy együtt dolgozik, tevékenységüket vitathatatlan módon kell rögzíteni.

Erők: Szükség van egy decentralizált ellenőrzési napló vagy olyan munkaterület megvalósítására, ahol egyetlen szélhámos felhasználó vagy kevés felhasználó nem befolyásolhatja jelentősen a rendszert.

Megoldás: A javasolt rendszer rögzíti a tevékenységeket, és bejegyzéseket hoz létre a blokkláncban ezekhez a rekordokhoz. A bejegyzés tartalmazza a tevékenységrekordok kivonatát, ezért a rekordokat később nem lehet vitatni.

Tegyük fel például, hogy Alice adót akar fizetni. Az adószerver elfogadja a fizetési alkalmazást, létrehoz egy digitális nyugtát, rögzíti annak kivonatát a blokkláncban, és elküldi a nyugtát Alice-nek. Alice ellenőrizheti a nyugtát a kivonat kiszámításával és a blokkláncban tárolt érték összehasonlításával. Ezek után Bob nem tagadhatja meg a nyugtát, mert a nyugta kivonatát és idejét rögzítik a blokkláncban.

Ha a tevékenységek száma sok, szükség lehet a blockchain teljesítménykorlátozásainak megkerülésére. Ezért egyes megvalósítások több tevékenységrekord kivonatát blokkként rögzíthetik egyetlen tevékenységrekord helyett.

Építészeti minta a nyilvántartáshoz vagy a piactérhez

Környezet: A rendszerleíró adatbázis olyan adatbeviteli gyűjtemény, amely a hálózaton keresztül kereshető és visszakereshető. A piactér olyan nyilvántartás, amely lehetővé teszi a felhasználók számára, hogy az adatbevitel által képviselt szolgáltatásokat vagy termékeket megvásárolják. Például a nyilvántartás az elérhető API-k katalógusa lehet.

Erők: Olyan decentralizált környezetet kell megvalósítani, ahol egyetlen gazember vagy kevés felhasználó nem képes jelentősen befolyásolni a rendszert.

Megoldás: A javasolt minta a következőképpen működik.

Vizsgáljuk meg először egy nyilvántartást. A javasolt architektúrával, amikor a felhasználó kibocsát egy nyilvántartási frissítést (egy bejegyzés hozzáadásához vagy módosításához), az ügyfél rögzíti a változást a blokkláncban. Ha a frissítésben lévő adatok nagyok, a blokklánc-rekord tartalmazhat linket az adatokra és az adatok hash értékét. Ha a nyilvántartásban tárolt adatokat módosítani kell, a rendszerleíró ügyfél egy új rekordot ad hozzá a blokklánchoz, módosított információkkal.

A fenti ábrán minden felhasználónak van egy regisztrációs kliense, amely a helyi gépen fut (pl. Laptop vagy telefon). Minden rendszerleíró ügyfél elolvassa a frissítési rekordokat a blokkláncból, ellenőrzi a frissítési adatokat a rekordokban szereplő hash alapján, és a frissítésekből rekonstruálja a rekordok legfrissebb nézetét. Például az API-król, azok kiegészítéseiről, módosításairól és eltávolításairól szóló blockchain-rekordok olvasásával a rendszerleíró ügyfél létrehozhat egy nézetet, amely megmutatja a rendszerleíró adatbázisban szereplő aktuális API-kat. Annak elkerülése érdekében, hogy minden nyilvántartás használatakor el kell olvasni és ellenőrizni az összes rekordot, az ügyfelek adatokat tárolhatnak egy adatbázisban és indexelhetik. Az ügyfélnek rendszeresen ellenőriznie kell a blokkláncot, és frissítenie kell a rendszerleíró adatbázist.

A Blockchain jól működik „szolgáltatási piacként”, mivel ugyanazt a szolgáltatást sokszor el lehet adni. A teljesítménykorlátozások miatt azonban a blockchain alapú piacterek nem alkalmasak olyan termékekre, amelyeket csak egyszer lehet eladni.

A blokklánc-alapú rendszerleíró adatbázis működésének szemléltetése céljából nézzük meg, hogy Alice mikor szeretne előfizetni az időjárási hírszolgáltatásra a blokklánc-piacon. Amikor benyújtja kérését, a rendszerleíró adatbázis hitelesítő adatokat hoz létre a szolgáltatáshoz, és megosztja azokat Alice-szal. A fizetés többféle módon történhet: a Bitcoins használatával, intelligens szerződés útján, ahol a kifizetéseket időben teljesítik, vagy valamilyen nem kötött módon.

Építészeti minta intelligens szerződésekhez és kezelt dolgokhoz

E minta alapján két esetet veszünk figyelembe. Először az intelligens szerződéseket vesszük figyelembe, a másodikként pedig az intelligens szerződések általános speciális esetét: „Kezelt dolgok”.

Intelligens szerződések minta

Kontextus: Több felhasználó szeretné betartani a futtatható programként leírt szerződést. A szerződés a szerződésben meghatározott feltételek szerint állapotátalakításon megy keresztül, és egy adott időpontban mindenki megállapodhat a szerződés aktuális állapotáról.

Erők: olyan környezetet kell megvalósítani, ahol egyetlen gazember vagy kevés felhasználó nem befolyásolhatja jelentősen a rendszert.

Megoldás: Az intelligens kapcsolatok a blokklánc-technológiák részét képezik, és blokklánc-implementációk, például az Ethereum támogatják őket. A szerződést intelligens szerződéses nyelven írják le és terjesztik az összes résztvevő számára. Amint a szerződésben meghatározott feltételek változnak, minden résztvevő végrehajtja a szerződést, és a konszenzus algoritmus segítségével rögzíti az aktuális állapotot a blokkláncban.

Kezelt dolgok mintája

Kontextus: A valós okos dolgok tulajdonjogát követnünk kell. Itt az okos dolgok olyan valós objektumok, amelyek képesek számítástechnikai logikát futtatni bennük. A tulajdonos megengedheti a valós dolgok ellenőrzését és végrehajtását. Ezenkívül a tulajdonos másra ruházhatja át a tulajdonjogát.

Erők: olyan környezetet kell megvalósítani, ahol egyetlen gazember vagy kevés felhasználó nem befolyásolhatja jelentősen a rendszert.

Megoldás: Az alábbiakban bemutatjuk a minta megvalósítását, amelynek példája az Autó, mint a kezelt dolog.

Két lépésben megvalósíthatunk egy kezelt dolog, ebben az esetben egy autó blokkláncát. Először a gyártó rögzíti az autó tulajdonosának DID-jét és nyilvános kulcsát. Amikor a tulajdonjog megváltozik, a tulajdonos új rekordot ad a blokkláncba, meghatározva az új tulajdonosát. Másodszor, a tulajdonjog ellenőrzése során az autó először lekéri az összes rekordot a blokkláncban, és ellenőrzi, hogy minden rekordot a tulajdonos adott-e hozzá. Ez a rekordot író felhasználó nyilvános kulcsának ellenőrzésével történik az előző tulajdonosi nyilvántartásban szereplő nyilvános kulccsal szemben. Ebben az érvényes láncban az utolsó tulajdonos a jelenlegi tulajdonos.

A tulajdonos meghatározása után az autó bejelentkezik a jelenlegi tulajdonosban, Alice-ben, lekérve nyilvános kulcsát, és kihívás-válasz protokoll alapú bejelentkezést hajt végre Alice telefonjával, amely Alice privát kulcsával rendelkezik.

Egy ilyen rendszer csökkenti a távvezérelt műtermékekkel kapcsolatos kockázatokat. Például egy nem blokkláncos megvalósításban a hozzáféréssel rendelkező személy megváltoztathatja autója tulajdonjogát. A blockchain alapú modellel azonban az autó távvezérléséhez egy leendő támadónak meg kell változtatnia a blockchain tulajdonosi rekordját, amit nagyon nehéz elérni anélkül, hogy tulajdonos lenne.

Nehéz azonban megakadályozni, hogy valaki, aki hozzáfér a „dologhoz”, fizikailag megváltoztassa a bent futó logikát (pl. Az autó firmware-jének cseréjével). Ennek a problémának az egyik megoldása az önpusztítás valamilyen formájának felépítése, amely a műtárgy beavatkozás észlelésekor vált ki.

Például Alice megveszi az autót Bobtól egy intelligens szerződés segítségével, amely fizet Bobnak és frissíti a jármű tulajdonjogát. A tranzakció után Alice az autóhoz sétál, amely kiolvassa Alice DID-jét a telefonról, előhívja nyilvános kulcsát, kihívás-válasz-protokoll használatával hitelesíti, kommunikálva azzal a telefonnal, amely rendelkezik Alice magánkulcsával, ellenőrzi a tulajdonjogát és kinyitja a autó.

Következtetés

Négy blokklánc alapú architektúra mintát tárgyaltunk. A GitHub dokumentum, a Blockchain-alapú integrációs használati esetek, ezeket a mintákat működés közben mutatja be, leírva, hogy a 30 plusz blokklánc-használati esetek miként valósíthatók meg e négy minta felhasználásával.

Ha véleményed van a fenti mintákról, vagy tudsz más mintákról, nagyon szeretnék hallani róluk.

Remélem, ez hasznos volt. Ha ez tetszik neked, akkor is kedvelheted a nemrégiben megjelent, „A Blockchain felhasználási esetekre koncentráló felmérése: status quo és jövőbeli irányok” című részletes blokklánc-elemzést.