Skip to content

Instantly share code, notes, and snippets.

View petertodd's full-sized avatar

Peter Todd petertodd

View GitHub Profile
petertodd /
Last active July 24, 2018 18:05
Fidelity Bonds

The Problem

Anonymous identities are cheap. Suppose you are running a wiki, and are having a problem with spammers, trolls, and other abusive people. Now you can of course ban accounts for abuse, but this is the internet, creating a new account is trivial. This is especially true when you want to allow anonymous use of your wiki. (or for that matter, any service) Of course you can try to make it harder to make a replacement account with efforts like captchas and requiring email addresses from well-known domains, but these solutions all have drawbacks, and are often surprisingly easy for spammers and trolls to defeat. (you can hire humans to solve captchas for you at remarkably low rates)

Fundementally all those solutions are making an identity more expensive to get. Of course, you could just charge membership fees - Something Awful, 4chan and the Bitcoin Wiki all do this - but now you're running a business and users have to pay fees for every wiki they join. What you really want is some sort of

petertodd /
Created March 7, 2013 06:22
Shitty mempool analyzer
import os
import sys
import struct
from opentimestamps._internal import hexlify,unhexlify
import opentimestamps._bitcoinrpc as btcrpc
View btcpayments.rst

Bitcoin Payment Messages

This document proposes protocol buffer-based formats for a simple payment protocol between a customer's bitcoin client software and a merchant.

Separate documents will propose an extension to the Bitcoin URI syntax and new MIME types to support them.



Keybase proof

I hereby claim:

  • I am petertodd on github.
  • I am petertodd ( on keybase.
  • I have a public key whose fingerprint is 37EC 7D7B 0A21 7CDB 4B4E 007E 7FAB 1142 67E4 FA04

To claim this, I am signing this object:

petertodd / gist:2ec211f86c2cc8ede377
Last active August 29, 2015 14:03
An analysis of button presses as an entropy source
View gist:2ec211f86c2cc8ede377
> - floating ADC inputs, as Peter suggested;
> - five independent RC oscillators.
I've got another idea that requires no extra hardware. I think has a
solid theoretical basis which I've explored below in sufficient detail
to raise suspicions that I miss my old line of work:
tl;dr: Record the dt time between button clicks, adding dt to the
accumulator each time by hashing it into the persistent state.
View std-consulting-agreement.txt
Hash: SHA256
This is my standard consulting agreement, drafted by Addison Cameron-Huff
<> Feel free to use/distribute this as you see fit.
Consulting Agreement
petertodd / gist:8e87c782bdf342ef18fb
Last active December 13, 2020 05:33
What the tx-flood stress-test means for you and how to deal with it
class CMemPoolTx:
def feerate(self):
return self.nFee / self.nSize
def sum_feerate(self):
return self.nSumFees / self.nSumSize