磨链(mochain)社区分享我爱编程

磨链(mochain)社区-4.15分享-精通比特币摘要

2018-04-15  本文已影响7人  磨链社区

群内分享

1.区块链的正面与侧面 

2.【比特大学.夜问】张烽问道杨东教授:区块链的未来将向何方? 

3.HiBlock社区-技术沙龙|学习路径+案例分享,3小时快速入门区块链开发-西安 

群内讨论

区块链-《精通比特币》笔记:

最近在巴比特上看《精通比特币》第二版,看到一些概要大致记录整理。 

比特币所有权:密钥+地址+数字签名 

密钥独立现在存储于钱包(密钥以对的形式出现,公钥、私钥)、地址用于转移接收bitcoin、数字签名用于交易见证。(比特币交易过程中通讯和交易数据不加密) 

公钥加密方式:采用椭圆曲线算法。私钥用户自己保存、公钥在网络中公开。交易过程中发送公钥和签名。 

私钥:随机生成256位二进制数字(01010101组成),一般以64位十六进制显示。 

公钥基于私钥生成:私钥一个随机数,通过单项加密函数生成公钥。 

地址:地址基于公钥。地址=RIPEMD160(SHA(公钥)),可见地址再经过Base58编码显示。 

查看密钥:getnewaddress生成私钥但显示公钥、dumpprivkey显示私钥。 

椭圆加密算法:基于离散对数问题的非对称加密算法。 

Base58编码:不含数字0、大写字母O、小写字母i、大写字母I、+、/。 

版本检验码:checksum=SHA256(SHA256(prefix+data)) 

私钥格式:私钥是256位的数字,有不同格式:Hex、WIF、WIF-compressed。 

公钥格式:公钥264位的数字,有不同格式:Hex、WIF、WIF-compressed。 

加密私钥:BIP0038通用标准,使用一个口令私钥,通过Base58check对加密私钥进行编码。具体加密方案:输入私钥,通过WIF编码吗,base58check字符串前缀5,使用长密码作为口令,那么base58check编码前缀为6P。 

P2SH:以3开头bitcoin地址为P2SH地址,P2SH函数实现多重签名地址脚本,N个密钥需要M个签名,M-N多签名。 

靓号地址:通过靓号生成算法,选择私钥生成公钥,多次试验得到匹配。安全性上需要权衡。 

纸钱包:打印在纸上的bitcoin私钥,一种备份机制。 

钱包:钱包里没有bitcoin,钱包包含私钥,bitcoin实际上记录在区块链上。 

非确定性钱包(nondeterministic wallet),其中密钥都是随机生成,彼此无关联性。简称JBOK(just a bunch of keys)钱包。 

确定性钱包(deterministic wallet),密钥都是一个主密钥衍生出来。使用多种不同的密钥推导方法。 

非确定钱包密钥是一个松散集合,确定性钱包以一个种子来衍生其他密钥,只备份种子即可。 

分层确定性钱包,根据BIP-32和BIP-44生成的HD钱包,树形结构衍生各个密钥。有效建立一个公共密钥序列。 

种子和助记词:现在使用钱包中一般都会看到助记词选项,一系列的英文单字生成种子。助记词生成过程(BIP-39):从熵源开始,增加校验、然后映射。过程:

1.创建128-256随机序列(熵)

2.提出SHA-256哈希前面几位(熵长/32),创建一个随机序列的校验和。

3.校验和添加到随机序列末尾。

4.序列划分11位不同部分。

5.11位部分值和2048个单字字典做对应。

6.生成单词即可 

助记词生成种子: 

PBKDF2(密钥延伸函数)熵用于导出512位种子,增加“盐”的概念,“盐”的目的一个增加暴力破解难度,另一面引入密码短语,保护种子的附加安全性。 

接上述6步:PBKDF2密钥延伸函数的第一个参数来自生成的助记词,第二个参数为“盐”,由助记词和密码字符串连接而成,PBKDF2使用HMAC-SHA512算法,使用2048次hash来延伸助记词和盐参数,生成一个512位的值的输出,即为种子。 

获取bitcoin代码:git clonehttps://github.com/bitcoin/bitcoin.git 

查看bitcoin核心版本:git tag 

检查版本:git status 

编译:新版本通过make,旧版本通过makefile 

安装:sudo make install 默认安装路径:/usr/local/bin 

检查安装状态:which bitcoin、which bitcoin-cli 

运行bitcoin核心:bitcoind 

配置节点配置文件: 

1.在.bitcoin/bitcoin.conf文件中设置用户和密码,rpcuser=用户名、rpcpassword=密码 

2.alertnotify:电子邮件警报、conf:配置文件制定的命令和脚本、datadir:选择文件存储目录和文件系统(默认为.bitcoin目录)、prune:删除旧块、txindex:维护所有交易的索引、maxconnections:连接的最大节点数、maxmempool:内存限制、maxreceivebuffer:内存缓冲区限制(1000字节)倍数、minrelayfee:最低交易费用。 

查看bitcoin进程运行状态:bitcoin-cli getinfo 

使用JSON-RPC API接口:查看命令帮助:getblockhash RPC、bitcoin-cli help getblockhash 

查看客户端状态:bitcoin-cli getinfo 

获取相关交易信息:getrawtransaction+hash、decodeawtransaction+(十六进制解码顺序交易信息) 

获取区块信息:getblockhash+区块号、getblock+hash

群内工作

《磨链入门区块链》共同参与写一些东西,目录大纲完善中,一个长期项目。 

招募条件: 

1.需要一定的区块链基础。 

2.对上述任何一方面有较为深入理解。 

3.每周能保证一定的空余时间来折腾。 

4.了解github相关 

5.人员进行筛选,时间周期比较长。 

有意向联系我。

磨链在线课程 

对自己擅长方面有一定的沉淀,愿意开设在线课程,会考虑和一些专业培训机构合作,要求有一定的一线经验,实实在在分享课程。有兴趣的联,有偿工作。

磨链(mochain)社区招募相关人员

PS:想加入磨链的,或者具体参与到磨链的建设中的,请加磨链组织者微信(jackyjin09)。并且注明自己的能参与的编号(1.2.3.4),欢迎每一位区块链技术爱好者加入磨链,一块琢磨区块链技术。

关于磨链和相关合作

磨链”---取磨炼之意,旨在普及区块链技术,磨炼技术,更好投身区块链行业。有兴趣一块琢磨区块链技术,联系笔者微信(jackyjin09)。 

磨链社区是一个纯粹的技术社区,欢迎相关技术合作,在不违反原则的前提下,积极参与合作。 

你可以在这里找到我们: 

磨链社区公众号: 

1. 磨链社区:http://mochain.info 

2. Github : https://github.com/mochain 

3. Gitter 聊天: https://gitter.im/mochain 

4. 知识星球: https://t.zsxq.com/M3BMVZN 

5. 知乎:https://www.zhihu.com/people/mochain 

(持续更新中)

合作社区

趣链科技技术团队 

HiBlock区块链社区 

上一篇下一篇

猜你喜欢

热点阅读