Sendu inn spurningu

Hér getur þú sent okkur nýjar spurningar um vísindaleg efni.

Hafðu spurninguna stutta og hnitmiðaða og sendu aðeins eina í einu. Einlægar og vandaðar spurningar um mikilvæg efni eru líklegastar til að kalla fram vönduð og greið svör. Ekki er víst að tími vinnist til að svara öllum spurningum.

Persónulegar upplýsingar um spyrjendur eru eingöngu notaðar í starfsemi vefsins, til dæmis til að svör verði við hæfi spyrjenda. Spurningum er ekki sinnt ef spyrjandi villir á sér heimildir eða segir ekki nægileg deili á sér.

Spurningum sem eru ekki á verksviði vefsins er eytt.

Að öðru leyti er hægt að spyrja Vísindavefinn um allt milli himins og jarðar!

=

Hvers konar tölvunarfræði er að baki rafrænu myntinni bitcoin?

Rafmyntin bitcoin og aðrar sambærilegar rafmyntir, byggja á nokkuð mörgum uppgötvunum á ýmsum sviðum tölvunarfræði og stærðfræði. Frá sjónarhóli tölvunarfræðinnar er áhugaverðast hvernig bitcoin hagnýtir sér aðferðir sem ekki hafa verið notaðar saman á viðlíka hátt áður. Einnig er athyglisvert hvernig bitcoin nýtir sér samspil tæknilausna og eigin hagsmuna þeirra aðila sem eru hluti af bitcoin-heiminum.

Ef við eigum að draga fram helstu tæknilausnirnar sem bitcoin byggir á, þá er dulkóðun, og sér í lagi ósamhverf dulkóðun (e. public-key cryptography) sú mikilvægasta. Í ósamhverfri dulkóðun hefur hver aðili tvo lykla, dreifilykil (e. public key) og einkalykil (e. private key). Lyklarnir hafa þann eiginleika að skeyti sem dulkóðað er með dreifilykli er aðeins hægt að afkóða með samsvarandi einkalykli. Notandinn Anna lætur því alla sem vilja fá sinn dreifilykil, en passar uppá að enginn sjái einkalykilinn hennar. Þannig getur hver sem er sent Önnu dulkóðað skeyti, sem aðeins hún getur afkóðað. Lyklarnir eru búnir til samtímis fyrir hvern notanda á þann veg að það sé engin hætta á að ólíkir notendur hafa sama lyklaparið. Allir aðilar í bitcoin-heiminum hafa sitt eigið lyklapar fyrir ósamhverfa dulkóðun. Þegar senda á bitcoin-greiðslu til Önnu, þá er dreifilykill hennar notaður og aðeins hún getur tekið við þeirri greiðslu, því hún hefur einkalykilinn sem passar. Dreiflykillinn er því einskonar auðkenni notandans og hver sem ræður yfir einkalyklinum sem passar við hann ER sá notandi. Ef einhver kemst yfir einkalykil Önnu þá getur hann náð þeim greiðslum sem sendar eru á samsvarandi dreiflykil.

Einföld skýringarmynd um notkun dreifi- og einkalykla.

Önnur mjög mikilvæg tækni fyrir bitcoin eru dulmálstætiföll (e. cryptographic hash functions). Þessi föll breyta gögnum af breytilegri lengd yfir í tætigildi sem er alltaf af sömu lengd, til dæmis 256 bitar (32 bæti). Sömu gögnin gefa alltaf sama tætigildið, en ef við breytum gögnunum, jafnvel aðeins einum bita þeirra, þá verður tætigildið gjörólíkt. Dulmálstætigildi er oft notuð til að staðfesta að gögnum hafi ekki verið breytt, því það er nær ómögulegt að breyta gögnunum þannig að tætigildi þeirra breytist ekki. Tætifallið sem bitcoin notar heitir SHA-256. Það var upphaflega hannað af Öryggisstofnun Bandaríkjana (NSA) og þykir mjög öruggt.

Bitcoin-rafmyntin notar einnig svokölluð jafningjanet (e. peer-to-peer networks, P2P) á nýstárlegan hátt. Hingað til hafa jafningjanet mest verið notuð til að skiptast á tónlist og myndböndum á vafasömum forsendum, en grunnhugmyndin í þeim er mjög öflug. Það eru til ýmsar útgáfur af jafningjanetum, en þau eiga það þó sameiginlegt að allar tölvurnar í netinu eru jafnréttháar. Hver tölva veit um vissan fjölda nágranna í netinu og vinnur bæði sem biðlari (e. client) sem fær gögn frá öðrum og einnig sem miðlari (e. server), sem sér um að senda gögn til annara.

