Subjektivitet i orakler (Svenska)

(Tellor Core) (15 dec 2020)

Subjektivitet, tvetydighet och decentraliserade orakler

På ett ögonblick kan hack av finansiella protokoll eller missförstånd i det interna arbetet i ett finansiellt kontrakt leda till stora förluster med ofta lite användning . Oavsett om det är traditionella finansiella produkter som avvecklats till LIBOR, handlare som såg råolja gå negativt för första gången i historien i år [1], eller ett derivatkontrakt som avvecklar intet ont anande hedgers, avvecklingspris eller orakelmanipulation har varit en sak sedan långt innan Vitalik och flash-lån.

Hur ditt orakel är strukturerat och de data du hämtar är viktiga specifikationer när du skapar en robust finansiell produkt. Den till synes enkla frågan om ”vilket pris använder du?” är allt annat än. Nyansen som är involverad i att välja rätt definition av vad sanningen är med avseende på din input har säkerhetsimplikationer som kommer att påverka alla aspekter av din produkt.

Oraklet icke-problem

När du placerar ett avräkningspris på en blockchain har du två komponenter:

– Hur får man det i kedjan

– Vad får man i kedjan

Du förstår att orakler inte är så strikt definierade som blockkedjor. Snarare är orakler relaterade till information utanför kedjan ett socialt beslut om en stat som inte är bunden till enighet om blockchain. För att packa upp detta:

a) Sanningen är subjektiv. Vad en grupp människor håller med om (i ett rent digitalt sammanhang) är sanningen. Hur vi når fram till denna sanning är ett kodifierat sätt att uppnå ”social konsensus” (den subjektiva, överenskomna sanningen)

b) Lag 1 är social konsensus.

c) Lag 1 konsensus är endast på en mycket specifik uppsättning opkoder och åtgärder.

d) Alla åtgärder på kedjan måste antingen kodas i instruktioner för lager 1 eller ha en egen social konsensus (t.ex. ett kontrakt med en administratörsnyckel är en specificerad form av auktoritär styrning)

e) Oracles placerar data i kedjan vars giltighet inte hanteras av lag 1 konsensusmekanismen. Orakler måste därför också ha ett mänskligt, socialt eller konsensuselement.

Orakler är ett intressant problem eftersom de försöker tillhandahålla information om inträffandet av en händelse eller tillståndet i något system som inte är infödd. till kedjan själv. Medan en konsensusmekanism för lager 1 är strikt definierad med vissa operationer och konfliktpunkter, försöker oraklesystem att utvidga kedjans möjligheter till godtycklig information som inte godkänts av basvalidatorerna. Det vanligaste användningsfallet gäller för närvarande prissättning av kryptovalutor på centraliserade börser, följt av händelserna som händer på andra blockkedjor (blockheaders, datatillgänglighet etc.). Även om det kan verka okomplicerat att säga vad som hände eller hur tillståndet för någon extern händelse är, är sanningen att verkligheten kan vara mer subjektiv än förespråkare av kodifierade lösningar kanske vill erkänna.

Vad är ett pris?

När protokoll väljer ett orakel väljer de den sociala konsensusmekanismen för att bestämma noggrannheten för en ingång. För en given orakeldesign har du inte bara olika tankar om hur du validerar en given ingång, du har olika tankar om vad den ingången ens är.

Det finns en skillnad mellan priset på Bitcoin, priset på Bitcoin på Coinbase, priset på Bitcoin enligt Coinbases API och det pris som jag för närvarande kan köpa ett helt Bitcoin på Coinbase.

Definitioner är viktiga.

Om du väljer ingången (prisflödet i detta fall) avgör vad dina validerare kommer att basera noggrannheten på. Tellor har en (bra artikel om avvecklingspriser), men det är en fråga som inte är begränsad till defi eller blockchain, och har en robust litteratur om bästa praxis.

Många oracle-lösningar är helt enkelt teknik som tar tag i ett API eller arbetar för att förtroende ta med information från det API-nätverket. Detta är ett utmärkt verktyg för byggare eller MVP: er, men det är inte en komplett orakellösning.

Om du antar att priset från API: et alltid är korrekt, litar du på operatören av detta prisflöde. Manipuleringen av dessa priser eller ärligheten / censurmotståndet hos börsens API bör vara allvarliga problem för alla projekt. Sanningen är att öppenheten i verktygslådan ”läs direkt från ett API” också är dess undergång.

Det okända

Att känna till spelreglerna är viktigt, men det finns alltid oförutsedda konsekvenser när komplexa system försöker kartlägga alla potentiella scenarier. Som alla utvecklare vars programvara har misslyckats i produktionen kan intyga, är det svårt att få rätt kod.

Men det är inte bara kod, det är lagar och regler i allmänhet.

