W belgijskich wyborach federalnych w 2003 r. obywatele głosowali elektronicznie – za pomocą kart magnetycznych, które otrzymywał każdy wyborca. W miasteczku Schaerbeek zwyciężyła mało popularna kandydatka Maria Vindevoghel. Nie byłoby w tym nic nadzwyczajnego, gdyby nie fakt, że zdobyła znacznie więcej głosów, niż wynosiła liczba uprawnionych do głosowania w jej okręgu. Zebrano wszystkie wykorzystane karty magnetyczne i ponownie przeliczono głosy. Poparcie, jakie otrzymali kandydaci, nie zmieniło się – poza panią Vindevoghel, która tym razem uzyskała wynik niższy dokładnie o 4096 głosów. Dalsze śledztwo pozwoliło na ustalenie przyczyny błędu, która w oficjalnych dokumentach uzyskała brzmienie „spontaniczne ustawienie bitu znajdującego się na pozycji trzynastej w pamięci komputera”. By zrozumieć to tajemnicze wyjaśnienie, konieczne jest poznanie sposobu, w jaki komputer zapisuje informacje w swojej pamięci.

 

ZERA I JEDYNKI

Na co dzień posługujemy się systemem dziesiętnym, w którym liczby zapisujemy jako kolejne potęgi dziesięciu. I tak 123 oznacza jedną setkę (1*102 ), dwie dziesiątki (2*101 ) i trzy jedności (3*100 ). Komputery posługują się innym systemem zapisu – dwójkowym, czyli binarnym. Występują w nim tylko dwie cyfry – zero i jeden, a każda kolejna pozycja zapisu to tzw. bit, czyli kolejna potęga dwójki. Dziesiętna liczba 123 w tym zapisie wygląda tak: 1111011 (1*26 + 1*25 + 1*24 + 1*23 + 0*22 + 1*21 + 1*20 = 64 + 32 + 16 + 8 + 0 + 2 + 1 = 123). 

Różnica między liczbą głosów oddanych na panią Vindevoghel wynosiła 4096. Ta liczba to dokładnie tyle, ile wynosi dwa podniesione do potęgi dwunastej. To była wskazówka dla informatyków próbujących wyjaśnić dziwny wynik wyborów. Wysunięcie dalszych wniosków jest już proste: w pamięci komputera liczącego głosy wystąpiła nieprawidłowość, w której wyniku jeden z bitów przyjął wartość 1 zamiast zera.

Gdyby kandydatka otrzymała w rzeczywistości sześć głosów, jej wynik zapisany za pomocą 16 bitów wyglądałby tak: 0000000000000110 (1*22 + 1*21 + 0*20 = 4+2 = 6). Jeśli jednak zmieniony zostałby jeden bit na trzynastej pozycji (licząc od prawej strony), liczba ta wyglądałaby tak 0001000000000110 i wynosiłaby 4102, czyli dokładnie o 4096 więcej niż oryginalny wynik. Pytanie brzmi, kto lub co mogło zmienić ten jeden bit?

 

NIEUSTANNE BOMBARDOWANIE

Dochodzenie w Belgii wykluczyło włamanie do komputera czy działanie wirusa zmieniającego dane w pamięci. Za powód pomyłki uznano promieniowanie kosmiczne docierające do Ziemi przede wszystkim ze Słońca, a także z odległych obiektów takich jak gwiazdy neutronowe, supernowe czy czarne dziury. Składa się ono z cząstek elementarnych o wysokiej energii. Większość z nich zatrzymuje ziemskie pole magnetyczne, ale niektóre docierają dalej. W atmosferze zderzają się z atomami powietrza, w wyniku czego powstaje tzw. wtórne promieniowanie kosmiczne – przede wszystkim wysokoenergetyczne protony, cząstki alfa i elektrony.

 

