Bitcoin WoT using PGP/SKS


There was recently a post to the sks list prompting discussion regarding the use of PGP and SKS as a distributed web of trust for an alternative currency system called “Bitcoin.” This reminds me of a project I worked on in the early ’00s with the late Jeff Fairhall and Thomas Greco.

Anyhow, I mumbled some things on IRC about my thoughts:

08:23 < cj> nanotube: I got your email on the sks list
08:32 < cj> nanotube: the reason SKS keyservers work at this 
            point is because there is little interest in PGP WoT
08:32 < cj> or PGP in general
08:33 < cj> cjac@pki:~$ df -h /var/lib/sks
08:33 < cj> Filesystem            Size  Used Avail Use% Mounted 
            on
08:33 < cj> /dev/xvda2             14G  9.0G  4.2G  69% 
            /var/lib/sks
08:34 < cj> if a major monetary system were to "piggyback" on 
            the existing network, maintenance of pub keys would 
            become unmanageable
08:34 < cj> nanotube: read through the sks archive with an eye 
            toward database size
08:36 < cj> there are a total of a bit more than 3M keys in the 
            db at this point.
08:36 < cj> http://keyserver.colliertech.org:11371/pks/lookup?op=stats
08:38 < cj> My database becomes corrupt every 3 months or so 
            and I need to re-build it.  This may just be user 
            error, and probably is.  However, I do not seem to 
            be the only one who suffers from this problem.
08:40 < cj> Assuming that there are on average about 5 keys in 
            the db per participant, that means the 9G of key 
            data represents 600K humans.
08:42 < cj> which is roughly 0.000085719% of the world's 
            population
08:43 < cj> if we want to support the other 100% of the 
            population, we need to implement intelligent 
            sharding or improve the efficiency of the data store
09:04 -!- OneFixt is now known as Guest66546
09:06 -!- Guest66546 is now known as OneFixt
09:08 < cj> note that operating a key server which stores 
            anything less than the full set of public keys 
            compromises the integrity of the system.  The 
            primary objective of the key server is to be a 
            complete store of the set so that there is no 
            central authority.
09:16 < cj> from the wiki page:  "Since the web of trust node 
            keys will over time grow long with a bunch of UIDs, 
            it is likely that you may not want to use your 
            regular key for this purpose, and would probably 
            want to create a separate key. If you want to tie 
            your regular PGP identity to this key, you can 
            simply cross-sign your regular key with your web of 
            trust key."
09:18 < cj> this assumes that there is an infinite amount of 
            storage on each SKS key server.  If everybody's key 
            will over time grow long with a bunch of UIDs", 
            then we will see a very large number of very large 
            keys.
09:19 < cj> I recommend that bitcoin participants manage their 
            own SKS pool while developing the proof of concept. 
            This will reduce the noise caused in the public 
            pool.
09:20 < cj> and will give the developers an understanding of 
            the implications of their design decisions
09:22 < cj> here are some thoughts I had on the subject a 
            decade or so ago and RMS' responses:
09:22 < cj> http://web.archive.org/web/20030812201116/http://gnubucks.com/impressions/rms.html

Leave a Reply