Kaksinkertainen kulutus ( eng. Double-spending ) - samojen omaisuuserien jälleenmyynti (vieraantuminen). Yleensä puhutaan sähköisistä maksujärjestelmistä, joissa luonnollisesti on kyky kopioida tilaa, mikä mahdollistaa useiden maksujen suorittamisen samasta lähtötilasta.
Useimmissa pienissä ostoksissa osto- ja myyntiprosessi rajoittuu tavaroiden vaihtamiseen rahaksi. Välittömästi tavaran luovutuksen jälkeen ostajasta tulee uusi omistaja. Mutta on tilanteita, joissa kaupan tekemisen ja omistusoikeuden siirron rekisteröinnin välillä kuluu huomattava aika. Melko usein tällaisia tilanteita syntyy kiinteistökaupoissa. Näin myyjä voi myydä saman tuotteen useita kertoja eri ostajille ja saada heiltä maksun useita kertoja. Käytäntö lainata toistuvasti rahaa eri ihmisiltä saman omaisuuden vakuuksia vastaan johti tähän tulokseen [1] [2] . Nyt joskus tämä tapahtuu myyjän huolimattomuuden vuoksi [3] , mutta useimmiten se on petoksen muunnelma [3] . Esimerkiksi maksettuaan rahaa uudessa rakennuksessa sijaitsevasta asunnosta, omistaja voi jonkin ajan kuluttua (joskus useiden vuosien) saada selville, että hänen uusi asuntonsa ei kuulu vain hänelle. Vastaavia tapauksia on ostettaessa asuntoja jälkimarkkinoilta [4] , jolloin ostaja voi varmistua siitä, että kiinteistö on todella kuulunut myyjälle ennen, mutta ei ole takeita siitä, ettei sitä ole myyty juuri ennen kauppaa tai sitä ei myydä. taas pian sen jälkeen. Lainsäädäntöön tehdyillä muutoksilla ja tällaisten liiketoimien tietojen yhdellä rekisteröinnillä pyritään estämään ostajan harhaanjohtamisen mahdollisuus [3] .
Tilanne on pohjimmiltaan erilainen digitaalisten tuotteiden kanssa - aina on mahdollisuus myydä identtinen kopio. Tässä tapauksessa jokainen ostaja saa täydellisen kopion tuotteista, eikä tätä pidetä petoksena. Mutta kopioimisen helppous ja kopioiden identiteetti tulee vakavaksi ongelmaksi käteisen kaltaisissa digitaalisissa rahajärjestelmissä. Ilmaisen siirron digitaalisen "kolikon" on oltava muodossa . Mutta digitaalinen tiedosto on helppo kopioida. "Kolikon" omistaja voi siirtää sen kopioita suurelle määrälle myyjiä maksuna tavaroista. Jokainen vastaanottaja voi helposti vakuuttua siitä, että vastaanotettu tiedosto on täysin standardin mukainen, mutta hän ei voi olla varma, ettei samaa kopiota ole maksettu toiselle myyjälle [5] .
Kaikki maksujärjestelmät kryptovaluuttoja lukuun ottamatta ovat keskitettyjä - niissä on keskitetty (hallinnollinen) linkki, jossa varmistetaan tietyn toiminnon hyväksyttävyys [5] . Samalla päätöksenteon perustana ovat hoitajan itsensä tiedot, eivät maksajan antamat tiedot. Siksi maksajan suorittama maksujärjestelmän tilan kopioiminen mahdollistaa vain kaksinkertaisen kulutuksen (esimerkiksi jos tililläsi on 1 000 ruplaa, luo asiakaspankissa kaksi maksumääräystä 1 000 ruplaa kumpikin), mutta todellinen toteutus tapahtuu siinä järjestyksessä, jossa pankki vastaanottaa toimeksiannot, ja osa niistä hylätään varojen puutteen vuoksi.
Käteisellä maksettaessa välittäjää ei tarvita. Ostaja siirtää rahat myyjälle eikä voi enää siirtää samaa rahaa toiselle myyjälle. Jos vastaava tapahtuma olisi mahdollista suorittaa sähköisessä muodossa, maksujärjestelmän ylläpitäjää ei tarvittaisi. Mutta suoraa analogiaa ei voitu toteuttaa.
Yksi muun kuin käteisen rahan liikkeen muodoista on seteli [6] . Se, kuka on laskun nykyinen omistaja ja hänen toimivaltansa, voidaan määrittää vahvistusketjulla ( merkinnät ). Jos laskun nykyinen omistaja, Alice, tekee vahvistuksen "maksaa Bobin määräyksellä" ja antaa allekirjoituksensa, Bobista tulee laskun seuraava omistaja ja vain hän voi luovuttaa sen, mukaan lukien uuden vahvistuksen tekeminen. Se oli samanlainen mekanismi, joka osoittautui toteutetuksi sähköisessä muodossa. "Sähköinen kolikko" sisältää määrällisiä tietoja ("arvo") ja merkinnän omistajasta (tarkemmin sanottuna hänen osoitteensa, joka on muodostettu hänen julkisesta avaimestaan). "Sähköisen kolikon" siirtämiseksi omistaja allekirjoittaa edellisen tapahtuman hashin ja tulevan omistajan julkisen avaimen (kryptovaluuttaosoitteen) yksityisellä avaimellaan [5] . Nyt vain yksityisen avaimen omistaja uudesta osoitteesta voi tehdä uuden tapahtuman tällä "elektronisella kolikolla". Muut verkkosolmut tarkistavat allekirjoituksen ennen tapahtuman hyväksymistä käsittelyyn. Allekirjoituksen oikeellisuus osoittaa, että tapahtuman aloittaja on nykyisen omistajan osoitetta vastaavan salaisen avaimen omistaja. "Elektronisen kolikon" vastaanottaja voi tarkistaa koko allekirjoitusketjun ( myöntämishetkeen asti ) ja varmistaa sen oikeellisuuden. Mutta kopiointimahdollisuuden vuoksi vastaanottaja ei voi määrittää, kuinka monta kertaa entinen omistaja on jo käyttänyt tämän "kolikon" [5] . Vuoden 2017 lopussa on jo ehdotettu useita algoritmeja, joilla varmistetaan yksimielisyys siitä, mikä tapahtuma katsotaan todeksi, mikä mahdollistaa saman "elektronisen kolikon" kaksinkertaistamisen yritykset.
Hajautetuissa maksujärjestelmissä (kryptovaluutoissa) ei ole valvontaelintä. Kaksinkertaisen kulutuksen estämiseksi transaktiot ehdotettiin yhdistämään lohkoiksi, jotka on rakennettu jatkuviin ketjuihin - ne muodostavat lohkoketjun . Lohkon lisäysoikeuden saamiseksi sinun on todistettava työn suorittaminen ("Työtodistus") [7] . Tarkistamalla ketjun voit varmistaa, ettei samaa "elektronista kolikkoa" ole käytetty aiemmin. Itse asiassa tapahtuman varmentaa solmu, joka sisällyttää sen lohkoon. Järjestelmä ohittaa nyt kaikki muut tapahtumat samalla "elektronisella kolikolla" ja samalla omistajalla. Myöhemmin ehdotettiin järjestelmiä, joissa todisteita panoksesta käytetään työtodistuksen sijaan . Lohkoketjun rakentamisen päätavoite on tarjota kriteeri, jolla päästään yhteisymmärrykseen siitä, mikä versio transaktioista katsotaan oikeaksi. Järjestelmä on turvallinen niin kauan kuin suurin osa sen laskentaresursseista on rehellisten osallistujien kollektiivisessa hallinnassa [8] .
Lohkoketjun tieto on avoin kaikille. Mutta vastapuolet voivat vain tarkistaa, onko lähettäjällä varoja tietyllä aikajaksolla menneisyydessä. Jos useita saman omaisuuden siirtäviä maksuja suoritetaan riittävän nopeasti, tiedot niistä eivät vielä saa vahvistusta (ei putoa seuraavaan lohkoon tai eivät muuten laillistu) ja jokainen vastaanottaja luottaa tapahtumien laillisuuteen . Vasta sen jälkeen, kun yksi tapahtumista (ei välttämättä ensimmäinen) on vahvistettu, muut samaa omaisuutta koskevat tapahtumat eivät ole enää voimassa. On kuitenkin mahdollista, että lohkoketjun väliaikaisen haaroittamisen vuoksi rinnakkaiset haarat voivat sisältää tapahtumia, jotka hallitsevat samaa omaisuutta eri tavoin. Jokainen haara on tasa-arvoinen, ei virheellinen. Uusien lohkojen muodostusprosessissa ( kaivos tai taonta ) yksi haaroista tulee pidemmäksi. Se hyödyntää ja lyhyt haara kuolee, ja kaikki sen lohkoissa olevat tapahtumat on sijoitettava uudelleen lohkoihin [9] . Koska yksi kiistanalaisen tapahtuman versioista säilyy aiemmin muodostettuun lohkoon, tapahtuman versio "kuolleesta" haarasta hylätään, kun sitä yritetään lisätä uuteen lohkoon. Rinnakkaisten ketjujen olemassaolon todennäköisyys on erittäin pieni ja pienenee eksponentiaalisesti ketjun pituuden kasvaessa [9] . Näin ollen mitä enemmän vahvistuksia tapahtumalla on, sitä epätodennäköisempää on, että tapahtuma peruuntuu sen sisältävän ketjun kuoleman vuoksi. Siksi kaupat, joissa ei ole vahvistusta, ovat mahdollisesti riskialttiita, ja monet myyjät asettavat vaatimuksen vahvistusten vähimmäismäärästä. Yleissääntönä on, että kuusi vahvistusta on hyvä tasapaino kaikkien vahvistusten odottamisen ja sen välillä, että tapahtumaa ei ole huijattu. [kymmenen]
Sekä kaivostoiminnassa että takonnassa , jos hyökkääjä hallitsee riittävän suurta osuutta päästöistä (kaivosvoiman kokonaismäärä tai resurssien kokonaismäärä takomisen aikana), on olemassa merkittävä (ei vähäpätöinen, kuten tavallisesti) todennäköisyys "salaisesti" riviin pitkiä yhdensuuntaisia lohkojen ketjuja. Kun ne on julkaistu verkossa, pidempi ketju tunnistetaan pääketjuksi. Lohkoketjun peruuttaminen voi johtaa tapahtumien mitätöimiseen, jopa useilla lohkoilla vahvistettujen tapahtumien mitätöimiseen ja omaisuuden myöhempään "uudelleensiirtoon" toiselle vastaanottajalle [11] .
Kun yhteen käteen keskittyy yli 50 % kaivosvoiman kokonaisvoimasta, on mahdollista rakentaa mielivaltaisen pituinen rinnakkaisketju, joka mahdollistaa vastaanottajan vaihtamisen keskitetyn voiman omistajan liiketoimissa ( “Double Spending ” hyökkäys tai ”51 % hyökkäys”) [12] . Jos hallinnassa oleva teho on alle 50 %, onnistumisen todennäköisyys pienenee eksponentiaalisesti jokaisen vahvistuksen yhteydessä. Takomisessa yli 50 % resurssien keskittyminen ei takaa pitkän rinnakkaisen ketjun onnistunutta rakentamista, vaikka se lisää merkittävästi tämän todennäköisyyttä.
Vaikka tuplakulutushyökkäys onnistuisi, se ei johda:
Vuoden 2013 alussa Bitcoin -verkon teho oli alle 25 THash/s, mutta seuraavien 3 kuukauden aikana se kasvoi 55:een johtuen erityisesti Bitcoin-verkon louhintaan suunniteltujen erikoisprosessorien ( ASIC ) massajakelusta [ 13] . Kesäkuussa 2013 verkon kapasiteetti ylitti 120 THash/s. Syyskuuhun mennessä kapasiteetti ylitti 1000 THash/s, lokakuussa kapasiteetti kaksinkertaistui ja 1.12.2013 yli 6000 THash/s [14] . Samaan aikaan käyttäjällä, jolla on suurin suorituskyky, on alle 100 THash/s [15] . Tarvittavan kokonaisvoiman keskittäminen yhteen käteen on yhä vaikeampaa ja kalliimpaa. Mutta kaivostoiminta on pitkään keskittynyt altaisiin, joista suurimmat ovat jo useaan otteeseen lähestyneet 50 prosentin rajaa kokonaiskapasiteetista.
Käytännössä kaksinkertaista bitcoinin kulutusta ei ole kirjattu. Toukokuussa 2015 rinnakkaiset ketjut eivät ole koskaan ylittäneet viittä lohkoa [16] .
Blockcypher Trust FactorJoissakin tapauksissa tapahtuman luonteeseen kuuluu tavaroiden siirto välittömästi maksun jälkeen (esimerkiksi ostos kahvilassa), eli nollavahvistuksella. Tässä tapauksessa on mahdollista "juokseva hyökkäys", joka on kaksinkertaisen kulutuksen variantti - ensin muodostetaan varojen siirto itselleen tai ystävälliselle henkilölle, ja sitten maksu kahvilassa muodostetaan samoista varoista. Kun ensimmäinen tapahtuma tulee lohkoketjuun, toisesta tulee virheellinen ja myyjä joutuu petoksen uhriksi. Kauppiaat voivat ryhtyä varotoimiin vähentääkseen hiippailun riskiä, vaikka he eivät ehkä pysty poistamaan uhkaa kokonaan.
Blockcypher - projekti pyrkii auttamaan tällaisissa tilanteissa. Kaikille tapahtumille, joissa ei ole vahvistusta, lisätään luottamusattribuutti erityisen algoritmin mukaisesti [17] . Jos tämä indikaattori on 99,9 %, kaksinkertaisen kulutuksen todennäköisyys on vain 0,01 %. [18] Laskelma perustuu liiketoimen kahden näkökohdan analyysiin: "muoto" ja "käyttäytyminen". "Formaatti" analysoi tapahtuman rakenteen: mitkä ovat tulo- ja lähtötiedot, niiden historia, allekirjoitustyyppi. "Käyttäytyminen" ottaa huomioon, kuinka tapahtuma jakautuu verkossa, seuraa sen parametrien muutosta ajan kuluessa.
MasternodesDash kryptovaluutta käyttää erityistä InstantSend -palvelua , joka on suunniteltu erittäin nopeisiin tapahtumiin (vahvistus annetaan 1-3 sekunnissa). Tällä protokollalla maksettaessa tapahtuma lähetetään 7-10 satunnaiselle mastersolmulle, jotka estävät tapahtuman syötteet noin tunnin ajan estääkseen mukana olevien yksiköiden uudelleenkäytön [19] .
Ripplen konsensuslähestymistapaRipple - järjestelmä ratkaisee kaksinkertaisen kulutuksen ongelman konsensuksella . Ensimmäisessä vaiheessa kaikki palvelimet hyväksyvät kaikki kelvolliset tapahtumat, mukaan lukien uudet. Sitten jokainen palvelin äänestää hyväksyttyjen tapahtumien oikeellisuuden puolesta. Enemmän ääniä saaneet tapahtumat siirtyvät uuteen vaiheeseen, jossa myös äänestetään, muut riittämättömän äänimäärän saaneet tapahtumat hylätään. Kauppa lakkaa osallistumasta äänestykseen, kun yksimielisyys siitä saavuttaa 80 prosenttia [20] .
On yleisesti hyväksyttyä, että Bysantin kenraalien ongelmaa on mahdotonta ratkaista, jos yli 33 % järjestelmästä on petollinen. [21] Ripple-protokollassa yksimielisyys on oikea, kunnes järjestelmä on yli 20 % petollinen. [22]
On mahdollista, että vilpillinen kauppa vahvistetaan yksimielisesti, mutta tällainen kauppa ei aiheuta uhkaa. [22] Oletetaan, että käyttäjä yrittää kaksinkertaistaa kulutusta, mutta vaikka hänen molemmat tapahtumansa vahvistetaan konsensusprosessilla, toinen tapahtuma on jo virheellinen sen jälkeen, kun toinen tapahtuma on otettu käyttöön. Asia on siinä, että konsensuksen päävaatimus on riippuvuus deterministisesta (toistettavissa olevasta) algoritmista tapahtuneiden tapahtumien käsittelyssä, mikä tarkoittaa, että kaikki keskenään ristiriidassa olevat tilanteet suljetaan pois. [23]
Bitcoinin ja Ripplen vertailu kaksinkertaisen kulutuksen alalla perustuu " työn todisteen " ja yllä olevan konsensusalgoritmin vertailuun. Bitcoin-järjestelmästä tulee haavoittuva, jos yli 51% kokonaisvoimasta on keskittynyt yhteen käteen. Tämä ei kuitenkaan ole ongelma Ripplelle konsensuslähestymistavan vuoksi. [24] Ylivoiman hallussapito ei anna hyökkääjälle mitään etua. Samanlainen hyökkäys Ripplelle olisi antaa hyökkääjän hallita suurinta osaa palvelimista ( validaattoreista ), jotka ovat vastuussa kerättyjen tapahtumien vahvistamisesta. Mutta Ripplen jäsenet voivat helposti välttää tämän ongelman, kun he valitsevat oman validaattorinsa. Havaittu hyökkäys korreloidaan helposti "vilpillisen" validaattorin kanssa, ja jatkossa tällainen validaattori suljetaan pois tarkistuslistalta. Hyökkääjän minimaalisen hyödyn ja hyökkäyksen suorittamisen vaikeuden vuoksi on epätodennäköistä, että tällaisia hyökkäyksiä käynnistetään. [25]
Ripple-palvelimia hallinnoivat yksityishenkilöt, organisaatiot ja tunnetut yritykset. Suojaustaso kasvaa suhteessa Ripple-verkoston kasvuun.
Jos sama omaisuus pantitaan toistuvasti ja jokainen myöhempi velkoja-pantinhaltija ei tiedä, että hänen velvoitteensa on turvattu aiemmin pantatun omaisuuden pantilla, tämä vaikuttaa haitallisesti velan takaisinmaksuun seuraaville pantinottajille.
Kerran kiinteistö voitiin pantata kahdesti, eli laina annettiin jo pantatun omaisuuden vakuuksia vastaan. Joissakin tapauksissa kolmas laina sallittiin.
Kryptovaluutat | |
---|---|
PoW perustuu SHA-2 :een | |
PoW perustuu Scryptiin | |
PoW perustuu CryptoNoteen | |
Muut PoW-algoritmit | |
PoS- algoritmit | |
Muut tekniikat | |
liittyvät aiheet |
|