Þessi valddreifing tölva í jafningjanetinu gerir það að verkum að erfitt er að klekkja á netinu. Þó að einhverjar tölvur séu teknar niður þá koma aðrar í þeirra stað, því engin ein tölva er mikilvægari en önnur. Bitcoin notar jafningjanet til að halda utanum dreifða og opna skrá yfir allar færslur í bitcoin-heiminum frá upphafi! Þessi aðferð kallast blockchain og við getum nefnt hana færslukeðju eða grunnkeðju. Keðjan samanstendur af bunkum (e. blocks) af færslum (e. transactions). Hver bunki inniheldur nokkur hundruð, jafnvel nokkur þúsund, færslur, þar sem hver færsla er greiðsla frá einum aðila til annars. Bunkunum er læst saman með dulmálstætiföllum, þannig að aðeins er hægt að tengja nýja bunka aftast í keðjuna. Tætiföllin tryggja að ekki er mögulegt að stinga bunka inn í miðja keðjuna, því þá þyrfti að uppfæra öll tætigildin í bunkunum sem koma á eftir og það er algerlega ómögulegt.

Dæmi um jafninganet þar sem jafningjar (tölvur) deila upplýsingum sín á milli.

Færslukeðjan er opin, sem þýðir að allir í bitcoin-heiminum hafa aðgang að henni og geta breytt henni, að vissum skilyrðum uppfylltum. Hún er líka dreifð (e. distributed), þannig að allir hafa eintak af henni og geta því staðfest að einhver greiðsla sé í lagi, því sá aðili sem er að borga á þennan pening og er ekki að reyna að plata þann sem tekur við peningnum. Með því að hafa keðjuna dreifða þarf ekki einhvern miðlægan traustan aðila (til dæmis banka) til að halda utanum færsluskrána. Á móti kemur að það er hægara sagt en gert að láta alla í bitcoin-heiminum verða sammála um hvaða færslur séu í lagi og í hvaða röð færslurnar áttu sér stað.

Tölvunarfræðin hefur glímt við slík verkefni í langan tíma og helstu fræðilegu niðurstöðurnar eru frekar neikvæðar. Til dæmis er í frægri vísindagrein sett fram tilbúið dæmi um hershöfðingja í fornöld sem sitja um stóra borg og þurfa að ákveða hvort þeir eigi að ráðast til atlögu eða að hörfa. Ef þeir ráðast ekki allir á borgina þá mun árásinni verða auðveldlega hrundið. Þeir eru langt frá hver öðrum og þurfa að treysta á sendiboða. Það er ekki alltaf hægt að treysta á sendiboðana og auk þess gætu einhverjir hershöfðingarnir verið svikarar. Tekist hefur að sanna að það sé nóg að þriðjungur hershöfðingjanna séu svikarar til að sjá til þess að tryggu hershöfðingjarnir fylgi ekki sömu áætlun. Hér gætu hershöfðingjarnir verið tölvur og sendiboðarnir tengingarnar á milli þeirra. Það er því ekki auðvelt að tryggja að allar „heiðarlegar“ tölvur komist að sameiginlegri niðurstöðu ef einhverjar tölvurnar eru að reyna að blekkja hinar. Bitcoin leysir þetta vandamál með því að einfalda aðeins forsendurnar og bjóða auk þess aðeins uppá líkindafræðilega tryggingu fyrir því að allir aðilar séu sammála. Bitcoin-lausnin virðist virka mjög vel í reynd, mun betur en hefur tekist að sanna á fræðilegan hátt.

Sérsmíðaður „námuverkamaður“.

Við skulum að lokum skoða einfaldaða heildarmynd af því hvernig bitcoin-rafmyntin vinnur og hvernig hún nýtir sér tæknilausnirnar sem nefndar eru að ofan. Þegar notandi A vill borga notanda B 5 bitcoin-einingar (BTC) þá býr A til færslu sem inniheldur þessar greiðsluupplýsingar og útvarpar síðan færslunni til allra í bitcoin-heiminum. Þessi færsla er upphaflega óstaðfest og verður ekki staðfest fyrr en hún er orðin hluti af færslukeðjunni. Á hverjum tíma er talsverður fjöldi óstaðfestra færsla í bitcoin-netinu. Ákveðnir notendur eru námuverkamenn (e. miners) og þeirra hlutverk er að taka óstaðfestar færslur, kanna hvort þær séu í lagi, safna þeim saman í bunka og bæta bunkunum við færslukeðjuna. Þegar færslan sem A sendi er komin í færslukeðjuna þá sjá allir að nú á A 5 BTC minna en áður og B á 5 BTC meira.

Það gengur hins vegar ekki að allir séu að breyta keðjunni á sama tíma, þannig að fundin hefur verið upp aðferð til að velja af handahófi þann námuverkamann sem fær að bæta sínum færslubunka aftast í keðjuna. Námuverkamennirnir keppast um það að fá að bæta færslunni í keðjuna og keppnin felst í því að finna réttan lykil (það er einhverja tölu) sem passar við færslurnar í bunkanum ásamt aftasta gildinu í keðjunni og gefur SHA-256 tætigildi með ákveðna eiginleika. Þessi leit er mjög tímafrek og námuverkemennirnir verða að prófa gífurlega marga lykla af handahófi áður en þeir finna þann sem gengur.

