Няма начин да докажете, че кодът е истинският код
Дори ако софтуерът за гласуване е публикуван, само това не е достатъчно. Трябва също да можете да го преостроите сами и да получите точно същата програма, която машината работи. Без това публикуваният код може да не съответства на секретната версия, която е действително инсталирана.
Видео с обяснение идва скоро
60-секундна, ясна обяснение на тази пропуск.
Какво се случи всъщност
Това е добре установен принцип на софтуерния лос на доставки. Проектът Reproducible Builds, който е междуотраслев, съществува точно защото четенето на изходния код не е достатъчно — трябва независимо да можете да го преостроите и да потвърдите, че получавате идентична програма, бит по бит. В противен случай "ето нашия изходен код" и "ето какво работи" са две различни, непроверяеми неща.
Къде стойностите днес
Повечето юрисдикции днес дори не изискват изходният код на софтуера за гласуване да е публичен (вижте "Софтуер, който не е позволено да проверявате") — така че изискване на възпроизводимо издание, което всеки може да съвпадне с работещата машина, е още по-редко. Цифрата по-горе отразява текущото законодателство.
Четене на меню не е същото като вкусване на храната
Публикуването на изходния код е като публикуване на рецептата на ресторант. Добре е — но това не доказва, че кухнята наистина готвила тази рецепта. Може да я е следвала. Може да не е. От самата рецепта не можете да разберете.
Възпроизводимото издание затваря този пропуск: всеки може да вземе публикувания изходен код, да го компилира сам и да провери, че получава точно същата програма — бит по бит — която е инсталирана на машината. Така по-широкият софтуерен свят хваща код, който е бил манипулиран след проверка.
Защо е важно
Без възпроизводимо издание, "ето нашия отворен код" и "ето какво работи на машината" са две отделни твърдения, и само едно от тях може да бъде проверено. Публикувана чиста версия може да съществува до секретна изменена, и никоя външна страна не би могла да докаже разликата.
Как TrustVoting го решава
TrustVoting се ангажира с възпроизводимо издание: преостроите публикувания изходен код, получавате идентични двоичен файл — след това слоят за целостност (контролни суми + удостоверена загрузка) доказва, че машината работи точно с този двоичен файл. Отворен код → издание, което всеки може да възпроизведе → машина, която доказва, че го работи.
Как TrustVoting я затваря
TrustVoting се ангажира с възпроизводимо издание: всеки може да вземе публикувания изходен код, да го преострои и да потвърди, че произвежда точно двоичния файл, който машината работи — след това слоят за целостност (контролни суми + удостоверена загрузка) доказва, че машината работи с този двоичен файл.