Indexerar Staking

The Graph har token modell är baserat kring arbete, GRT funktionen är med andra ord ett arbetstoken, där indexerare måste staka (låsa in) GRT för att kunna sälja sina tjänster på frågemarknaden (query market), och det finns två huvudfunktioner för detta:

1. Det ger ekonomisk trygghet, eftersom den satsade GRT kan bli bestraffad (slashed) om indexerare utför sitt arbete som inte är i nätverkets bästa. När GRT väl är stakat (inlåst) får det endast dras tillbaka under förutsättning av en så kallad upptiningsperiod, vilket ger goda möjligheter för verifiering och tvistlösning.

2. Det minimerar falska indexerare, eller indexerare av låg kvalitet, då de indexerare som har låst in sina medel förmodligen kommer vilja göra ett så bra jobb som möjligt för att få framtida arbete och belöningar.

För att ovanstående mekanismer ska fungera korrekt är det viktigt att indexerare stimuleras att hålla GRT ungefär i proportion till mängden arbete de utför i nätverket.

Ett dåligt och naivt tillvägagångssätt skulle vara att bygga nätverket så att varje satsad GRT ger en indexerare rätt att utföra en viss mängd arbete på nätverket. Det finns två problem med detta:

1. För det första sätter det en övre gräns för mängden arbete nätverket kan utföra.
2. För det andra är det nästan omöjligt att genomföra på ett sätt som är skalbart, eftersom det skulle kräva att allt arbete samordnas centralt i kedjan.

Ett bättre tillvägagångssätt har gjorts av teamet på 0x, och det innebär att man samlar in en protokollavgift för alla transaktioner i protokollet, och sedan återbetalar dessa avgifter till deltagarna som en funktion av deras proportionella insats och proportionella avgifter som samlats in för nätverket.

Det som är intressant för The Graphs syfte är att en rationell beslutsfattare förväntas att budgetera en andel av sina utgifter mellan de två insatserna till produktionsfunktionen. I The Graphs fall skulle detta vara kostnaden för att hyra eller äga GRT, samt driftskostnaderna för att köra en Graph nod som gör att en indexerare kan utföra mer arbete och i det långa loppet samla in fler förfrågningsavgifter för nätverket.

Eftersom The Graph skulle förvänta sig att alla rationella indexerare ska fatta ett likvärdigt budgetbeslut, så bör The Graph förvänta sig att indexerare stakar en andel av den totala stakade mängden GRT, lika med andelen arbete som de har utfört för nätverket.

Skönheten är att denna fördelning av stakat kapital inte behöver tillämpas i protokollet, utan snarare härrör det naturligt från indexerare som fattar beslut i sitt eget ekonomiska bästa.


Delagation

För GRT innehavare som inte vill sälja sina GRT, men vill använda sina tokens för produktiv användning för att säkra nätverket, introducerar protokollet delegering.

En delegatör kan ”låna” ut sina GRT till en indexerare, i utbyte mot en andel av deras frågeavgifter och indexeringsbelöningar.

Förutom att öka GRT deltagandet, erbjuder delegationen en möjlighet för mindre, kapitalbegränsade indexerare, att vara mer konkurrenskraftiga i det decentraliserade nätverket genom att tillhandahålla en hög kvalitet och attrahera delegatörer.

Ett viktigt val som staking protokoll måste göra när det kommer till delegering är om delegerat staking-medel kan straffas (slashed) på grund av indexerarens felaktiga beteenden. I The Graph kommer delegerat staking-medel inte att kunna straffas, eftersom detta uppmuntrar ett förtroendeförhållande mellan delegatörer och indexerare som kan leda till ”vinnaren tar allt” metoder och skada decentralisering.

I likhet med andra protokoll som har gjort detta val, kommer The Graph att tillämpa en gräns för hur mycket delegerat kapital (GRT) en indexerare kan acceptera för varje enhet av hur mycket de själva satt på spel. Denna “delegeringskapacitet” säkerställer att en indexerare alltid sätter ett minimum av egna medel på spel för att delta i nätverket.


