Älä riko käyttäjätilaa!

By Bitcoin Aikakauslehti - 3 kuukautta sitten - Lukuaika: 5 minuuttia

Älä riko käyttäjätilaa!

"Mauro, HYLJÄ! Se on virhe - ytimessä. Kuinka kauan olet ollut ylläpitäjänä? Ja et *vielä* ole oppinut ensimmäistä ytimen ylläpidon sääntöä?Jos muutos johtaa käyttäjäohjelmien rikkoutumiseen, se on ytimessä oleva virhe. Emme koskaan syytä käyttäjäohjelmia. Kuinka vaikeaa tämä voi olla ymmärtää?" -Linus Torvalds

Älä riko käyttäjätilaa. Tämä on Linus Torvaldin kultainen sääntö Linux-ytimen kehittämiselle. Niille teistä, jotka lukevat tätä, jotka eivät tunne Linuxin luonnetta tai käyttöjärjestelmiä yleensä, ydin on käyttöjärjestelmän sydän ja sielu. Ydin itse asiassa hallitsee laitteistoa, siirtäen bittejä tallennustilan ja RAM-muistin välillä, RAM:n ja prosessorin välillä, kun asioita lasketaan, ja kaikkia todellisen tietokoneen pieniä laitteita ja osia, joita on ohjattava laitteistotasolla.

Jokaisen käyttöjärjestelmälle kirjoitetun sovelluksen tai ohjelman on oltava vuorovaikutuksessa ytimen kanssa. Kun lataat Photoshopin tai Telegramin, kaikki ohjelman tekeminen tiivistyy lähinnä ytimen kutsumiseen. "Hei kernel, ota juuri kirjoittamani ja käsittele se ja lähetä se verkkoyhteyden kautta palvelimelle." "Hei kernel, ota tekemäni värinvaihto tälle sävelkorkeudelle, poista se RAM-muistista ja lähetä se CPU:lle muokkaamaan sitä ja laita se sitten takaisin RAM-muistiin."

Kun ydin vaihdetaan, hieman samalla tavalla kuin Bitcoin, kehittäjien päätavoitteena on varmistaa, että olemassa olevat sovellukset, jotka olettavat tietyn tavan olla vuorovaikutuksessa ytimen kanssa, eivät katkea ytimen muutoksen vuoksi. Kuulostaa hyvin tutulta Bitcoin ja tarve ylläpitää taaksepäin yhteensopivuutta verkon konsensuspäivityksissä, eikö niin?

"Vakavasti. Kuinka vaikeaa tämä sääntö on ymmärtää? Emme erityisesti riko käyttäjätilaa TOTAL CRAPilla. Olen vihainen, koska koko sähköpostisi oli niin _hirveän_ väärässä ja korjaus, joka rikkoi asiat, oli niin ilmeisen paskaa. Koko laastari on uskomattoman rikki. Se lisää mielettömän virhekoodin (ENOENT), ja koska se on niin mieletön, se lisää muutaman paikan sen korjaamiseksi ("ret == -ENOENT ? -EINVAL : ret").

Se, että yrität sitten tehdä *syitä* rikkoaksesi käyttäjätilan ja syyttää jotain ulkoista ohjelmaa, joka *aikaan* toimi, on vain häpeällistä. Se ei ole miten me toimimme. Korjaa vitun "yhteensopivuustyökalusi", koska se on ilmeisesti rikki. Ja korjaa lähestymistapasi ytimen ohjelmointiin." -Linus Torvalds

Linux on yksi tärkeimmistä, ellei tärkein avoimen lähdekoodin projekteista koko maailmassa. Android toimii Linuxissa, puolet taustainfrastruktuurista (jos ei paljon enemmän) toimii Linuxissa. Sulautetut järjestelmät, jotka ohjaavat kaikenlaisia ​​tietokoneistettuja asioita elämäsi taustalla, joita et edes uskoisi toimivan Linuxissa. Maailma kirjaimellisesti pyörii Linuxilla. Se ei ehkä ollut vallannut työpöytää niin kuin monet autistiset Linux-käyttäjät halusivat nähdä tapahtuvan, mutta se söi hiljaa melkein kaiken muun taustalla ilman, että kukaan huomasi.

Kaikki nämä sovellukset ja ohjelmat, joita ihmiset käyttävät jokapäiväisessä elämässään, riippuvat siitä oletuksesta, että Linux-ytimen kehittäjät eivät riko taaksepäin yhteensopivuutta ytimen uusissa versioissa, jotta heidän sovelluksensa voivat jatkaa toimintaansa. Muutwise, minkä tahansa käynnissä olevan sovelluksen on jatkettava ytimen vanhempien versioiden käyttöä tai omaksuttava taakka muuttaa sovelluksiaan vuorovaikutuksessa ytimen murtavan muutoksen kanssa.

BitcoinYrityksen todennäköisin tie menestykseen on hyvin samankaltainen tie: siitä tulee yksinkertaisesti alusta, jonka päälle rahoitussovellukset ja -työkalut rakennetaan siten, että useimmat niitä käyttävät ihmiset eivät edes ymmärrä tai ajattele, että "Bitcoin söi maailman." Linuxin tapaan kultainen sääntö "Älä riko käyttäjätilaa" pätee kymmenkertaisesti. Ongelma on luonne Bitcoin hajautettu konsensusjärjestelmä, eikä yksittäinen paikallinen ydin, joka toimii yhden henkilön koneella, muuttaa villisti mitä "käyttäjätilan rikkominen" tarkoittaa.

Eivät vain kehittäjät voi murtaa käyttäjätilaa, vaan käyttäjät itse voivat murtaa käyttäjätilan. Koko viimeinen Ordinaals-, Inscriptions- ja BRC-20-merkkien vuosi pitäisi ehdottomasti osoittaa tämä. Tämä tarjoaa erittäin vakavan pulman, kun tarkastellaan "Don't break userspace" -mantraa kehittäjien näkökulmasta. Yhtä paljon kuin monet BitcoinTämän tilan käyttäjät eivät pidä Ordinalsista ja ovat järkyttyneitä siitä, että heidän omia käyttötapauksiaan häiritsee verkkoliikenne, jota Ordinalsin käyttäjät luovat, molemmat ryhmät ovat käyttäjiä.

Joten miten kehittäjät kohtaavat tämän ongelman? Yksi käyttäjäryhmä katkaisee käyttäjätilaa toiselle käyttäjäryhmälle. Ordinaalin tai Inscriptionsin käytön estävän muutoksen toteuttaminen rikkoo nimenomaisesti don't break userspace -toimintoa. Olen varma, että ihmiset haluavat sanoa "Taproot rikkoi käyttäjätilan!" vastauksena tähän dilemmaan, mutta se ei tehnyt niin. Taproot-aktivointi ja todistajatietojen salliminen koko lohkon kokoiseksi, eivät rikkoneet olemassa olevia sovelluksia tai käyttötapoja, jotka on rakennettu Bitcoin. Se vain avasi oven uusille sovelluksille ja käyttötapauksille.

Joten mitä me täällä teemme? Yrittääkseen suodattaa tai rikkoa konsensusmuutoksella ihmiset, jotka tekevät Inscriptioita tai käyvät kauppaa Ordinaalilla, rikkovat pohjimmiltaan "älä riko käyttäjätilaa" -periaatetta. Jos et tee mitään, yksi käyttäjäluokka voi rikkoa toisen käyttäjäluokan käyttäjätilan. Tähän ongelmaan ei ole pohjimmiltaan muuta ratkaisua kuin kultaisen säännön rikkominen tai toiminnallisuuden toteuttaminen, jonka avulla käyttäjäluokka, jonka käyttäjätila on nyt rikki, voi mukautua verkon uusiin todellisuuksiin ja ylläpitää käyttökelpoista versiota sovelluksistaan ​​ja käyttötavoistaan. tapauksia.

Ei rikkoa käyttäjän tilaa Bitcoin on ratkaisevan tärkeä sen jatkuvan menestyksen ja toimivuuden kannalta, mutta se ei ole niin yksinkertaista kuin "älä muuta mitään". Dynaamisilla muutoksilla käyttäjien käyttäytymisessä, jotka eivät vaadi muutoksia varsinaiseen protokollaan, voi olla päivän lopussa sama vaikutus kuin protokollan rikkoutuneella muutoksella. Onko kehittäjien tarkoitus valita, minkä sovellusten käyttäjätila on rikki, jotta toisen sovelluksen käyttäjätila säilyy? Sanoisin ei, ja menen pidemmälle sanoakseni, että jokainen, joka puoltaa tällaista kehittäjien käyttäytymistä, vaatii heitä toimimaan vastuuttomasti ja tavalla, joka vahingoittaa järjestelmän käyttäjiä. Joten mikä tässä on vastaus?

Ei ole muuta vastausta kuin viedä eteenpäin ja jatkaa protokollaan parannusten lisäämistä, jotka mahdollistavat tiettyjen käyttäjien toiminnan rikkomat sovellukset toimimaan, jos käyttäjien käyttäytymisessä tapahtuu muutoksia. Muutwise, pyydät kehittäjiä hylkäämään kultaisen säännön ja pelaamaan tehokkaasti kingmakersejä sen suhteen, mitä käyttötapauksia on kannattavaa rakentaa Bitcoin.

Jos menemme tälle tielle, niin mitä me oikein teemme täällä? En voi kertoa teille, mitä teemme siinä vaiheessa, mutta voin kertoa teille, että se ei enää rakenna hajautettua ja neutraalia järjestelmää.

Alkuperäinen lähde: Bitcoin aikakauslehti