9 ms·
An airdrop that preserves recipient privacy [pdf]
- troquerre 7y agoNote this airdrop was implemented on the Handshake blockchain and just went live today. If you had over 15 followers on GitHub in Aug 2018 you were included and get 4662 HNS (worth $2000+ at current market price). If you’re eligible, we created these instructions on how to claim here https://namebase.io/airdrop https://namebase.io/airdrop.
- dublinben 7y agoWith the tax implications of cryptocurrency in the US, it's rude to 'airdrop' or give it to people without their consent.
- rasengan 7y agoThis is exactly the concern that the GooSig private airdrop addresses. Nobody has any obligation to claim their coins, and even if they do, it will be private and nobody will know. This is unlike Bitcoin forks or ERC-20 airdrops, because it’s 100pct opt-in.
- stevewodil 7y agoOnly taxable if you claim it and convert to fiat. How is free money rude?
- verdverm 7y agoYou have to pay taxes when claimed, and again when a transaction occurs. The rule is you need to pay taxes on the value when you receive them, and then the profit / loss when you convert them to fiat, or another currency. Both are taxable events.
- boring_twenties 7y agoThis is incorrect, it's taxable even if you never convert it.
- troquerre 7y agoIt’s not an ethereum airdrop which goes to an address you already own. You don’t have the coins until you deliberately claim them, so it’s opt-in.
- oh_sigh 7y agoMaking a mark in a private ledger does not count as a taxable event for anyone. If I say in my diary "I give $100,000 to dublinben", or "dublinben can claim $100,000 from me for free by just asking", nothing has happened yet from the perspective of the IRS.
- rvnx 7y agoHere is more the equivalent of "Here is a coupon to redeem 100,000 USD from me", which is essentially currency / debt already
- oh_sigh 7y agoHow long could the market support a bunch of github users cashing out their $2000 worth of coins?
- obenn 7y agoThis is conditional on the perceived value of the domain names these coins offer.
- chill1 7y ago1) Requires a private SSH/GPG key that was associated with your GitHub account at some arbitrary date in the near past. It would be trivial to design a cryptographic scheme to prove ownership of a GitHub account without compromising private keys. So why do it the way they have? 2) Requires that you provide government issued identification (and possibly more) to be able to withdraw or sell the airdropped tokens for USD or bitcoin. Call me paranoid, but this feels like a honeypot. It feels like an attempt to compile a database of programmers/developers (and their real identities) - with a bit of a bias towards those with knowledge in the areas of cryptography and/or cryptocurrencies. Even if that is not the intent. Would you trust this company to safely store such information about you?
- rasengan 7y ago1) Nowhere is a private key exposed in the process. I do not know how you came to this conclusion after reading the paper and the code. 2) Namebase definitely makes things easier, but you can absolutely claim your airdropped coins locally on your own computer. As a final note, if you think this is targeting those with knowledge in the areas of cryptography, I assure you, any cryptographer who reviews the code and paper would not have the same conclusion as you.
- rvnx 7y agoI find it a bit strange: Pro-tip: Learn why the airdrop tool needs to use your private key. So someone will give you 2000 USD if you feed your private SSH key into their software ?
- agrinman 7y agoI believe you can have the airdrop tool [0] output the raw bytes that you need to sign with your private key. Still not fool proof but makes it more transparent what you're actually doing with the key. [0] https://github.com/handshake-org/hs-airdrop https://github.com/handshake-org/hs-airdrop
- rvnx 7y agoWell if you get that part running I'm interested because when I run the tool on an air-gapped machine without access to SSH private key, then this bare mode is not functional and keeps saying "Address is not a faucet or sponsor address". The next step on the Namebase website is that they ask you for your passport and utility bills, and since they issued the address of your wallet, they perfectly know who received the reward. (as a note I really don't see the point of the crypto-privacy protocol, if it's supposed to hide who received rewards if you need to give your passport to transfer the coins out or exchange against other currency).
- troquerre 7y agoYeah that's how the airdrop tool works and the instructions use that tool too (the first step in the instructions just shows how to install the tool).
- rvnx 7y agoCan you ask one of your developers to try using the bare mode only ? (a concrete case, only the public key and extracting the raw bytes). Several hours, flipping the code in many ways, such option doesn't seem to exist (and for sure isn't documented)
- 7y ago
- emeltzz 7y agoIf you claim this airdrop, best practice would be to save the key, and then first rotate your github keys before claiming. In this way any potential security risk is averted.
- rvnx 7y agoYeah but if you use the same key for server management, then you may be in a bad situation :(
- deleted 7y ago[deleted]
- emeltzz 7y agoI mean rotating keys periodically is always good practice.
- troquerre 7y agoThe main goal of the Handshake airdrop was to get developers interested in using Handshake, but one of the sub-goals was to help incentivize good security practices. The airdrop process involves running a script on your private key[1], so you should naturally rotate your key after claiming your coins. [1] https://namebase.io/airdrop https://namebase.io/airdrop
- modeless 7y ago> As a final addition, Hacker News accounts which are linked with Keybase accounts are included in the tree [1] How do I claim the airdrop with keybase? If I have a HN/keybase account and a github account, can I claim the airdrop twice? [1] https://github.com/handshake-org/hs-airdrop https://github.com/handshake-org/hs-airdrop
- troquerre 7y agoDuplicate accounts were deduped, but you can try both options to see which method was used for your airdrop. https://namebase.io/airdrop https://namebase.io/airdrop has instructions for GitHub. For keybase, follow the instructions from the page but instead of using your ssh key log in to keybase.io, go to your profile and 1) click on your GPG key 2) click to show private key 3) add your keybase passphrase 4) copy the private key into a file called `secret.asc` 4) executed `./bin/hs-airdrop secret.asc GPG_ID ADDRESS` where `GPG_ID` was the id/name of the key
- modeless 7y agoI'd really rather use keybase as it's a lot easier to rotate that key and it doesn't secure anything important. But you picked one of my keys at random and I have to try them all to see which one you picked? And you did all this rigamarole to make it private even though a scan of my passport is required to actually use the proceeds? I feel like the effort put into this was misdirected.
- troquerre 7y agoTo be clear, Namebase didn’t create Handshake or the airdrop. We’re building on top of it but we’re a separate team. You can also claim your coins outside of Namebase if you want. The cli wallet is actually pretty easy to use.
- dessant 7y agoAs I understand it developers have to submit a government ID to withdraw their tokens. https://help.namebase.io/article/usgrydy7da-kyc-restrictions https://help.namebase.io/article/usgrydy7da-kyc-restrictions This is a bit concerning, and it practically negates the privacy claims of the airdrop, unless people only use the tokens to bid on Handshake names. Could you share more details about the documents you're requesting? Which company handles the personal data?
- troquerre 7y agoYou're correct. Unfortunately due to regulatory restrictions in the US, we're required to verify accounts before enabling withdrawals and selling HNS for BTC (we're not happy about it either). We work with Cognito and Jumio, which are the vendors that Coinbase, Brex, Airbnb, and many other companies use — so if you've used any of those products you've already used Cognito and Jumio before.
- dessant 7y agoThanks for the details, I think that sounds reasonable. Do you have access to the documents during the verification process, or are users redirected to the KYC provider to upload them? If you don't have access to the documents, what personal data does the KYC provider return to your company upon successful verification? I'm curious because I haven't gone through an online KYC process before, and I'd like to understand the risks before claiming the airdrop.
- rvnx 7y agoYou can see a concrete example of API for KYC here: https://developers.veriff.com/#sessions-sessionid https://developers.veriff.com/#sessions-sessionid or specific to Jumio: https://github.com/Jumio/implementation-guides/blob/master/netverify/callback.md https://github.com/Jumio/implementation-guides/blob/master/n... Essentially all personal data. Generally for these, the name is also sent to other processors, to check against OFAC's Specially Designated Nationals (to see if you are under sanctions in the US). So if you are in North Korea for example, you may not have access to your funds in practice with the current situation. It's a rather normal process though. At the end is no point about the GitHub anonymity thing because all users (even European or people from Zimbabwe) have to do the KYC anyway.
- exabrial 7y agoHow has github _not_ shut this down? I'm not giving away any credentials for anything.
- pinhead26 7y agoYou don't have to, it works by signing a message with your PGP or SSH key. All GitHub users' public keys are already available from their API, that's how the airdrop works.
- rvnx 7y agoNo. It's not like that at all. Otherwise there would be no controversy. The airdrop tool takes your private key and your passphrase, does some overcomplicated (and unconventional) magic with it and asks you to post the resulting data to the public.
- pinhead26 7y agoThe Goosig (extra blinding crpyto) is also optional. With the --bare flag, its just a signature.
- deleted 7y ago[deleted]
- kwantam 7y agoHi HN, I'm one of the authors of this paper. Very cool to see it being discussed here! I'm happy to answer questions about private airdrops, with two caveats: first, I'm not associated with Handshake, so I probably don't know the answer to Handshake-specific questions. Second, I'm juggling some other things today, so apologies in advance if my answers are delayed.
- rvnx 7y agoI see (on your own repo) an intriguing mention: "The design of GooSig requires a public RSA modulus whose prime factorization is unknown." I see one of the key is http://certificate.fyicenter.com/356_Root_CA_America_Online_Root_Certification_Authority_1_Ameri.html http://certificate.fyicenter.com/356_Root_CA_America_Online_... Did you choose this key because you consider it to have been lost ?
- kwantam 7y agoGreat question! The very short answer is "yes." In slightly more detail: We wanted to be able to test with a 4096-bit RSA modulus whose factorization was plausibly unknown, but this is a tough thing to find! (We certainly didn't want to include a modulus that we generated in the codebase, because from the outside there would be no way to know that we hadn't kept a trapdoor.) There are the famous RSA challenge numbers [1], but those only go up to 2048 bits; we include both of the 2048-bit challenge numbers in the repo. Root certificate moduli are almost what we want, since their factorization is a very closely guarded secret. (In fact, in all cases we're aware of, root cert secrets are kept only in hardware security modules, which by design do not allow anyone to extract the factorization---though of course HSMs can be buggy, so this is no silver bullet.) The problem is, the owner of the cert might in principle know the factorization, so we didn't want to pick an active root cert. We settled on the AOL root cert because it's the oldest 4096-bit root cert we could find that (1) that saw widespread use, (2) was plausibly uncompromised, but (3) is no longer actively used. To us, this was the best candidate for a 4096-bit modulus for which the factorization is lost---exactly as you say. This is only a heuristic---someone might know the factorization, in which case they could generate false proofs. We think it's exceedingly unlikely, but each person must assess that risk for themselves. This is related to other issues with trusted setup, "toxic waste," etc. (see, e.g., [2] for a discussion of this in the ZCash context). Another way to generate an RSA modulus whose factorization is plausibly unknown is to use a multi-party computation ceremony. In cases like this, you can believe that the factorization is unknown if you trust some fraction of the parties in the computation (details vary). I've heard that Ethereum is planning to do this at some point in the future, but I do not know any other details. As a final point, if one does not want to trust an RSA modulus, an alternative is to work in an imaginary quadratic class group. It's widely believed that there is no efficient way of computing the order of such a (which is what we require for security), and unlike an RSA group there's no trusted setup---you just pick a random prime and that defines your group. The downside is that group operations are about 10x slower. We discuss this a bit more in the paper, and our Python implementation [3] supports both RSA groups and class groups. Please let me know if the above isn't clear! [1] https://en.wikipedia.org/wiki/RSA_Factoring_Challenge https://en.wikipedia.org/wiki/RSA_Factoring_Challenge [2] https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/ https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/ [3] https://github.com/kwantam/GooSig https://github.com/kwantam/GooSig
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]