ZeroLink Test Aftermath - Beste anonyme sett vellykket oppnådd: 26, Generell evaluering: Usuksessfull, Årsak: Skalering av problemer med nettverk

Først av alt: Stor takk for alle som deltok! Jeg må innrømme at jeg ikke kunne holde tårene tilbake når jeg så den enorme støtten og aktiviteten dette samfunnet utførte. Over 100 personer deltok i testingen og mange ga uvurderlig tilbakemelding. Av denne grunn føler jeg meg forferdelig, og jeg må be om unnskyldning for det mislykkede resultatet av testingen.
Det må sies at CoinJoins skjedde, de skjer til og med akkurat nå mens jeg skriver disse linjene, men ikke i den skalaen jeg håpet, samlet sett forhindret forskjellige nettverksproblemer programvaren i å samordne hundrevis av jevnaldrende på en gang.

Å kreve belønningen for deltakelse på $ 10

Send meg en e-post til adam.ficsor73@gmail.com. Denne e-postadressen må inneholde din Bitcoin-adresse og en transaksjonsheks.
Få denne transaksjonsheksen fra HiddenWallet ved å bygge en transaksjon med en blandet mynt og klikke på "Copy Transaction Hex" -knappen. Ikke send det til nettverket, i stedet kansellerer det. Hvis du ville kringkaste dem, vil noen kunne kreve pengene dine fra meg.

Jeg vil vente et par dager på at alle skal kreve deltakelse, så betaler jeg det ut med batching (en transaksjon - mange utganger).

Hva gikk galt?

Jeg tester min egen kode

Et mindre problem var at å fyre opp noen virtuelle maskiner for å blande eller kjøre noen skript ikke er det samme som å la 100 brukere med eksotiske Linux-distribusjoner stresstest en programvare.

Men hovedspørsmålet stammer fra arten av integrasjonstesting: tester er ment å gi deg raske resultater. Hvis en test tar dager, er det sannsynligvis ikke en god test. Jeg har slike tester i HiddenWallet, tro meg, de er ikke morsomme. Men hva skjer når virkelige brukere blir registrert i miksen i flere dager? Viser ikke noe bra, og jeg var ikke forberedt på det.
Mange mistet i det stille nettkontakten, stakkar, noen av dem kan fremdeles tro at de blander seg.
Mange fikk en feilmelding: “koordinatoren gikk offline”, noe som ikke betydde at koordinatoren gikk offline, det betydde faktisk at klienten gikk offline, det er bare hvis du mister internett et øyeblikk, så slutter du å blande, uten koordinatoren å vite om det. Helt misvisende.
Det var noen andre problemer, men disse to la opp 80% til 90% av problemene.

positiver

TX med 26 Anonymitetssett

Den beste transaksjonen som er opprettet og sendt til nettverket oppnådde 26 anonymitetssett: https://testnet.smartbit.com.au/tx/3ec6c5b983ccb53bc680cdec73af0a4a046cab5b29f6d7fe7f78af79b8b3111d

TX-er med 7 anonymitetssett

Det var også en viss blanding skjedd med 7 anonymitetssett.

Ingen ytelsesproblemer

En annen positiv ting: Jeg var bekymret for at koordinatoren gjør for mange ting lokalt, og det tar for lang tid. Men det viste seg at bekymringene mine ikke var berettigede. Det var en tid da 38 brukere lyktes på nytt på nytt i løpet av sekunder, noe som er ganske imponerende, fordi når en anmodning om inngangsregistrering kommer til koordinatoren, gjør den ganske mye: den signerer, verifiserer, sjekker utxoer og gjør en haug med andre ting per bruker. Pluss at jeg implementerte det med låser, forhindret jeg asynkron utførelse, slik at jeg kan ha renere og mer stabil kode på bekostning av ytelse.
Egentlig var dette hovedgrunnen til at jeg ønsket å utføre en testnet-test med 100 personer. Jeg var redd ting vil ta lang tid og blandingen vil avbrytes, men hastigheten på den forventede flaskehalsen var overbevisende, jeg er glad for det.

