比特币交易站点汇总

时隔两年之后,比特币再一次热了起来,同时也带动了其它数字货币的升值。以太坊(ETH)的价值在今年就上涨了 20 多倍,让投资人们看着心痒。

相对于传统的投资来说,数字货币依然是一个新兴市场。由于缺乏兼管,加上复杂的概念,普通投资者想进入这个市场的风险依然很大。为了方便后来人,这里简单介绍一下我常用的几个交易市场,如果你也有兴趣,不妨试一下。

和股市一样,交易有风险,入市需谨慎

交易市场

以下是一些可以直接使用现金货币来交易数字货币的市场。每个市场所支持的货币种类不尽相同。交易的方式大体是相同的,即先汇款到市场自己的帐户,然后买/卖数字货币,最后提现。

多数市场都提供了杠杆交易的方式,即可以向庄家借钱,赢了钱之后只需要退还本金(和一些手续费),利润全是自己的,而亏钱只会亏掉自己的本金,无需还高利贷。

Coinbase

  • 现金货币:USD、EUR
  • 数字货币:BTC、ETH、LTC
  • 注册地:美国旧金山

Coinbase 的定位是一个支付工具,它可以用于向别人付款或是收款。当然它也可以被用于投资,只不过它的模式是每次你都和 Coinbase 交易,而不是其它投资人。于是BTC 的价格就是由 Coinbase 来定,其中多少有一些水分。Coinbase 的转帐效率很高,基本上能做到当天确认。

BitFinex

  • 现金货币:USD
  • 数字货币:BTC、ETH、XRP、XMR、DASH 等
  • 注册地:中国香港

BitFinex 号称是全球最大的交易市场,接过了 Mt.Gox 的大旗,继续在一个奇怪的地方经营大型交易市场。BitFinex 的注册地在香港,银行帐户开在台湾。历史上 BitFinex 也被黑过,被盗了超过 7000 万美元。但和 Mt.Gox 不同,BitFinex 在事后努力弥补,最终在半年之后还清了所有欠款,也赢得了投资人的信心。

除了常规交易之外,BitFinex 还提供了一个借款模式,即你可以把钱借给其它人,然后从中获得利息。目前的利率稳定在 0.18% 左右每天,即一万美元一个月可以返利 500 美元左右,也算是一个比较不错的投资方式吧。

LocalBitcoins

  • 现金货币:几乎所有
  • 数字货币:BTC
  • 注册地:芬兰

LocalBitcoins 是一个线下 P2P 的交易市场,之前介绍过。无论你在哪,都可以找到适合你的买/卖家以及交易方式。交易方式和淘宝类似,一手交钱一手交货,LocalBitcoins 提供了一定程度的担保。

CEX.IO

  • 现金货币:USD、EUR
  • 数字货币:BTC、ETH
  • 注册地:英国伦敦

CEX.IO 也是一个有一些历史的交易平台了。它之前是做挖矿的,后来比特币挖矿难度越来越大之后,就转型成为一个正式的交易平台。

BitStamp

  • 现金货币:USD、EUR
  • 数字货币:BTC、XRP
  • 注册地:英国伦敦

BTC-e

  • 现金货币:USD、EUR、RUB
  • 数字货币:BTC、ETH、LTC、NMC、PPC 等
  • 注册地:俄罗斯

老牌的俄罗斯交易平台,长期以来 BTC-e 的价格都低于其它的市场,有兴趣的同学可以尝试搬砖,即在 BTC-e 买入 BTC,再去价格高的市场卖掉赚差价。

xBTCe

  • 现金货币:USD、EUR、RUB、CNY、BGP
  • 数字货币:BTC、ETH、LTC、NMC、PPC 等
  • 注册地:未知

上面 BTC-e 的合作伙伴,这两家共享了一些数据,比如报价和身份验证。xBTCe 似乎提供了银联帐款的付款方式,似乎对中国用户很友好,还没有尝试,之后再说。

火币网

  • 现金货币:USD、CNY
  • 数字货币:BTC、ETH
  • 注册地:中国

BTCTrade

  • 现金货币:USD、CNY
  • 数字货币:BTC、ETH、LTC 等
  • 注册地:中国

OKCoin

  • 现金货币:USD、CNY
  • 数字货币:BTC
  • 注册地:中国

比特币中国

  • 现金货币:CNY
  • 数字货币:BTC、LTC
  • 注册地:中国

游戏平台

FreeBitcoin

一个活了蛮久的游戏平台,之前有介绍。主要的游戏方式是猜大小和赌彩票,其中猜大小的庄家优势是 5%,如果你对数字比较敏感,可以试试看。

相关服务

TransferWise

TransferWise 的主要用途是在不同的货币之间转帐,比如 USD 转到 CNY。它的优势是转帐手续费比银行低,几乎就是中间价了。最近提供了一项新的服务,可以为客户开设一个指定币种的银行帐户,比如欧元或者美元,这个帐户可以用于收发款项。于是,对于没有外汇帐号的朋友来说,这个帐户也就可以用于在不同的比特币市场之前周转了。

OKPay

