<![CDATA[Lev Dubinets]]>https://dubinets.io/https://dubinets.io/favicon.pngLev Dubinetshttps://dubinets.io/Ghost 3.42Fri, 07 Jul 2023 05:52:14 GMT60<![CDATA[How to find the owner of a Handshake domain name]]>Handshake (HNS) is a decentralized naming protocol billed as an alternative to DNS. Much like with regular DNS, it is pretty hard to find the owner of a particular HNS domain name. In fact, because the native payment method is a cryptocurrency, and theres nothing like whois available for HNS,

]]>
https://dubinets.io/how-to-find-the-owner-of-a-handshake-domain-name/5f1e81d9cd243ddb21eff9b7Mon, 27 Jul 2020 07:47:12 GMTHandshake (HNS) is a decentralized naming protocol billed as an alternative to DNS. Much like with regular DNS, it is pretty hard to find the owner of a particular HNS domain name. In fact, because the native payment method is a cryptocurrency, and theres nothing like whois available for HNS, it is usually much harder. You can try HNS Explorers such as ShakeScan or HNScan, but you're unlikely to find any way to contact the owner there.

Your best bet is to look at the TXT record set on the top level domain you're interested in. People have begun setting these TXT records in the root DNS to link to their contact info, especially those who are squatting on HNS domains to speculate on their value.

To do this, you can either use a Handshake node installed locally on your machine, or query using NextDNS, which supports Handshake. I have a NextDNS account so I'll use that method.

1. Ensure that Handshake is enabled in your NextDNS settings page.

Enable Handshake in NextDNS settings

2. In my NextDNS configuration page, there is a DNS Server IP that I can use. Make sure you click "Link my IP" right below.

NextDNS DNS Server IP addresses 

3. Use the dig command line tool in your terminal. I'm interested in the domain .x1f, so I'll run this command:

> dig @45.90.21.123 TXT +short x1f
"parking=https://keybase.io/falci"
Querying TXT records of .x1f on Handshake

And there you can see that the owner of x1f on Handshake has set a TXT record to help me find him. If you don't see any output here, that pretty much means you are out of luck.

]]>
<![CDATA[Stablecoins Talk]]>https://dubinets.io/stablecoins-talk/5ec232b7d318b7709d6d3c86Fri, 17 Apr 2020 04:00:00 GMTI recently gave a guest lecture for an Emerging Technologies class at the University of Washington iSchool Master's program (UW IMT 598). The class is focused on blockchain and cryptocurrencies, and my topic was an overview of stablecoins and a deeper dive into MakerDAO and Dai.

The video is embedded below and my slides are available at https://dubinets.io/static/stablecoins

]]>
<![CDATA[Installing nix on macOS Catalina]]>Nix is an extremely powerful package manager that uses a declarative functional programming language to describe dependencies. It stores all packages and build outputs in the nix store located at /nix. This makes it slightly tricky to install on macOS 10.15 (Catalina), because the new read only system volume

]]>
https://dubinets.io/installing-nix-on-macos-catalina/5f1e88d1ccfa22e0a780f364Mon, 16 Dec 2019 23:04:00 GMTNix is an extremely powerful package manager that uses a declarative functional programming language to describe dependencies. It stores all packages and build outputs in the nix store located at /nix. This makes it slightly tricky to install on macOS 10.15 (Catalina), because the new read only system volume would prevent creating or writing to /nix. A common workaround is to create a separate writable APFS volume and mount it at /nix.

Before you start

  1. As of May 21, 2020, this workaround has been baked directly into the nix installer. However, out of an abundance of caution, it will only work if you don't use FileVault encryption or your Mac is a 2018 or newer model with a T2 chip.
  2. If you use this workaround, your nix store will be unencrypted.
  3. If you use this workaround, you will not be able to install nix in multi-user mode.

The workaround

Try a normal install

Head over to https://nixos.org/download.html and follow instructions. It might work! Otherwise, if you see the following error, continue with the workaround.

error: refusing to create Nix store volume because the boot volume is
       FileVault encrypted, but encryption-at-rest is not available.
       Manually create a volume for the store and re-run this script.

Create a mount point

