数字货币开发过程中常用的算法有哪些?比如SHA256
来源:互联网 发布:淘宝商品信用卡套现 编辑:程序博客网 时间:2024/05/16 10:48
区块链爱好者(QQ:53016353)
第一次看到 数字货币 这个词被用在比特币钱包中时,很容易就把它理解成硬件(Hardware)钱包,其实它是分层确定性(Hierarchical Deterministic)钱包的缩写 数字货币 Wallets。
“分层确定性”这个词乍看起来很“高大上”,各类文档也把它描述的“云里雾里”的,其实原理本身很简单,两句话就能说清楚:
首先,要用一个随机数来生成主(根)私钥,这和任何一个比特币钱包生成任何一个私钥没任何区别;
然后,再用一个确定的、不可逆的算法,基于主私钥生成任意数量的子私钥;
看到了没?很简单吧?
那为什么要用“确定、不可逆”的算法呢?因为“确定”才能保证从一个主私钥可以生成出全部的子私钥,而“不可逆”则是为了确保不能通过子私钥反推出主私钥。
例如,SHA256 就可以看成是“确定、不可逆”的算法,我们可以很容易的使用 SHA256 设计出一个 数字货币 模型:SHA256(seed + n)
在这个模型里,seed 为主私钥,n=(1,2,3......)计算出来的结果对应于第(1,2,3......)个子私钥。
这其实就是类型1确定性钱包(Type1 数字货币 Wallets),当然,我们还可以基于更多“确定、不可逆”的算法来设计其它 数字货币 模型,比如 BIP32,再比如类性2确定性钱包(Type2 数字货币 Wallets)。算法可以复杂,但原理都一样,很简单,而且,只要 SHA256 是安全的,数字货币 模型就是安全的。
数字货币 模型在数学上有一个非常“好”的特性:只需要主公钥,就可以生成出任意数量的子公钥。也就是说,无需私钥介入(主私钥和子私钥),就能基于主公钥生成新(公钥)地址,而这些地址其实都能被主私钥所控制。
这个特性使得 数字货币 模型在过去一年里被越来越多的应用于企业和个人比特币钱包解决方案,可惜,优点往往伴随着代价,某些情况下,代价甚至是“致命的”。
阅读全文
0 0
- 数字货币开发过程中常用的算法有哪些?比如SHA256
- 数字货币开发专题(安全散列算法SHA256)
- 数字货币有哪些
- ACM 中常用的算法有哪些?
- 虚拟币开发专题(数字货币编译过程中常见问题)
- 浅谈区块链开发数字货币过程中环境变量问题
- 真正在开发中常用的模式有哪些
- 常用的网页开发工具有哪些
- 常用的android开发框架有哪些
- 常用的android开发框架有哪些
- java基础—常用的集合类有哪些?比如List如何排序?
- 虚拟货币有哪些
- 虚拟货币有哪些
- JAVA中有哪些常用的包???
- Android中常用的布局有哪些?
- Android WebView 在开发过程中有哪些坑?
- 数字货币开发,和区块链技术中有什么优点。
- android游戏开发中常用组件有哪些
- Java多线程——线程怎么来的?
- jquery中$.proxy及wrap()的使用
- Cocos2d-x里面如何实现MVC(五)
- 删除分区表里某个分区的数据
- 读懂源码系列-FileZilla Server 设计原则分析-socket 事件处理流程(4)
- 数字货币开发过程中常用的算法有哪些?比如SHA256
- docker-容器
- 解题报告:Codeforces Round #433 (Div. 2) E. Boredom ( 离线处理+树状数组)
- WOJ1211-表达式的值
- s:if标签字符串比较注意事项
- ftp 命令详解
- 小菜鸟的第一篇文章,在学习RN,就当是做笔记吧,iOS开发RN中添加第三方库react-native-image-picker
- Java基础面试题目
- python提示错误TypeError: 'dict_keys' object does not support indexing