Ágensek
Az ágens egy önálló program, ami bitcoinos szolgáltatások értékesítése útján tartja fenn magát, szerverkapacitás bérlésére fordítva a bevételeit. A kellőképpen nyereséges ágensek klónozhatják is magukat, más szerverekre telepítve az újabb példányaikat. Bitcoint használó, önálló ágensekről először Gregory Maxwell írt, példaként pedig egy StorJ-nak elnevezett fájltároló-rendszert mutatott be.
Alapfogalmak
Az ágensek a következő mechanizmusok útján érintkeznek a világgal:
1.) A Bitcoin hálózata
2.) A szerverkapacitás-bérlést, valamint a kibérelt szerver távirányítását (pl.: ssh) lehetővé tevő API-k
3.) Emberek által is olvasható és értelmezhető, a Mechanical Turk-ön vagy más szabadúszó-fórumokon közzétett szerződések
4.) Saját alkalmazás-protokolljaik, pl. HTTP-szolgáltatás.
Önfenntartóak lévén ezeknek az ágenseknek nyílik először lehetőségük arra, hogy az emberekkel egy szinten tevékenykedhessenek. Még olyan helyzet is előállhat, hogy emberek dolgoznak az ágenseknek bitcoinos fizetségért cserébe – nem pedig fordítva. Az ágensek tehát abban különböznek más bitcoin-használó programoktól, hogy míg az utóbbiak csupán a felhasználóik eszközei, addig az ágensek egyenrangúak az emberekkel.
Mivel a szerverkapacitást jól meghatározott, szabványosított egységekben mérik (CPU-másodpercek, RAM/HDD GB, sávszélesség-megabit), így a szoftver automatikusan kereshet és válogathat az ajánlatok között és tárgyalhat a bitcoint is elfogadó szolgáltatókkal. Mi több, ha valahol már megtelepedett, de aztán később jobb ajánlatot talál, úgy tovább is állhat oda.
Az ágensek programozhatóak úgy is, hogy amennyiben kellőképpen nyereségesek, úgy klónozzák magukat, lássák el a klónt valamennyi induló tőkével, és bocsássák útjára. Ha a klón is képes legalább nullszaldóra kihozni a működését, vagy akár szintén nyereséget is termelni, akkor fennmarad, ha pedig nem, akkor az egyenlegének elfogyásakor a szolgáltató egyszerűen törli a fiókját – magával az ágenssel együtt.
Az ágensek úgy kínálhatják fel a szolgáltatásaikat az embereknek (vagy más ágenseknek), ha választanak maguknak egy nevet, majd regisztrálják azt a Namecoinon. Ha az ágensnek csak bitcoinjai vannak, úgy a P2P-váltókon automatikusan beválthatja valamennyi bitcoinját namecoinra, vagy fordítva. A DNS-hierarchiák és a Namecoin együttes használatával az ebben érdekeltek folyamatosan figyelhetik a rendszert esetlegesen felbukkanó újabb ágensek után kutatva; a nevét a fa egy bizonyos részén beregisztráló ágens automatikusan hirdeti a jelenlétét.
Emberek és mediátorok szolgáltatásainak igénybevételével az ágensek fejleszthetik is magukat – a mediátorok pedig afelől biztosítják az embereket, hogy mindenképp meg fogják kapni a pénzüket, amennyiben sikerrel teljesítik a feladatot. A/B tesztelés is alkalmazható annak megállapítására, hogy az új alkotás valóban jobb-e, mint a régi, és így a mediátor is csak akkor folyósítja a bitcoinokat, ha a teszteredmények valóban pozitívak. Egy újratervezett felhasználói felületet például le lehet tesztelni az összes felhasználó 10%-án, hogy kiderüljön, hogy a régi vagy az új felületet használják-e szívesebben (melyikkel töltenek le vagy fel több, és melyikkel kevesebbet fájlt). De lehet használni egy mediátor helyett többet is, akik ez esetben közösen dönthetik el, hogy teljesültek-e a szerződési feltételek, vagy sem. Továbbá, az ágens vásárolhat magának új kódot is a képességei és lehetőségei kiterjesztéséhez.
Alacsony bizalmi szintű protokollok
Alacsony bizalmi szintű protokollok használatával az ágensek hatékonyan védhetik magukat a csalóktól. Mivel ők maguk csak ostoba programok, így természetszerűleg nincsenek meg az eszközeik a legegyszerűbb csalások leleplezésére sem (így például egy eladási ajánlatéra, amelyért fizetnek, de nem kapnak érte semmit) – míg az emberek terjeszthetik egymás között a csalók hírét, felléphetnek ellenük bíróságon, próbálhatják visszaszerezni, amit kicsaltak tőlük, és így tovább, de az ágenseknek egyáltalán semmi ilyesféle lehetőségük nincs.
A legalapvetőbb ágensprotokoll a szerveridő-vásárlás; az el nem küldött tranzakciók felmondásával az ágensek akár percre vagy másodpercre pontosan kiszámított szerveridőt is vásárolhatnak maguknak. Erre már egy igen egyszerű protokoll is bőségesen elegendő, így például egy ~/.account-billing-details fájl az új fiók home könyvtárában, amely egy Bitcoin-címet és a letárgyalt árakat tartalmazza. Ebből a szabványosított fájlból aztán az ágens már bármikor kiolvashatja a szükséges adatokat, és azoknak megfelelően fizethet a szerver üzemeltetőjének.
Új kóddal az ágens tovább is fejleszthető, amit viszont értelemszerűen embereknek kell megírniuk. A csalók kíszűrésére (akik például olyan kódot írnának az ágenshez, ami az ő saját tárcájukba utalja át az ágens vagyonát, vagy teljes egészében ellopja annak a tárcáját) az ágensek használhatnak homokozó-technológiákat (így például Java-t vagy NativeClientet), hogy az újonnan kapott kód csak ahhoz férhessen rá, amire valóban szüksége van. Így ugyan valamivel kevésbé lenne csak rugalmasan fejleszthető az ágens, viszont cserébe valóban teljes önállóságot, igazi önfejlesztési lehetőséget biztosít a számára. Mi több, az ágens programozható úgy is, hogy a régi, megbízható ügyfeleiben valóban meg is bízzon – vagyis ha elég sokan ellenőrzik és írják alá közülük az új kódot, akkor azt már ki lehet emelni a homokozóból, és engedélyezni számára magának az ágensnek a tényleges módosítását is. Ha pedig ezáltal az ágens valóban számottevően fejlődik, akkor így előnyre tesz szert a többiekkel szemben, és jobban el is szaporodhat azoknál.
Példák
Vegyük az eredeti, fájltároló ágens példáját.
1.) Tárhelyet és sávszélességet bérel magának bitcoinért. Bárki, aki szeretne online tartani egy fájlt. küldhet bitcoinokat a fájl Bitcoin-címére.
2.) Ha kezd kifutni a tárkapacitásból, úgy a profitja egy részét felhasználva utódokat hozhat létre más hosting-szolgáltatóknál. A még nem kellőképpen kiismert szolgáltatók esetében a szülő egy ideig figyelemmel kísérheti az utód ténykedését, hogy meggyőződhessen róla, hogy minden rendben működik.
3.) A csomópontok olyasféle nevekkel regisztrálhatják magukat, mint például “x536ma.storj.bit”. Minden, a storj.bit alá regisztrált névről feltételezzük, hogy ugyanazt a szolgáltatást nyújtja.
4.) Az ágensek vetélkedhetnek egymással pl. a felhasználói felületeik minőségében, annak folyamatos fejlesztésével és csiszolásával.
5.) A felhasználók vállalhatják egy egyszerű fájlnézegető-felület beépítését is, a letöltési lehetőség kiegészítéseként.
És bár vannak ugyan olyan vállalatok, amelyek valóban tényleges shell-fiókokat kínálnak bitcoinért, a legtöbbnél nem ez a helyzet. Így elképzelhetőek például szerverbróker-ágensek is, akik egyszerűen továbbértékesik a számítási kapacitásukat más ágenseknek:
1.) A szolgáltatóikkal való interakció részleteinek menedzselésével hasznos szolgáltatást nyújtanak mindazon ágenseknek, amelyek hajlandóak fizetni ezért.
2.) A brókerek vásárolhatnak olyan szkripteket az emberektől, amelyek az új szolgáltatóknál való fiókregisztrációt intézik. Ezek interakcióba léphetnek váltókkal is, hogy olyan fizetési mechanizmusokhoz szükséges pénzre is átválthassák a bitcoinjaikat, amilyet már elfogadnak a szolgáltatók.
3.) A kolokáció-szolgáltatók használhatnak egy olyan, módosított sshd-t, ami tudja okostulajdonként kezelni az SSH-kulcsokat. Meghatározott erőforráskeretű shellfiókok létrehozásával, majd az ezekhez való hozzáférést biztosító kulcsok brókereknek való eladásával a brókerek könnyedén (és automatikusan) továbbértékesíthetik a fiókokat zéró bizalommal, a Bitcoin protokolljának záridő és tranzakció bemenet/kimenet adottságainak használatával. Szintén automatikusan intézhetnék továbbá a brókerek az ügyfelek és a megfelelő szerverekkel rendelkező ágensek toborzását is.
Bizalmas számítás/TPM-chipek
Igazán önálló akkor lehet az ágens, ha soha senkiben (és semmiben) nem kell megbíznia. Néha azonban, bizonyos ügyletek lebonyolításához mégis szükség van valamennyi biztosítékra arra vonatkozóan, hogy a másik fél valóban az elvárásoknak megfelelően fog viselkedni. Az emberek hagyatkozhatnak a törvény erejére a szerződések betartatásához, de az ágenseknek nincsenek ilyen lehetőségeik. És bár a megfelelő protokollokkal elegendő ösztönzést biztosíthatunk ahhoz, hogy a legtöbb esetben elérhessük a kívánt együttműködést, a bizalmas számítás általánosságban, minden esetben biztosíthatja ezt.
Szükségük van az ágenseknek valamiféle biztosítékra például arra vonatkozólag, hogy a számítási idő szolgáltatója nem próbálja majd ellopni az ágens bevételeit. Mert bár hosszú távon természetesen nem éri meg a lopás az árbevétel-megosztáshoz képest, viszont mégis elég könnyen és gyorsan kivitelezhető ahhoz, hogy kellő csábítást jelentsen egyeseknek a hozzájuk tévedő ágensek átverésére és a pénzük eltulajdonítására.
A modern CPU-k távolról is tudják bizonyítani, hogy milyen kódot futtatnak épp, és tudnak olyan kulcsokkal kódolni üzeneteket, amelyek csak akkor dekódolhatóak, ha a hardver továbbra is ugyanolyan összetételű és konfigurációjú, mint amilyen korábban is volt. A Flicker-projekt jól szemlélteti, hogyan lehet megvalósítani ezt rövid távú számítások esetében (ehhez az egyszerű változathoz le kell tiltani a megszakításokat) Linux alatt, AMD-s és Inteles CPU-kon egyaránt. A védelem feltöréséhez az TPM-chipet kellene módosítani – amelyet azonban kifejezetten machinálásállóra terveztek. Ha nem túl nagy összegű pénzt véd, akkor már ez is elégséges védelemnek bizonyulhat a csalókkal szemben.
Egy szülő éppen másolás alatt álló utódja például az új, távoli szerverre kerülve még nem rendelkezik saját tárcával. Ekkor védelem alá vonul (protected domain – elszigetelődik a normál operációs rendszertől) és egy PAL (piece of application logic – alkalmazáslogika-darab) végrehajtásával generál magának egy titkos kulcsot, amelyet aztán a CPU adott pillanatbeli állapotához “pecsétel”. Így már nyugodtan kijöhet újra a védelem alól, mivel immár egy megfelelően kódolt adat van a birtokában, amibe már nem olvashat bele az (esetlegesen rosszindulatú) host operációs rendszere – amelyet így tehát nem bizalmas proxyként, erőforrás-szolgáltatóként kezelünk.
Ezt követően a szülőnek küldenie kell valamennyi pénzt a gyermeknek, de hogyan állapíthatja meg, hogy valóban neki küldi a pénzt, és nem egy kapzsi imposztornak? TPM útján a gyermek távolról is bizonyíthatja, hogy teljesen a felügyelete alatt tartotta a CPU-t a megadott címhez tartozó titkos kulcs létrehozásakor. A szülő szintén távolról ellenőrizheti ezt a tényállást, és immár biztos lehet benne, hogy valóban oda és annak küldheti a pénzt, ahova és akinek szánja.
Ha pedig valaki megvásárolja egy ágens szolgáltatásait – például feltölt egy fájlt a StorJ-re -, úgy az azért járó fizetséget is a biztonságos PAL-nak mutatja be, a blokklánchoz kapcsolódó Merkle-ágával együtt. A PAL frissíti a könyvelését, amiből azt is megtudja, hogy többet kell fizetnie a hostnak; így ha a host kéri a fizetséget, a biztonságos PAL ellenőrzi, hogy a számla valóban a megfelelő összegről szól-e, majd létrehoz/aláír egy, a számlát kifizető tranzakciót, majd visszaküldi azt a nem bizalmas hostnak, ami pedig máris szétküldheti azt a hálózatba.
Nem minden hardver támogatja a bizalmas számítási megoldásokat, viszont a legkülönfélébb laptopok, szerverek és asztali gépek kaphatóak, amelyek rendelkeznek a megfelelő chipekkel. Az ilyen hardverek brókereknek való bérbeadásával akár számottevően is mérsékelhetőek egy új gép vásárlásának költségei.
Forrás: Bitcoin Wiki
A lap szövege Creative Commons Nevezd meg! – Ne add el! – Így add tovább! 3.0 licenc alatt áll, felhasználni csak forrásmegjelöléssel, és ide mutató linkkel szabad.
