Atvirojo kodo vs. Šaltinis: Ko „Coldcard Failure“ moko apie „Bitcoin“ programinės įrangos paskatas
Uždaras ir atvirojo kodo kodas padalijo Bitcoin ir platesnę kriptovaliutų pramonę daugiau nei dešimtmetį. Bitcoin šalininkai jau seniai tvirtino, kad pasaulio finansų infrastruktūra turėtų būti kuriama viešai. Anot jų, skaidrumas ir tikrinamumas yra nediskutuotini, kai rizikuojama tikrais pinigais. Tačiau programa ir senieji finansiniai sluoksniai dažnai nesutaria.
Tačiau neseniai įvykęs „Coldcard“ įsilaužimas, populiari savaiminė aparatinės įrangos piniginė, kai vartotojai prarado daugiau nei 100 mln. USD vertės bitkoinų (daugiau nei 1500 BTC), sukėlė abejonių, ką iš tikrųjų reiškia „atvirasis šaltinis“. Jis atskleidė, kad turbūt dauguma žmonių, net daugelis užkietėjusių bitkoinininkų, yra prastai išsilavinę atvirojo kodo programinės įrangos kūrimo filosofijos klausimais ir kai ji žlunga.
Principai ir terminija
Atvirojo kodo kalba gali būti sudėtinga. Nemokama ir atvirojo kodo programinė įranga (FOSS) ir nemokama / nemokama ir atvirojo kodo programinė įranga (FLOSS) reiškia programinę įrangą, kuri atitinka formalius vartotojo laisvės apibrėžimus.
Laisvosios programinės įrangos fondas (FSF) apibrėžia laisvą programinę įrangą per keturias pagrindines laisves:
- Laisvė 0: Laisvė paleisti programą, kaip norite, bet kokiam tikslui.
- Laisvė 1: Laisvė tyrinėti, kaip programa veikia, ir keisti ją taip, kad ji atliktų skaičiavimus taip, kaip norite (prieiga prie šaltinio kodo yra būtina sąlyga).
- Laisvė 2: Laisvė platinti kopijas, kad galėtumėte padėti kitiems.
- Laisvė 3: Laisvė platinti savo modifikuotų versijų kopijas kitiems (prieiga prie šaltinio kodo yra būtina sąlyga).
FSF pabrėžia, kad „nemokama“ reiškia laisvę, o ne kainą, dažnai išgirstame FOSS šalininkų citatoje: „laisva“ kaip „žodžio laisvė“, o ne kaip „nemokamas alus“.
Atvirojo kodo iniciatyvos atvirojo kodo apibrėžimas prideda dešimt praktinių kriterijų. Tai apima nemokamą perskirstymą be honorarų, šaltinio kodo prieinamumą pageidaujama forma modifikavimui, teisę kurti ir platinti išvestinius kūrinius ir nediskriminavimą prieš asmenis, grupes ar veiklos sritis, įskaitant komercinį naudojimą. Licencija turi atitikti visus dešimt kriterijų, kad pagal OSI standartą būtų laikoma atviruoju šaltiniu.
„Galimas šaltinis“ arba „šaltinis matomas“ skiriasi. Kodas gali būti viešai skaitomas, o licencija riboja teisę jį parduoti. Pavyzdžiui, „Coldcard“ programinė įranga yra išleista pagal MIT sąlygas ir „Commons“ sąlygą. Straipsnyje konkrečiai panaikinama teisė „parduoti“ programinę įrangą – apibrėžiama kaip jos teikimas trečiosioms šalims už tam tikrą mokestį ar kitą atlygį už produktą ar paslaugą, kurios vertė visiškai arba iš esmės kyla iš pačios programinės įrangos. Kitaip tariant, „Coldcard“ programinė įranga negalėjo būti naudojama komerciniais tikslais.
Pačios „Commons Clause“ DUK aiškiai nurodo skirtumą: „Ar tai „atvirasis šaltinis“? Ne. Jame pažymima, kad sąlygos taikymas reiškia, kad programinė įranga atitinka daugelį atvirojo kodo apibrėžimo elementų, bet ne visus, todėl neturėtų būti vadinama atviruoju šaltiniu.
Šie skirtumai yra svarbūs. Paskelbus šaltinio kodą, atsiranda galimybė patikrinti. Suteikus visas teises, apibrėžtas laisvosios programinės įrangos apibrėžime arba atvirojo kodo apibrėžime, programinė įranga tampa FOSS arba FLOSS. Tačiau turėti patvirtinimo ženklą, mojuoti FOSS ar FLOSS vėliava nėra svarbiausia. FOSS komercinė laisvė atrakina trečiųjų šalių paskatas išbandyti ir peržiūrėti kodą, kurio kitu atveju nebūtų, teigia kritikai.
Keturios laisvės sudaro atvirojo kodo filosofinę šerdį. Praktiškai jie remiasi ekonomine prielaida: kad pakankamai motyvuotų žmonių iš tikrųjų išnagrinės kodeksą. Kai ši prielaida žlunga, sistema sukuria klasikinę bendrojo turto tragediją, situaciją, kai bendrai naudojami ištekliai yra per daug naudojami arba nepaisomi, nes atskiri vartotojai veikia siekdami trumpalaikių savo interesų, o ne ilgalaikių grupės interesų.
Kiekvienas žmogus turi paskatą imti daugiau (arba prisidėti mažiau), nei yra tvarus, ir dėl to ištekliai degraduoja. Taip atsitinka, kai yra nesutapimas tarp trumpalaikių individo interesų ir ilgalaikių grupės interesų. Kartais išlyginimas egzistuoja; kartais ne.
Vienas „Bitcoin“ kūrėjas šią problemą išsakė tiesiai šviesiai: „Atvirojo kodo pavyzdžius naudoti bandymuose yra neatsakinga ir trumparegiška. Atvirojo kodo kodas laikomas saugiu, nes bet kas gali jį patikrinti. Jei nenorite atlikti būtiniausių funkcijų, nuo kurių iš tikrųjų priklausote, testavimo, vadinasi, elgiatės kaip dėlė.
Dėl to atvirasis šaltinis pats savaime nesukuria saugumo. Tai sukuria patikrinimo galimybę. Ar tas patikrinimas įvyks, priklauso nuo paskatų, įgūdžių ir dėmesio. Manoma, kad istorinis FOSS ilgainiui sustiprėja, nes pažeidžiamumas atrandamas, atskleidžiamas ir pataisomas, sukuriant tvirtus pagrindus, ant kurių kiti stato. Linux branduolys yra puikus tokio užkietėjusio FOSS pavyzdys; ji maitina didžiąją daugumą pasaulio serverių, debesų infrastruktūros, Android įrenginių ir įterptųjų sistemų, todėl tai yra viena iš plačiausiai įdiegtų programinės įrangos dalių istorijoje.
Atvirasis šaltinis, kaip parodyta Bitcoin Core
Bitcoin Core, etaloninis Bitcoin įgyvendinimas, yra dar vienas senas didelio masto gryno atvirojo kodo veikimo laukinėje gamtoje pavyzdys. Programinė įranga, kuri veikia už daugumos su Bitcoin susijusios infrastruktūros, yra išleista pagal MIT licenciją. Jo kūrimo procesas yra plačiai viešas.
Kiekvienas gali atidaryti ištraukimo užklausą. Kodo peržiūra yra pagrindinis filtras ir rekomenduojamas įėjimo taškas naujiems bendradarbiams. Recenzentai naudoja formalų žodyną – Concept ACK (pripažinimas ir susitarimas su tikslu), Approach ACK (sutikimas su tikslu ir metodu), ACK su konkrečia įsipareigojimo maiša (išbandyta ir patvirtinta sujungti) arba NACK (nesutikimas, kuris turėtų būti kartu su techniniais argumentais).
Prieš sujungdami, prižiūrėtojai pasveria bendraautorių sutarimą ir techninius pakeitimo privalumus. Sutarimui svarbūs pokyčiai susiduria su dar aukštesne riba ir paprastai reikalauja Bitcoin tobulinimo pasiūlymo ir išsamių daugiamečių diskusijų apie bitcoin-dev adresų sąrašą ir IRC.
Nėra privilegijuotos „Bitcoin Core“ kūrėjų kastos. Pasitikėjimas įgyjamas per tam tikrą laiką demonstruojamą kompetenciją. Priežiūros priemonės egzistuoja dėl praktinių priežasčių – tikrinti ir sujungti kodą, tvarkyti leidimus ir pagrindinį moderavimą, tačiau atliktas darbas yra grynas atvirojo kodo kodas, kurį bet kas gali patikrinti, sukurti, išjungti ar paleisti. Kūrėjai, kuriems kodo „įsipareigojimai“ sujungiami į „Bitcoin Core“, plačiai vadinami „Bitcoin Core Contributors“.
Calle, ilgametis atvirojo kodo bitkoinų kūrėjas, neseniai apibendrino realybę: „Žmonės, kurie mano, kad branduolys yra kažkokia neskaidri institucija, veikianti šešėlyje, yra arba per tingūs, arba per kvaili, kad galėtų ieškoti savęs. Žodžiu, viskas, ką jie daro, yra vieša, bet kas gali pasigirti, o jų darbo rezultatas yra grynas atvirojo kodo kodas.
Šis darbas daugiausia finansuojamas per ne pelno siekiančias ir dotacijų struktūras, tokias kaip „Brink“, „OpenSats“, „Spiral“ ir kitas, o ne iš tradicinio įmonės produktų plano. Techninės diskusijos ir diskusijos vyksta viešai bitcoin-dev adresų sąraše ir #bitcoin-core-dev IRC kanale Libera Chat, kur pasiūlymai yra tikrinami prieš ir per ištraukimo užklausą. „GitHub“ problemos ir ištraukimo užklausos dažnai turi komentarų istoriją, besitęsiančią dešimtmetį. Rezultatas yra kūrimo kultūra, optimizuota siekiant teisingumo ir tikrinimo, o ne greičio ar komercinių savybių greičio.
Atvirojo kodo ekonomika
Dauguma atvirojo kodo arba šaltinio prieinamos programinės įrangos vartotojų patys niekada neskaito kodo. Jie remiasi prielaida, kad kiti tai nagrinėja. Coldcard atveju kritinė entropijos klaida viešai prieinamoje programinėje įrangoje išliko maždaug penkerius metus, kol ji buvo panaudota ir taip atrasta.
Klaida pateko į kodų bazę per didelį 2021 m. perrašymą, kuris taip pat pašalino likusį GPL kodą iš „Trezor“ – pirmosios aparatinės įrangos piniginės ir dabar antros pagal dydį savisaugos pramonėje. Entropijos gedimo centre esanti biblioteka, kuri pakeitė trezor-crypto, vadinama libngu ir turėjo minimalų išorinį patikrinimą, o gamyboje naudojama tik 7 žvaigždės ir mažiau nei 20 šakučių per daugiau nei 5 metus. Palyginkite tai su 512 žvaigždučių, kurias nešioja trezor-kripto biblioteka kartu su 212 šakių, arba 793 šakėmis ir 1,8 tūkst. žvaigždutėmis modernesnės trezor programinės įrangos. Vien tik šaltinio prieinamumas nepadarė svarbios apžvalgos, nes kitoms pelno siekiančioms, gerai finansuojamoms įmonėms buvo uždrausta juo naudotis, arba kritikai ginčytųsi.
„Bitcoin“ statymas yra didesnis nei daugelyje programinės įrangos sričių. Esminis trūkumas gali būti tiesiogiai konvertuojamas į likvidžius fondus atviroje rinkoje. Nors pirmoji pavogtų „Coldcard“ lėšų pusė vis dar saugoma keletu adresų, o įsilaužėlis vieną dieną gali būti sučiuptas, vėliau buvę įsilaužėliai buvo atsargesni, o kai kurie pavogė daugiau bitkoinų ir sėkmingai jį išplovė, teigia „Galaxy Research“. Bitcoin atsparumas cenzūrai ir nekintamas sandoris sukuria galingą paskatą užpuolikams ir Darvino filtrą; tik tie projektai, kurie nuolat pritraukia kompetentingą apžvalgą, o vartotojai ir įmonės, kurios imasi rimtų atsargumo priemonių, yra linkę išgyventi ilgą laiką.
Licencijavimo pasirinkimai formuoja tas paskatas, pasak FOSS advokatų, kurie ilgus metus kritikavo Coinkite sprendimus dėl licencijavimo. Grynos atvirojo kodo licencijos padidina potencialių apžvalgininkų ir šakių skaičių. Ribotos „prieinamų šaltinių“ licencijos gali sumažinti komercinį pasivažinėjimą nemokamai, bet taip pat sumažinti žmonių, turinčių tiek teisinę teisę, tiek ekonominį motyvą skirti daug dėmesio, ratą. Deja, kodo peržiūros našta vėl tenka įmonei pagal ribojančią licenciją, kuri tam tikra prasme yra arčiau uždarojo kodo nei atvirojo.
Kaip AI keičia atvirojo ir uždarojo šaltinio kūrimą
Dirbtinis intelektas dabar taip pat keičia pusiausvyrą tarp FOSS ir uždarojo šaltinio.
Po „Coldcard“ incidento savanorių pastangos, žinomos kaip „Bitcoin Red Team“, kuriai vadovavo kūrėjai, įskaitant Calle’ą ir Robą Hamiltonus iš „AnchorWatch“, ir kuriai palaikė „OpenSats“, naudojo paribius AI modelius, kad nuskaitytų šimtus atvirojo kodo „Bitcoin“ saugyklų. Per vieną intensyvų laikotarpį komanda pateikė tūkstančius išvadų, įskaitant dešimtis klasifikuotų kaip kritinės ar labai pavojingos, šimtuose projektų. Atsakingi atskleidimai prižiūrėtojams buvo pateikti prieš platesnį paskelbimą. Pratimas parodė, kad sisteminga AI padedama peržiūra gali atskleisti tokio masto ir greičio problemas, kurios anksčiau buvo nepraktiškos vien žmonių komandoms.
Šiuo atžvilgiu verta paminėti, kad „Raudonoji komanda“ nustatė, kad Kinijos atvirojo svorio modeliai yra daug patikimesni nei uždarojo kodo amerikietiški modeliai, kurie, net turėdami kibernetinį leidimą ir aukščiausio lygio prieigą, atsisakė atsakyti į „Red Team“ užklausas, dėl šios tendencijos apgailestauja amerikiečių kūrėjai.
Tuo pačiu metu AI sugeneruoto kodo potvynis FOSS prižiūrėtojams sukėlė naują atsisakymo teikti paslaugas spaudimą. AI išvesties peržiūra dažnai užtrunka ilgiau nei jos generavimas. Kai kurie atvirojo kodo projektai, nepriklausantys „Bitcoin“, apribojo problemų stebėjimo priemones arba nustatė griežtas anti-AI taisykles, kad išliktų funkcionalūs.
Kalbant apie uždarojo kodo pusę, tradicinis saugumo pranašumas per nežinomybę nyksta. Šiuolaikiniai AI modeliai gali dideliu greičiu nuskaityti, panaikinti obfuskaciją, tirti galutinius taškus ir motyvuoti kodą. Praktinis skirtumas tarp atvirojo ir uždarojo kodo dabar dažniausiai yra susijęs su galinio kodo, kuris niekada nėra bendrinamas internete. Dėl to uždarojo kodo kodas priklauso tik nuo profesionalių auditų kokybės, pataisų diegimo greičio ir paskatų struktūros, kuri leidžia kompetentingiems žmonėms žiūrėti.
Bitcoin ir platesnė kriptovaliutų pramonė taiko neįprastą spaudimą nemokamai ir atvirojo kodo programinei įrangai. Rizikos realios piniginės vertės, konkurencijos ekonomikos ir dabar AI masto analizės derinys verčia programinės įrangos modelius tobulėti. Grįžimas prie analoginių ikiskaitmeninių sistemų vargu ar yra galimybė šiuolaikinei visuomenei išlaikyti infrastruktūrą. Tikėtina, kad tik labiausiai tikrinami projektai atlaikys AI padedamų įsilaužėlių spaudimą ir finansų, pirmiausia skaitmeninių, svarbą.
