Booba muusikavideo ja NFT-de turvalisuse kohta | Pearaamat

Booba muusikavideo ja NFT-de turvalisuse kohta | Pearaamat

Allikasõlm: 2657383

3. novembril 2021, Booba (Prantsuse räppar, kes lõi sildi La Piraterie muusika) pane 5-st NFT-st koosnev komplekt müügiks, kokku 5000 neist animeeritud kaartidest. Kõik need NFT-d müüdi mõne päevaga 150 ETH eest (igaüks 0.006 ETH), mis on praeguseks kuupäevaks rohkem kui 700.000 XNUMX dollarit. Boonusena said ühe sellise NFT õnnelikud omanikud eksklusiivset muusikavideot näha TN alates 8 november 2021.

Les rappeurs m'envient, sont tous en galère.
Boulbi, Ouest Side

Olime veidi uudishimulikud ja mõtlesime, kuidas on muusikavideo kaitstud ja kas saame seda nautida ka siis, kui me ei osta NFT-d.

Kuidas muusikavideo kaitse töötab?

Video vaatamiseks peavad NFT-de omanikud lehte külastama /mon-nft ja kasutavad oma krüptorahakotti (nt Metamask või WalletConnect) Ethereumi sõnumi allkirjastamiseks "Pour accéder à TN, merci de bien vouloir signer ce message" sama rahakotiga kui NFT-de ostmiseks. Pärast allkirjastamist saadab veebibrauser sellele vormingule vastava JSON-kehaga POST-päringu aadressile a veebiteenus hostitud AWS-is:

Mõned testid näitavad, et vaikekirjast erinevaid sõnumeid ei lükata tagasi seni, kuni need on JSON-kodeeritud. Näiteks: [1337] ja "blah" loetakse kehtivaks, kuid sõnumid, mis pole JSON-is, käivitavad internal error kohe.

Kui Ethereumi aadressiga seotud allkiri (wallet) Ja message on kehtivad, kontrollib server, et rahakott ostis tõepoolest ühe NFT-dest, vastasel juhul ilmneb viga Tu ne possèdes aucun des NFTs tagastatakse. See viimane samm võtab veidi rohkem aega, mis võimaldab sõnastada järgmise hüpoteesi. Kui leiame Internetist avaliku võtme, mis vastab kahele tingimusele:

  • Avalik võti allkirjastas JSON-sõnumi ja sellega seotud allkiri on avalik;
  • Rahakott ostis vähemalt ühe NFT-st.

muusikavideo toomiseks võib olla võimalik AWS-serveris olevat sõnumit ja allkirja uuesti esitada.

BOOBA TN NFT on ka ERC-20 märk (B2O_TN) vermitud nutika lepinguga 0x3b73…94dd. Alustuseks loetlesime kõik NFT omanikud tänu eeterscan.io. Artikli kirjutamise ajal oli vähemalt ühe sellise NFT omanikku 3484. 1 rahakotile kuulub rohkem kui üks sama NFT, tõenäoliselt selleks, et üks neist hiljem edasi müüa.

Un jour de mon salaire c'est leur assurance vie.
Boulbi, Ouest Side

1. katse – etherscan.io

Ethereumi sõnumid on kodeeritud kasutades personal_sign vorming ("x19Ethereum Signed Message:n" + length(message) + message) enne ECDSA-ga allkirjastamist. Kuna Ethereumi tehingud on kodeeritud erinevasse vormingusse (RLP), ei saa tehingute allkirju tuvastada kehtivate sõnumisignatuuridena. Teisisõnu öeldes ei leia Ethereumi plokiahelast sõnumite allkirju.

Esimene koht, kust leidsime ahelaväliseid Ethereumi sõnumeid, on etherscan.io, mis pakub veebiliidest kontrollima Ethereumi sõnumi allkirja ja lõpuks salvestage see avaliku URL-i kaudu juurdepääsetavaks muutmiseks. Esmalt laadisime alla kõik selle teenuse kaudu salvestatud Ethereumi sõnumid: etherscan.io/verifiedSignatures.

Näiteks verifySig/2642 näitab, et NFT omanik Igav Ahv #6743 tõestas, et ta on ka Twitteri konto omanik ahv6743:

Ta on ka NFT-de omanik Booba TN nagu selles näidatud tehing. Kuid isegi kui allkiri on kehtiv, pole sõnum JSON-vormingus ja AWS-server ei tunne seda ära.

Tu n'peux que gagner quand t'as rien à perdre.
Magnifique, Trône

2. katse – snapshot.org

Veebilehel snapshot.org võimaldab inimestel hääletada ettepanekute poolt, kasutades oma Ethereumi rahakotti: Snapshot on ahelaväline gaasivaba mitme valitsemise klient, mille tulemusi on lihtne kontrollida ja tulemusi on raske vaidlustada. Hääled on juhuslikult JSON-vormingus.

GraphQL liidest saab kasutada häälte andmebaasi päringute tegemiseks. Näiteks järgmine minimaalne GraphQL-i päring tagastab hääletuse ID-d, kus on valija aadress 0x668248dF4595e09Aa253B31478312748078F7a20:

Päringu tulemus näitab, et seda aadressi on kasutatud 2 hääle jaoks:

Iga Booba TN NFT-d omava rahakoti allkirjastatud hääled saab tervikuna alla laadida ühe GraphQL-i päringuga. 689 unikaalse hääletaja kohta on 140 tulemust.

Aadress 0x668248dF4595e09Aa253B31478312748078F7a20 ostnud 5 Booba TN NFT-d. Nagu varem näidatud, hääletati sellel aadressil ka järgmiste ettepanekute poolt:

Seotud hääled salvestatakse interplanetaarsesse failisüsteemi (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM ja QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. Esimese hääle sisu on järgmine:

video ekraanipilt

Pange tähele, et URL aegub teatud aja möödudes ega ole enam kehtiv.

Järeldus

See ajaveebipostitus näitab, et isegi kui seda NFT-sündmust toitev krüptograafia on usaldusväärne, on see elementaarne kordusrünnak piisas muusikavideo kaitse purustamiseks. Parandus on lihtne: AWS-serverile saadetud sõnum tuleks tagasi lükata, kui see ei ühti krüptorahakotti saadetud sõnumiga.

La piraterie n'est jamais finie !
Walabok, Nero Nemesis

Kui ühendust võeti (õige kontakti leidmine oli tegelikult kõige keerulisem osa), siis arendajad alates RenaissanceNFT olid super koostööaltid ja vastutulelikud. Probleem lahendati vähem kui tunni jooksul ja kaitse juurdepääsust ei saa enam mööda minna.

Ajatempel:

Veel alates pearaamat