După cum a spus Mark, este, în teorie, o problemă rezolvabilă (știm cum să o facem; metodele cunoscute nu sunt simple).
Cu toate acestea, modificând puțin lucrurile, putem face această problemă mai ușoară.
Soluția mea se bazează pe angajamentele Pedersen; acestea se bazează pe un grup mare de dimensiuni prime (unde problema logului discret este dificilă) și doi membri ai grupului $g$ și $h$ (care nu au o relație cunoscută; mai exact, nimeni nu știe soluția $x$ la $g^x = h$).
Un angajament Pedersen față de valoare $x$ este valoarea $g^x h^r$, pentru unii aleatoriu $r$; proprietăți; putem emite angajamentul (prin publicarea valorii $g^x h^r$), și apoi deschideți ulterior angajamentul (prin publicarea valorilor $x, r$; oricine poate verifica că acele valori dau angajamentul.
Cineva se uită la $g^x h^r$ nu poate determina ce $x$ este (de fapt, pentru orice valoare posibilă a $x$, există o valoare $r$ care ar da acea valoare a angajamentului)
Emitentul nu poate deschide angajamentul în două moduri; adică dacă emite un angajament $g^x h^r$, el nu poate găsi o valoare $r'$ astfel încât $g^{x'} h^{r'}$ evaluează la aceeași valoare.
Având în vedere acest context, el este propunerea mea:
Charlie îi trimite Alicei următoarele valori:
$x_1$ și $x_2$
Angajamente semnate față de acele valori, adică copii semnate ale $g^{x_1} h^{r_1}$ și $g^{x_2}h^{r_2}$
Valorile aleatorii $r_1$ și $r_2$ (pentru că a dat deja valorile pentru care s-a angajat, să-i dea aceste valori aleatorii este inofensiv)
Cheia lui publică
Alice calculează apoi $x = x_1 + x_2$, și generează o dovadă de cunoștințe zero că suma celor două valori angajate de către $g^{x_1} h^{r_1}$ și $g^{x_2}h^{r_2}$ este $x$. Acest lucru se poate face prin generarea unei dovezi a cunoașterii faptului că Alice cunoaște valoarea $s$ astfel încât $h^s = g^{x_1} h^{r_1} \cdot g^{x_2}h^{r_2} \cdot g^{-x}$; Alice poate genera o astfel de dovadă numai dacă $x_1 + x_2 = x$
Alice îi transmite apoi lui Bob valoarea $x$, cele două angajamente semnate, cheia publică (pentru ca Bob să poată verifica semnăturile) și dovada zero-knowledge (pe care Bob o poate verifica și el).
Acest lucru pare să abordeze obiectivul final (și destul de simplu; există câteva detalii la care am fluturat doar vag, totuși un pic de cercetare le va ridica).