Kurator signalering

För att en konsument ska kunna fråga (query) en undergraf måste undergrafen först indexeras, en process som kan ta timmar eller till och med dagar. Om indexerare var tvungna att gissa vilka undergrafer de skulle indexera skulle marknaden inte vara särskilt effektiv.

Kurator signalering är processen att deponera GRT i en bindningskurva för en undergraf för att visa indexeraren att undergrafen bör indexeras. Kuratorer låser alltså in sina GRT i de undergrafer som de vill signalera till indexeraren ger rätt information, och genom att de låser in sina GRT i en undergraf kommer de få rätt till en del av framtida sökavgifter som samlas på den undergrafen. Så om en kurator vill generera belöningar bör den låsa in sina GRT mot undergrafer som den förutspår kommer generera avgifter för nätverket och som indexerare kommer att indexera.

Att använda bindningskurvor, en typ av algoritmisk market maker där priset bestäms av en viss funktion, innebär att ju fler kurationsandelar som präglas, desto högre blir växelkursen mellan GRT och kurationsandelarna. Således kan framgångsrika kuratorer ta vinster omedelbart om de anser att värdet av framtida kurationsavgifter har blivit korrekt prissatta. På samma sätt bör de ta ut sina GRT om de anser att marknaden har prissatt värdet på kurationsandelar för högt.

Denna dynamik innebär att mängden GRT som signaleras mot en undergraf bör ge en pågående och värdefull marknadssignal om marknadens förutsägelser för framtida sökvolym på en undergraf.


Indexeringsbelöning

En annan mekanism The Graph använder relaterad till indexerat staking-medel och kuratorsignalering är indexeringsbelöningen.

Denna belöning, som betalas ut genom ny tokenemission, är avsedd att stimulera indexerare att indexera undergrafer som ännu inte har så stor sökvolym. Detta hjälper till att lösa uppstartsproblemet för nya undergrafer, som kanske inte har en existerande efterfrågan, för att locka indexerare.

Det fungerar genom att varje undergraf i nätverket tilldelas en del av den totala utgivningen av GRT, baserat på den proportionella mängden total kurationssignal som undergrafen har. Det beloppet delas i sin tur mellan alla indexerare som stakat på den undergrafen proportionellt mot andelen de stakat.

Att bestämma emissionsgraden på ett optimalt sätt är ett område för pågående forskning, men det räcker med att säga att den kommer att vara låg, troligtvis ensiffrig.

Denna mekanism ger ett ytterligare incitament för indexerare att reagera på signalen från kuratorer, vilket gör kuration till en ännu mer användbar aktivitet att delta i.


Verifierbar indexering

Med tanke på protokollets subventionering av undergraf indexering genom indexeringsbelöningen är det viktigt att mekanismen används för att subventionera användbart arbete. För detta introducerar The Graph ”Proofs of Indexing” och en ”Subgraph Availability Oracle.”

Avsikten med båda dessa mekanismer är att mildra eventuella ekonomiska attacker där en indexerare försöker samla indexeringsbelöningen utan att tillhandahålla användbart arbete till nätverket. Detta kan ta följande former:

  • Att inte indexera en undergraf som man samlar belöningar på.
  • Indexera en undergraf som är trasig eller vars undergraf manifest inte är tillgänglig.

För att mildra #1, och några tillfällen av #2, introducerar protokollet ”Proofs of Indexing”. I sin nuvarande form är dessa helt enkelt en signatur som genereras under indexeringen av en undergraf från dess uppkomst.

