Ảnh bởi
Greg Rakozy
trên
Unsplash

Những sự kiện kỳ lạ

Năm 1991, chính phủ Bỉ đã bắt đầu thử nghiệm bầu cử bằng máy. Mỗi người đi bầu sẽ được phát một thẻ từ, họ cho thẻ từ vào máy và bấm chọn ứng viên. Sau khi bầu, thẻ từ sẽ được thu lại. Kết quả sẽ được lưu ở hai nơi: trong máy và trong thẻ, nhằm phục vụ mục đích kiểm tra. Sau hơn chục năm thử nghiệm, quan sát và kiểm tra, họ tự tin rằng hệ thống bầu cử qua máy đã được chứng nhận là an toàn và chính xác. Rất tiếc, họ đã nhầm.
Máy bỏ phiếu ở Bỉ (nguồn: WYNC studios)
Máy bỏ phiếu ở Bỉ (nguồn: WYNC studios)
Ngày 18/5/2003, tại khu vực Schaerbeek thuộc thủ đô Brussels, sau khi quan sát số phiếu, các nhân viên đã phát hiện ra một hiện tượng lạ: Maria Vindevogel, một ứng viên có ít tiếng tăm, nhận được nhiều số phiếu hơn mong đợi. Mong đợi ở đây không có nghĩa là dự đoán về mặt chính trị, mà là số liệu được tính toán: về mặt toán học mà nói, Maria không thể có được số phiếu như vậy. Đây là lúc các thẻ từ được sử dụng cho việc đếm lại. Sau khi việc đếm lại hoàn tất, số phiếu của tất cả các ứng viên khác đều không đổi, ngoại trừ Maria Vindevogel. Số phiếu của bà Maria đã giảm từ 4610 xuống 514, một khoảng chênh lệch là 4096. Chênh lệch hơn 4096 phiếu, với các nhân viên bầu cử, có thể nói là một điều không tưởng.
Ở một nơi khác, một gamer tên là DOTA_Teabag, trong lúc đang speedrun trò Super Mario 64, nhân vật Mario của anh đã bất ngờ dịch chuyển đến một vị trí khác trong map. Điều này vô cùng vô lí và khó hiểu do không hề có sự xuất hiện của dụng cụ hỗ trợ dịch chuyển nào. Nhiều người tin đây là bug của game, và có người đã treo thưởng 1000 đô cho ai tái tạo được hiện tượng này.
Hiện tượng dịch chuyển xuất hiện ở giây thứ 9
Còn khá nhiều các sự cố liên quan đến máy tính khác đã được báo cáo trên thế giới, và các điều tra viên đã đi tới khả năng mà ai mới nghe cũng tưởng họ đang đùa: thủ phạm là vũ trụ.

Những phát hiện ban đầu

Ngay sau khi thấy được lỗi trong máy bỏ phiếu, các chuyên gia máy tính đã được triệu tập để kiểm tra lại hệ thống máy móc của quá trình bầu cử. Họ kiểm tra lại từng dòng code, chạy các kịch bản kiểm thử phần mềm, kiểm tra phần cứng, nhưng không thể tái tạo được lỗi. Sau nhiều lần mày mò mà không có kết quả, họ quyết định suy nghĩ theo hướng khác, tập trung vào con số bầu bị lệch là 4096.
Với lập trình viên, con số 4096 hoàn toàn không phải ngẫu nhiên trong vụ việc này: 4096 là 2 mũ 12. Trong hệ thống máy tính, các con số được biểu thị dưới dạng 16bit, tức là 16 con số 1 và 0 nối tiếp nhau. Nếu 514 là 0000 0010 0000 0010, thì 4610 sẽ là 0001 0010 0000 0010. Vậy là, để bà Maria nhận được thêm 4096 phiếu, thì bit thứ 13 (tính từ phải sang trái) phải bị chuyển từ 0 sang 1.
Tương tự với vụ việc của gamer DOTA_Teabag, đã có người tái tạo được lỗi với hướng tiếp cận là sửa bit. Cụ thể là trước khi bị dịch chuyển, nhân vật Mario có giá trị vị trí theo trục dọc là 0000 0000 1100 0101, sau khi bị lỗi, vị trí đó là 0000 0000 1100 0100, tức là bit đầu tiên (bit bên phải ngoài cùng) đã bị thay đổi. Người này đã tái tạo được y chang lỗi mà DOTA_Teabag bằng cách viết một đoạn code thay đổi bit đầu tiên từ 1 về 0.
Bên trái là video gốc, bên phải là phần tái tạo. Hãy để ý ở giây thứ 9
Nhưng đây đâu phải là cách mà máy tính hoạt động? Con người thiết kế ra hệ thống máy tính và các bit với mục đích là các bit đó sẽ chỉ thay đổi theo lệnh của người dùng. Nhưng hệ thống nào cũng có những sai sót và lỗ hổng, người dùng chưa thấy nó xuất hiện không có nghĩa là nó không tồn tại.

Tìm về gốc rễ của vấn đề

