十几天前看不懂《精通比特币》这本书,现在听了直播(1---5章)明白了,这得益于金马老师的辛苦付出,向金马老师说声谢谢!
比特币有2层含义:
1、比特币是第一个区块链实现;
2、也是一种数字货币,没有实体,存在数字钱包中,谁有打开钱包的私钥,谁有权取钱花钱。
矿工和挖矿
比特币的分布形式计算:相当于央行把货币发行和结算的任务分配给了每一个参加挖矿比赛的人。
央行发行人民币,而比特币是“挖矿”产生的。挖矿是一种数学算力的比赛,谁先解开数学题,就奖励给谁比特币。
同时每个矿工们还在验证和记录交易,只有交易信息被矿工们“挖矿”验证并加在一个区块中,这个交易才能成为总帐本的一部分。
挖矿的过程其实就是将过去一段时间的交易记录打包成一个区块,这个过程还同时创造新的比特币。
挖矿是基于哈希加密算法(Hash)的解题过程,解题困难而验证容易,这也是比特币游戏解密游戏的最大特点。
矿工们也是组队解题,赢了就按工作量分配收获的比特币。
交易产生的交易费也是矿工们的劳务费。交易费的多少会影响处理的优先级,有足够费用的交易会更早被包含在下一个挖出的区块中,也就更早得到确认和验证,可以早一点得知交易成功就可以早一点洗洗睡了。
比特币的几个特点:
1、通胀让钱贬值,而比特币由于数量恒定就2.1千万枚开采速度每4年减半,直到2140年采完,所以比特币呈现通缩,因此持有比特币可以对抗法币的通胀。
2、法币是中心化的,而比特币是去中心化的,直接点对点交易而且同时有无数的帐本去中心化形式同步记录在各个区块链中。
区块链的最大优势和特点:比特币本身就是一个全网共同维护的公共交易帐本,几乎无法篡改;比特币是一个确定性的数字货币发行银行,一个去中心化的交易验证系统,纸币会被复制,比特币因为数学验证机制不会出现这样的“双重支付”。
比特币的交易基本有两种方式:一种是“完整客户端”维护,完全自己保存交易信息,一种是通过第三方服务器来获取交易信息如:云币网,okcoin等等。
使用比特币客户端:客户端通常有一个钱包和多个比特币地址组成,地址是公开的,任何人都可以通过地址转钱到你的钱包,发送比特币只需要输入地址和金额,收到钱的人会用私钥签收这笔交易,而这样也广播了全网:比特币从一个地址转移到了另一个地址。从交易完成到确认大概需要10分钟,交易过程必须有矿工打包成区块,才会被全网接受“已确认”。
私钥:比特币地址就像一个带锁的信箱,开锁的钥匙就是私钥,比特币地址是公开的,每个人都能往这个地址发钱,但只有私钥持有者才能取钱,因此私钥保管好至关重要。
比特币交易过程:a向b的比特币地址发了1枚btc,然后向全网吼了一声:我向能打开这把锁的人发了1btc,b收到信息,用私钥打开这把锁,取钱。
将交易记录在总帐本中
交易信息必须被传送到比特币网络中,成为总帐本的一部分,这个帐本叫区块链。
“区块”里记录了一段时间里所有的交易信息,“链”则是因为所有的历史数据块会一个个串联起来。
完整客户端:自己维护一个全节点客户端成本较高,安全性好,大客户使用,但一般客户在硬件、带宽,时间上都不理想。
比特币核心的Json-RPC API接口的使用,包括以下技能点:1、获取比特币核心客户端状态信息;2、钱包设置和加密;3、钱包备份,纯文本导出和恢复;4、钱包地址及接受交易。
密钥:比特币需要有效的“数字密码”产生的签名认证。密码是成对出现的,有一个“公钥”和一个“私钥”组成。公钥就像银行账号,而私钥就像控制账户的PIN码或支票的签名。公钥接受比特币,私钥签名接受。
地址:比特币地址告诉别人,别人可以转账给你。
私钥可以生成公钥,公钥可以生成比特币地址,但反向都是解不出来的,私钥必须始终保持机密,丢了私钥就相当于丢了比特币。
钱包和助记词
现在钱包多由“种子”出发生成许多关键的钥匙,子子孙孙繁衍出新的密钥。
种子可以是随机生成的数字,也可以用助记词生成。单词的顺序就是钱包的钥匙。助记 词可以让人们更容易抄写和备份。助记词能重新创建种子恢复钱包,所以助记词一定要特别保管好,千万不能截图,导致钱包信息泄露就会丢币,最好把助记词手抄下来。
椭圆曲线加密(从私钥到公钥)
通过椭圆曲线加密算法,可以从私钥计算得到公钥,这是不可逆的过程。
哈希函数(从公钥到比特币地址)
比特币地址是由公钥经过单向的哈希函数生成的。
哈希(Hash)函数是一种数据编码方式,将大尺寸的数据(如一句话、一张图片、一段音乐、一个视频等)浓缩到一个数字中,从而方便的实现数据匹配,查找的功能。
比特币交易的生命周期:
交易产生---被签名加密---全网广播--/全网节点验证并接受---挖矿节点验证并添加到区块中---被足够多的后续区块确认有效。
比特币网络有几个特点:1、没有中心,所以节点地位平等;2、传播灵活高效,能够抵御攻击;3、传播交易前每个节点都会独立验证,增加可靠性。
UTXO:比特币的基本交易单位UTXO“未花费过的一个交易输出”。
交易验证:UTXO的锁定和解锁。
比特币的交易验证引擎依赖于两类脚本来验证交易:一个锁定脚本和一个解锁脚本。
交易验证:每个比特币客户端都会同时执行锁定脚本和解锁脚本来验证这一笔交易。只有一笔有效的交易才会导致UTXO被标记为“已使用”然后从有效的(未使用)UYXO集中所移除。
为什么steem bts。eos 不需要交易费?
答:因为eos上的应用程序不需要用户为区块链上的操作支付费用,steem,bts 是一个原理。