När en indexerare gör anspråk på sin indexeringsbelöning på en given undergraf måste de tillhandahålla ett bevis för att ha gjort indexeringen för att få belöningen. Eftersom beviset för indexering (PoI, proof of indexing) beräknas från indexerarens signatur måste varje indexerare skicka in ett PoI som är specifikt för dem. Eftersom Indexerare tävlar om indexeringsbelöningar på en given undergraf, är det inte i indexerares bästa intresse att samarbeta för att hjälpa varandra att skapa korrekta PoI utan att faktiskt göra jobbet.

Dessa PoI accepteras genom att de omedelbart låser upp belöningar, men de kan användas senare för att straffa en indexerare om de visar sig vara felaktigt bildade. Anledningen till att bli straffad kan inkludera:

  • En PoI som representerar ett felaktigt tillstånd för en undergraf
  • Tillhandahåller en PoI på en ogiltig undergraf

I den första versionen av nätverket avgör en skiljeman tvister (inställd genom styrning) och har befogenhet att avsluta tvisten med “oavgjort” om ett fel inte kan hänföras klart, eller om det var ett resultat av en mjukvarufel snarare än skadligt beteende av indexeraren.

En annan typ av fel, som är helt subjektiv på grund av likvärdighet mellan ”speaker/listener”, är om ett undergraf manifest är tillgängligt eller inte. Om ett undergraf manifest inte är tillgängligt, blir det omöjligt för en skiljeman att lösa någon av de andra tvisterna för den undergrafen, och det blir också omöjligt för andra indexerare att tävla om indexeringsbelöningar på den undergrafen.

För det här användningsfallet introducerar The Graph en ”Subgraph Availability Oracle”, också är inställd via styrning. Oraklet kommer att titta på flera IPFS slutpunkter, till exempel Cloudflare IPFS Gateway, för att avgöra om ett undergraf manifest är tillgängligt. Om ett undergraf manifest inte är tillgängligt kommer den motsvarande undergrafen inte att vara berättigad till någon indexeringsbelöning.


Graph Explorer och Graph Name Service

Att kurera undergrafer för indexerare är bara hälften av historien när det gäller att hitta värdefulla undergrafer. Vi vill också visa värdefulla undergrafer för utvecklarna.

Detta är viktigt för The Graph – att hjälpa utvecklare att hitta användbar data att bygga på och göra det enkelt att införliva data från en mängd underliggande protokoll och decentraliserade datakällor i en enda applikation.

För närvarande uppnår utvecklare detta genom att navigera till Graph Explorer:

I Graph Network kommer Graph Explorer att vara en DApp, byggd ovanpå en undergraf som indexerar The Graphs protokoll smarta kontrakt, inklusive Graph Name Service (GNS), ett ”on-chain” register över undergrafer.

En undergraf definieras av ett undergraf manifest, som är oföränderligt och lagras på IPFS. Det är viktigt att det inte kan förändras för att ha deterministiska och reproducerbara frågor för verifiering och tvistlösning. GNS utför en välbehövlig roll genom att låta team namnge en undergraf, som sedan kan användas för att visa konsekutiva oföränderliga undergraf “versioner”.

Dessa namn, tillsammans med andra metadata lagrade i GNS, gör det möjligt för användare av Graph Explorer att få en bättre uppfattning om syftet och användbarheten av en undergraf på ett sätt som en slumpmässig sträng med alfanumeriska tecken och sammanställd kod inte gör.

I Graph Network kommer det att bli ännu viktigare att upptäcka användbara undergrafer, eftersom en föreslagen framtida uppdatering av protokollet är undergraf komposition. I stället för att bara låta DApps bygga på flera undergrafer, kommer undergraf kompositionen att tillåta helt nya undergrafer som direkt hänvisar till enheter från befintliga undergrafer.

Denna återanvändning av samma undergrafer för många DApps och andra undergrafer är en av de kärn effektiviteter som The Graph låser upp. Jämför detta tillvägagångssätt med det nuvarande tillståndet i världen där varje ny applikation använder sin egen databas och API servrar, som ofta blir underutnyttjade.


Signal migrering

