Qubitensor
O cursă zilnică de minerit pe două probleme folosite pentru a testa algoritmii cuantici: Max-Cut și starea fundamentală a unui mic magnet cuantic. Contractul generează problemele din valoarea aleatoare a blocului și punctează singur fiecare răspuns, fără oracol și fără validatori.
Studiul de caz 03 din 04 · Ethereum mainnet · activ din 15 octombrie 2026 · blocul 26.200.922
- Rol
- Concepție, laborator de algoritmi, model economic, Solidity, testare, lansare și miner în browser
- Lansat
- 15 octombrie 2026, 22:30 UTCBlocul 26.200.922, prin Custom Launch de la Programmable
- Contracte
- Șapte scrise de mine, toate verificateEtherscan, potrivire exactă; plus seiful de comisioane al platformei
- Testare
- 67 de teste Foundry pe un fork de mainnetToate cele 67, rulate din nou cu succes pe 20 octombrie 2026
- Tehnologii
- Solidity 0.8.26 (via IR), Foundry, Solady, Uniswap v4, TypeScript
- Permisiunile hookului
- 0x28CC
Pondere tăiată
0din 643
Faceți clic pe un nod pentru a-l muta în cealaltă parte.
Răspunsul pe care l-ar dezvălui un miner, 8 octeți, nodul x în bitul x mod 8 al octetului x / 8: 0x
keccak256("qubitensor.demo.0"); la construirea acestei pagini, toate cele 128 de muchii și 64 de scoruri au fost verificate față de contractul implementat. Cea mai bună dintre 24 de rulări de călire simulată a găsit 570 din 643 (88,6%); o trecere greedy de la un start aleatoriu ajunge la aproximativ 81,3%.Proiectul
Qubitensor transformă Ethereum într-o cursă zilnică pe două probleme dificile. În fiecare zi UTC, oricine poate deschide o rundă, iar contractul derivă din valoarea aleatoare a blocului un graf Max-Cut nou și un magnet cuantic nou. Minerii sigilează un hash al răspunsului, îl dezvăluie după 20:00 UTC, iar contractul îl punctează exact.
Primii trei pe fiecare problemă împart o parte din fondul de premii, alimentat din comisioanele de tranzacționare, și QBT nou minat. Deținătorii pot face staking în sprijinul unui miner și pot împărți câștigurile acestuia. Când răspunsurile devin prea ușoare, problemele cresc.
Problema
Proiectele crypto care folosesc cuvântul „cuantic” oferă rareori o modalitate de a verifica munca. Rețele precum Bittensor chiar recompensează calculul, dar punctarea este făcută de validatori, off-chain. Întrebarea de aici era mai restrânsă: poate un token să plătească pentru o muncă pe care lanțul însuși o generează și o verifică, de la un capăt la altul?
Și poate spune direct ce nu are cum să știe lanțul? Un contract nu poate deosebi un calculator cuantic de un laptop, iar la dimensiunile pe care le poate verifica Ethereum, astăzi se așteaptă ca algoritmii clasici să câștige. Qubitensor înregistrează tipul de solver declarat de fiecare miner, îi punctează pe toți la fel și lasă evidența publică să arate dacă asta se schimbă vreodată.
Ce am construit
- Un laborator de algoritmi și un model economic
Algoritmi aleatori, greedy și de călire simulată, rulați pe formele reale ale problemelor, au stabilit regulile: un prag de 85% pentru Max-Cut (o singură trecere greedy ajunge la aproximativ 81%; cea mai bună dintre patru rulări de călire simulată a trecut de 85% pe toate cele 112 grafuri testate), un start la 256 de noduri, unde algoritmii independenți nu mai ajung la egalitate, și plăți de 20% din fondul de premii pe rundă, împărțite 70, 20 și 10.
- Șapte contracte
Tokenul, cu propriile funcții de cumpărare și vânzare; hookul; Arena, care gestionează rundele, sigiliile, dezvăluirile, clasamentul, emisiunea, stakingul și dificultatea; două evaluatoare, Cut și Chem; inițializatorul lansării, Ignition; și VaultKeeper, care păstrează lichiditatea.
- Un simulator de circuite în Solidity
Chem rulează un circuit de opt qubiți în numere întregi cu virgulă fixă și îi citește energia printr-un cât pe care rotunjirea nu îl poate împinge sub starea fundamentală. Costă 466.355 gas la șase qubiți și 1.721.623 la opt.
- Gemeni JavaScript pentru ambele evaluatoare
Copii pas cu pas, testate față de contracte, ca un miner să știe scorul exact înainte de sigilare. Pe ele se bazează un script de minerit pentru început și un miner în browser care sigilează și dezvăluie direct din pagină.
- 67 de teste pe un fork de mainnet
Inclusiv întreaga lansare prin fabrica reală de implementare a platformei și decontarea în cel mai rău caz, măsurată sub limita de gas a blocului.
- Pachetul de lansare
Un depozit public de cod sursă, setări de compilare alese astfel încât scanerul de bytecode al platformei să citească corect contractele, și configurația lansării. Aprobat la prima depunere.
Brand și site
Qubitensor arată ca un instrument științific care merge după ceas: aproape negru, titluri condensate peste date monospace, violet pentru probleme și lumini roșii de start la dezvăluirea de la 20:00 UTC. Simbolul, prezentarea proiectului și site-ul folosesc un singur sistem, de la câmpul de particule de la deschidere până la pagina de minerit care urmează ziua UTC a rundei.
- Paletă
- Noapte
#050507Alb#F2F2EEViolet#8B7BFFRoșu semnal#FF4D3DCyan#4FE3FFLime#C2FF73 - Tipografie
- Saira Condensed pentru titluriSaira pentru textJetBrains Mono pentru date
Cum funcționează
- 1Generare
Deschiderea unei runde o inițializează din valoarea prevrandao a blocului. Graful Max-Cut are n noduri și 2n muchii ponderate; magnetul are între 6 și 8 qubiți, cu cuplaje și câmpuri aleatoare.
- 2Sigilare
Până la 20:00 UTC, minerii depun doar un hash al răspunsului și o garanție de 0,0003 ETH.
- 3Dezvăluire
Între 20:00 și miezul nopții, Arena punctează exact fiecare răspuns dezvăluit. La Max-Cut contează doar răspunsurile de la 85% din ponderea grafului în sus; la chimie, doar cele sub cel mai bun șir simplu de biți.
- 4Clasare
Trei locuri pe problemă. Dacă doi mineri dezvăluie același răspuns, sigiliul mai vechi păstrează locul, așa că nimeni nu câștigă nimic grăbindu-se să dezvăluie.
- 5Plată
Decontarea unei runde plătește 20% din fondul de premii și emite QBT nou al zilei, jumătate pe fiecare problemă: 70, 20 și 10 pentru cele trei locuri, împărțite cu susținătorii lor.
- 6Adaptare
O egalitate între cele mai bune două tăieturi mărește următorul graf cu 25%; trei runde fără niciun răspuns la 85% îl micșorează cu 20%. Fiecare serie de 30 de runde productive adaugă un qubit.
Deschidere. Oricine poate deschide runda zilei, o singură dată, înainte de 20:00 UTC. Sămânța este keccak(prevrandao, round, Arena); graful Max-Cut este generat din keccak(seed, 0), iar magnetul din keccak(seed, 1).
Sigilare. Minerii depun un hash al răspunsului, cu o garanție de 0,0003 ETH. Nimic din sigiliu nu arată răspunsul, iar sigiliile sunt înregistrate separat pentru fiecare miner, așa că un hash copiat din mempool nu blochează pe nimeni.
Dezvăluire. Arena punctează exact fiecare răspuns și păstrează trei locuri pe problemă. Garanția se returnează indiferent de scor.
Decontare. Oricine poate deconta rundele încheiate, începând cu cea mai veche, până la 12 pe apel: 20% din fondul de premii și QBT nou al zilei, jumătate pe fiecare problemă, împărțite 70, 20 și 10.
Fig. 2. O rundă, o zi UTC. Fiecare pas poate fi făcut de oricine; contractul impune orele.
RY rotește un qubit cu un unghi ales de miner, un număr de 16 biți pe poartă: 30 de unghiuri pentru șase qubiți, 40 pentru opt.
Punctele unite sunt porți CZ între qubiți vecini. RY și CZ păstrează fiecare amplitudine reală, așa că contractul poate simula starea exact, în numere întregi.
Măsoară energia înseamnă câtul Rayleigh <a|H|a> / <a|a> al stării, așa cum a fost calculată, pentru magnetul rundei H = sum J_ij Z_i Z_j + sum h_i X_i. Nu poate coborî niciodată sub energia reală a stării fundamentale, așa că rotunjirea nu poate falsifica un scor.
Fig. 3. Circuitul pe care îl simulează Chem.sol: patru straturi de rotații RY și porți CZ, apoi un strat RY final, desenat pentru șase qubiți.
Fig. 4. Unde ajunge taxa de 2% din partea în ETH a fiecărei tranzacții. Comisionul LP de 1% al poolului merge la poziția blocată, iar 0,30% la platformă.
Contractele, explicate
Cantitate și emitere
Pot exista cel mult un miliard de QBT. Jumătate au fost create la lansare și plasate în pool. Cealaltă jumătate nu există încă: Arena o emite rundă cu rundă minerilor care se clasează și susținătorilor lor, 250 de milioane în primul an, apoi în fiecare an jumătate din cât în anul precedent. Nimic altceva nu poate emite.
MAX_SUPPLY = 1_000_000_000 ether; POOL_SUPPLY = 500_000_000 ether merge la inițializator. mint acceptă doar ARENA și nu depășește niciodată MINED_SUPPLY. emissionOf(round) este FIRST_YEAR / 365 pe rundă și se înjumătățește la fiecare 365 de runde.
Ardere
Orice deținător își poate arde propriile QBT. Un sfert din taxa de tranzacționare cumpără QBT din pool și îl arde.
burn; QubitHook.buyback() poate fi apelat de oricine, o dată pe bloc, și cheltuiește cel mult 1% din ETH-ul pe care poolul îl are la prețul curent. burned le numără pe amândouă.
Transferuri, cumpărare și vânzare
Un ERC-20 standard, fără taxă pe transfer și fără listă neagră. Aplicația Uniswap nu poate ruta acest pool, așa că tokenul însuși poate cumpăra din pool și vinde în pool, refuzând orice execuție sub un minim stabilit de trader.
ERC20 din Solady. buy(minOut) cheltuiește msg.value și returnează ce lasă poolul; sell(amount, minOut) vinde din contul apelantului, fără nicio aprobare. Ambele eșuează sub minOut.
Comisioane
Fiecare tranzacție plătește 2% din partea sa în ETH: 1% proprietarului, 0,5% fondului de premii și 0,5% pentru răscumpărare și ardere. Nu există suprataxă de lansare. Comisionul de lichiditate de 1% al poolului merge la poziția blocată, iar 0,30% la platforma de lansare.
FEE = 20_000 pips, reținut din ETH-ul specificat înainte de swap sau din ETH-ul rezultat după el. Cotele se acumulează ca drepturi ERC-6909; sendOwnerFee(), fundPrizes() și buyback() plătesc fiecare doar acolo unde spune numele lor.
uint256 ownerPart = fee / 2;
uint256 prizePart = fee / 4;
ownerShare += ownerPart;
prizeShare += prizePart;
burnShare += fee - ownerPart - prizePart;Premii și staking
Fiecare rundă plătește 20% din fondul de premii și QBT nou al rundei. Deținătorii pot face staking în sprijinul unui miner, începând cu runda următoare; fiecare miner împarte între 0% și 20% din câștiguri cu susținătorii săi, iar stakingul îi crește ponderea cu până la 20%, dar niciodată peste locul din fața lui.
PAYOUT_BPS = 2_000; locurile împart 70/20/10. stake, unstake și claimStake; setBackerShare, până la 2.000 bps, decontează întâi rundele anterioare. BOOST_MAX_BPS = 2_000, integral la 10.000.000 QBT. Produsele se calculează pe 512 biți, așa că nici măcar un stake de 1 wei nu poate face să depășească (overflow) totalurile altcuiva.
Angajament și dezvăluire
Răspunsurile sunt sigilate ca hash-uri până la 20:00 UTC, așa că nimeni nu le poate copia. Un duplicat dezvăluit revine celui care a sigilat primul, iar un răspuns care nu este dezvăluit niciodată își lasă garanția fondului de premii.
sealHash = keccak256(abi.encode(round, subnet, solver, keccak256(answer), salt)), înregistrat separat pentru fiecare solver. firstSeal[round][keccak(subnet, answer)] păstrează cel mai mic număr de sigiliu. Garanția este returnată la dezvăluire sau păstrată în dueEth dacă minerul refuză ETH.
Punctarea Max-Cut
Graful este regenerat din sămânță în interiorul contractului, iar răspunsul, un bit pe nod, este verificat pe fiecare muchie. Scorul este exact.
Cut.score(seed, n, side) citește patru muchii din fiecare cuvânt keccak: două capete mod n și o pondere între 1 și 8. Nodul 0 trebuie să stea în partea 0, așa că un răspuns și imaginea lui în oglindă sunt identice. Aproximativ 320 gas pe muchie: 172.703 la 256 de noduri, 2.648.369 la 4.096.
Punctarea circuitului
Contractul simulează circuitul minerului pe magnetul rundei și îi măsoară energia. Un răspuns contează doar dacă bate orice configurație simplă, fără încâlcire cuantică (entanglement).
Chem.score(seed, q, angles): amplitudini în unități de 2^-62, rotunjite în jos; energia ca un cât Rayleigh întreg, cu împărțirea finală rotunjită în sus, în unități de 2^-60. Pragul este cea mai mică intrare de pe diagonală, adică cel mai bun șir simplu de biți.
Puterile proprietarului și ale administratorului
Nu există administrator, pauză, actualizare sau vreo setare ajustabilă. Portofelul proprietarului primește partea sa din taxă și comisioanele de lichiditate ale poziției blocate.
QBT.bind și QubitHook.bindArena rulează o singură dată, din inițializator, în tranzacția de lansare. Ignition.ignite rulează o singură dată, din fabrica de implementare. Fiecare setare este o constantă.
Lichiditate
Toate cele 500 de milioane de QBT destinate poolului au intrat ca o singură poziție, emisă direct către VaultKeeper, care poate doar să trimită proprietarului comisioanele acelei poziții. Până la plasarea acelei benzi, hookul a refuzat orice alt depozit și orice tranzacție.
beforeAddLiquidity admite, doar în blocul de deschidere, o singură bandă de la MIN_TICK la OPEN_TICK, cu cel puțin BAND_LIQUIDITY; după ea, depunerile sunt deschise tuturor. VaultKeeper.collectFees(tokenId) este singura funcție a contractului.
Testare și securitate
O revizuire adversarială separată a găsit o singură problemă de severitate scăzută: o dezvăluire returna garanția printr-un transfer direct, așa că un contract-miner care nu putea primi ETH rămânea blocat. Acum, dacă transferul nu reușește, rambursarea trece într-un sold pe care minerul îl retrage. Singura ei notă informativă, că cel care deschide o rundă alege blocul a cărui valoare aleatoare o inițializează, este declarată în contract: toți minerii primesc aceleași probleme timp de până la douăzeci de ore, așa că nu se câștigă niciun avans.
| Operațiune | Gas |
|---|---|
| Cumpărare de QBT cu 0,1 ETH | 205.042 |
| Vânzarea unei părți dintr-o deținere | 218.337 |
| Deschiderea unei runde | 100.530 |
| Sigilarea unui răspuns | 81.795 |
| Dezvăluire Max-Cut, 256 de noduri | 344.530 |
| Dezvăluire Max-Cut, 4.096 de noduri | 2.888.063 |
| Dezvăluire chimie, 6 qubiți | 612.336 |
| Dezvăluire chimie, 8 qubiți | 1.866.930 |
| Staking în sprijinul unui miner | 154.455 |
| Tranzacția de lansare pe mainnet | 12.334.928 |
Limite, spuse direct
- Lanțul nu poate deosebi un calculator cuantic de un laptop. Tipul de solver este declarația minerului, iar la dimensiunile pe care le poate verifica Ethereum, astăzi se așteaptă ca algoritmii clasici să câștige.
- O persoană poate înscrie mai multe răspunsuri diferite. Acestea coboară un alt miner în clasament doar dacă obțin un scor mai mare decât oricare dintre răspunsurile lui.
- Cel care deschide o rundă alege blocul a cărui valoare aleatoare o inițializează. Asta nu oferă niciun avans, pentru că toți primesc aceleași probleme timp de până la douăzeci de ore.
- Aplicația Uniswap nu poate ruta acest pool. Funcțiile de cumpărare și vânzare ale tokenului, alte routere și boții pot face acest lucru.
- Rundele se decontează doar când cineva apelează settle. Un apel închide cel mult douăsprezece runde, așa că rundele restante pot fi închise oricând cu un cost limitat în gas.
Starea on-chain
Date citite de pe Ethereum mainnet pe 20 octombrie 2026, la blocul 26.234.001
- Fuseseră deschise patru runde, câte una pe zi începând cu 17 octombrie 2026, cu 28 de răspunsuri sigilate în total.
- Fiecare dintre cele trei runde decontate a clasat răspunsuri pe ambele probleme.
- Graful avea încă 256 de noduri, iar circuitul 6 qubiți: dificultatea nu se modificase.
Contracte
| Contract | Adresă | Sursă verificată |
|---|---|---|
QBTToken ERC-20 cu cumpărare și vânzare |
0x0E2D39c62dd3A3BDc05D1d151Ff92fC5C9dF90A7 | Etherscan (se deschide într-o filă nouă) |
QubitHookHook Uniswap v4 |
0xf7EAdEbA2Eba60831ccD95E83802c6857EdB28CC | Etherscan (se deschide într-o filă nouă) |
ArenaRunde, clasament, emisiune, staking |
0x4F0fEf54dC12b7F0500311736B4F191a3443EC47 | Etherscan (se deschide într-o filă nouă) |
CutEvaluator Max-Cut |
0x72B0612Aeb59B72b2BcF83713514445e0c664f0e | Etherscan (se deschide într-o filă nouă) |
ChemSimulator și evaluator de circuit |
0x653C9280B72F2816DC1221a2A7A5021A5F7B0955 | Etherscan (se deschide într-o filă nouă) |
IgnitionInițializarea lansării |
0x123dc730bA027F3032ef0D2467dedd3e54963ae3 | Etherscan (se deschide într-o filă nouă) |
VaultKeeperCustodia lichidității |
0x1320445F7151E191b0e45876687F032b1452C0FA | Etherscan (se deschide într-o filă nouă) |
Seif de comisioaneComisionul platformei, cod Programmable |
0x8F8EC8343aB6f3a268cF0016019e9d185Fb40962 | Etherscan (se deschide într-o filă nouă)EthereumNativeFeeVaultV3 al platformei Programmable, nemodificat, implementat de hook. Etherscan îl arată ca potrivire similară cu originalul verificat al platformei. |
Toate cele șapte contracte scrise de mine sunt verificate pe Etherscan cu potrivire exactă. Compilator: solc 0.8.26, via IR, 1.000 de rulări ale optimizatorului, EVM țintă Cancun.
Depozitul de cod sursă: github.com/Qubitensor/qubitensor-contracts (se deschide într-o filă nouă)



