Imaginați-vă că aveți un blockchain în care schema Proof of Work este factorizarea întregilor. Există un opcode care are două numere întregi $N,M$ unde se întoarce adevărat dacă $M\nu\în \{0,1,N\}$ și $N \mod M \equiv 0$. Acum, să presupunem că vrem un număr factorizat, să zicem $M_g$. Ar putea fi un număr Cunningham, un număr genial sau orice alt număr în care există un interes în a-i cunoaște factorizarea.
Putem crea o tranzacție în care scriptul de blocare pentru fondurile tranzacției este acest opcode $M_g$ ca primă intrare. În acest fel, scriptul de deblocare este orice factor non-trivial al $M_g$. Acest lucru ar permite oricui din blockchain să pretindă recompensa pentru această factorizare.
Două probleme: atacul miner la mijloc și atacul de reorganizare.
Atacul Miner-in-the-Middle: Minerul care primește o tranzacție cu scriptul de deblocare va putea să vadă factorul la vedere și să înlocuiască acea tranzacție cu una în care fondurile sunt trimise în portofelul lor în loc de a rezolvatorului.
Atacul de reorganizare Dacă valoarea monedei blockchain-ului este mare, există, de asemenea, un stimulent pentru a ataca blocul în care a fost extrasă o tranzacție de rezolvare prin re-rezolvarea acelui bloc cu o tranzacție înlocuită care se acreditează (atacatorul) și încearcă să creeze un lanț mai lung din acesta. bloc nou.
Deci, întrebarea devine cum pot fi trimise soluții în siguranță în acest blockchain? Este nevoie de un nou opcode? Este posibil să o faci în două tranzacții sau sunt necesare trei tranzacții?
Mulțumesc.
Notă: Nu am putut găsi etichete bune pentru această întrebare, așa că aleg orice, chiar și de la distanță legat. De asemenea, se pare că schimbul de stive de bitcoin este strict pentru bitcoin.