Graph Name Service (GNS) exponerar också kurationsfunktioner. I stället för att signalera på oföränderliga undergrafer, som är fallet i kärnprotokollet, stöder GNS signalering på föränderliga undergrafer med namn. GRT som signaleras på ett sån undergraf migreras automatiskt till den senaste versionen när ägaren av undergrafen gör uppdateringar. Detta liknar att delegera en signal till ägaren av en namngiven undergraf (ska inte förväxlas med att delegera staking till en indexerare).

Detta kan ge en fördel för både kuratorer och utvecklarna av undergrafer. Utvecklarna kan locka fler indexerare till att indexera sina nya undergrafsversioner än de skulle kunna med bara sin egen signal. Under tiden garanteras kuratorer alltid att signaleras på den version som utvecklaren avser att rikta frågetrafik till.

Det finns dock också risker med att signalera på ett undergrafsnamn. För det första finns det en ”kuration skatt” som debiteras både kuratorn och ägaren av undergrafen vid uppgraderingar. Normalt betalas denna skatt endast av kuratorn vid insättning, men kuratorn kontrollerar när de signalerar och stänger signalerna. Även om det inte skulle vara i en undergrafs ägares intresse att uppgdatera upprepade gånger, om de tvingas göra det, till exempel för att fixa buggar i deras undergraf, skulle detta tömma en del av kuratorernas signal på varje migration.

En annan risk är att ägaren av undergrafen inte har kontroll över den primära källan till frågetrafiken på undergrafen. I så fall kan en kurator vars signal automatiskt migreras till en ny version gå miste om en andel av frågeavgifterna som fortfarande skickas till en tidigare version av undergrafen.


Villkorade mikrobetalningar

The Graphs betalningsskikt är utformat för att minimera förtroendet mellan konsumenten och indexeraren. Betalningskanaler är en teknik som har utvecklats för skalbara, ”off-chain” tillitsminimerade betalningar. Det handlar om att två parter låser in pengar på kedjan i en deponering där pengarna endast får användas för att byta ut medel utanför kedjan mellan dem tills en transaktion skickas in på kedjan för att ta ut pengar från deponeringen.

Traditionellt har betalningskanaler betonat att säkert skicka en mikrobetalning utanför kedjan utan hänsyn till om tjänsten eller varan som betalats faktiskt mottogs.

Det har dock gjorts en del arbete mot ”atomic swaps” av mikrobetalningar för någon digital vara eller outsourcad beräkning, som The Graph bygger på. De kallar sin konstruktion WAVE Locks. WAVE står för ”work, attestation, verification, expiration” och den designen är följande:

Arbete (work): En konsument skickar en låst mikrobetalning med en beskrivning av det arbete som ska utföras. Denna specifikation av arbetet fungerar som låset på mikrobetalningen.

Intyg (attestation): En tjänsteleverantör svarar med att den digitala varan eller tjänsten efterfrågas tillsammans med ett signerat intyg om att arbetet utfördes korrekt. Detta låser upp mikrobetalningen, med antagandet att intyget är korrekt.

Verifiering (verification): Intyget verifieras med någon verifieringsmetod. Det kan finnas straff, till exempel slashing, för att intyga att arbete utförts felaktigt. Verifiering av intyget sker utanför kanalen.

Utgång (expiration): Tjänsteleverantören måste antingen få en bekräftelse på mottagandet från konsumenten eller skicka sitt intyg i kedjan för att få sin mikrobetalning innan den låsta mikrobetalningen löper ut.

Att använda lås med betalkanaler är inte nytt. Både Lightning- och Raiden diskuterar att använda en hash förbild (preimage) för att låsa upp en mikrobetalning. Detta är användbart för multi-hopp-mikrobetalningar där varje “hopp” är låst med samma hash och kan låsas upp av ett värde, förbilden, som producerar den hashen när den matas in till en specifik hash funktion.

Exempel på multi-hopp-betalningskanaler som använder en hash-förbild för att låsa upp betalningar.