Fyrsti verkamaðurinn sem finnur lykil sem passar, notar hann til að læsa bunkanum sínum aftast í færslukeðjuna og útvarpar síðan til allra annara á bitcoin-netinu að honum hafi tekist þetta og gefur upp lykilinn. Hinir verkamennirnir geta auðveldlega staðfest að þessi lykill gengur og byrja þá strax að reyna að finna lykil sem virkar til að tengja bunkann sinn aftan í þennan nýja bunka í keðjunni. Sá námuverkamaður sem náði að finna lykilinn fær sjálfkrafa tiltekna bitcoin-upphæð og auk þess færsluþóknanir frá þeim sem voru greiðendur í færslunum sem eru í bunkanum hans. Erfiðleikastig þess að finna lykilinn er stillt þannig að það tekur um það bil 10 mínútur fyrir einhvern námuverkamann að finna lykilinn, þannig að nýjum bunka er bætt við færslukeðjuna á um 10 mínútna fresti.

Námuverkamaður sem tapar kapphlaupinu um að tengja bunka á keðjuna græðir ekkert á því að halda áfram að reyna að tengja bunkann sinn við gamla endann, því hinir verkamennirnir munu væntanlega reyna tengja sína bunka við nýja endann og bunkinn hjá okkar manni mun því verða munaðarlaus (e. orphan) bunki sem hangir utaná keðjunni. Það er alltaf eitthvað um slíka bunka, og ef enginn tengir sína bunka við þá, þá eru færslurnar í þeim ennþá óstaðfestar. Það eru því hagsmunir námuverkamannanna að um leið og þeir sjá að einhverjum öðrum hefur tekist að leysa verkefnið og tengt sinn bunka aftast í keðjuna, að byrja strax að reyna að tengja sig við þann bunka og freista þess að vinna það kapphlaup.

Mynd af því hvernig bitcoin notar færslukeðjur (grunnkeðjur, e. blockchains).

Hvaða tölva sem er getur verið námuverkamaður, en nú eru flestir námuverkamennirnir sérsmíðaðar tölvur sem er gríðarlega fljótar að prófa lykla, en fjöldi mögulegra lykla er hinsvegar svo feiknalega mikill að það er engin hætta á því að þeir nái að prófa alla lykla á þeim tíma sem þeir hafa. Þessi "námugröftur" er eina leiðin til að búa til nýja peninga í bitcoin-heiminum. Í dag fær sá sem nær að setja bunka í keðjuna 12.5 BTC. Upphaflega voru þetta 50 BTC, en eftir hverja 210,000 bunka (um það bil 4 ár) helmingast þessi upphæð. Það eru því efri mörk á því hversu margar bitcoin-einingar geta orðið til og er sú upphæð 21 milljón BTC.

Þegar þetta svar er skrifað, í október 2017, eru um 16,6 milljón BTC í umferð, þannig að námuverkamennirnir eru að keppa um það hver fær þessar 4.4 milljón BTC sem uppá vantar. Þær munu þó verða til á mjög löngum tíma og gróðinn af námugreftri mun smám saman minnka. Í staðinn verða færslugjöldin sífellt mikilvægari, sem greiðendur færsla þurfa að greiða námuverkamönnunum til þess að koma sínum færslum að í bunkunum þeirra.

Frekari upplýsingar:

Myndir:

Útgáfudagur

23.10.2017

Spyrjandi

Sigurjón Ágústsson

Höfundur

Hjálmtýr Hafsteinsson

dósent í tölvunarfræði við HÍ

Tilvísun

Hjálmtýr Hafsteinsson. „Hvers konar tölvunarfræði er að baki rafrænu myntinni bitcoin?“ Vísindavefurinn, 23. október 2017. Sótt 21. nóvember 2017. http://visindavefur.is/svar.php?id=74661.

Hjálmtýr Hafsteinsson. (2017, 23. október). Hvers konar tölvunarfræði er að baki rafrænu myntinni bitcoin? Vísindavefurinn. Sótt af http://visindavefur.is/svar.php?id=74661

Hjálmtýr Hafsteinsson. „Hvers konar tölvunarfræði er að baki rafrænu myntinni bitcoin?“ Vísindavefurinn. 23. okt. 2017. Vefsíða. 21. nóv. 2017. <http://visindavefur.is/svar.php?id=74661>.

Chicago | APA | MLA

Sendu inn spurningu
eða

Vísindadagatalið

Bankað í við

Það er algengur og útbreiddur hjátrúarsiður, einkum meðal kristinna manna, að banka undir eða á viðarborð eða snerta tré, t.d. eftir að menn hafa sagt eitthvað ógætilegt. Þessi siður á líklega rætur að rekja til þeirrar helgi sem hvílir á krossi Krists eða til annarrar tiltrúar á tré, enda er trjádýrkun af ýmsu tagi ævagömul.