什么是哈希 #
简单来说就是把任意输入 通过特定方式(hash函数) 处理后 生成一个值。或者说,对一个数据生成其对应的摘要。

哈希特性 #
##抗碰撞性 指极难找到两个输入,他们的经过哈希函数处理后的哈希值相同。
注意,这里是极难,但并非不可能(找出哈希碰撞的两个输入的代价,要远远大于碰撞带来的收益,所以这里可以近似地认为不可能)
##不可逆性 简单来说,就是对于一个哈希函数,不能根据他的输出,去反推他的输入
##难题友好 指哈希值的计算不可预测,仅跟据输入很难预测输出,例如:我们需要一个哈希值,存在于某一个范围内,只能通过不停运算查找出来。该性质保证了比特币系统中,只能通过“挖矿”获得比特币。
什么是签名 #
在中心化的系统中,通常有一个账号来代表用户的身份。例如支付宝中的支付系统,用户需要登录自己的账号,再输入支付密码,才能完成一笔交易。但在比特币的世界中,并没有中心化系统中的“账号”、“密码” 这一概念。那么,比特币系统是如何唯一标识用户的呢?答案就是签名。
我们通常会在写信的时候附上自己的签名,其作用是证明这封信是出自此人之手(实际并不能完全证明,签名是可以伪造的,对吧)。并且,信的内容与签名并无直接关联。
在比特币的交易中,需要对每一笔交易生成一个签名,但与写信不同,我们需要生成的签名,是根据交易内容来生成的,并且证明交易是由你发起的。
在比特币系统中,也需要一个“账号”来证明这比交易是由你本人发起的(即对这笔交易进行签名),这个“账号”就是私钥&私钥对。总之,这对密钥就代表了比特币系统中的一个账户,如果其中私钥泄露,则相当于泄露了银行卡的密码。从另一个角度看,只有用于私钥,才能对比特币进行交易,保证了交易的安全性。
这里关于公钥&私钥&签名&验签的内容不再详细赘述,有需要可以参考