普林斯顿大学 《比特币及加密货币技术》课程学习笔记

普林斯顿大学 《比特币及加密货币技术》课程学习笔记

视频课程(免费)网址在这里
pdf教材可以下载。

第一章 密码学及加密货币介绍

1.1 加密的哈希函数

哈希函数有三个特征:输入可以是任何长度的字符串、有固定长度的输出,有较高的计算效率。
密码学哈希函数的5个特征:
1. 抗碰撞性(Collision‐resistance)–很难找到两个不同的输入却有相同的输出 。即x ≠ y ,但是 H(x) = H(y) ,这种碰撞情况很难找到.找出有相同输出的两个输入的话,平均需要计算2的128次方哈希运算,即使每秒进行1万次哈希运算,也需要10的27次方年才可能完成运算。找到碰撞的可能性基本是0。
如果H(x) = H(y), 可以安全地认为 x=y。不论输入消息有多大,H()运算结果非常短小,可以用作消息摘要,这一点特别有用。
2. 隐藏特性(Hiding)–无法从输出得到输入。应用:承认应用需要隐藏属性及绑定属性。哈希函数满足这个特征。
3. 难题友好性(puzzle-friendly)–对于一个哈希函数H(k ‖ x) = y,如果k具有高的[最小熵][1] (也称作高小熵)分布特性,在小于2的n次方时间里面无法找到一个x,来得到n个位的y。‖是字符串连接符。
参考下图的merkle-damgard变换:
普林斯顿大学 《比特币及加密货币技术》课程学习笔记_第1张图片
tamper:篡改
intuitive:adj 直觉的;凭直觉获知的
reveal:vt. 揭露,透露,显示
be analogous to:与…相似,与…类似
nonce:In cryptography, the term nonce is used to refer to a value that can only be used once. 在密码学中,nonce表示一个只会用一次的值。
concatenate:vt. 连结; 使连锁; adj. 连结的; 连锁的
entropy: 熵,混乱程度,熵的本质是一个系统“内在的混乱程度”。在信息科学里,熵值越大,意味着不确定性越高。
min‐entropy:最小熵,最小的,最保守的熵。一个系统的最小熵越大,这个系统的不确定性就越高。
negligible:adj.微不足道,可以忽略的

1.2 哈希指针和数据结构

adversary:n.对手,敌手
upshot:n.结局,要点,结果
roadblock:路障,障碍物
propagate:vi. 传播,传送,繁殖

1.3 数字签名

数字签名由下面三个算法构成:
  1. (sk, pk) := generateKeys( keysize ) 生成公钥私钥对
    sk: 私钥 secret key pk:公钥 public verification key
  2. sig := sign( sk , message ) 生成签名
  3. isValid := verify( pk , message , sig ) 通过签名验证消息合法性
数字签名需要满足两个特性

1)可以方便验证合法性
2)不可篡改

数字签名在实践中需要关注的点

1)需要选择好的随机发生算法,否则容易泄露私钥导致不安全
2)注意消息长度限制。不过,实践中通常不是对消息本身而是对消息的哈希结果进行签名,这个问题不成为问题。
3)可以对哈希指针进行签名。如果对区块链最后一个哈希指针签名,相当于保证了整个指针结构及块链正确性。

1.4 把公钥当做身份标识

用公钥来作为身份识别,不需要中心化的认证就可以完全靠自己注册成为一个用户。不需要用户名,也不需要一个独一无二的名字。你可以产生多个身份,也可以生成一些用完就扔的身份。在比特币的术语中,身份叫做“地址”,是公钥的哈希值。它们看起来是随机的,难以特定到某个具体的人,去中心化的身份管理也是这样来实现的。

1.5 一个简单的加密货币

高飞币(GoofyCoin)

高飞币可以称作为最简单的加密货币。它有下面的规则:

  1. 高飞可以用一个有唯一属性的币ID来创建一个新的币。
  2. 通过署名,任何人都可以把他拥有的币转给另外一个人。
  3. 任何人都可以通过哈希指针回溯到高飞币的创建的区块,来验证货币的合法性。

普林斯顿大学 《比特币及加密货币技术》课程学习笔记_第2张图片

但高飞币有个致命的缺陷,它不能避免双重支付。

唐老鸭币(ScroogeCoin)

唐老鸭币引入区块链的概念,来处理双重支付的问题。
这个区块链只能追加区块,这样来保证所有发生的交易都被永久记录下来。而且,只要对最后一个哈希指针进行签名,就会确定整个链表结构被完整正确保持。
普林斯顿大学 《比特币及加密货币技术》课程学习笔记_第3张图片

唐老鸭币来判断交易合法性的四个规则:
1. 对象货币是在以前的交易中创建的。
2. 对象货币没有在以前的交易中被消费掉。
3. 在交易中进入的货币和出来的货币总值是相等的。就是说只有唐老鸭才能创建新币。
4. 所有消费的货币都必须得到该货币拥有者的合法署名(承认)。

唐老鸭币的问题在于唐老鸭可以由于贪婪而任意发行新币。新币的发行必须要通过去中心化的方式来进行。这样的话,唐老鸭币就越来越接近比特币了。


[1]:high min-entropy:高的最小熵,最保守的情况下熵值也很高,高度混乱,高度随机,说明是一个混乱程度(不确定性)程度很高的系统。在分布上非常发散。比如密码有26个字母构成的最小熵就比 26个字母加10个数字构成的最小熵要小。同样,5位长度的密码的最小熵比10位长度的密码的最小熵要小。

你可能感兴趣的:(普林斯顿大学 《比特币及加密货币技术》课程学习笔记)