Lúc bấy giờ, các điều tra viên của chính phủ Bỉ đã tìm được các báo cáo về sự cố thay đổi bit, hay còn gọi là bit-flipping, từ các công ty máy tính khác trên thế giới vào khoảng những năm 70. Năm 1978, Intel nhận ra một vài lỗi bit-flipping kỳ lạ trên những thanh RAM của họ. Các bit 1 bị xoay về 0 và ngược lại mà chẳng có lí do gì. Sau nhiều nỗ lực tìm hiểu, họ thấy rằng vấn đề đến từ vỏ bọc ngoài làm bằng sứ của con chip. Nguyên liệu của phần vỏ sứ này được truy nguồn đến một nhà máy ở sông Green, bang Colorado. Nhà máy này nằm ở hạ nguồn của một mỏ khai thác Uranium cũ. Các hạt phóng xạ hoà vào nguồn nước, đi vào trong quy trình làm ra vỏ sứ và đến tay Intel. Các nguyên tố phóng xạ phóng ra các hạt alpha (mang điện tích dương) và beta (mang điện tích âm). Về bản chất thì các bit được lưu trữ ở các transistor, và các hạt này hoàn toàn có thể gây thay đổi giá trị điện tích tại các transistor đó. Các nhà khoa học cho thấy rằng một lượng Uranium và Thorium rất nhỏ cũng đủ gây ra hiện tượng bit-flipping.
Từ sau phát hiện này, các nhà sản xuất linh kiện và các công ty máy tính đã vô cùng cẩn trọng trong việc đảm bảo về mặt phóng xạ cho các sản phẩm của họ. Nên là việc bit-flipping tại máy đếm phiếu không đến từ phóng xạ nằm trong bộ chip của nó. Nhưng nếu không phải vậy, thì nó đến từ đâu?
Từ khi khoa học phát hiện ra nguyên lý của sự phóng xạ, đã có nhiều nỗ lực nhằm đo đạc hiện tượng này. Năm 1911, nhà vật lý Victor Hess đã đo đạc mức phóng xạ ở các độ cao khác nhau thông qua các chuyến bay khinh khí cầu. Kết quả là mức phóng xạ tăng lên khi khinh khí cầu tăng độ cao. Vậy phóng xạ không đến từ Trái Đất, mà chúng đến từ vũ trụ.
Các tia vũ trụ (nguồn: ExtremeTech)
Các tia vũ trụ (nguồn: ExtremeTech)
Các tia vũ trụ, hệ quả từ những vụ nổ của các hành tinh hay từ hố đen, bắn các hạt đi khắp không gian và một số đã đến Trái Đất. Những hạt đó thường va chạm với các phân tử không khí, tạo thành hàng loạt các hạt neutron, proton, eletron, photons, etc. Những hạt này bay khắp bầu khí quyển, và một vài hạt có thể đã bay vào đúng chỗ, cho Maria Vindevogel thêm 4096 phiếu bầu.

Bảo vệ mình trước vũ trụ

Qua những case study về bit-flipping, các hệ thống máy tính và các nhà sản xuất phần cứng đã đưa ra nhiều giải pháp nhằm giảm thiểu tối đa rủi ro về bit-flipping.
Chip máy tính có thêm bộ nhớ ECC, hay là Error Correction Code, nhằm kiểm tra và sửa lỗi bit-flipping gây ra từ tín hiệu điện nhận được. Các hệ thống máy tính quan trọng hoặc là siêu máy tính sẽ backup dữ liệu định kỳ và được trang bị cảm biến phóng xạ. Phần mềm điều khiển máy bay và tàu vũ trụ sẽ được chạy cùng lúc bởi nhiều máy tính riêng biệt: khi một máy bị bit-flip, các máy còn lại sẽ kiểm tra và chiếm quyền điều khiển, ngăn chặn lỗi từ máy bị bit-flip.
Đây là lí do vì sao xe tự hành Perseverance Rover vẫn được sử dụng ở hành trình khám phá sao Hoả năm 2020 mặc cho nó đã 20 tuổi: các linh kiện và máy móc của nó chịu được phóng xạ gấp 40 lần máy tính bình thường.
Xe tự hành Perserverance Rover (nguồn: NASA)
Xe tự hành Perserverance Rover (nguồn: NASA)

Lời kết

Nếu lần tới khi bạn đang thi online, bỗng nhiên máy tính của bạn bị tắt đột ngột, hoặc nếu bạn là developer và có thể một hôm nào đó khách hàng bỗng kêu ầm lên vì sản phẩm của bạn bị bug, cái bug mà bạn đinh ninh là không hề tồn tại và bạn thử hàng nghìn lần không tái tạo được, rất có thể lúc đó bạn là nạn nhân xấu số và hiếm hoi của tia phóng xạ đến từ một vụ nổ hành tinh xảy ra trước đây hàng triệu năm ở một nơi cách bạn hàng triệu năm ánh sáng.
Chẳng cần phải bốc tụ bài nào cả, bạn đã nhận được tín hiệu từ vũ trụ rồi.

Referrences: