ZeroLink Test Aftermath - Beste anonimiteitsset succesvol behaald: 26, algemene evaluatie: mislukt, reden: schaalproblemen met netwerken

Allereerst: hartelijk dank voor iedereen die heeft deelgenomen! Ik moet toegeven dat ik mijn tranen niet kon tegenhouden, gezien de enorme hoeveelheid steun en activiteit die deze gemeenschap heeft verricht. Meer dan 100 mensen namen deel aan het testen en velen gaven waardevolle feedback. Om deze reden voel ik me vreselijk en moet ik me verontschuldigen voor het mislukte resultaat van de tests.
Het moet gezegd worden, CoinJoins gebeurden, ze gebeuren nu zelfs terwijl ik deze regels schrijf, maar niet op de schaal die ik had gehoopt, over het algemeen hebben verschillende netwerkproblemen verhinderd dat de software honderden collega's tegelijkertijd goed coördineerde.

De beloning van $ 10 deelname claimen

Stuur me een e-mail naar adam.ficsor73@gmail.com. Deze e-mail moet uw Bitcoin-adres en een transactie-hex bevatten.
Verkrijg deze transactie-hex van HiddenWallet door een transactie op te bouwen met een gemengde munt en op de knop "Transactie-hex kopiëren" te klikken. Zend het echter niet uit naar het netwerk, maar annuleer het. Als je het zou uitzenden, zou iedereen jouw geld van mij kunnen claimen.

Ik zal een paar dagen wachten totdat iedereen zijn deelname claimt, dan betaal ik het door batching (één transactie - veel uitgangen).

Wat ging er mis?

Ik, test mijn eigen code

Een kleiner probleem was dat het opstarten van sommige virtuele machines voor het mixen of uitvoeren van sommige scripts niet hetzelfde is als 100 gebruikers met exotische Linux-distributies een software laten testen.

Maar het belangrijkste probleem kwam voort uit de aard van integratietests: tests worden verondersteld u snelle resultaten te geven. Als een test dagen duurt, is het waarschijnlijk geen goede test. Ik heb zulke testen in HiddenWallet, geloof me, ze zijn niet leuk. Maar wat gebeurt er wanneer echte gebruikers dagenlang bij de mix worden geregistreerd? Blijkt niets goeds en daar was ik niet op voorbereid.
Velen verloren stilletjes hun web-connectiviteit, arme jongens, sommigen van hen denken misschien nog steeds dat ze mixen.
Velen kregen een foutmelding: "de coördinator ging offline", wat niet betekende dat de coördinator offline ging, het betekende eigenlijk dat de client offline ging, het is gewoon als je je internet even verliest, stop je met mixen, zonder de coördinator wetende. Helemaal misleidend.
Er waren nog enkele andere problemen, maar deze twee zorgden voor 80% tot 90% van de problemen.

positieven

TX met 26 anonimiteitsset

De beste transactie die is gemaakt en uitgezonden naar het netwerk, heeft 26 anonimiteitsreeksen bereikt: https://testnet.smartbit.com.au/tx/3ec6c5b983ccb53bc680cdec73af0a4a046cab5b29f6d7fe7f78af79b8b3111d

TXs met 7 anonimiteit sets

Er waren ook een aantal mix gebeurd met 7 anonimiteit ingesteld.

Geen prestatieproblemen

Nog een positief punt: ik was bang dat de coördinator te veel dingen lokaal doet en dat het te lang duurt. Het bleek echter dat mijn zorgen niet gerechtvaardigd waren. Er was een tijd dat 38 gebruikers met succes binnen enkele seconden opnieuw verbinding maakten met de mix, wat behoorlijk indrukwekkend is, omdat wanneer een verzoek voor invoerregistratie bij de coördinator aankomt, het heel veel doet: het ondertekent, verifieert, controleert utxos en doet een heleboel andere dingen per gebruiker. Bovendien heb ik het met sloten geïmplementeerd, ik heb asynchrone uitvoering voorkomen, zodat ik schonere en stabielere code kan hebben ten koste van de prestaties.
Dit was eigenlijk de belangrijkste reden waarom ik een testnet-test met 100 mensen wilde doen. Ik was bang dat het lang zal duren en de mix zal worden afgebroken, maar de snelheid van het verwachte knelpunt was overtuigend, ik ben er blij mee.

Geen munten verloren

Plus munten gingen niet verloren. Niet zoals het op elk moment mogelijk zou zijn, maar het is misschien het vermelden waard.

Mensen krijgen Bech32

Bech32 is een nieuw type Bitcoin-adres voor native gescheiden getuige scriptPubKeys. Hoewel de acceptatie ervan vrij zwak is, had verrassend genoeg niemand problemen om naar adem te happen.

Evenement per evenement

1. Experiment: verzenden naar / r / DarkNetMarkets

Ik begon met een klein experiment. Het is geen al te grote reikwijdte om te zeggen dat "mainstream Bitcoiners" zijn losgekoppeld en geen idee hebben wat er op het dark web gebeurt, hoewel ze er regelmatig commentaar op geven. Ik wed dat je zelfs geen basisvragen kunt beantwoorden. Gebruiken ze nog steeds voornamelijk Bitcoin of houden ze van Monero en ZCash? Zijn ze dol op Bitcoin Cash of Litecoin? Vernietigen de hoge Bitcoin-kosten hun bedrijfsmodel? Ik was benieuwd hoe deskundig en behulpzaam ze zijn en in het algemeen wat het sentiment is, dus stuurde ik mijn blogpost over testen eerst naar / r / DarkNetMarkets. Deze inzending resulteerde in 3 mensen om deel te nemen aan de mix.

Ik kan niet zeggen dat ik veel slimmer ben geworden, maar er waren enkele interessante dingen die ik als sidenote kon toevoegen. F

I. Krankzinnige gebruikersnamen

Holy shit, je bent letterlijk bang om iemand te antwoorden met een naam als deze.

II. Monero shilling

In de eerste paar uur kreeg ik upvotes en enkele ondersteunende opmerkingen, toen deze man commentaar gaf en de downvotes begonnen binnen te komen. Snel.

2. Tweetstorm

Ik heb shinobymonkey van Block Digest podcast op de hoogte gebracht van de mix, hij noemde het in de livestream, tweette het ook, vervolgens tweette hij het, kort nadat ik het ook tweette, begon het trending als vuur, iemand stuurde het naar / r / Bitcoin, sommige nieuwsuitingen schreven erover en binnen drie dagen bereikte de mix het doel van 100 mensen. Maar laten we nog niet zo ver vooruit gaan.

3. Vroege problemen

Er is hier niet veel misgegaan, anders dan verwachte platformoverschrijdende problemen. Ze zijn onvermijdelijk, ze moeten langzaam worden opgelost en opgelost. Er was echter een probleem met de balanscorruptie dat zorgwekkend was en dat hier nader op moet worden ingegaan.

4. Ik realiseerde me dat de eerste ronde zal mislukken

Dit is normaal gedrag, maar het was niet ideaal voor deze testsessie, dus ik zocht naar manieren om het op te lossen. We hebben besloten om de maximale anonimiteit van de volgende ronde in te stellen op 90, om 10 fallout-gebruikers te plannen, en de time-out voor de invoerregistratie voor de volgende ronde in te stellen op 12 uur, voor het geval dat.

5. 99 Anonimiteitset bereikt

Dus startte ik de 100ste peer en begon de test. Zoals verwacht liep de test uit in de fase van de verbindingsbevestiging.

6. 38 Gebruiker achtergelaten en automatisch opnieuw verbonden

Dit was onverwacht, meer dan de helft viel uit zonder dat de coördinator het merkte, waarom? Zoals eerder uitgelegd, was het omdat mensen in de afgelopen dagen ergens de connectiviteit of internetverbinding van de internetverbinding verloren.

7. Schakel naar plan B

Oke, de test is mislukt, laten we proberen wat muntgeld te maken. Dus heb ik de minimale anonimiteit van de volgende ronde verlaagd van 7 naar 21 en de time-out voor de invoerregistratie tot 3 minuten.

Na 12 uur werd een nieuwe ronde geprobeerd, omdat verwachte mensen uitvielen, waarna 26 opnieuw verbinding maakte en met succes een mix uitvoerde.

Vanaf hier begon een 7-anonimiteit set mixen te lopen. Het duurde een tijdje, om eerlijk te zijn, dit deel van de test was behoorlijk succesvol, toen mensen uiteindelijk geen uren hoefden te wachten tot een mix begon, maar 7 is niet hetzelfde als 100.

