Information matters, so does CODE

以下为翻译文章,英文原版链接在这里,文章中的“我”指的是原文作者

椭圆曲线数字签名

现在你已经可以生成EC密钥对,下一步就是用它来签名和验证消息。我说的消息是指任何数据,文字或者二进制,总之是需要证伪的信息。比特币客户端用电子签名来认证交易,矿工则用它来授权并广播他们的有效交易记录。 这篇文章只设计通用消息。之后,我们会在比特币交易签名流程中了解到都有哪些不同的消息。

ECDSA 签名

很容易理解EC签名算法的简称是ECDSA,全称是椭圆曲线数字签名算法。在这个算法里面,所有参与者都得在一个哈希函数H上取得共识,因为我们要签名的是消息的哈希映射,而不是消息本身。如果只是签署方S有访问私钥的权限,而签署方V保管着对应的公钥,这是没有意义的。我将继续使用上一章生成的私钥和公钥。 下面这个例子是在SHA-256摘要上进行操作,请记住,比特币特指的H函数是一个256位哈西函数,同时也是个双重哈西函数(这里有关于哈西函数的解释文章)

以下为翻译文章,英文原版链接在这里,文章中的“我”指的是原文作者

通过代码生成密钥对

密钥对的生成工序比较繁琐,然而通过OpenSSL这个库来操作的话,也不是那么困难。我在ec.h写了一个辅助方法,他的声明如下:

1
EC_KEY *bbp_ec_new_keypair(const uint8_t *priv_bytes);

我们现来一起分析其中的一部分代码。代码涉及到OpenSSL中的一些数据结构:

  • BN_CTX, BIGNUM
  • EC_KEY
  • EC_GROUP, EC_POINT

以下为翻译文章,英文原版链接在这里

基本概念

作为一个新用户,你可以马上开始使用比特币,而不用理解其中的技术细节。首先你安装一个比特币钱包在你的计算机或者手机里面,比特币钱包会自动生成你的第一个比特币地址,之后你随时都可以再创建新的地址了。你还可以将地址分享给你的朋友,让他们可以和你之间实现互相支付。实际上,这有点像电子邮件的运行机制,除了一点,比特币的地址只能使用一次。 Bitcoin

余额 – 区块链技术

区块链实际上就是一部共享账本,整个比特币网络就建立在它上面。 所有已经确认了的交易都包含在区块链里。 在这基础上, 比特币钱包就可以计算出已经花费的额度,并且可以验证交易中所花费的比特币确实属于花钱的这个人。 区块链中数据的完整性以及交易的时间顺序都是通过加密技术来得以增强的。

大数据时代来临

ActivePivot 数据分析如今已经成为企业议事日程中的首选项之一。“大数据” – 在这个被过度宣传的标语面前,管理者们正在竭尽全力的去抓住其中蕴含的无可限量的竞争优势,他们都绞尽脑汁的从运营数据中获取洞察力。 大数据所带来的变革性的影响正在挑战着传统的技术架构,这些结构已经被大部分公司使用了十多年。具体点讲,这种影响正在使得事务技术(Transactional)和分析技术(Analytical)之间的边界变得模糊,这就使得刻意的区分OLTP和OLAP系统显得不合适,尤其是在面对大型实时动态数据分析的时候。

对速度的追逐

如今,数据分析几乎不可避免的以速度为导向。这种对速度的需求可以细分为两种互相联系的要素:数据搜索速度和数据更新速度。要解决这两个要素中的任意一个,都不是一件简单的事情。 最终,这种需求将会孕育出一种混合型的数据管理系统,这种系统将同时满足快速的分析以及快速的更新这两方面需要。

Docker

How many times we heared about “But this works in my computer”, “We could never seen this in other environments”, “6 weeks spent just to makt sure it will work in production, but we can never be 100% sure …”

If I am from IT department, I would pay a lot to stop these frustrating problems. The good news is that Docker made that possible. As it promises, Docker let you “Develop, Ship and Run Any Application, Anywhere”. The stable official V1.0 of Docker is released on 2014/06/09. From then, the world of virtualization step into the next generation: Containers.