Ingen mynter tapt

Plussmynter gikk ikke tapt. Ikke som det ville være mulig på noe tidspunkt, men det kan være verdt å nevne.

Folk får Bech32

Bech32 er en ny type Bitcoin-adresse for native segregerte vitneskriptPubKeys. Selv om adopsjonen er ganske svak, hadde det overraskende ingen problemer med å gispe.

Event By Event

1. Eksperiment: Send til / r / DarkNetMarkets

Jeg begynte med et lite eksperiment. Det er ikke en overreach å si at “mainstream Bitcoiners” er koblet fra og har ingen anelse om hva som skjer på det mørke nettet, selv om de jevnlig kommenterer det. Jeg vedder på at du ikke en gang kan svare på grunnleggende spørsmål. Bruker de fortsatt hovedsakelig Bitcoin, eller bruker de Monero og ZCash? Er de i Bitcoin Cash eller Litecoin? Ødelegger de høye Bitcoin-avgiftene deres forretningsmodell? Jeg var nysgjerrig på hvor kunnskapsrike og hjelpsomme de er og generelt hva stemningen er, så jeg sendte inn blogginnlegget mitt om testing til / r / DarkNetMarkets først. Denne innsendelsen fikk 3 personer til å bli med i miksen.

Jeg kan ikke si at jeg ble mye smartere, men det var noen interessante ting jeg kan legge til som sidenote.f

I. Sinnsyke brukernavn

Holy shit, du er bokstavelig talt redd for å svare noen med et navn som dette.

II. Monero-shilling

I løpet av de første timene fikk jeg kommentarer og støttende kommentarer, så kommenterte denne karen og nedstemmingene begynte å komme inn. Raskt.

2. Tweetstorm

Jeg varslet shinobymonkey fra Block Digest-podcasten om miksen, han nevnte den i livestrømmen, twitret den også, så twitret han den, kort tid etter at jeg tweetet den, begynte den å trene som ild, noen sendte den til / r / Bitcoin, noen nyhetssteder skrev om det, og i løpet av tre dager nådde blandingen 100-målet. Men la oss ikke gå så langt frem ennå.

3. Tidlige utgaver

Ikke mye som gikk galt her, annet enn forventede kryssplattformspørsmål. De er uunngåelige, de må sakte avluses og fikses. Imidlertid var det noe balansekorrupsjonsspørsmål som var bekymringsfullt og må sees nærmere på det nærmere.

4. Jeg skjønte at første runde vil mislykkes

Dette er normal oppførsel, men det var ikke ideelt for denne testøkten, så jeg lette etter måter å løse det på. Vi bestemte oss for å sette det maksimale anonymitetssettet for neste runde til 90, for å planlegge for 10 falloutbrukere, og sette tidsregistreringen for inngangsregistrering for neste runde til 12 timer, bare i tilfelle.

5. 99 Anonymitetssett nådd

Så jeg fyrte opp det 100. likemålet og sparket av testen. Som forventet gikk testen ut i forbindelse med bekreftelsesfasen.

6. 38 Bruker gjenværende og automatisk tilkoblet på nytt

Dette var uventet, mer enn halvparten droppet uten at koordinatoren la merke til det, hvorfor? Som forklart tidligere, var det fordi folk lydløst mistet nettforbindelse eller internettforbindelse et sted de siste dagene.

7. Bytt til plan B

OK, testen mislyktes, la oss prøve å få til noe mynt. Så jeg senket neste rundes minimumsanonymitet satt til 7 fra 21 og innspillets tidsavbrudd til 3 minutter.

Etter 12 timer ble en annen runde forsøkt, som forventet at folk droppet ut, deretter koblet 26 på nytt og utførte en blanding med hell.

Herfra startet en 7 anonymitetssett-blandinger. Det gikk en stund, for å være rettferdig, denne delen av testen var ganske vellykket, da folk til slutt ikke måtte vente timer på at en blanding skulle starte, men 7 er ikke det samme som 100.

