Skip to content

Instantly share code, notes, and snippets.

@valkenburgh
Last active March 7, 2023 03:28
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save valkenburgh/8cf1d1e0a93daff5f051def361d9722d to your computer and use it in GitHub Desktop.
Oct 21-23 Run of ZCASH Paramerter Generation from DC Station
Hashes of DVDs that I booted each node from:
Compute OS DVD: 5f43aa1244a01b3cf9da4abeadde9e34b954a873565fc56b58c10780f3ce0e4c
Network OS DVD: 375550be4c64ebc68a9306421bb71ad3556bc73f156a231503084f923900f4cb
Commitment String generated by Compute Node:
6yV3Ji7zuVWVCQEfkhQEfkhQ6Vfv51t5VfQHQVaLDGH6zkeunkmohr
Hash of Disc A:
2axdkGL6QzngjvY9jRBX5AqhSokukji8eQuYUfJwhp7sxcXvPr
Hash of Disk B:
2RymyNbAWaBVDuzW4m1iKA72MsmZFnwMhNvqxxXDwugLTa62wc
Hash of Disc C:
2qSQhJcQLjmXfQWHKMCR5EukSWU9BQ3KwdPSqkPUCSRzwmxowM
Hash of Disc D:
2uAxySzeptYhEowKuBRGituPnc1U4BU1GMuL4Hfbyvtgq7x4Qn
Hash of Disc E:
YWKCeTeYiKUNnd4aJBYcd8ZwBxscibmtDa4pxbz52fpYX2H9S*
*correction because I misread my handwritten notes
Hash of Disc F:
2o1wWJHYzCirDmijHmnGFQ4pSfoYTkEKdPinag22eYonKf8EGC
Here's my recollection of the last 3 days:
On Thursday 10/20, Zooko told me via Signal encrypted message that I would probably be part of the roster for the 4th parameter
generation and that I should buy a computer. I told my wife and Jerry Brito, my boss at Coin Center, in person that I may be computing
parameters again this weekend (two weeks ago I participated in the first trial run) but did not tell anyone that I would be buying a
computer for the purpose.
Friday 10/21: in the morning I used Signal to message Jerry and ask him if he'd like to go watch me buy a computer for the ceremony. He
told me he was with his parents who were visiting for the weekend from Miami, but that he would be happy to swing by my apartment
sometime after lunch and pick me up to go shopping (he was already in DC, driving around with his parents for sightseeing).
Jerry picked me up and I decided to direct him to Microcenter, a local computer store, and specifically decided on the Virginia store
near Vienna rather than the Maryland store. It was only at this moment that I decided upon that store. I had previously (the night
before) been researching local store inventory for both microcenter branches, local best buys, office depots, and staples locations by
visiting their websites (all while using a VPN).
The Vienna Microcenter was also the store where I bought the compute node for the practice run two weeks earlier. I decided to go here
because it was closer to Jerry's house so he and his parents would not need to be in the car driving for too long (I would take an uber
back to my Apartment in DC). I felt that the fact that I had been there before made it no more likely that an hypothetical attacker
would modify all of the computers in that store in expectation of my return (unless the attacker was going to do that at both local
Microcenter stores as well as any other stores I might choose--assuming he/she knew I was choosing randomly--indeed if I was the
attacker I’d think it less likely that my target would choose the same store twice). Additionally, I new from my previous night's online
research (using VPN) that only Microcenter (both MD and VA locations) had PCs in store with the faster I7-6700k cpu which would ensure
that computation would go as fast as possible. At no point did I ever express my preference for these I7-6700k machines to anyone else,
however, so I do not believe an hypothetical attacker would have narrowed down my possible shopping locations based on that criteria.
Additionally, I do not believe there is any way a possible attacker could have predicted that Jerry would be driving me and therefore
that the location closer to his VA home was more likely (indeed I did not know myself that Jerry would be able to come with me until the
morning of the purchase when we messaged on Signal).
Arriving at Microcenter, I handed Jerry's mother my GoPro and she began to film us (Jerry’s parents are awesome for coming along and
being so helpful!). She filmed us entering the store, picking a computer, paying, and leaving the store. At that point she handed me the
camera while it continued to film. This footage will be available once I download it from the camera and find an easy way to share it.
As the footage shows, We proceeded to the back of the store where they sell desktop towers. I found a Powerspec brand PC that had the
I7-6700k processor but was not the same model that I purchased two weeks earlier. The model I selected was the G426. I asked how many
they had in stock. The salesperson said they had 13. I asked if we could pick one of the 13. He asked if there was something I was
looking for in particular (confused because they are all the same) and I said I just wanted to pick a random one. He said he could not
let us into the back warehouse. I asked if he would bring two of them out so we could pick one of the two. He brought two out on a
handcart. Jerry selected one of the two computers and we took that to the register to check out.
After paying, we waited outside the store for an Uber that I'd called. Jerry's parents were concerned about rain so they went to wait in
their car. Jerry stayed with me until my uber driver arrived. I continued filming myself as we loaded the computer into the Uber and
said goodbye to Jerry. I continued filming as we drove to my apartment in DC. At one point in the drive (we were in Georgetown having
taken a wrong turn) I had to switch the battery on the GoPro.
When we arrived at my apartment I continued filming while I carried the computer upstairs.
Then I filmed myself and the computer in my apartment using my Nikon SLR while I reconfigured the GoPro to do time-lapse photography
(one photo every 10 seconds) so that I could keep it running for the entire weekend without changing the memory card (128 GB which can
do 9 hours of video at the lowest resolution or ~19,000 photos -- 10 photos per second for ~ 50 hours < 19,000)
I initiated the GoPro time lapse and moved the computer (still in Box) to a corner of my living room where I could film and unpack it
more easily.
Over the rest of the day and with the GoPro always running, I unpacked the computer, removed the wireless card, the graphics card, and
the two hard drives. I also connected a monitor that I borrowed from Coin Center’s office two weeks earlier (it's an old monitor that
Jerry didn't need any more--I first borrowed it for the trial run of the ceremony) and also connected the keyboard and mouse that came
with the computer. I looked through the bios to confirm that no unwanted devices were connected to the motherboard.
Later that afternoon (using my chromebook pixel laptop with a linux chroot) I downloaded the compute and network ISOs from AWS as per
the google doc instructions (shared via Signal group chat). I burned the compute and network OS ISOs to DVDs after checking them with
sha256sum.
I ran the compute OS on the new computer in the livingroom to make sure it would boot. But I did not do drive diagnostics because I knew
I'd still want to move the computer into my bedroom near the Network Node. I could not boot my Network Node from the DVD so I checked
the hashes again and reburned both ISOs to new DVDs
My Network Node is an old gaming PC that I built myself around 10 years ago. It has been sitting mostly unused in my bedroom since I
moved in two years ago. I used this as my network node in the previous trial run of the ceremony. I had already disconnected all non-
essential hardware as per the instructions for that trial.
That night my wife helped me film the compute node being moved into the bedroom and the positioning of the GoPro to ensure continuity of
the time-lapse footage. Then she left for Union Station for a previously scheduled trip to visit her friend in NJ.
I set up the Compute Node in the bedroom, booted both computers from the reburned the DVDs and ran DVD diagnostics. Diagnostics were
successful. I powered down both computers. Then I slept in that room with the GoPro and a light pointed at the compute node so it would
be clearly visible in the time-lapse photos.
Saturday 10/22: When I woke up I communicated via Signal with the group, powered on my machine and (after Andrew had already sent his
commitment string) sent my commitment string. Then I waited until the afternoon when everyone else was ready to go. I setup my
chromebook with the hangouts video chat for the group, and had my thinkpad in the room with Civilization 6 for entertainment. Then I
went through the three rounds of the computation (round 2 was in the middle of the night so I slept three hours before and then slept
three hours after), which brings us to today. All the while the Go-Pro was filming and for each compute cycle I removed my cell phone
and my two laptops from the room to try and make a hypothetical side-channel attack more difficult. I also broadcast the hashes of both
discs each round on twitter and here.
Sunday 10/23:
I finished my last cycle today in the early afternoon, unplugged the compute node, opened it and destroyed both RAM sticks by cutting
each chip with tinsnips. Now the compute node (sans RAM) is sitting in my bedroom unplugged; I will hold on to it for now. I cleaned up
the bedroom, broadcast my last hashes here and on twitter, and sat down to write this account. It will all be clearer with the footage
from the GoPro as well as short videos I took with my smartphone. But I'm pretty tired so I may not get those videos up until tomorrow
or later this week.
Also, there were lots of adorable moments with cats.
Here are all of the videos and photos taken with my cell phone (gopro videos will be added to this gallery soon):
https://goo.gl/photos/AZvgdL4DQT9m8Fvw6
And now I have the gopro photos in a timelapse on youtube: https://www.youtube.com/watch?v=K_dlc2ryiBI
I've uploaded disc images for all DVDs used in the ceremony here: https://archive.org/details/ZcashParamgenDCDiscImages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment