Voi presupune că aceste constante hard-coded sunt publice (cunoscute atât pentru deformator, cât și pentru evaluator). Există câteva opțiuni:
Tratați constantele ca intrări suplimentare în circuit, așa cum sugerați. Rețineți că firele de intrare pot fi reutilizate pentru mai multe porți, așa că aveți nevoie doar de una singură Adevărat
și fals
fir pentru întregul circuit.Cele mai multe scheme de fals sunt suportate nu
porți gratuit, așa că de fapt aveți nevoie doar de o constantă Adevărat
sârmă. În plus, se dovedește că puteți lua oricând Adevărat
eticheta firului să fie șirul tuturor zerourilor, fără pierderea generalității. Combinând toate aceste observații, firele de intrare extra constante nu adaugă niciun cost circuitului.
Propagați constante prin circuit. De exemplu, o poartă y=ȘI(x,adevărat)
devine just y=x
, ceea ce înseamnă că puteți înlocui y
fir prin X
în orice porți din aval care folosesc y
ca intrare. O poartă y=ȘI(x,fals)
devine y=fals
, și puteți propaga din nou y=fals
în aval în porţi care folosesc y
ca intrare. Făcând acest lucru, veți vedea că multe porți în aval de constanta hard-coded pot fi pur și simplu eliminate în întregime din circuit. Acest proces nu are nimic de-a face cu deformarea, ci doar simplifică circuitul boolean bazat pe intrări hard-coded.
În cazul în care constantele sunt cunoscute doar de către deformător, atunci scopul este de a simplifica circuitul/deformarea în timp ce se ascunde acele constante.
Cele mai multe scheme de deconformitate (și cu siguranță cele de vârf) susțin porți care absorb liber nu
porți, ceea ce înseamnă că poți deranja și(nu(x),y)
, și(x,nu(y))
, ... porți pentru același cost ca garbling an și
Poartă. De fapt, aceste scheme de fals ascund existența acestora nu
porti. Folosind această observație, puteți face în continuare numărul 1 de sus. Dacă trebuie să codificați o poartă y=și(x,fals)
atunci îți poți hrăni single-ul Adevărat
fir de intrare într-o poartă a formei y=și(x,NU(adevărat))
în timp ce ascunde prezenţa acestuia nu
(adică, ascunderea dacă poarta a fost codificată cu a Adevărat
sau fals
).
Cu toate acestea, vă puteți descurca puțin mai bine folosind „semi-poarta deconformabilă” din construcția semi-portilor. Acest lucru vă permite să deranjați și (x, adevărat)
sau și (x, fals)
poarta, în timp ce ascundeți care dintre ele este falsă, pentru jumătate din costul unui cu drepturi depline și
-Poartă.