Går videre

Det kommer ikke til å bli en annen testnet-testing. Vi identifiserte hovedproblemene, og vi vil fikse dem.

Den gode nyheten er at jeg ikke har mye nye ting å legge til lenger, vel bortsett fra Lyn og fortrolige transaksjoner, men ikke når som helst snart. Herfra og videre er arbeidet med stabilisering og brukervennlighet målene. 2018 blir året da anonymitet blir sendt til Bitcoin når alt kommer til alt.

Problemer med kryssplatform

Kjedelig, mekanisk arbeid for å feilsøke dem. Men i det minste enkelt. Disse vil være faste problemer etter emisjon.

Problemer med tilkoblinger

Nettverkstilkoblingsdelen må skrives om fra grunnen av. Vi kom med mange kompromisser her, som til slutt førte til undergangen til denne testen. Det er bedre hvis vi tar et skritt tilbake og vurderer nøye hva som er den beste måten å komme videre med dette.

Problemer med korrupsjon / ytelse

HiddenWallet er en SPV-lommebok som laster ned full blokkering. Dette betyr at vi laster ned hele blokker fra opprettelsen av lommeboken. For å få dette til å jobbe, måtte jeg skrive nesten alt fra bunnen av, at lommebokutviklere aldri trenger. Dette fører til komplekse kode og noen ytelsesproblemer. Nå gikk det nesten ett år siden jeg gjorde det og jeg lærte mye. Jeg kunne gjort det mye bedre i dag.
Generelt er det to retninger jeg kan gå for å forbedre den. Jeg kunne enten erstatte deler av bakenden med Bitcoin Core, deres ytelse og stabilitet er umulig å konkurrere med. I dette tilfellet kunne jeg til og med begynne å bidra til Core og prøve å skyve Jonas Schnellis fullblokk SPV-implementering videre inn i Core. Hvis det skulle komme inn på det ville jeg virkelig ikke ha noen grunn til å gå med den gjeldende tilpassede koden i HiddenWallet.
Den andre retningen er å implementere noe nytt. Det er noen få personvernbevarende lommebokarkitekturer der ute, siden jeg begynte å jobbe på HiddenWallet. I hvert fall på idénivå.
(1) Jeg kunne gjøre noen smarte ting. For eksempel med en minimal mengde brukerinteraksjon, vil ikke brukeren måtte laste ned så mange blokker, men smart kan vi finne ut hvilke blokker han har transaksjoner i.
(2) Jeg kunne også implementere en sentralisert modell, der serveren også er en blockchain-analyseprogramvare, og det eneste formålet er å prøve å filtrere ut hvilke transaksjoner klientene 100% ikke kan være interessert i.
(3) Eller se på Neutrino, som veldig godt kan ende opp standard LN-lommebokarkitektur. Selv om den trenger serversidekode for å bli dyttet inn i Bitcoin Core, som er en god jobb, og jeg er fremdeles ikke 100% overbevist om personvernets egenskaper ennå.

Forbedring av ZeroLink-spesifikasjonen

ZeroLink har ikke personvernfeil, men det har noen problemer med brukeropplevelsen. Jeg lærte så mye i løpet av de siste månedene, at jeg ville være i stand til å legge til mange mindre forbedringer, kanskje noen store, også, kanskje jeg til og med vil komme til en banebrytende erkjennelse eller noe. Det kan være verdt å prøve å se på og se på noe av den nye forskningen som har blitt lagt ned på pulten min siden den gang, men jeg hadde ikke tid til å evaluere dem.

Avsluttende ord

En gang til. EN STOR TAKK for alle som deltok, og jeg er veldig lei meg for den mislykkede testen. En spesiell takk til Matthew Haywood for arbeidet hans på HiddenWallet. Følg med, jeg vil fortsette å jobbe med åpen kildekode og på Bitcoin's personvern, og lansere ZeroLink i 2018! God jul og godt nytt år!