作者: mutourend & lynndell, Bitlayer Research Group

1. Introducere

Discreet Log Contract (DLC) este un cadru de execuție a contractului bazat pe oracol, propus de Tadge Dryja de la MIT în 2018. DLC permite două părți să efectueze plăți condiționate pe baza unor condiții predefinite. Ambele părți predetermină și pre-semnează rezultatele posibile și folosesc aceste pre-semnături pentru a executa plata atunci când oracolul semnează rezultatele. Prin urmare, DLC permite noi aplicații financiare descentralizate, asigurând în același timp siguranța depozitelor Bitcoin.

Articolul anterior „Analiza principiilor DLC și gândurilor de optimizare” a rezumat avantajele DLC în ceea ce privește protecția confidențialității, contractele complexe și riscul scăzut al activelor. De asemenea, a analizat existența riscurilor cheie, riscurile de încredere descentralizate, riscurile de coluziune etc DLC și introduceți oracole descentralizate, semnături de prag, mecanisme de provocare optimiste etc. în DLC pentru a rezolva diverse probleme cu care ar trebui să se confrunte. Deoarece DLC implică trei părți: oracolul, Alice și Bob, este relativ complex pentru diferite părți să se complice pentru a ataca exhaustiv, rezultând o strategie de prevenire relativ complexă. Strategiile complexe de apărare nu sunt perfecte, nu sunt conforme cu principiul simplității și nu sunt frumusețea simplității.

În Bitcoin, orice comportament al oricărui participant trebuie implementat prin UTXO. Prin urmare, utilizarea unui mecanism de consens pentru a se asigura că UTXO este corect poate rezista atacurilor arbitrare. În mod similar, în DLC, orice comportament al oricărui participant trebuie implementat prin CET (Contract Execution Transaction). Prin urmare, utilizarea unui mecanism de provocare optimist pentru a se asigura că CET este corectă poate rezista atacurilor arbitrare. Mai exact, după ce oracolul promite 2 BTC, poate semna CET. Adăugați mecanism de provocare optimist la CET. Dacă CET nu este contestat, sau provocarea este îndeplinită cu succes, CET este corect și decontarea poate fi finalizată, iar oracolul este dezlegat și primește taxe de manipulare dacă Oracolul încearcă să facă rău, oricine poate contesta cu succes, CET-ul nu va fi decontat, iar oracolul va pierde Depozitul este depus și oracolul nu poate semna din nou același CET. În conformitate cu marea simplitate, are frumusețea simplității.

2.Principiul DLC

Alice și Bob semnează un acord de pariuri: pariază că valoarea hash a blocului ξ este un număr par sau impar. Dacă este un număr impar, Alice câștigă jocul și poate retrage activele dacă este un număr par, Bob câștigă jocul și poate retrage activele; Folosind DLC, informațiile blocului ξ sunt transmise prin oracol pentru a construi o semnătură condiționată, astfel încât câștigătorul corect să câștige toate activele.

Generatorul curbei eliptice este G și ordinul este q. Perechile cheie ale oracolului, Alice și Bob sunt (z, Z), (x, X), (y, Y), respectiv.

Tranzacție de injecție de capital (în lanț): Alice și Bob creează împreună o tranzacție de injecție de capital, fiecare blocând 10 BTC într-o ieșire cu semnături multiple 2 din 2 (o cheie publică X îi aparține Alicei și o cheie publică Y îi aparține Bob).

Construirea CET (în afara lanțului): Alice și Bob creează CET1 și CET2 pentru tranzacțiile de finanțare a cheltuielilor.

Oracolul calculează angajamentul R = k · G, apoi calculează S și S'

S := R - hash(OddNumber, R) · Z

S' := R - hash(Număr par, R) · Z

Apoi, noile chei publice corespunzătoare lui Alice și Bob sunt următoarele:

PK^{Alice} := X + S

PK^{Bob} := Y + S'.

Decontare (off-chain -> on-chain): Când al doilea bloc este generat cu succes, oracolul va semna CET1 sau CET2 corespunzător pe baza valorii hash a blocului.

Dacă hash-ul este impar, oracolul semnează s după cum urmează

s := k - hash(OddNumber, R) z

Difuzare CET1.

Dacă hașul este par, oracolul semnează s'

s' := k - hash(Număr Par, R) z

Difuzare CET2.

Retrage monede (în lanț): dacă oracolul difuzează CET1, Alice poate calcula noua cheie privată și poate cheltui cei 20 BTC blocați

sk^{Alice} = x + s

Dacă oracolul difuzează CET2, Bob poate calcula noua cheie privată și poate cheltui cei 20 BTC blocați

sk^{Bob} = y + s'

Echipa de cercetare Bitlayer a descoperit că în procesul de mai sus, orice comportament trebuie implementat prin CET. Prin urmare, trebuie utilizat doar mecanismul de provocare optimist pentru a se asigura că CET este corect și poate rezista oricărui atac. CET-urile greșite vor fi contestate și nu vor fi executate, în timp ce CET-urile corecte vor fi executate. În plus, oracolul trebuie să plătească un preț pentru comportamentul rău intenționat.

Programul care trebuie contestat este f(t), atunci CET ar trebui construit după cum urmează

s = k - hash(f(t), R) z.

Să presupunem că situația reală este că valoarea hash a blocului ξ este un număr impar impar, adică f(ξ) = OddNumber, iar oracolul ar trebui să semneze CET1

s := k - hash(OddNumber, R) z.

Cu toate acestea, oracolul a făcut ceva rău și a schimbat valoarea funcției în Even, semnând CET2:

