Introduction to Cryto & Crptocurrencies Lecture 1
Lecture 1.2 Hash Pointer & Data Structure
Use Case 1. 什么是Block Chain呢?
想象一个像链表一样的结构,只不过与通常的指向下一块地址的指针不同的是,这里用的是Hash指针。
如图:

如果黑客篡改了block 0,那么他也必须篡改Block 1的H1,Block 2的H2等,会给他带来一定困难。
Use Case 2: Merkle Tree
Block Chain固然具有防止篡改的能力,但是每次验证某条记录没被篡改,就需要O(n)的时间来一一核对。比如看第i个block有没有被篡改,就要去查block i + 1, block i + 2...
Merkle Tree则使用Hash Pointer + 二叉树结合,将核对验证的代价降到了O(logn)。
具体格式见下图。
现在如果要验证L3没被篡改,那么就只要看Hash 1-0,Hash 1, Top Hash没算错就行了。
所以,如果一个客户端只用到L3,那么它只需要获取用于计算的Hash 1-1, Hash 0,用于对比的Hash 1-0, Hash 1和Top Hash这几个值,而不需要存储整个交易历史。

Lecture 1.4
Decentralized Identity Management 去中心化身份管理
用公钥作为身份,方便随时生成和丢弃。用私钥来发消息。
Lecture 1.5 A Simple Cryptocurrency
Case 1: Goofy Coin
Goofy学会了区块链,Goofy想要发行自己的比特币Goofy Coin。
一枚虚拟硬币至少有两种行为:
1. 被创建
2. 被交易

所以Goofy给自己创造的这枚硬币一个独一无二的CoinID,并且留下自己的数字签名。

接着Goofy要交易给Alice,于是他建立一个新的交易记录区块,并且留下自己的数字签名

到这里为止,如果使用了强大的数字签名算法和Hash算法,一切看起来似乎井然有序地开始了,不过还存在一个致命问题Double-Spending Attack:

如果Alice已经把这枚硬币给了Bob,但她又想再花一次-给Chuck,怎么办?

由于Chuck去验证的时候认为这枚比特币和自己的Hash值都是合法的,所以Chuck被骗了。
如何解决这个问题呢?
1. 交易的同时,发行这枚比特币的全部历史交易
2. 历史记录唯一
3. 在每个操作上添加会话号
Case 2: Scrooge Coin:

Scrooge吸取了Groofy的教训,决定自己来发行新硬币。
硬币有两种操作:
1. Create
2. Pay
Scrooge引入了面额这一概念,一枚硬币对应一个面额,就像纸币一样,方便拆分。


如果面额对不上,比如Scrooge有一枚5元钱的硬币,但是他要付3元,那么Scrooge就可以把这枚5元拆分为2元和3元两枚硬币,实际操作是通过Destroy&Recreation完成的。
每次操作、交易的原则是:价值守恒-比如Scrooge的5圆硬币拆给Groofy3元,自己剩下2元,现在Scooge+Groofy有2枚硬币了,但是整体价值还是5元。

现在还存在一个问题:历史由Scrooge维护,这违反了去中心化原则。
BTW: priceton的课程真的令人吐槽
Introduction to Cryto & Crptocurrencies Lecture 1的更多相关文章
- ML Lecture 0-1: Introduction of Machine Learning
本博客是针对李宏毅教授在Youtube上上传的课程视频<ML Lecture 0-1: Introduction of Machine Learning>的学习笔记.在Github上也po ...
- 【Machine Learning】机器学习の特征
绘制了一张导图,有不对的地方欢迎指正: 下载地址 机器学习中,特征是很关键的.其中包括,特征的提取和特征的选择.他们是降维的两种方法,但又有所不同: 特征抽取(Feature Extraction): ...
- 【Repost】A Practical Intro to Data Science
Are you a interested in taking a course with us? Learn about our programs or contact us at hello@zip ...
- 【MT】牛津的MT教程
Preamble This repository contains the lecture slides and course description for the Deep Natural Lan ...
- (转)Awesome Courses
Awesome Courses Introduction There is a lot of hidden treasure lying within university pages scatte ...
- Saw a tweet from Andrew Liam Trask, sounds like Oxford DeepNLP 2017 class have all videos slides practicals all up. Thanks Andrew for the tip!
Saw a tweet from Andrew Liam Trask, sounds like Oxford DeepNLP 2017 class have all videos/slides/pra ...
- DEEP LEARNING 大满贯课程表
Reinforcement Learning post by ISH GIRWAN Courses/Tutorials Deep Reinforcement Learning, Spring 2017 ...
- [C2P3] Andrew Ng - Machine Learning
##Advice for Applying Machine Learning Applying machine learning in practice is not always straightf ...
- 计算机电子书 2017 BiliDrive 备份
下载方式 根据你的操作系统下载不同的 BiliDrive 二进制. 执行: bilidrive download <link> 链接 文档 链接 斯坦福 cs224d 深度学习与自然语言处 ...
随机推荐
- 使用Hexo搭建一个简单的博客(一)
搭建好简洁的博客框架后,回看时发现,简洁之中透露着一丝丝简陋,好的,网上关于丰富hexo的文章也很多 记录一下自己的一些瞎操作. 在你的hexo目录下,你可以看到themes文件夹里有个默认的land ...
- 学习笔记18—circos应用集
一.在线画图(行列分别最大为75) 相信大家都听说过circos图,但是亲自画过的人可能就很少,这主要因为软件的安装和使用稍微有一点麻烦.其实,circos图也是可以在线绘制的,这样就简单多了!一起来 ...
- 第 8 章 容器网络 - 059 - 安装配置 flannel
安装配置 flannel 1) build flannel flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build. 不过用于做 build ...
- Windows 下 Redis 服务无法启动,错误 1067 进程意外终止解决方案
1.检查端口是否被占用 2.修改 Windows 服务里的 Redis 服务为本地系统服务(修改方式见下文) 方法: 1.看系统日志 桌面计算机/此电脑(Win10名称)右键打开管理,或 Win+R ...
- vs2015多行注释与取消多行注释
注释: 先CTRL+K,然后CTRL+C 取消注释: 先CTRL+K,然后CTRL+U
- 雷林鹏分享:jQuery EasyUI 表单 - 格式化下拉框
jQuery EasyUI 表单 - 格式化下拉框 本教程向您展示如何创建一个简单的下拉框(Combobox),让它在下拉框中显示图片项.您可以在下拉框(combobox)上使用 formatter ...
- English trip V1 - B 5.Is It Cold Outside? 外面很冷? Teacher:Corrine Key: weather
In this lesson you will learn to talk about the weather. 本节课将学习到关于天气 课上内容(Lesson) 词汇(Key Word ) # 关于 ...
- LeetCode--443--压缩字符串(未看)
问题描述: 给定一组字符,使用原地算法将其压缩. 压缩后的长度必须始终小于或等于原数组长度. 数组的每个元素应该是长度为1 的字符(不是 int 整数类型). 在完成原地修改输入数组后,返回数组的新长 ...
- Can't find kernel text map area from kcore
kernel : 4.9.51kexec-tools : 2.0.4 1.~ # ./kexec -p /boot/vmlinuz --initrd=/boot/initrd --command-li ...
- apiCloud 三方分享,微信好友分享,微信朋友圈分享,QQ分享,微博分享
首先查看我的这篇有关三方登录的博客,地址是http://www.cnblogs.com/gqx-html/p/8303567.html,配置完三方数据后可以从上一篇文章中的链接跳转到各个登录查看api ...