(一)比特币本质
是由一系列概念和技术作为基础构建的系统。本质上就是一个分布式的P2P网络系统。具体来说就它由一系列电脑(或其它计算设备)相互连通构成一个P2P网络。每个电脑上都装有一系列的软件,这些软件就构成一个分布式计算系统,用于协调这些电脑完成相互链接、相互传递消息和通信、协调各自的任务和分工。最终这些电脑彼此交互要实现一个共同的目标——维护一套数据库的完整和更新。这套数据库就被称之为比特币区块链,而这套被称为区块链的数据库记录的内容就被我们当成货币来用。这和我们使用的网银是银行里记录的数据库是一个道理。
(二)比特币的基本理论模型:
想象这么一个场景,有一个村庄有10个人,每个人都有一台电脑。这些电脑里都存在全村所有人的资产账本,张三有多少钱、李四有多少钱……。这套账本还详细记录了所有人的资金流动记录,张三在某个时间点给了李四多少钱、李四在某个时间点给了王五多少钱……。
现在的问题是,每个人都完全控制自己的电脑,每个人都可以自由修改自己电脑里的账本里记录,比如张三可以给自己的账户上加几个零。而且全村又没有一个绝对的权威来仲裁谁作弊了。
那在这个场景中,如何将这10台电脑联成一个对等网络,并且通过一套分布计计算的系统让每一台电脑真实记录全村的资金流动和各个村民的资产,并且达到以下要求:
1. 一个人的账户向另外一个人发送了资金,所有电脑都能及时更新账本,并保持一致;
2. 电脑之间交换数据(即资金流动)的过程不被篡改;
3. 所有电脑里的历史记录不可篡改;
4. 任何人都可以自由开机加入,或者关机退出这套系统,并且不会影响整套系统的正常工作。
这么一个场景及这套P2P网络和分布式计算就构成了比特币的简化模型。这样村民就可以使用这套系统来充当货币,完成经济活动的支付。
(三)比特币的三个基本概念:地址和私钥、比特币钱包
特币的所有权是通过私钥和地址来确立的。
我们可以先简单地用类比来理解,私钥就类似于银行账户密码;地址就类似于银行账号。
新建一个比特币地址不像银行开户那样需要身份证,用手机或电脑下载一个比特币钱包(这是一个软件,或APP,)就可以生成一个比特币地址。下面就是一个比特币地址:
14mhzjkJ71oMAMkKu3dy98dnUpkyQBHL1r
生成一个比特币地址的同时就会有一个私钥被生成,严格来说是先生成私钥,然后通过私钥使用加密函数来计算出地址。但我们这里不做太严格的区分,如果太严格的话,我们需要理解更多的概念,但这些知识细节不会影响到我们使用比特币。下面就是一个比特币私钥:
KxkmRGmtTJ3nYyTwaU2uQPCPFWjjLKTT987Z2vqXG3itByMa2pDP
作为比特币用户,我们很少会直接看到私钥,一般情况下,私钥是被存储在钱包文件里,由钱包软件进行管理。如果你不对钱包进行加密的话,甚至你可以不需要使用密码就可以发送你的比特币。当然最好别这么干,一定要给钱包加密。
如果有人要向你发送比特币,你只需要将你的地址告诉他就好了。
而如果你要向他人发送你拥有的比特币,你需要使用钱包软件来完成“私钥签名”构造一笔交易,然后通过网络去广播交易。虽然这里用了很学术的话语来描述,但事实操作过程其实就和你用支付宝向他人付款是一样的。将收款方的地址复制到你的比特币钱包的要“发送给”(不同的钱包会有不同的命名,但意思都一样)这一栏。然后填写你要支付的金额。接着输入你之前设定好的密码,就可以发送了。
比特币钱包
正如我们使用钱包来存放人民币一样,存放比特币也是需要“钱包”的。钱包是我们用来生产私钥和地址、管理私钥和地址、接收和发送比特币的工具。
比特币钱包有很多种,有PC端的也有手机端的,也有专门的一个设备的硬件钱包,甚至还有用纸写上私钥的纸钱包。比如Bitcoin Core钱包就可以安装在电脑上,安装完后。你就可以打开钱包,然后生成地址和私钥。而安装后在相应的文件夹里会生成一个叫wallet.dat的文件。这个文件里存的就是你的私钥。打比方说,这个wallet.dat文件就相当于银行卡,上面写着你的银行账号,但wallet.dat里还写着你的取款密码。所以要注意保护好你的wallet.dat文件。当然你可以对wallet.dat文件加密,来提高安全性,而且装好钱包要第一时间设置密码。
所以说钱包的精髓就是用来保存私钥的,也就是任何可以保存私钥的东西都可以被称为钱包。电脑有钱包,手机也有钱包。纸钱包就是把私钥记录在纸上的钱包。
只要有私钥,就代表了你拥有了对应的比特币。所以保管私钥的钱包非常重要。
这里有个很白痴的问题,我新装一个钱包新生成一个地址,里面是不会有比特币的,天下不会掉馅饼的。我要先往地址里打比特币,然后才会有币。这和你去银行开户,你不存钱进去就不会有钱是一个道理。