Create a root-level mount point at /nix using synthetic.conf (run man synthetic.conf in your terminal to find out more)

echo 'nix' | sudo tee -a /etc/synthetic.conf # or edit this file and just add nix
/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B
[ 0 -ne "$?" ] && echo "Restarting APFS failed, please reboot your computer"

Reboot if it asks you to reboot.

Create an APFS volume

The following commands will create an APFS volume called Nix, mount it at /nix hide it from the Finder sidebar, and configure it to be mounted at boot.

sudo diskutil apfs addVolume disk1 APFSX Nix -mountpoint /nix # make sure disk1 is correct
sudo diskutil enableOwnership /nix
sudo chown -R $(whoami) /nix
sudo chflags hidden /nix # if you don't want to see Nix volume in finder
echo "LABEL=Nix /nix apfs rw" | sudo tee -a /etc/fstab

Install Nix

Now you can install nix as normal.

curl https://nixos.org/nix/install | sh

References

This workaround was described and implemented by Daiderd Jordan. I mostly just followed along in the GitHub issue and took notes to help myself and others get up and running on macOS Catalina. The Nix manual has a section on macOS installation with lots of details also.

]]>
<![CDATA[ZCash Shielded Transaction Censorship]]>https://dubinets.io/zcash-shielded-transaction-censorship/5d1a45a25f415c5128853fd6Wed, 29 May 2019 19:30:00 GMTIn ZCash, privacy is opt-in, which unfortunately makes it possible to censor private transactions. Addresses beginning with a ‘z’ contain coins whose history is shielded by a zero knowledge proof. In this post, a ‘shielded transaction’ is one where a z-address is either an input or output. The ZCash Foundation defines these transactions as ‘shielding’, ‘deshielding’, and ‘private’

I noticed that shielded transactions aren’t being mined in the very next block even if there is plenty of time for the transactions to propagate. ZCash blocks are not even close to full and there are empty blocks being mined while shielded transactions are sitting unconfirmed. I took a closer look and noticed a pattern.

F2Pool, the second largest ZCash mining pool with about 18% of the total hashpower, is censoring shielded transactions.

This is easy to see by doing a quick-and-dirty analysis of the ZCash blockchain. Out of 86,849 shielded transactions year-to-date only 120 of have been mined by F2Pool. Given their share of the hashpower, they should have mined around 15,000 shielded transactions year-to-date. Shielded transactions are underrepresented by F2Pool by three orders of magnitude.

As for the 120 shielded transactions that F2Pool did mine, it could be that they were sent by F2Pool themselves from addresses that were whitelisted internally, but this is a guess as there is no way to know.

The two immediate questions are “When did they start censoring shielded transactions?” and “Why are they censoring shielded transactions?”.

It appears that F2Pool began censoring shielded transactions around April 2017. As for the “why”, we can only speculate. Verification of shielded transactions is not more expensive than it is for regular transactions (it’s generating the proofs that is expensive, not verifying them). Perhaps they don’t want to touch any shielded transactions to avoid participating in illegal activity (weak argument, in my opinion). Or perhaps F2Pool is concerned about the protocol changing how the proofs work and losing blocks. I found a tweet where F2Pool complained that the ZCash Sapling fork caused them to lose 30 blocks, though it doesn’t seem related to the censorship. It’s worth noting that F2Pool also censored transactions in their Ethereum mining pool during the Status ICO, which was very competitive, in order to increase their chances of getting an allocation.

This seems like a pretty big risk to the ZCash network: if more mining pools start censoring shielded transactions, it would make ZCash mostly unusable. To foster a healthier ZCash network, we should:

  1. Send more shielded transactions to incentivize mining pools to collect fees from them.
  2. Use wallets like Zepio Wallet that use shielded addresses by default.
  3. Don’t mine with F2Pool and let them know about it on Twitter.

Lastly, it’s possible that I’m wrong and miscalculating all of this somehow. Here are the BigQuery queries I used to perform this analysis. I’ve also attached the 120 shielded transactions mined by F2Pool in 2019. I know my queries are suboptimal, but I believe they are correct. I would appreciate it if somebody who knows ZCash and/or BigQuery better than I do could review this:

]]>