Tinklaraštis · 2026 m. balandžio 5 d.

Kaip Solo2 jungiasi serveriui nieko nežinant

Serveris daro vieną dalyką: padeda dviems įrenginiams rasti vienas kitą. Tada jis dingsta.

Ką serveris žino apie tave

Pradėkime nuo pagrindų. Solo2 serveris žino tiksliai tris dalykus apie tave: tavo vartotojo vardą, tavo unikalų identifikatorių ir tavo slaptažodžio maišą (hash). Maišas yra negrįžtama matematinė transformacija — serveris gali patikrinti, ar tavo slaptažodis teisingas, nežinodamas, koks jis yra. Tavo tikrasis slaptažodis egzistuoja tik tavo galvoje ir tavo įrenginyje.

Ir tai viskas. Serveris nežino, su kuo kalbi. Jis nežino, kiek tunelių turi. Jis nežino tavo kontaktų vardų. Ta informacija egzistuoja tik tavo seife, užšifruotame tavo įrenginyje. Serveris negalėtų jo atidaryti, net jei norėtų.

Pašto dėžutės

Įsivaizduok sunumeruotų pašto dėžučių sieną, kaip senajame pašte. Kai tavo programėlė nori prisijungti prie kažko, ji palieka raštelį dėžutėje sakydama 'Noriu kalbėtis su vartotoju X'. Daugiau nieko. Ji nepasako, kas tu esi. Ji nepasako, apie ką nori kalbėti. Tik raštelis dėžutėje.

Periodiškai visos prie Solo2 prijungtos programėlės tikrina pašto dėžutes, ar kas nors paliko joms raštelį. Tai tarsi sustoti pašte ir paklausti: 'Ar yra kas nors man?'. Jei tavo kontaktas randa tavo raštelį, jis paprašo serverio IP adreso, kurį palikai. Serveris jį pateikia, ir ta informacija iš karto ištrinama iš atminties. Ji niekada neįrašoma į jokį diską. Ji gyvena serverio laikinojoje atmintyje milisekundes, reikalingas atsakyti.

Nuo to momento serveris dingsta

Kai abu įrenginiai žino vienas kito adresą, jie kalba tiesiogiai tarpusavyje. Serveris nebedalyvauja. Jis neperduoda žinučių. Jų nesaugo. Jis nežino, ar ryšys buvo užmegztas, ar ne. Jis nežino, kiek jis trunka. Jis nežino, kiek žinučių apsikeičiama ir kokio jos dydžio.

Tiek, kad jei serveris tą akimirką išsijungtų, du vartotojai toliau kalbėtųsi lygiai taip pat. Pokalbis nepriklauso nuo serverio. Jis priklausė nuo jo tik tam, kad du įrenginiai rastų vienas kitą. Prisijungus serveris yra nereikšmingas.

Pokalbis yra saugus dar net neprasidėjęs

Kai du žmonės sukuria tunelį Solo2, jų įrenginiai apsikeičia viešaisiais kriptografiniais raktais. Nuo tos akimirkos kiekviena žinutė yra užšifruota gavėjo raktu — ir tik gavėjas gali ją iššifruoti. Tai vyksta prieš bet kokio pokalbio pradžią. Raktai yra paruošti nuo tunelio sukūrimo momento.

Todėl, kai du įrenginiai jungiasi tiesiogiai, komunikacija jau yra apsaugota. Jiems nereikia nieko derėtis. Jiems nereikia prašyti serverio leidimo. Raktai yra jų, jų įrenginiuose, ir niekas kitas jų neturi.

Ką tai reiškia praktiškai

Tai reiškia, kad jokiame serveryje nėra tavo pokalbių įrašo. Nėra metaduomenų analizuoti. Nėra istorijos perduoti teismo nurodymu. Nėra duomenų bazės įsilaužti. Solo2 serveris negali perduoti to, ko neturi. Ir jis neturi nieko, nes niekada ir neturėjo.

Kitą kartą, kai kas nors tau pasakys, kad programėlė 'šifruoja tavo žinutes nuo galo iki galo', paklausk, kas nutinka su visu kitu. Kas žino, su kuo kalbi. Kas žino, kokiu laiku. Kas žino, kaip dažnai. Jei atsakymas yra 'mūsų serveris, bet mes jo nenaudojame niekam blogam' — tai pažadas. Solo2 atsakymas yra kitoks: niekas nežino. Nes nėra ko paklausti.