Kto decyduje, czym jest sieć Tor: konsensus, directory authorities i podział na mostki
Każde połączenie zaczyna się od aktu porozumienia. Zanim przeglądarka zbuduje swój pierwszy obwód, potrzebuje aktualnej odpowiedzi na pozornie proste pytanie: jakie węzły istnieją i którym z nich można w tej chwili ufać? W sieci Tor niczego nie rozstrzyga pojedynczy serwer. Zamiast tego mały, stały zestaw maszyn zwanych directory authorities rozstrzyga to pytanie wspólnie, według harmonogramu i jawnie.
Jeden dokument, jedna sieć
Dokument, który tworzą, to konsensus: według słownika Tor Project pojedynczy dokument, raz na godzinę zestawiany i zatwierdzany głosowaniem przez directory authorities. Każdy konsensus wylicza znane przekaźniki jako wpisy statusu routerów z pseudonimem, materiałem kluczy i adresami, a każdy wpis opatruje flagami i wagami przepustowości. Format, łącznie z pełnym słownikiem flag, jest udokumentowany w specyfikacji katalogu. Klienci nigdy nie dowiadują się tych rzeczy od sieci jako całości. Adresy i długoterminowe klucze tożsamości autorytetów są wpisane bezpośrednio w kod źródłowy Tora, a specyfikacja wymaga, by każdy autorytet trzymał klucz tożsamości offline i używał go wyłącznie do poświadczania krócej żyjących kluczy podpisujących. Korzeń zaufania tej sieci jest celowo mały, dający się sprawdzić i wolno zmienny.Godzinne głosowanie krok po kroku
Mechanika jest opisana w osi czasu głosowania specyfikacji. Każdy autorytet okresowo publikuje swój głos: stan sieci, który uznaje za prawdziwy. Ograniczone czasem okno zbiera głosy wszystkich autorytetów, potem drugie okno zbiera podpisy pod powstałym dokumentem, a specyfikacja wymaga, by każde z tych okien trwało co najmniej dwadzieścia sekund. Gotowy konsensus niesie trzy znaczniki czasu w ustalonej kolejności: valid-after, fresh-until i valid-until, przy czym cały okres życia musi wynosić co najmniej dwa razy więcej niż okres świeżości. W każdej chwili ważnych powinno być co najmniej trzy konsensusy. Cache katalogowe pobierają każdy nowy dokument między valid-after a fresh-until, zwykli klienci biorą go w dłuższym oknie potem, a konsensus przeterminowany o więcej niż dobę jest w całości odrzucany."Co godzinę te directory authorities prowadzone przez wolontariuszy głosują i dochodzą do konsensusu w sprawie przekaźników, które tworzą sieć Tor."To zdanie pochodzi z wpisu Tor Project z listopada 2017 roku, w którym przedstawiono Bastet — nowy autorytet dodany, by wzmocnić to, co projekt nazywał różnorodnością i stabilnością systemu directory authorities. Jest ono zarazem, bez podnioesości, opisem całej konstrukcji: autorytety prowadzą wolontariusze, one głosują, a ich zgoda zamienia tysiące pojedynczych przekaźników w jedną sieć.
Flagi, przepustowość i mikrodeskryptory
O czym głosują autorytety, to coś więcej niż samo istnienie. Przekaźnik może nosić flagi takie jak Authority, Exit, Fast, Guard, Running, Stable czy V2Dir, z których każda twierdzi o węźle sprawdzoną własność, a każdy głos zapisuje zmierzoną przepustowość przekaźnika, z której konsensus destyluje wagi, jakimi klienci kierują się przy wyborze ścieżek. Współcześni klienci pobierają najczęściej konsensus w wariancie mikrodeskryptorów, który łączy przegłosowane linie statusu ze skrótami kompaktowych fragmentów deskryptorów potrzebnych klientom, zamiast pełnych deskryptorów serwerowych.- Guard oznacza przekaźnik jako nadający się na pozycję wejściową obwodu.
- Exit oznacza przekaźnik jako gotowy nieść ruch do reszty internetu przez popularne porty.
- Stable oznacza przekaźnik jako przydatny do połączeń długotrwałych.
- HSDir dopuszcza przekaźnik do pierścienia przechowującego introdukcje usług onion.
- V2Dir oznacza przekaźnik jako zdolny do serwowania dokumentów katalogowych.