Vooruit gaan

Er komt geen nieuwe testnet-test. We hebben de belangrijkste problemen geïdentificeerd en zullen deze oplossen.

Het goede nieuws is dat ik niet veel nieuwe dingen meer kan toevoegen, behalve Bliksem en Vertrouwelijke transacties, maar niet snel. Vanaf nu zijn werken aan stabilisatie en gebruiksvriendelijkheid de doelen. 2018 wordt immers het jaar waarin anonimiteit naar Bitcoin wordt verzonden.

Cross-platformkwesties

Saai, mechanisch werk om ze te debuggen. Maar op zijn minst een makkelijke. Deze worden per probleem opgelost.

Verbindingsproblemen

Het netwerkconnectiviteitsgedeelte moet helemaal opnieuw worden geschreven. We hebben hier veel compromissen gesloten die uiteindelijk hebben geleid tot de ondergang van deze test. Het is beter als we een stapje terug doen en zorgvuldig overwegen wat de beste manier is om hiermee verder te gaan.

Saldocorruptie / prestatieproblemen

HiddenWallet is een SPV-portemonnee die volledig wordt gedownload. Dit betekent dat we volledige blokken downloaden van het maken van de portemonnee. Om dit te laten werken, moest ik bijna alles helemaal opnieuw schrijven, dat ontwikkelaars van portefeuilles dat nooit hoeven te doen. Dit leidde tot complexe code en enkele prestatieproblemen. Nu ging er bijna een jaar voorbij, sinds ik het deed en ik veel heb geleerd. Ik zou het vandaag veel beter kunnen doen.
Over het algemeen zijn er twee richtingen die ik kan gaan om het te verbeteren. Ik zou delen van de back-end kunnen vervangen door Bitcoin Core, hun prestaties en stabiliteit zijn onmogelijk om mee te concurreren. In dit geval zou ik zelfs een bijdrage kunnen leveren aan Core en proberen de volledige blok-SPV-implementatie van Jonas Schnelli naar Core te duwen. Als dat zou ingaan, zou ik echt geen reden hebben om met de huidige aangepaste code in HiddenWallet te gaan.
De andere richting is om iets nieuws te implementeren. Er zijn een paar privacybehoudende portemonnee-architecturen die er zijn, sinds ik begon te werken aan HiddenWallet. Tenminste op het idee niveau.
(1) Ik zou wat slimme dingen kunnen doen. Met een minimale hoeveelheid gebruikersinteractie zou de gebruiker bijvoorbeeld niet zoveel blokken hoeven te downloaden, maar slim kunnen we erachter komen in welke blokken hij transactie heeft.
(2) Ik zou ook een gecentraliseerd model kunnen implementeren, waarbij de server ook een blockchain-analysesoftware is, en het enige doel is om te proberen uit te filteren in welke transacties de klanten niet 100% geïnteresseerd kunnen zijn.
(3) Of kijk naar Neutrino, die misschien wel de standaard LN-wallet-architectuur kan worden. Hoewel het server-side code nodig heeft om in Bitcoin Core te worden gepusht, wat een behoorlijke klus is, en ik ben nog steeds niet 100% overtuigd van zijn privacy-eigenschappen.

Verbetering van de ZeroLink-specificatie

ZeroLink heeft geen privacyfouten, maar er zijn enkele problemen met de gebruikerservaring. Ik heb de afgelopen maanden zoveel geleerd dat ik veel kleine verbeteringen zou kunnen toevoegen, misschien ook een paar grote, misschien zou ik zelfs tot een baanbrekend besef komen of zoiets. Het is misschien de moeite waard om eens terug te komen en wat van het nieuwe onderzoek te bekijken dat sindsdien op mijn bureau is geplaatst, maar ik had geen tijd om ze te evalueren.

Laatste woorden

Nog een keer. GROOT DANK U voor iedereen die heeft deelgenomen en het spijt me zeer voor de mislukte test. Een speciale dank voor Matthew Haywood voor zijn werk op HiddenWallet. Blijf op de hoogte, ik blijf werken aan open source en de privacy van Bitcoin en lanceer ZeroLink in 2018! Vrolijk kerstfeest en een gelukkig nieuwjaar!