– Wszystko jest pod wpływem tego promieniowania. Gdy stoimy, w ciągu jednej sekundy przez nasze ciało przelatują średnio dwie wysokoenergetyczne cząsteczki. Zwykły komputer w ciągu godziny ma kilkanaście razy do czynienia z taką cząsteczką, która może zmienić stan jego elektroniki – wyjaśnia dr inż. Marcin Stolarski, inżynier kosmiczny z firmy RocketLab. 
Dane w pamięci komputera zapisywane są za pomocą różnicy napięć prądu elektrycznego. Bit o wartości zero to brak napięcia, jedynka – występowanie napięcia. Gdy w element przechowujący dane uderzy cząstka promieniowania, może zmienić zero w jedynkę lub na odwrót. Jednocześnie zachodząca reakcja jest najczęściej na tyle słaba, że nie niszczy samej elektroniki, choć bywają od tej reguły wyjątki.
– Są zmiany, które mogą powodować eksplozję układów scalonych, bo promieniowanie wywołuje w nich zwarcia. Ale to ma miejsce raczej w komosie albo w pobliżu reaktorów jądrowych – mówi dr Stolarski. Generalnie im bliżej powierzchni Ziemi znajduje się obiekt, tym promieniowanie jest słabsze. Natomiast większe ryzyko zakłóceń występuje np. na pokładach samolotów.

 

TAJEMNICZE AWARIE

Większość takich nieprawidłowości nie ma dla nas żadnego znaczenia. Może pojawić się zmiana koloru jednego piksela na ekranie lub zamiana bitu w aktualnie nieużywanym obszarze pamięci. W najgorszym razie nastąpi restart komputera. – Sytuacja jest tu podobna jak w naszym DNA. Cały czas dochodzi w nim do losowych zmian, ale mamy też mechanizmy, które chronią nas przed tym – naprawiają błędy, wyłączają kopiowanie uszkodzonego DNA itd. Dopiero wtedy, gdy te mechanizmy zawiodą, mamy do czynienia z mutacją, która może być dla nas groźna – wyjaśnia dr Stolarski. 

Dotyczy to zwłaszcza elektroniki, która odgrywa kluczową rolę w sterowaniu ważnymi urządzeniami. Eksperci podejrzewają, że przyczyną wielu niewyjaśnionych wypadków samolotów, samochodów czy statków kosmicznych mogą być między innymi niekontrolowane zamiany bitów. Co więcej, wraz z miniaturyzacją układów scalonych obniżane jest napięcie ich działania (w celu unikania przegrzania w czasie pracy), a to sprawia, że do zamiany bitu potrzebna jest mniejsza energia. Rośnie więc ryzyko wystąpienia groźnych zakłóceń.

W 2009 roku samochód Lexus prowadzony przez kalifornijskiego oficera policji Marka Saylora stoczył się do rowu i stanął w płomieniach. Kierowca oraz wszyscy pasażerowie – żona, córka i szwagier – zginęli na miejscu. Niedługo przed wypadkiem jeden z pasażerów zadzwonił na linię alarmową i powiedział, że samochód samoistnie przyspiesza, a hamowanie nie jest możliwe. Poza tym już od 2002 roku notowano zwiększoną liczbę zgłoszeń związanych z tzw. nagłym niezamierzonym przyspieszeniem w samochodach Toyoty.
Dochodzenie wykazało, że producenci samochodów zaniedbali wykrywanie i korektę zjawiska niezamierzonej zamiany bitów. W przypadku wystąpienia zamiany program pomijał jedno z poleceń, przez co możliwa stawała się sytuacja, w której samochód niezamierzenie przyspieszał. Dochodzenie w tej sprawie trwało aż do 2014 roku i zakończyło się nałożeniem na Toyotę kary w wysokości 1,2 miliarda dolarów.

W 2016 roku amerykańska Komisja ds. Bezpieczeństwa Produktów Konsumenckich nakazała wycofanie z rynku jednego z flagowych urządzeń firmy Samsung – smartfona Galaxy Note 7. Przyczyny to przegrzewanie się oraz – w kilkudziesięciu przypadkach – eksplozje urządzeń. Oficjalnym wytłumaczeniem była wadliwa konstrukcja baterii, ale w trakcie badań specjaliści brali pod uwagę również możliwość, że za nieprawidłowe ładowanie odpowiadają bity zmienione przez promieniowanie kosmiczne.

 

JAK OSWOIĆ BŁĘDY

Nie jest to nowy problem dla konstruktorów i programistów. Komputery popełniały błędy od lat 40. XX wieku, gdy ich głównymi składnikami były lampy próżniowe. Tych lamp były tysiące i co jakiś czas któraś z nich się przepalała, wywołując awarię komputera i skasowanie obliczeń. 
– Istniał wówczas nawet taki parametr jak średni czas do kolejnej awarii komputera, który mógł wynosić np. sześć godzin. Zgodnie z anegdotą pewien doktorant opracował algorytm, który wymagał prowadzenia obliczeń dłużej niż wynosił czas do kolejnej awarii. Udało mu się dokończyć doktorat dopiero wtedy, gdy technologia komputerowa poszła dalej i powstały maszyny, które miały dłuższy czas bezawaryjnej pracy – opowiada dr Stolarski. 

 

