Segregated Witness, w skrócie SegWit, to aktualizacja protokołu Bitcoin zaprojektowana w celu rozwiązania kwestii skalowalności i bezpieczeństwa sieci.
SegWit to aktualizacja, która segreguje dane transakcji i dane tzw. świadków, czyli m.in podpisy cyfrowe.
Po wprowadzeniu aktualizacji SegWit zmienił się format transakcji i jest w nim nowe pole o nazwie „świadek”. Pole to zawiera podpisy cyfrowe, klucze publiczne oraz inne elementy. Ponieważ SegWit oddziela te dane od reszty transakcji i przy określaniu rozmiaru bloku nie liczy danych tzw. świadków, zasadniczo zwalnia w nim więcej miejsca.
Aktualizacja SegWit została stworzona w 2015 roku przez programistę sieci Bitcoin Pietera Wuille’a we współpracy z kilkoma innymi autorami aplikacji Bitcoin Core. W sierpniu 2017 r. aktualizacja SegWit została wdrożona w sieci Bitcoin w formie tzw. soft forka.
Bez aktualizacji SegWit dane podpisu mogą zajmować nawet 65% bloku. Aktualizacja SegWit wynosi dane podpisu z obszaru danych wejściowych transakcji. Dzięki temu rozmiar bloku zwiększa sie faktycznie z 1 MB do około 4 MB.
SegWit daje możliwość zwiększenia szybkości transakcji, ponieważ w bloku może się znajdować więcej transakcji. Prowadzi to do zwiększenia liczby przetwarzanych transakcji i wskaźnika TPS (transakcji na sekundę).
Aktualizacja SegWit wywołała kontrowersje w społeczności Bitcoina, a jej implementacja była jednym z kluczowych punktów spornych, które doprowadziły do powstania projektu Bitcoin Cash, forka sieci Bitcoin, który ma większy rozmiar bloku bez implementacji SegWit.
Część osób jest zdania, że SegWit jest nadmiernie złożoną aktualizacją, która naraża sieć na potencjalne ryzyko czy luki w zabezpieczeniach. Krytycy wskazują na potencjalne problemy, np. możliwość przekształcenia niektórych transakcji w transakcje typu „każdy może wydać”.