解密比特币
这是一本知识普及性的书籍,里面没有具体的细节,更多的是一些概念和常识。
没有研究价值,作为入门看一下了解了解,也是可以的。
公有链是对所有人公开,用户不需要注册和授权就能够匿名访问网络和区块,任何人都可以自由加入和退出网络,并参与记账和交易。
公有链是真正完全意义上的去中心化区块链,它通过密码学(非对称加密)算法保证了交易的安全性和不可篡改性,在陌生的网络(非安全)环境中,建立了互信和共识机制。在公有链中共识机制一般是工作量证明(POW)和权益证明(POS)。
公有链因为人人可参与,无需授权的特点又被称为非许可链,即不需要验证身份即可参与一切网络活动。目前比特币、以太坊、超级账本、大多数山寨币以及智能合约都是建立在公有链上,其中公有链的始祖是比特币区块链。
公有链适用于数字货币、电子商务、互联网金融、知识产权等应用场景。
暂时留空,后面填。
以太坊的每一个区块头,并非只包含一颗梅克尔树,而是包含了三颗梅克尔树,分别对应了三种对象:
交易(Transactions)
收据(Receipts,基本上,它是展示每一笔交易影响的数据条)
状态(State)
这使得一个非常先进的轻客户端协议成为了可能,它允许轻客户端轻松地进行并核实以下类型的查询答案:
随时更新
解析的 bitcoin 版本 0.16.1
height 100000 |
16进制数据,littleendian 表示
01000000 int32_t nVersion; 版本信息 |
hash 是这个区块的 header 的 hash 值,也就是下面的数据的 hash 值
class CBlockHeader |
可以自己生成几个区块,然后放到下面的字段中
static Checkpoints::MapCheckpoints mapCheckpoints = |
// What makes a good checkpoint block? |
多笔交易,收集在每块的交易数据部分,然后计算hash值,每对hash值在计算hash值,直到最后一个。the merkle root of a merkle tree.
4f68594945ccded4d77a01992db7f4c5 是4笔交易的merkle root
merkle_root.cpp
而这样做的好处,也就是中本聪描述到的“简化支付验证”(SPV)的概念:而不是下载每一笔交易以及每一个区块,一个“轻客户端”(light client)可以仅下载链的区块头,每个区块中仅包含五项内容,数据块大小为80字节:
常规的签名机制下,如果私钥丢失,那么就无法花费对应地址的货币了,因为无法做签名。
所以引入了多重签名的概念,来解决这个问题
具体来说,就是假设N个人分别持有N个私钥,只要其中M个人同意签名就可以动用某个“联合地址”的资金。
多重签名地址实际上是一个Script Hash,以2-3类型的多重签名为例,它的创建过程如下:
是一种树,也称为 Merkle Hash Tree,因为所有节点都是 hash 值
在密码学及计算机科学中,哈希树(hash tree)是一种树形数据结构,每个叶节点均以数据块的哈希作为标签,而非叶节点则以其子节点标签的加密哈希作为标签 。哈希树能够高效、安全地验证大型数据结构的内容,是哈希链的推广形式。
哈希树的概念由瑞夫·墨克于 1979 年申请专利,故亦称墨克树(Merkle tree)。
最初Merkle Tree目的是高效的处理Lamport one-time signatures。 每一个Lamport key只能被用来签名一个消息,但是与Merkle tree结合可以来签名多条Merkle。这种方法成为了一种高效的数字签名框架,即Merkle Signature Scheme。
Merkle proof 如何工作的?
用来判断下面几种情况
Merkle Tree 拓展了单向哈希的应用。
Merkle proof 是通过把子哈希连在一起然后再计算哈希的方式一直递归向上,直到得到根哈希值,作为公钥。
单向哈希算法不会产生碰撞,并且是确定性算法,不会有两个明文的哈希值相同的情况。
比特币的Merkle Tree
在P2P网络中,Merkle Tree用来确保从其他节点接受的数据块没有损坏且没有被替换,甚至检查其他节点不会欺骗或者发布虚假的块。
IPFS(InterPlanetary File System)是很多NB的互联网技术的综合体,如DHT( Distributed HashTable,分布式哈希表),Git版本控制系统,Bittorrent等。它创建了一个P2P的集群,这个集群允许IPFS对象的交换。全部的IPFS对象形成了一个被称作Merkle DAG的加密认证数据结构。
版本 16.04 TLS
备份 /etc/apt/sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup |
输入
sudo gedit /etc/apt/sources.list |
将下面的源复制到文件中,注销一下在执行,问题少些。
sudo apt-get update |
# 阿里云deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted |
sudo apt install ssh |
sudo nano /etc/ssh/sshd_config |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - |
sudo apt-get remove –auto-remove lldb
lldb 7.0
sudo add-apt-repository ppa:jonathonf/gcc-7.1
sudo apt-get update
sudo apt-get install gcc-7 g++-7
sudo apt-get install exfat-fuse exfat-utils |
使用 Stellar 网路,可以构建钱包应用,银行工具,支持支付的智能设备。 使用起来并不复杂。
大多数应用是通过 Horizon 来同 Stellar 网络交互的。 是一个 RESTful HTTP API 服务。
可以提交交易,检查账户,订阅事件,也可以使用支持多种语言的 Stellar SDK
Stellar Core(后面简称SC) 是 Stellar 网络的主干网,每个 Horizon 服务都会连接到 SC,SC 负责校验交易,达成共识。
核心是大量的单独节点运行而构成的分布式网络。网络上的每笔交易都有手续费 100 stroops (等于 0.00001 XLM). 防止垃圾信息
污染网络。
SCP白皮书
相对于活跃度 SCP 更看重安全,对于行为可疑的节点会停止网络处理,直到达成共识
stellar/quickstart docker image
提供了用于测试的网络这里
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - |
sudo apt-get install git build-essential pkg-config autoconf automake libtool bison flex libpq-dev pandoc |
记录一下目前现阶段比较火的数字货币,时间是2018-06-05
原文
Ethereum(以太坊)是有图灵完备的智能合约功能的公有区块链,开发人员能够在以太坊上建立和发布下一代分布式应用。Ethereum可以用来编程,还可以用来交易包括域名、合同、协议、知识产权还有硬件集成的智能资产在内的一切事物,同时囊括了金融交易,担保,众筹,投票等功能。
以太坊于2015年7月创立,当时年仅21岁的Vitalik Buterin革命性的将“智能合约”概念和区块链结合在一起,以太坊创立后如同坐上火箭一般迅速蹿升到圈内老二的位置。不过Vitalik Buterin并不满足于此,他组建了一个完整的开发团队,致力于继续开发以太坊平台。
Ripple旨在提高金融交易的速度,特别是跨境交易。曾经向境外汇过款的人应该都知道,一次跨境汇款大概需要3-5个工作日才能完成,有可能你直接取现金坐飞机过去都比转账要快。而且跨境转账还会要收取高额的手续费,可能不同的银行不一样,但是应该都在6%左右。Ripple的目标就是加快跨境交易速度(交易清算只需4秒),降低交易的手续费。
瑞波币(XRP)和比特币一样都是基于数学和密码学的数字货币,但是与比特币没有真正的用途不同,XRP在Ripple系统中起到货币桥梁和保障安全的功能,其中保障安全的功能是不可或缺的,所以每个Ripple的使用者都必须持有XRP。
比特币现金创建于2017年8月1日,是基于比特币原链的一个“硬分岔”。 由于比特币越来越受欢迎,比特币的网络瓶颈一直困扰着比特币。多年来,比特币社区一直在激烈争论是否要增加区块规模,以突破网络瓶颈。
由于无法达成协议,为了避免比特币原链受到影响,开发者们放弃了在比特币原链上直接修改,而是创建了一个新的区块链,新链允许开发者修改比特币最初的一些编程。
简单来说,比特币现金的原理是,通过增加区块的大小,使得新链可以在相同的时间内处理更多的事务。那些反对比特币现金的人认为,增加区块规模会增加存储和带宽需求,这会让普通用户付出更大的代价,还可能会导致集中化程度的增加,这和比特币去中心化的理念相悖。
EOS是区块链奇才 BM(Daniel Larimer)领导开发的类似操作系统的区块链架构平台。EOS的目标是解决以太坊面临的最大问题——可扩展性问题。作为潜在的“以太坊杀手”,EOS提出的改进措施非常有可能挑战以太坊为主导的智能合约平台。
EOS和以太坊一个更大的区别在于用户使用网络的方式。通过以太坊,用户每次进行修改或使用网络互动时都需要支付费用;而借助EOS,DAPP(分散式应用程序)的创建者可以直接支付账单,而用户不需要支付任何费用。如果有人告诉你每次发微博发朋友圈都要收费你会同意吗,当然不可能!所以站在用户的角度,EOS网络的模式其实更加合理。
除此之外,EOS在技术方面也有一些强于以太坊的地方,例如授权证明和其他协议更改。
莱特币受到了比特币(BTC)的启发,并且在技术上具有相同的实现原理,莱特币的创造和转让基于一种开源的加密协议,不受到任何机构的管理。莱特币旨在改进比特币,不同于比特币每10分钟才能处理一个区块,莱特币每处理一个区块只需要2.5分钟,因此可以更快的完成交易确认;而且莱特币在其工作量证明算法中使用了由Colin Percival首次提出的scrypt加密算法,这个算法的优点是用户可以使用普通计算机挖掘莱特币,而不需要像挖掘比特币一样组建矿机。每一个莱特币被分成100,000,000个更小的单位,通过八位小数来界定。
莱特币有时被称为“数字白银”,而比特币被称为“数字黄金”,从这外号上我们就能轻松的理解两者之间的不同,白银一般用于小型日常交易,而黄金则被作为财富储存,在日常生活中不常被使用。
卡尔达诺是一款专注于智能合约的区块链。它是由原以太坊团队成员Charles Hoskinson和Jeremy Wood等人以Input Output Hong Kong的名字发布的,后来更名为Cardano。
卡尔达诺团队正在努力解决加密货币世界长期以来一直存在的一些问题,例如可扩展性问题和民主化投票问题,如果能顺利解决,卡尔达诺未来可能会动摇以太坊在智能合约领域的统治地位。和以太坊一样,Cardano正在开发自己的编程语言,不仅如此,他们还注重于研究与其他加密货币之间的互操作性。
卡尔达诺是第一个从科学哲学为导向开发出来的区块链平台。卡尔达诺团队核心成员中学者与工程师居多,有很好的研究氛围,期待未来有一天他们能开发出一个完全开源的强大软件。
恒星币(Stellar)是一个由前瑞波币(Ripple)创始人Jed McCaleb发起的数字货币项目,用于搭建一个数字货币与法定货币之间传输的去中心化网关。恒星币供应上线为1000亿,其中95%的恒星币是免费发放给用户的。恒星是一个多元化的团队,董事会成员有包括前Square首席运营官Keith Rabois,Stripe首席执行官Patrick Collison,而顾问团队包括了狗狗币联合创始人Jackson Palmer以及Angellist联合创始人Naval Ravikant。
众所周知,比特币有时需要10-15分钟才能确认交易,每秒只能处理几笔交易,而交易费用则非常高。Stellar Lumens尝试利用区块链技术使国际支付速度更快,费用更低;Stellar Lumens目标建成的网络每秒可以处理数千次交易,只需3-5秒的确认时间。
有没有觉得听起来很像Ripple?没错! Stellar Lumens就是基于Ripple协议,而且做的也是一样的事情。两者的区别只在于Stellar Lumens的用途偏向于小额日常国际汇款和移动支付。
IOTA针对的是比特币和以太坊在POW(工作证明)和POI(重要证明)模型中遇到的许多问题,IOTA尝试建立了一个简称为“Tangle”的交易验证网络来解决这些问题。
在IOTA中发布交易时,用户只需要验证之前的两个交易,这意味着用户不需要再将验证外包给矿工,这种验证方式可以节约大量的算力和代币激励。
IOTA的用户越多,分类账越活跃,验证就越多。换句话说,使用它的人越多,IOTA的速度就越快,用户也就更不需要雇佣矿工,慢慢地交易成本就会越来越少直至降到零。
IOTA团队自2011年成立以来一直积极开发区块链技术,并于2016年成立了IOTA基金会和公司。自成立以来,团队不断发展壮大,吸引了来自世界各地的优秀人才。