一个金融服务,可以给上述的 BTC-e 充值。

BlockChain

一个查询比特币钱包信息,交易状态的在线工具。

EtherChain

一个查询以太坊钱包信息,交易状态的在线工具。

Linux 启动时不加载罗技无线驱动

罗技对于 Linux 的支持一直都不太好,官网上从来都没有 Linux 的驱动下载。通常来说,基础设备的驱动,比如键盘鼠标等,在操作系统中是自带的,不需要额外安装。但 Linux 这个奇葩有时候会有一些例外。

Linux 有一个全盘加密的特性,就是硬盘的所有内容是加密的,在启动时需要输一个密码才可以解开然后正常启动。输入密码的界面如下。

于是就有一个先有鸡还是先有蛋的问题:是先加载驱动,还是先问用户要密码。而 Linux 的选择是先问用户索要密码。于是在某一次重启之后,我的机器就卡住了。因为 Linux 问我要密码,输入密码要用到键盘,而 Linux 还没有加载键盘驱动。搜索了一下,这一问题大约是从 Linux 内核 3.2 开始的,影响很多发行版,至少有 Ubuntu 和 Arch Linux。

简单来说,原因就是 Linux 在这个界面之前没有加载罗技的无线驱动。而最直接的解决方案显而易见,更换有线键鼠。

显然我们不愿意为了一个傻 X 的设计而更换自己的硬件。在诅咒开发人员脑残的同时,我也找了一下不花钱的解决方案。

Linux 中有一个专为罗技设计的模块,称为 hid-logitech-hidpp,只要加载了这一模块,就可以在上述的界面中使用无线键盘了。

在 Ubuntu 中,修改 /etc/initramfs-tools/modules,新增一行写入上面的模块名,然后用下面的命名更新生成启动程序:

在 Arch Linux 中,编辑文件 /etc/mkinitcpio.conf,添加一行 MODULES="hid-logitech-hidpp",然后使用下面的命名重做启动程序:

生成完毕之后,重启即可。

Javascript 中的 Lambda 表达式

Lambda 表达式是一种简易的函数定义形式,通常在编程语言用来简化代码的结构。比如以下的 Javascript 函数:

在其它语言中的 Lambda 形式为:

Lambda 表达式之所以流行,是因为它可以方便地嵌在其它语句中,比如 Java 8 使用了 Lambda 表达式大规模简化了数组的处理:

Javascript 也终于迎来的 Lambda 表达式,在 ES6 中的定义是“箭头函数”(Arrow Function),第一个例子中的函数可以被简化为:

语法和 C# 类似,而和 Java 不同。

Lambda 表达式基本上可以看成是一个语法糖,但在 EC6 中,它和 function定义的函数有一点点的不一样。你可能已经想到了,就是 this的定义域。看下面的例子:

上面的函数中,一定要使用自定义的 self来把 this传到 .eachfunction中。而使用 Lambda 表达式的话,就不需要这么做了:

箭头函数在 Chrome 45.0 和 Firefox 22.0 以上版本中支持,具体的信息请参考 Arrow functions

Go 语言 select 语句的优先级

Go 语言中,配合通道“channel”的读写操作,特地提出一个 select语句,用于多个 channel 的并发读写操作。例如:

上述代码的意思是,同时在 a 和 b 中选择,哪个有内容就从哪个读,否则输出“No data”。由于 channel 的读写操作是阻塞操作,使用 select语句可以避免单个 channel 的阻塞。 default的作用是避免两个 channel 同时阻塞。

有一个问题, selectcase顺序是随机的,并不是按代码中写的顺序。于是就产生了优先级的问题。比如我想先从 a 读取,a 没有内容的时候,再从 b 读取,就不能用上述的方式了。这种情况下的逻辑要稍微麻烦一点:

描述起来倒是蛮简单,先从 a 读,没数据的话再从两个一起读。这种方式对于读和写操作都适用, default是否需要取决于应用场景。

博客使用了椭圆曲线 TLS 证书

心血来潮把博客的证书更新了,加密算法由本来的 RSA-2048 更换为 EC-256。简单来说,HTTPS 通讯初始化的时候,需要在服务器和客户端之间交换一个 TLS 证书,用来验证服务器的身份。

由于每次 HTTPS 通讯时,都需要下载这么一个证书,它的体积在一定程度上决定服务器响应的速度。传统的基于 RSA-2048 算法的证书,有 2048 位即 256 字节大小,而新的 EC-256 算法,则只需要 32 字节。更换之后,一下子就少了 200 多字节,在网络繁忙的时候,可以有效地传输。

EC 或者 Elliptic Curve,中文译为“椭圆曲线”。EC 是一种新的非对称加密算法。EC-256 所提供的安全性相当于 RSA-3072,已经高于传统的 RSA-2048,但只需要 1/8 的体积,性价比很高。

不过博客的速度已经很快了,更换证书的性能提升应该是感受不到了 :P

如果你使用了 CloudFlare,赶紧改密码

