Skip to content

Instantly share code, notes, and snippets.

View Arachnid's full-sized avatar

Nick Johnson Arachnid

View GitHub Profile
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
In the event that I take a position as an advisor or developer of any Ethereum-related effort, I will always publish a message signed with this key (which can be verified on Keybase) attesting to my involvement. Please disregard any assertions that I am involved in a project that do not come with a corresponding signed message; they were not authorised by me.
As of this writing (2017-04-06), I have direct involvement with the following projects:
- go-ethereum
- The Ethereum Name Service (ENS)
- Ether Cards
I like Piper’s approach :)
https://keybase.io/danfinlay
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
The address to use for Dan Finlay is 0x55e2780588aa5000F464f700D2676fD0a22Ee160.
I express my commitment to act in accordance with these goals:
pragma solidity ^0.4.0;
contract ENS {
function resolver(bytes32 node) constant returns(Resolver);
}
contract Resolver {
function addr(bytes32 node) constant returns(address);
}
import random
donors = [
(0.009559, '0x1cb9e58e03b3365434a863935e8b92a178bb9d60'),
(0.8, '0x23ee0a4332be289c39a92b3324043f06973edbb9'),
(11.0, '0x6162b1e823644580f06cefd5aa51c65b5bb56f2e'),
(2, '0x831cffd303252765ba1fe15038c354d12cebabd1'),
(2.362, '0xdd289578d8915156de085df3d03062335238a293'),
(2.386913, '0xb9b79944fad2956413a8979fc05d39464f1d5249'),
(1.0, '0x82eae6c30ed9606e2b389ae65395648748c6a17f'),
### Keybase proof
I hereby claim:
* I am arachnid on github.
* I am arachnid (https://keybase.io/arachnid) on keybase.
* I have a public key whose fingerprint is DD7A 2E03 0B2F AF1C 3121 6FE6 6D96 4993 2F29 5D12
To claim this, I am signing this object:
{u'calls': [{u'args': u'NfqkFg==',
u'calls': [{u'args': u'cKCCMQAAAAAAAAAAAAAAADridZOuPYpXXA1srVOnNvNhUseS',
u'calls': [],
u'error': None,
u'firststep': 232,
u'gas': 176091,
u'laststep': 399,
u'op': u'CALL',
u'return': u'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGIMV93a4AAA=',
u'to': u'0xbb9bc244d798123fde783fcc1c72d3bb8c189413',

pre-EIP: Password-protected Paper Wallets

Abstract

A mechanism is presented for generating password protected wallets, generated in such a fashion that a printing facility can generate a paper wallet that is encrypted with a user-supplied password, produced in such a fashion that the neither the printer nor the user can recover the account's private key without both the paper wallet and the password. This facilitates generating secure paper wallets or 'physical ether', whose security rests neither on the trustworthiness of the printer nor on the user's ability to effectively conceal their password. Password-protected wallets are encoded as mnemonic phrases, as described in BIP39.

Motivation

Paper wallets provide an attractive option for secure offline storage of cryptocurrencies, but securely generating a paper wallet can be an involved process, requiring an offline ('airgapped') computer and considerable care to protect private informati

library LZF {
function decompress(bytes memory compressed, bytes memory decompressed) internal {
uint ip;
uint in_end;
uint op;
assembly {
// OP points to the current output location in memory
op := add(decompressed, 32)
// IP actually points to 31 bytes before the desired location, so
// MLOADs work correctly
/**
* Author: Nick Johnson <arachnid at notdot.net>
*
* WARNING: This contract is new and thus-far only lightly tested. I'm fairly
* confident it operates as described, but you may want to assure yourself of
* its correctness - or wait for others to do so for you - before you trust your
* ether to it. No guarantees, express or implied, are provided - use at your
* own risk.
*
* @dev Ether vault contract. Stores ether with a 'time lock' on withdrawals,
  EIP: draft
  Title: Ethereum Domain Name Service - Specification
  Author: Nick Johnson 
  Status: Draft
  Type: Informational
  Created: 2016-04-04

Abstract