Detta är en känd problem i styrning. Om du försöker skriva ut vad som händer i alla fall får du människor att hitta kryphål och sätt att komma runt lagen. Det är därför vi har domare och juryer i den verkliga världen som kommer med anpassade straff på nyanserade beslut. Specifika regler för varje situation är omöjliga och hur vi översätter denna princip till det digitala universum är tuffa.

Protokollformalisering är tanken att kod kräver ingen mänsklig inmatning och inte förändras. Som vi dock vet av erfarenhet leder detta till styvhet, oförutsedda kantfall och ofta en övergivande av protokollet eftersom berättelsen kring dess användningsfall kan behöva ändras om koden inte gör det. Förmågan hos ett samhälle att svara på ospecificerade problem som kan uppstå är avgörande för ett system att faktiskt lösa ett problem över tiden. Hur ett samhälle gör detta är där den sociala konsensusen uppstår.

Detta går tillbaka till principerna för blockchain. Är blockchain ”kod är lag” eller är det ett ”samförstånd i samhället”. Är det ett sätt för samhällen att komma överens om sanningen eller en tankelös kod som fungerar ungefär som en miniräknare skulle göra?

Oracle Manipulation

Om du känner till reglerna och kan spela systemet utan bestraffning kommer reglerna att brytas. Även om transparens är önskvärt är exaktheten med avseende på härledningen av uppgifterna faktiskt ett fel i detta scenario.

Tanken att legalistiska specifikationer inte är nödvändiga är något som de flesta tar för givet. Även om det inte anges i ditt hyresavtal, om taket blåser bort i en orkan, är din hyresvärd ansvarig för att fixa det i rätt tid. Samhällen har lagar som förhindrar mycket allmänna saker (t.ex. vårdslös körning, oordning, etc.); vi behöver inte ett if / else-uttalande för varje scenario. Om en person som vi litar på (t.ex. en polis) ser dig göra något dumt kan de stoppa det. Du behöver inte skriva ut i lagen att det är olagligt att skjuta en armbåge när du kör en enhjuling; vi har sätt att bara använda sunt förnuft.

Smarta kontrakt fungerar dock annorlunda. Parter som använder för specifikt ett orakel (den enda API-undertecknaren eller till och med Uniswap-priset) utsätts för en högre risk för manipulation. Vi har sett flera hacks hända där oraklet tar informationen på kedjan korrekt, men det finns oförutsedda konsekvenser för det priset eftersom det har manipulerats. Gemenskapen har i dessa fall ingen möjlighet. Du är fast med vad koden gav dig och för det mesta betyder det att någon förlorar pengar. Att få ett flöde med tillförsikt berättar inte för dig att det är korrekt med avseende på enighet om utbyten eller en gemenskap och det kan inte skydda dig om någon ens hittar ett sätt att kasta priset med avseende på den datakällan. [2]

Trots uppmaningarna till ”kod som lag” eller smärtan med att arbeta med gemenskaper och andra protokoll vill du inte ha ett orakel som bara är en kod. På samma sätt som Ethereum eller Bitcoin gafflar / återgår om konsensusprotokollet attackeras, bör ett komplett orakel ha flexibilitet vid en attack. Du kan ha en form av samarbetsavtal (eller en rättegång i mycket specifika fall) kring vad som är ett bra pris. Om Coinbase API går ner, använd det inte. Om en ny källa av likviditet dyker upp, se till att inkludera den. Det är inte raketvetenskap, men det är en manuell process; en som tar tid att komma rätt, men en som inte begränsas av sitt eget omfång.

Tellor Community Social Consensus

Tellor ger ett sätt att komma överens om sanningen. Tellor-oraklet är inte någon magisk kryptografisk teknik för att övervaka omvärlden och vidarebefordra den till Ethereum. Det är ett nätverk av enskilda deltagare som är kryptoekonomiskt uppmuntrade att rapportera och validera korrekta data. som ett projekt måste göra när det gäller att korrekt välja ett prisflöde och säkerhetsmekanismerna kring det.

Om du är ett defi-projekt som vill använda enbart centraliserade priser med kända attackkostnader, skulle du ha det bättre att hoppa över protokollets samförståndsdel och arbeta för att bara låta utbytena skriva priset till ditt kontrakt. Om du emellertid är ett projekt, eller känner till ett, som kan dra nytta av ett robust, decentraliserat orakel, sträck dig fram och gärna ge www.tellor.io en titt.

[1] https://www.bbc.com/news/business-52350082#:~:text=The\%20price\%20of\%20US \% 20oil, world\% 20have\% 20kept\% 20people\% 20inside .

[2] https://news.bitcoin.com/100 -million-liquidated-on-defi-protocol-compound-following-oracle-exploit /