CloudFlare 前几天出了一个严重的 bug,会导致经过它的流量都有一定机率泄漏。这个问题很严重,如果你直接或间接使用 CloudFlare 的服务,赶紧修改相关密码,包括重新配置两步验证

Bug 描述

CloudFlare 提供了一个功能,可以重写它缓存的内容,比如压缩 HTML 之类。其中一个用于重写的工具有一个 bug,不能正确处理某些特殊构造的 HTML 内容。在处理那些内容的时候,会错误地把一些随机内存中的内容输出。这些随机内容,包含了 HTTPS 加密的密钥、cookie 等各种非常机密的东西。

这里并不是说,如果你访问的网站,没有输出特殊格式的内容,就不会受影响。CloudFlare 通常在一台主机上分发多个网站的数据,只要同一台主机上出现了特殊的文件,你访问的网站就可能会受影响。

由于 CloudFlare 提供的内容多数是公开的,可以自由访问的。于是这些机密信息有可能已经被其它人访问到了,且已经追踪不到了。更严重的是,有一些搜索引擎可能记下了这些内容,还可供他人随时查询。

事件经过

上周五(2月17日),一个 Google 的工程师在测试某个功能的时候,意外发现了 Google 的爬虫抓到了一些奇怪的内容,看上去不像是正常的网站内容。追根溯源,发现了这些内容来自 CloudFlare,于是立即通知 CloudFlare 的安全部门。CloudFlare 也没闲着,在周末组织人力修 bug,到 21 日就完全修复了。

Google 和 CloudFlare 都发了文章来说明具体的问题:CloudFlareGoogle

CloudFlare 声称这个 bug 最早可能是在 2016 年 9 月 22 日引入的。代码中的 bug 可能已经存在了很长很长时间了,而 CloudFlare 去年推出了一项新功能,这个新功能依赖了出 bug 的代码,才把问题暴露了出来。当然,不管问题出了多久,鉴于 CloudFlare 那么大的访问量,这些机密信息可能已经泄漏得一塌糊涂了。

Google 方面说会在 90 天之后公布 bug 的细节,但是 CloudFlare 的文章里已经全说出来了 -_-

后续补救

已经有人开始收集所有使用 CloudFlare 的网站,并做成一个列表:List of Sites possibly affected by Cloudflare's #Cloudbleed HTTPS Traffic Leak。这个列表非常长,要找到自己用的服务也是需要点时间。

另外有评论说,一些 iOS 应用也受到影响,包括 Dropbox。

对于正在使用的服务,你需要做的事情:

  • 修改密码。
  • 如果开启了两步验证,需要重置两步验证,即关闭再打开。
  • 如果你使用了第三方验证,比如用 Google 的帐号登录第三方网站,也要重新做一遍验证。
  • 任何上传到 CloudFlare 上的 TLS 证书,需要重新签发。

总结

有一个共识是 HTTPS 是安全,使用 HTTPS 传输的流量,不会被第三方破解。CloudFlare 免费提供了 TLS 证书,几乎所有使用 CloudFlare 的网站,都开启了 HTTPS。并且 CloudFlare 还提供了 HTTPS 回源的选项,就是整个 HTTP 访问,都经过加密了。就在大家都认为 CloudFlare 非常安全的时候,偏偏出了这么个事情,继 Heatbleed 之后再出一次严重的 HTTPS 相关的安全性问题。

不由感慨一下,学术界反复论证了 HTTPS 的安全性无懈可击,但是拿到工程领域就不是那么回事了。工程上出问题的机率要比学术上大很多。所以有很多事情,不能只看学术论文,还要把实施者的能力考虑进去。我在说的是什么事,大家应该都能猜到。

在 Debian 中启用 TCP BBR 算法

博客恢复之后第一件事就是升级了一下主机。现在最新的 Linux 内核是 4.9,并且带了一个新的 TCP 算法,称为 BBR (Bottleneck Bandwidth and Round-trip)。

BBR 算法由 Google 提出,原先主要用于 Google 内部网络的速度提升,现在 Google 把它提交到了 Linux 内核,所有人都可以使用了。从 Google 的报告来看,这一新的算法可以明显降低网络延迟。Youtube 全球的延迟比之前的 CUBIC 算法下降了 50% 以上。从大众的讨论来看,这一新的算法主要被用于不可告人的活动。当然,由于我用的是 Google 的主机,现在如果又用了 Google 算法,是不是会更快呢?

开启的方法如下:

1. 先升级到最新的内核(适用于 64 位的 Debian Jessie):

2. 开启 BBR

打开 /etc/sysctl.conf文件,在文件末尾添加两行:

其中第一行 default_qdisc指的是默认的 TCP 队列算法,fq 是 Google 推荐的算法,更适用于 BBR。第二行则是开启 BBR 算法。

3. 重启并验证

直接重启主机是可以的。如果不想重启的话,可以使用以下命令来加载新的配置:

然后使用下面的命令来验证 BBR 已生效:

结果会显示 BBR 加一串数字,说明 BBR 算法已启动。

4. 效果

由于我的博客已经很快了(笑),一时半会看不出什么效果。不过启用了之后心理感觉还是不错的。