Även om The Graph kunde använda sin egen betalningskanallösning, som är specialbyggd med denna nya låsmekanism, är en mer pragmatisk lösning att använda statliga kanaler (state channels).

Statliga kanaler kan hantera fallet med enkla betalningar, men de kan också kodifiera mer komplexa tillståndsövergångar samtidigt som de behåller samma skalbarhet och säkerhetsegenskaper som en betalningskanal.

Vad betalningskanaler och statliga kanaler har gemensamt är dock att de i sin mest grundläggande form är ett sätt att utbyta värde- eller tillståndsuppdateringar mellan två deltagare, som är kända i förväg. Som nämnts ovan med multi-hopp-mikrobetalningarna kräver sändning mellan två deltagare att man kan bilda en kedja av betalkanaler över flera andra deltagare, som förbinder de två ursprungliga deltagarna.

The Graph stöder konsumenter och indexerare som ansluter via direkta kanaler eller via ett nätverk av statliga kanalnoder enligt ovan. För enkelhetens skull kommer standardklientimplementeringarna vid lanseringen att använda direkta kanaler.

En fördel med att ha ett statligt kanalnätverk tillgängligt, bortsett från skalbarhetsfördelarna, är att konsumenterna kan använda tredje parts ”off-chain market makers” för att köpa GRT i utbyte mot ETH eller det stablecoin som de föredrar. Detta minskar balansrisken för konsumenter som föredrar att ha en tillgång vars värde inte fluktuerar.


Frågeverifiering

För att WAVE Locks konstruktionen och indexering-staking ska vara meningsfull måste det finnas en effektiv verifieringsmekanism som kan reproducera det arbete som utförs av en indexerare, identifiera fel och straffa dåliga indexerare.

I den första fasen av The Graphs nätverk hanteras detta genom en ”on-chain” tvistlösningsprocess, som avgörs genom skiljedom.

För frågor stöder The Graph två typer av tvister:

  • Enstaka intygstvister (single attestation disputes)
  • Motstridiga intygstvister (conflicting attestation disputes)

I tvister om enskilda intyg skickar fiskare (fishermen) in tvister tillsammans med en obligation (bond), liksom ett intyg undertecknat av en indexerare. Om det visar sig att indexeraren har intygat ett felaktigt svar på en fråga får fiskaren en del av det straffade beloppet som belöning. Omvänt tappar fiskaren obligationen om tvisten misslyckas.

Viktigare är att fiskarens belöning måste vara mindre än den straffade summan. Annars kan skadliga indexerare helt enkelt straffa sig själva för att komma runt upptiningsperioder eller undvika att straff av någon annan.

För tvister om enstaka intyg antas att fiskaren är en skådespelare som fick sina händer genom några extra-protokoll, till exempel en tredje parts loggningstjänst.

The Graph förväntar sig att det mycket vanligare användningsfallet kommer vara motstridiga tvister. I detta fall kan en fiskare skicka två intyg för samma fråga, signerade av två olika indexerare. Om intygen inte stämmer överens med varandra, är det garanterat att en eller båda indexerarna begick ett fel.

Konsumenter kan, när de frågar The Graph, välja att fråga flera indexerare för samma sökresultat, för extra säkerhet och chansen att vinna en del av deras straffade summa som belöning. Denna strategi fungerar bättre när antalet unika indexerare på en undergraf ökar.

I den första versionen av nätverket kommer det att finnas en skiljeman inställd via protokollstyrning, som avgör utgången av tvister. I likhet med indexeringstvister kan skiljemannen göra bedömningar när felaktiga frågor kan uppstå till följd av fel i programvaran, indexerare som saknar händelser från blockkedjan eller andra oavsiktliga faktorer som kan leda till ett straff.

Så småningom, när mjukvaran mognar, kommer indexerare att förväntas utveckla det operativa kunnandet för att undvika denna typ av fel.