S3DOC WITNESS to opcjonalny komponent, który pełni rolę świadka dla danych zapisanych w S3DOC DHT. W bazie danych tego komponentu nie są przechowywane wszystkie dane, a jedynie te umożliwiające weryfikację łańcucha bloków w komponencie S3DOC DHT. Oznacza to, że treść dokumentów nie jest przenoszona do takiego węzła. Jest to istotne z punktu widzenia przetwarzania danych osobowych (dokumenty spersonalizowane).
Cechy komponentu
- Możliwość weryfikacji łańcucha bloków, który podlega synchronizacji
- Przechowywanie wyłącznie danych niezbędnych do weryfikacji poprawności łańcucha bloków (rozmiar danych jest nawet ponad 1000 razy mniejszy niż w głównym komponencie S3DOC DHT)
- Nie przechowuje danych osobowych
- Może pełnić rolę świadka dla wielu łańcuchów bloków jednocześnie
- Zapewnia wielokrotnie szybszą weryfikację łańcucha bloków niż w głównym komponencie
- Sygnalizuje błędy w łańcuchu bloków on-line (nowe bloki muszą mieć wyższy indeks niż ostatnie zapisany)
- Możliwość weryfikacji synchronizowanego łańcucha bloków w trakcie pracy poprzez dedykowane API serwisowe
Jak można wykorzystać ten komponent?
Cechą prywatnych łańcuchów bloków jest niski koszt tworzenia bloków, oznacza to, że administrator systemu (przy udziale innych osób) mógłby usunąć istniejący łańcuch bloków i zbudować go na nowo (co prawda taka operacja mogła być zauważona przy dużej liczbie dokumentów > 200 000). W celu wykrywania takich sytuacji można wykorzystać komponent S3DOC WITNESS. Po jego uruchomieniu komponent S3DOC DHT wysyła do S3DOC WITNESS dane, a on poddaje je weryfikacji z już zapisanymi blokami. Jeśli zostanie wysłany blok z niższym indeksem niż ostatni zapisany w S3DOC WITNESS to sygnalizowany jest błąd. Dodatkowo istnieje możliwość uruchomienia komponentu z opcją weryfikacji łańcucha bloków, w trakcie uruchomienia zostanie wykonana pełna walidacja wszystkich bloków (w trakcie tej operacji musi być dostępny główny komponent S3DOC DHT). Dzięki przechowywaniu ograniczonej ilości danych (brak danych osobowych, finansowych, itp.) taki komponent może być uruchomiony w tzw. trzeciej zaufanej stronie.