Comments (2)
I think it's okay. Similar with using a deck of cards reduced to 32 elements, and drawing with replacement and shuffling in between.
But it's hard to recommend. It really depends on how well you're "thoroughly mixing" the marbles and personally I worry that humans would have some reliable bias when doing this. But I'm not aware of any studies and don't really know how to obtain the information that I'd need to make me comfortable with this.
See this Ars Technica article on dice though which is the kinda thing I'd like to see with marble-drawing.
Having said this, if I used this technique for my personal coins, I wouldn't lose any sleep over it. Some bias in key-generation is fine; what you need to worry about is entropy. And even if you're losing a whole bit of entropy with every draw, after 26 draws you'll have 104 bits rather than 130 bits. Which is more than enough. And losing a whole bit already seems implausible. It would mean like, half your alphabet was missing.
from codex32.
Certainly the idealization of drawing balls from a urn is the prototypical way of defining a uniform distribution.
Still balls in practice will not be equal weight/density, and there will be a tendency for some bias as the lighter ones to rise to the top of the urn and heaver ones to fall down. (And the marbles will slowly change over time as they rub against each other).
I think the quality of randomness isn't a good as debiased dice, but I would guess that it is acceptable (and much easier to produce). I would close and shake the jar rather than mixing by hand.
You could add multiple copies of characters to the jar which has some tradeoffs. Entropy would be slightly better, but at the cost of needed to count that there are exactly equal number of marbles beforehand, (something I suppose you will have to do even with one of each marble). Also you want to make sure there is plenty of room in the jar for shaking to be effective.
from codex32.
Related Issues (20)
- Create a worked example
- The 6 and 9 characters are somewhat ambigous on the wheel. HOT 1
- Group letters in the checksum worksheet. HOT 6
- Support encrypted shares (by doing a second layer of 2-of-2 SSS) HOT 28
- Turn Recover Share volvelle into a table. HOT 3
- "Production-Ready" checklist / tracking issue
- Recovery disc should clearly label "This is the share you are translating"
- Why not build this for one time pads? HOT 3
- Can't open .ps in Mac Preview in new branch HOT 1
- Clarification regarding deriving addresses without digital computers HOT 4
- Source code for error correction? HOT 26
- Recommendations for Auditable Electronic Codex32 Implementations HOT 107
- Reverse arrow pointers on top disc. HOT 1
- Improved BIP39 Backwards compatibility HOT 2
- PEP8: ambiguous variable name in BIP93 in line python reference HOT 3
- Suggest standard implementation for electronic share set generation
- Recovery tables for the random share(s)
- Support k-of-n SSS HOT 3
- Document source code
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from codex32.