Living a Simple Life is a Happy Life

有饭吃,自由自在,就非常开心

《 the Internet of Money》读书笔记

| Comments

再三犹豫之后我决定写下这篇笔记。来表达我对Andreas M Antonopoulos 先生的景仰之情。

《The Internet of Money》是对Andreas M Antonopoulos历年公开演讲的精华汇总,目前总共出了两卷;我得说,这两本书是这两年除了《The Book of Satoshi》之后最让我享受的非技术书籍。

关于GDP的一些随想

| Comments

GDP是什么

国内生产总值 (gross domestic product, GDP) 是在某一既定时期一个国家内生产的所有最终物品与劳务的市场价值。

GDP(用Y代表)被分为四个组成部分:消费(C)、投资(I)、政府购买(G)、净出口(NX):

1
Y = C + I + G + NX

比特币的blockchain-2

| Comments

比特币的发展史上,非常非常早期就出现了一种名为侧链(sideChains)的技术;

这个技术早在2008年比特币代码尚未发布时,就在论坛上有所讨论,后来比特币网络开始运行,各种Geek点子层出不穷,从最初的namecoin(域名币),到后来的(Counterparty)、万事达币(Mastercoin)和彩色币(ColoredCoin)等附生链;再到后来百链齐开,大家试图在完全不同的链上转移交换资产;以及最近到blockstream的Liquid,以及基于闪电网络的原子交换(Atomic Swap),这个技术的发展一直不温不火,但毫无疑问,侧链技术绝对是blockchain技术的重要组成部分。

比特币的blockchain-1

| Comments

blockchain是个新造词,至少在2008年之前网上是搜索不到这个词的;

比特币的白皮书里面出现过chain of blocks的描述,但是没有直接用block chain的句子;

在早期bitcointalk.org上面的讨论中,为了方便讨论,早期参与者频繁引用chain of blocks的主题,但是谁是最早的引用者,已不可考据。

如果真正要较真blockchain这个单词第一次出现的地方,我想大概是中本聪的第一版bitcoin 源代码中;

bitcoin v0.01源代码中,中本聪第一次在函数注释中 完整的引用了block chain这个术语,鉴于中本聪在比特币白皮书发表的2年前已经开始编写源码;所以有理由确认:

  1. blockchain这个名词是2007-2008年间诞生于世间的
  2. 中本聪是比特币之父,比特币是blockchain之母

现在有一种说法,是比特币和区块链是不同的,比特币是个没有什么前途的庞氏货币,而区块链作为一种新兴的基础技术将会在很多领域发扬光大,前景光明;

对于这个说法,我认为Andreas的一场演讲值得一看:

https://www.youtube.com/watch?v=SMEOKDVXlUo

一种提高比特币私钥碰撞机率的思路

| Comments

之前的文章里面我们提到了一个名为LBC的项目;它采用了遍历所有比特币私钥,bloomfilter所有未花费的币的地址来碰撞比特币私钥。

这个项目本身详尽计算了这种碰撞成功的几率,目前碰撞空间大概在 2136 级别。

目前在一台最顶级的AWS GPU计算节点上面的碰撞效率是这样的:

1
AWS p2.8xlarge   32 vCores Xeon v4, 8x K80 GPUs (50% each)   ~80-88M/s

每秒钟大概碰撞8000w次;目前LBC这个项目最顶峰的时候,算力到了1G的级别,这样计算下来:

1
2^136 / 2^30 = 2 ^106

2106 级别的碰撞效率还是遥遥无期啊;

Wsl Best Practice

| Comments

WSL用了一年,感觉还不错。尤其是在我的机器上pypy3.5版本的SHA512 pbkdf计算性能竟然超越了原生Linux和Windows。成为Python运行效率最高的平台,实在是匪夷所思的事情。

WSL最让我满意的,是命令行里面可以结合Windows和Linux的命令行工具来管道处理,这个实在是太赞了。纯粹计算类的程序,Windows上面有很多现成的命令行工具,现在终于能:

1
ping.exe -t xxx.xxx.xxx.xxx|grep xxxx|echo -I xxx ~~~

这样来搞了,事实上,我自己写了很多Python脚本来处理Powershell自带的很多工具输出的内容,还有不少GPU运算程序大多数跑在Windows上面,能直接重定向到Linux上面实在太好了。

另外,WSL网络协议栈和Windows是共享的,倒是直接省了一个事,我直接把http_proxy配置成本地的shadowsock服务就很安逸的翻墙了;方便。

最后,就等着磁盘性能的改善了。

下面记一下常用的坑:

  • 如果开机之后插拔一个移动硬盘,需要手工在WSL中执行重新挂载命令:
1
sudo umount /mnt/g && sudo mount -t drvfs "G:" /mnt/g
  • WSL跟最新2019版本的卡巴斯基冲突,卡巴斯基默认会过滤所有HTTP流量

目前无解;要么禁用卡巴斯基的HTTP过滤功能,要么回退2018版本

最后,多个版本实验之后,锁定Win10 1709我也能连续3个月不关机了,稳定性可喜可贺。

Alias Rm to Mv

| Comments

之前一直简单的用

1
alias rm='mv -f $@ ~/.trash'

取代rm命令。

这样用着有个不便的地方,就是有时候做个脚本命令,带个;的时候会解析有问题。今天突然发现一个用函数来替代的好办法,记一下:

1
alias rm='move1(){ /bin/mv -f $@ ~/.trash/; };move1 $@'

参考资料:

https://www.cnblogs.com/f-ck-need-u/p/7385133.html

比特币的交易-7

| Comments

比特币的交易网络最为人诟病的一点便是交易性能:全网每秒 7 笔左右的交易速度,远低于传统的金融交易系统;同时,等待 6 个块的可信确认将导致约 1 个小时的最终确认时间。

为了提升性能,社区提出了闪电网络等创新的设计。

闪电网络的主要思路十分简单——将大量交易放到比特币区块链之外进行,只把关键环节放到链上进行确认。该设计最早于 2015 年 2 月在论文《The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments》中提出。

闪电网络需要单独部署,没有包含在bitcoin core实现里面。闪电网络是一个开放的协议,任何人都能自由的实现它,目前比较流行的版本有:

https://github.com/lightningnetwork/

https://github.com/mit-dci/lit

https://github.com/ElementsProject/lightning