Living a Simple Life is a Happy Life

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

比特币的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

Happy 10th Birthday Bitcoin

| Comments

Genesis block在2009-01-03 诞生以来,bitcoin 已经运行十年了。从一个个人项目,成长为世界话题,一段不可思议的旅程。

有人在<纽约时报>上面为其庆生:

https://www.reddit.com/r/Bitcoin/comments/ac4e64/the_happy_birthday_bitcoin_advertisement_in_the/

我在2013年初次读到白皮书的时候申请了一个域名:

http://20090103.com/

出于好玩的心态一直维护着,看看下一个十年会是怎样。

Hi, Happy 10th birthday bitcoin!

比特币的交易-6

| Comments

好啦,这篇文章中,我们要来探讨大名鼎鼎的Segwit(Segregated Witness)。

这个词一说起来就头疼啊,他牵扯到旷日持久的扩容大战,无穷尽的争论以及分裂。我们的立场就是不去站队任何组织,单纯从技术的角度去理解这个东西。

比特币的交易-4

| Comments

前面的文章中我们分析了一笔标准的Pay to Public Key HASH(P2PKH)交易。看起来其实结构挺简单的,这篇文章我们乘胜追击,看一下矿工们领取系统奖励时,构造的coinbase交易。

比特币的交易-3

| Comments

scriptSig与scriptPubKey概览

继续解析我们上篇文章的交易(b0a0afb65ac08f453b26fa03a40215be653b6d173510d366321019ab8248ea3b)

目前为止,我们还没有解析vin中的scriptSig,以及vout中的scriptPubKey;这两个东东才是交易的核心,他们有什么作用呢?