From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 20 Nov 2025 01:49:49 -0800 Received: from mail-ot1-f64.google.com ([209.85.210.64]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1vM1IT-0004m4-6E for bitcoindev@gnusha.org; Thu, 20 Nov 2025 01:49:49 -0800 Received: by mail-ot1-f64.google.com with SMTP id 46e09a7af769-7c76977192esf1655477a34.3 for ; Thu, 20 Nov 2025 01:49:48 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1763632183; cv=pass; d=google.com; s=arc-20240605; b=EtKdAdV2+7HjPqebWXDUA005pTO+n/sTJzFTDNpA4GIqHY9TadFVecAPLOixhsIH1O YDXTSzGmDGNgA4sQdCxD6aqLyxpCMpI/mlTBExiNq9GlnYhp+bZRoXkNY36LG1l/6PTA pe3L5xJzjLLrN0Lvty0WQ/ewKo3Mgoj99LBt2KcLUJQ+wCERN03W26tB3qQKSa4v+bzk WbGDfNPI/1K1j4x7U8yg+mkKwMgFpEhzfufjg4cBGEK6hltDtzOKuHCxi9+g326z0koX xlwjm0OpO8LhZoj6Mp4CBeME9DTOoIskNSAcf1dHVwrSc8Ak/6EeTYVxtyFQKEsPzLMW tazA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:content-transfer-encoding :mime-version:feedback-id:message-id:subject:from:to:date :dkim-signature; bh=B9MuHSxQKyb3Xmmra+nplru3xVIuaRWtSInT86z0IpI=; fh=NkaM0BJ4fOCkJXzck5j/N81sn/waCUAlEUFh0E5BzFM=; b=g6gsnKaKrvkJPd5wtzc+c2c1SDtz6vaQrTPZJIl0BKXIcPC7v0tg6qogYWal5RimwK BcmoJebozBoIWSoetYdMev8vnqNMGsHehSRZfF05BaTuw2mfoDVffuG2dA+UjOSsOjbb sONjko7FL0PbA2T//q0MTjzu917GrqGvdUDkV24uBLbHYirh8x6G6j5T7wT9oo2elR2f 2ccgrWt42BBOw5a2sFqiHXIHdkZsiuvaMYH63zxExyfbb9I6KhEc4dLv3R0O4XSeghPU CTGYWlHI06lI3W8AijSUzGMOKTSeMBH2fKmgjOGmNoFkm+P+mU1o3v/1wVaweHV/l4XX 5z+A==; darn=gnusha.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@proton.me header.s=hifdrabpvnfgdjgeixxqbfaxsi.protonmail header.b="fTSSY/KR"; spf=pass (google.com: domain of ganrama@proton.me designates 185.70.43.19 as permitted sender) smtp.mailfrom=ganrama@proton.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=proton.me DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1763632183; x=1764236983; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender :content-transfer-encoding:mime-version:feedback-id:message-id :subject:from:to:date:from:to:cc:subject:date:message-id:reply-to; bh=B9MuHSxQKyb3Xmmra+nplru3xVIuaRWtSInT86z0IpI=; b=FIe8u8mbAPRkRQe1qnJ/MF0ME6TiaxWf0a5lAG6PO28c2+Z4ts0CgL/ujMDIyEB2Ir EEUyzAPvRGv3NgECotoDkJGuTmtKAysfJTYvKFRKXANFooon2K9Y/lHuOp1hPngSj+Sf 8ORSFkKAT9H1NljmHZp6v2De/GLKITB9VNbrjjGvb8XnTGcy+0kLEiZZJQ9Bs17hrAU+ p9AFUWfZzjH2YFVPUDdcGN7kxGnt+0/ZOgaEOxs0tMqGZNrVq2L8gSY+M8WJfS5MY1+7 nZQrOlBJn6rq99c1qxZTSF07k2/ZOSAIMBnms6Xb9cff1Nos832i7kUC/KvBi5RiCdm0 MibA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763632183; x=1764236983; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender :content-transfer-encoding:mime-version:feedback-id:message-id :subject:from:to:date:x-beenthere:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=B9MuHSxQKyb3Xmmra+nplru3xVIuaRWtSInT86z0IpI=; b=heH6YbXmPYKvIcC83ThaolYP8x4xrZ1Hu7VwOBsqlKzokMIh7F//yifpivLIW7DKV6 g6zGJO70TUX9Q9VbVOlSY9nXQgLGKtRYina00+q8h9JOIiV6AJ8cV71P0KWTF/2Ge4WQ t0/64k5J42Va8kMM3m0b/AXMuoIcLmlEnZQMdahpKhk+cQZpfm6XWOdd0rWQrfQ4tMAA G4ss2QnCGazrcy1/3GkRX1I4SHWqQkPmXBrfglR5cBq3z7K9zilsZFkNYIE7SdFIV6/r F+6+WVKgdg8cFir1O6wp9kyuD+wOfraW8fFR+yO6uRwud4cj8xdzW+kUqHfquL3nDmrd Ahzg== X-Forwarded-Encrypted: i=2; AJvYcCU+ksXzXThBtL5Z9bsx52c6DRvFoGyolRHfKlYBA2juKq3elfDIKTE7IUQ16cYrZObraeUQk65ZEIXj@gnusha.org X-Gm-Message-State: AOJu0YzW9zgnYU9X6HhJY4dZ95LuWByjT4ta4/J81A1nanmdAyu3dtWq th9DeqtE7dQxIwK59iYxYx1PSAxlOQOzVJD30DOjMmxK9tOTMIOHSeq3 X-Google-Smtp-Source: AGHT+IEbAqk99tlVJ4syLZkgDLca55vHN/nz+VtRWF6Cu6AbE7vPQG+87rAc6cc2aQimaOR1PVxy1Q== X-Received: by 2002:a05:6808:2210:b0:450:e36:999f with SMTP id 5614622812f47-450ff2334ddmr1363539b6e.21.1763632182699; Thu, 20 Nov 2025 01:49:42 -0800 (PST) X-BeenThere: bitcoindev@googlegroups.com; h="Ae8XA+bq7mzwiA6zN/0l3pzDgmg+SU/iccruUsmV19RgYH9XPQ==" Received: by 2002:a05:6870:a688:b0:331:5ba5:afd3 with SMTP id 586e51a60fabf-3ec9b404c81ls437182fac.1.-pod-prod-07-us; Thu, 20 Nov 2025 01:49:38 -0800 (PST) X-Received: by 2002:a05:6808:1888:b0:44f:e61d:18ae with SMTP id 5614622812f47-450ff050127mr1297969b6e.0.1763632178256; Thu, 20 Nov 2025 01:49:38 -0800 (PST) Received: by 2002:a7b:c456:0:b0:471:13aa:415a with SMTP id 5b1f17b1804b1-477b10e57d9ms5e9; Thu, 20 Nov 2025 01:04:31 -0800 (PST) X-Received: by 2002:a05:600c:4f82:b0:477:aed0:f3fd with SMTP id 5b1f17b1804b1-477babcf93cmr9767765e9.8.1763629469296; Thu, 20 Nov 2025 01:04:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1763629469; cv=none; d=google.com; s=arc-20240605; b=dOZIfXZa3eQdRh/hgy85/XsK1WnDssynLnTlen0QdeSZFc9TdV5Sh6+BbUhqgYNuUO UMrh9Mf4zIOnLSSzN8ayrhSvSW2WT5Gd9ATTenmxJX+5EJCr4VuR/7gnZVXeiL/4r45t /Cod3aSL43bQ+9BPZJ5A/gDn8xwLqxbLtScfVs/PC9MLie9QyCwkt/NfcY7Lk59MUwEx yCI+Qwxw0wmHcgIVEAaso3w+kDiQf2keh5XWexd1MVcErYJ/i4ttNKgimq4pq0QBuHUE zldl+ZuvAuCY8wSVZel6XNkQw1Hlx+NySe73KzxTJ4bXAbKC2+8cX3qx69dMNWLZ+vo9 3Sog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:feedback-id:message-id :subject:from:to:date:dkim-signature; bh=jHp+K/21Szdcet5f5LfQ3TqRCh2TwgDftUkyxHqbKsM=; fh=lhFSo2W/mHC0QoJ9oNg3A35n0DTltt3CQl1/0RggJlk=; b=ZcQc60gBf+/ghI3JEuoM1r04zdOvJovwvLED2k4u/YXgEr+2Ygp90BL52YxH21wPIH mzOcjULsMWcBCrQHUVQtY24Ffp+5g7E/DFvV9NYEzkNI8WwzXtL5HybYJlr6lxw+iLz1 CM7mTR1G5rp9dlcR7ZoyivSAWVTnBJw2iZwOs3b5RcfXBa/Cgs8xYNy06ZhKi4L2ZlZ6 kZ29IzIFMkhmrtzIaAe6uEwFSTj+t9ixgax8qwL5qm2pSQQ4aVFBlsHPpWXB+8l0ulId L1xp+3sdImmpEmm+i6C/heoQzMtKFnII64V1pxXAA2lBswMQDB91V5M4mfskSbmUfnxA soMw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@proton.me header.s=hifdrabpvnfgdjgeixxqbfaxsi.protonmail header.b="fTSSY/KR"; spf=pass (google.com: domain of ganrama@proton.me designates 185.70.43.19 as permitted sender) smtp.mailfrom=ganrama@proton.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=proton.me Received: from mail-4319.protonmail.ch (mail-4319.protonmail.ch. [185.70.43.19]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-477aa910d7asi1099445e9.2.2025.11.20.01.04.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Nov 2025 01:04:29 -0800 (PST) Received-SPF: pass (google.com: domain of ganrama@proton.me designates 185.70.43.19 as permitted sender) client-ip=185.70.43.19; Date: Thu, 20 Nov 2025 09:04:24 +0000 To: "bitcoindev@googlegroups.com" From: "'Rama Gan' via Bitcoin Development Mailing List" Subject: [bitcoindev] Announcing Penlock v1: Paper-Based Secret Splitting for BIP39 Seed Phrases Message-ID: Feedback-ID: 79991369:user:proton X-Pm-Message-ID: 8cb90ec7dd173e8b312bc5cf7ee57d26ee9c64a1 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Original-Sender: ganrama@proton.me X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@proton.me header.s=hifdrabpvnfgdjgeixxqbfaxsi.protonmail header.b="fTSSY/KR"; spf=pass (google.com: domain of ganrama@proton.me designates 185.70.43.19 as permitted sender) smtp.mailfrom=ganrama@proton.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=proton.me X-Original-From: Rama Gan Reply-To: Rama Gan Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: X-Google-Group-Id: 786775582512 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Score: -1.0 (-) Hello everyone, I am thrilled to announce the public release of Penlock! The goal is achieved! If you have a printer, scissors, a craft knife, and a pin, you can mechanically secret-split a 12-word seed phrase in under two hours. This includes the entire process=E2=80=94learning, printing, assembling, executing, and storing the shares. Penlock is a printable paper calculator that guides you through splitting a seed phrase into a 2-of-3 backup. It is open-source, uses straightforward and robust cryptography, and includes various fail-safes that protect against errors. A beta was announced on this list last year, and the public release is now available at: This release breaks backward-compatibility with the beta, allowing for enhancements that make Penlock significantly easier to operate. Here are the main improvements in v1: - Faster Secret-Splitting: Penlock now focuses exclusively on producing 2-of-3 backups using its own paper-optimized splitting algorithm. The previous iteration supported K-of-M splitting with Shamir Secret Sharing, but at the cost of more complexity and a clunkier 2-of-3 process. Since 2-of-3 covers nearly all use cases, optimizing for it seemed like the right approach. - Backup Strategy Template: Penlock now suggests a generic, adaptable backup strategy that helps set up offsite recovery and trust-minimized inheritance. In short, each share is tied to a different type of storage: Digital, Social, and (optionally) Legal. This ensures an attacker would have to run two different types of attacks, and makes it hard for a party holding one share to obtain a second one. You can find more details at . - On-Paper Error Correction: Penlock v1 introduces what I believe to be the first on-paper error correction algorithm. Each BIP39 word is extended with two pre-computed parity symbols, guaranteeing per-word unambiguous correction of 1 error and detection of 2. In practice, it's also possible to fix a word with two errors, though it requires a little bit of patience. - Easier Seed Phrase Generation: Penlock also offers BIP39 seed phrase generation as an extra feature. The whole process has been redesigned into one of the simplest ways to generate a seed phrase by hand. Penlock was inspired by Codex32 from Andrew Poelstra and Russell O'Connor. It's been a two-year quest to adapt their concept for BIP39 seed phrases, iterating toward the best UX I could craft without compromising security. These improvements often required breaking compatibility with previous versions, which made me reluctant to propose a public version until the design stabilized into something final. I believe I have finally reached the best formula I can think of, hence this release. The feedback so far has been very positive, and I hope you find it interesting too! Please share any feedback or questions, and let me know what you think! Best, Rama Gan P.S.: Penlock's wheel also happens to be an interesting cryptographic puzzle=E2=80=94can you reverse-engineer Penlock's secret splitting algorith= m just by looking at it? --=20 You received this message because you are subscribed to the Google Groups "= Bitcoin Development Mailing List" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoindev+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/= GbNAPQX2Q4TzZvS6aWLPf3iy7z1yTXVrgnPpXazBjdcWH-zROBEBieE02r6GX128LM7mml6oTzA= mlboV97EWpG1ujLcVZ6fx6uihUMXxCEo%3D%40proton.me.