s' := k - hash(Număr Par, R) z.

Prin urmare, orice utilizator poate învinge acest comportament rău intenționat conform f(ξ) ≠ OddNumber.

3.OP-DLC 2

OP-DLC include următoarele 5 prevederi:

  • Oracolul este compus dintr-o coaliție. Există n participanți în coaliție și orice membru poate semna CET. Doar angajând 2 BTC, mașina Oracle poate emite semnături și poate câștiga taxe de manipulare. Dacă un membru face rău, miza este pierdută. Alți membri pot continua să semneze CET pentru a se asigura că utilizatorii pot retrage fonduri. Alice și Bob pot deveni, de asemenea, oracole, având cu adevărat încredere doar în ei înșiși și minimizând încrederea.

  • Dacă oracolul face rău și modifică rezultatul, va duce inevitabil la situația f1(ξ) ≠ z1, f2(z1) ≠ z2. Prin urmare, orice participant poate iniția o provocare, adică să efectueze o tranzacție Disprove-CET1.

  • Dacă oracolul semnează CET în mod onest, nicio parte participantă nu poate iniția o tranzacție de respingere validă. După 1 săptămână, CET poate fi decontat corect. În plus, oracolul primește o recompensă de 0,05 BTC ca ocupare a capitalului pe o săptămână a celor 2 BTC promiși și comisionul de gestionare pentru semnarea sinceră a CET.

  • Orice participant poate contesta Oracle_sign:

    • Dacă Oracle_sign este sincer, tranzacția Disprove-CET1 nu poate fi inițiată și decontarea CET va fi executată după 1 săptămână. În plus, mașina oracol este angajată să deblocheze și să primească taxe de manipulare;

    • Dacă Oracle_sign este necinstit, adică oricine inițiază cu succes tranzacția Disprove-CET1 și cheltuiește cu succes ieșirea conectorului A, semnătura oracolului va fi invalidă, iar 2BTC promis se va pierde, iar oracolul nu va mai putea folosi contractul DLC în viitor Dacă se inițiază o semnătură cu același rezultat, Settle-CET1 care se bazează pe ieșirea conectorului A va fi permanent invalid.

  • Provocările din OP-DLC sunt fără permisiune, adică orice participant poate supraveghea dacă contractul din OP-DLC este executat corect. Prin urmare, încrederea în oracol este redusă la minimum. În comparație cu Lightning Network, Alice și Bob pot fi și offline. Pentru că oracolul va soluționa CET doar cu semnături oneste, iar oracolele malefice vor fi contestate și pedepsite de oricine.

avantaj:

  • Grad ridicat de control asupra activelor și încredere doar în ei înșiși: Alice și Bob pot deveni amândoi oracole și pot semna CET. Mecanismul de provocare optimist va învinge CET greșit, așa că răul nu poate fi făcut. Prin urmare, OP-DLC permite utilizatorilor să creadă doar în ei înșiși. În BitVM, utilizatorii trebuie să acționeze ca Operatori și să participe la toate depozitele ulterioare pentru a avea încredere doar în ei înșiși. Dacă un utilizator ca Operator participă doar la un singur depozit UTXO în BitVM, iar UTXO poate fi rambursat legal de către orice alți Operatori (n-1), utilizatorul va trebui să aibă încredere în alți Operatori pentru a avansa fonduri în viitor. Permisiunile de rambursare ale operatorului BitVM sunt blocate pentru fiecare depozit UTXO.

  • Utilizare ridicată a capitalului: dacă utilizatorii au încredere doar în ei înșiși, suma de fonduri necesare este diferită. În OP-DLC, utilizatorii se bazează pe ei înșiși pentru a retrage fonduri și nu trebuie să avanseze o sumă egală de fonduri în BitVM, utilizatorii trebuie să avanseze o sumă egală de fonduri și apoi să fie rambursați. Acest lucru aduce o presiune financiară mai mare.

  • Oracolul care poate semna trebuie determinat atunci când face o depunere în OP-DLC, dar utilizatorul poate, de asemenea, să devină un oracol și să semneze pentru el însuși.

neajuns:

  • Timpul de retragere durează 1 săptămână: în esență, costurile de capital ale OP-DLC și BitVM există și sunt egale. Retragerile OP-DLC trebuie să treacă printr-o perioadă de provocare înainte de a putea fi obținute fonduri, dacă BitVM se bazează pe utilizatorii să avanseze, aceeași sumă de fonduri avansate trebuie să treacă printr-o perioadă de provocare înainte de a putea fi rambursate cu succes. Dacă BitVM se bazează pe alți Operatori pentru a avansa retrageri rapide, înseamnă că Operatorul trebuie să plătească aceeași sumă de fonduri și costuri de timp ca și taxele de gestionare.

  • Numărul de semnături care necesită presemnare este în creștere rapidă și este legat liniar de numărul de CET. Sunt necesare cât mai multe CET posibil pentru a enumera toate rezultatele retragerii.

4. Concluzie

OP-DLC introduce mecanismul de provocare optimist în CET pentru a se asigura că CET greșit nu este soluționat și oracolul rău intenționat corespunzător își pierde angajamentul, se asigură că CET-ul corect este executat, iar gajul oracol este deblocat și se obține taxa de gestionare. Această metodă poate rezista oricărui atac și are frumusețea simplității.

referințe

  1. Specificații pentru contracte de jurnal discret

  2. Contracte de jurnal discret

  3. Analiza principiului DLC și considerații de optimizare

  4. Rollup optimist

  5. BitVM 2: Verificare fără permisiuni pe Bitcoin