月份: 2018-04

比特币源码研读(6)—— 椭圆曲线加密法

比特币私钥生成公钥,用到的方法就是椭圆曲线加密法。椭圆曲线加密法是一种基于离散对数问题的非对称加密法,只能从私钥推出公钥,不能从公钥逆推出私钥。这是一个复杂的加密法,我们可以先从简单的类比开始。 简单的理解 均益在知乎上看到一个简单类比   先看一个栗子: 小明就读于小学二年级,会计算加法 […]

比特币源码研读(5)—— 私钥、公钥和地址

比特币中的私钥、公钥和地址,类比我们现实生活中银行卡,私钥是密码,地址是卡号,公钥还没有恰当的类比。在转账过程中,我们有密码,知道对方的地址,就可以转账成功。谁拥有私钥,谁就可以花费这个钱;谁拥有发送地址对应的私钥,谁就能接收这笔钱。 在比特币种,私钥、公钥和地址三者的关系是这样的: 私钥:随机生成 […]

比特币源码研读(4)——AppInitMain()验证钱包参数、数据库

接下来AppInitMain()运行到VerifyWallets(),VerifyWallets()在 src/wallet/init.cpp 文件中,主要是验证命令行输入的有关钱包的参数和数据库。 1、命令行参数 -disablewallet 判断是否阻止钱包,默认是开启钱包的 2、命令行参数 – […]

比特币源码研读(3)——AppInitMain()程序初始化设置

AppInitMain()函数在init.cpp文件,做的事情非常多,主要的有应用程序初始化、验证钱包数据库完整性、网络初始化、下载区块数据、加载钱包、数据目录维护、导入区块、开启节点。今天均益先说一下应用程序初始化 一、开启日志记录 检查参数-shrinkdebugfile,是否减少日志文件 打开 […]