Gdy pojawiły się komputery bazujące na tranzystorach, inżynierowie próbowali zaprojektować maszynę, która liczyłaby całkowicie bezbłędnie. Okazało się jednak, że jest to bardzo kosztowne – komputery były coraz bardziej złożone, podobnie jak ich oprogramowanie. Dlatego konstruktorzy musieli pogodzić się z tym, że błędy się pojawiają i jakoś z tym żyć. – W niektórych elementach oprogramowania wprowadza się dodatkowe sprawdzanie danych. Np. jeśli mamy jakieś ważne obliczenia, to warto je wykonać dwa razy i porównać wyniki – mówi dr Stolarski. Są też sposoby na zabezpieczenie ważnego sprzętu, takiego jak serwery internetowe. Stosuje się w nich specjalny rodzaj pamięci RAM – tzw. ECC, która pozwala na wykrycie i skorygowanie błędów wywołanych np. przez promieniowanie kosmiczne.
 – Podobno firma Sun stworzyła kiedyś serwer, w którym zakłócenia były tak nasilone, że nie nadawał się do normalnej pracy, bo zawartość pamięci cały czas się zmieniała. Dopiero po zastosowaniu pamięci ECC wszystko zaczęło działać jak należy – opowiada dr Stolarski.

Wyjątkowo odporne na błędy muszą być komputery stosowane w samolotach, wojsku i kosmosie. Mają one m.in. dodatkowe zabezpieczenia przed promieniowaniem kosmicznym. Są też znacznie droższe niż te, które mamy w domach. – Koszty wynikają przede wszystkim z tego, że ten sprzęt jest produkowany w niewielkich ilościach – w tysiącach sztuk, a nie w miliardach, jak na masowy rynek – dodaje dr Stolarski.

 

KWANTOWA PRZYSZŁOŚĆ

Rozwój technologii chroni elektronikę przed błędami i ich skutkami, ale stawia też nowe wyzwania przed konstruktorami. Dotyczy to zwłaszcza superszybkich komputerów kwantowych. Wykonują one obliczenia nie na bitach, które mogą przyjąć wartości 0 albo 1, lecz na kubitach. Mogą one przyjmować różne wartości jednocześnie, a przy tym są bardzo wrażliwe na zakłócenia.

Na kwantowy procesor fatalnie działają wszelkie zmiany, np. skoki temperatury czy zakłócenia elektromagnetyczne wytwarzane przez inne części komputera. Każde takie zakłócenie może doprowadzić do skasowania obliczeń albo pojawienia się błędów. – Rozwiązanie problemu korekcji tych błędów jest kluczowe, jeśli chcemy zbudować komputer kwantowy mający praktyczne zastosowania – uważa dr Austin Fowler, jeden ze specjalistów od inżynierii kwantowej w Google.

Wykorzystuje się tu podobne techniki jak w przypadku klasycznych komputerów. Można zarządzić „głosowanie” – wykonać kwantowe obliczenia wiele razy i wybrać ten wynik, który pojawia się najczęściej. Inny sposób to robienie kopii zapasowej – tę samą informację przechowują dwie grupy kubitów, a gdy porównamy ich zawartość, możemy wykryć błędy powstałe pod wpływem zakłóceń.
Te rozwiązania mają jednak efekty uboczne – komputery kwantowe działają wolniej, niżby mogły. Wymagają też rozbudowanej aparatury chłodzącej i izolacji, która chroni je przed zakłóceniami.

Dlatego wciąż wyglądają bardziej jak aparatura chemiczna niż komputer i jeszcze sporo czasu minie, zanim znajdą zastosowania w naszym codziennym życiu.

Natalia Łomnicka – studentka Wydziału Automatyki, Elektroniki i Informatyki Politechniki Śląskiej.
Jan Stradowski – szef działu nauki „Focusa” z wykształcenia lekarz, z zamiłowania biolog i przyrodnik. W radiu TOK FM prowadzi audycję „Człowiek 2.0”.