分享篇 - 区块链在移动端的应用

        在经历 2017 年的大牛市,比特币、以太坊等虚拟货币暴涨十几倍、上百倍,各种山寨币,传销币百花齐放。又经历政策监管,信仰崩塌,泡沫破裂,币圈哀鸿遍野的 2018 年。到今年 2019 年,比特币等再次迎来小牛市,各种关于区块链、虚拟币的新闻又重新活跃在大众视野,如比特币产量再次减半,价格重回 1 万美金,波场创始人孙宇晨 3000 万拍下巴菲特午餐,某市值百亿的团队跑路等。我有幸在区块链行业工作过几年,见证了不少暴富,暴贫,也了解一些其中的玩法和内幕。但是这是一篇技术文章,所以从技术的方面出发,来整理下区块链在移动端的一些应用。

目录:

  1. 区块链的基础知识
  2. 区块链产业链
  3. 钱包
  4. 手机挖矿

1. 区块链的一些基本概念

  • 1.1 什么是区块链

        区块链起源于中本聪 (satoshi) 的比特币,作为比特币的底层技术,本质上是一个去中心化的数据库。是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。

        通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是一个大账本。那么谁来记这个账本就变得很重要。目前就是谁的系统谁来记账,微信的账本就是腾讯在记,淘宝的账本就是阿里在记。但现在区块链系统中,系统中的每个人都可以有机会参与记账。在一定时间段内如果有任何数据变化,系统中每个人都可以来进行记账,系统会评判这段时间内记账最快最好的人,把他记录的内容写到账本,并将这段时间内账本内容发给系统内所有的其他人进行备份。这样系统中的每个人都了一本完整的账本。这种方式,我们就称它为区块链技术。

  • 1.2 拜占庭将军问题

        拜占庭将军问题可以说是区块链的起源,拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时东罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传递消息。 在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。拜占庭将军问题实际是对网络世界容许入侵体系的模型化。

扫描二维码关注公众号,回复: 9636969 查看本文章

        拜占庭的忠实将军们要在叛徒存在且不抓出叛徒的情况下,使其决策形成一致。对应到通信世界中,人们要在容许一些捣乱或失效协议存在的情况下,解决问题。后来,人们发现,区块和区块链可以解决拜占庭将军问题。

        区块链起源于比特币,标志着上轮金融危机起点的雷曼兄弟倒闭后两周,2008 年 11 月 1 日,一位自称中本聪 (Satoshi Nakamoto) 的人发表了《比特币:一种点对点的电子现金系统》一文,阐述了基于 P2P 网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。两个月后理论步入实践,2009 年 1 月 3 日第一个序号为 0 的比特币创世区块诞生。几天后 2009 年 1 月 9 日出现序号为 1 的区块,并与序号为 0 的创世区块相连接形成了链,标志着区块链的诞生。

        近年来,世界对比特币的态度起起落落,但作为比特币底层技术之一的区块链技术日益受到重视。在比特币形成过程中,区块是一个一个的存储单元,记录了一定时间内各个区块节点全部的交流信息。各个区块之间通过随机散列 (也称哈希算法) 实现链接 (chain,后一个区块包含前一个区块的哈希值,随着信息交流的扩大,一个区块与一个区块相继接续,形成的结果就叫区块链)。

  • 1.3 区块链的特征
  • 去中心化。区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。去中心化是区块链最突出最本质的特征。
  • 开放性。区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
  • 独立性。基于协商一致的规范和协议 (类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。
  • 安全性。只要不能掌控全部数据节点的 51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。
  • 匿名性。除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。
  • 1.3 区块链系统的运行方式

        首先,中本聪很清楚建立一个支付系统的信用必须解决防止“重复支付”问题,也就是不能造假币。中心化的信用系统是靠国家机器防止造假币。“比特币”怎么办呢?中本聪的伟大创新是给每一笔交易“盖时间戳”(timestamp)。每十分钟一个区块(block:相当于网络账簿),把这十分钟的全网交易都正确的盖上时间戳。问题是谁来盖呢?中本聪并没有假设互联网上都是雷锋,他同意亚当.斯密的观点:市场上的人是贪婪的。他让所谓自称“矿工”的人去竞争这十分钟一个区块的记账权,竞争的规则就是正确记账的同时要去解 SHA256 难题 (挖矿计算),谁能证明自己的计算机算力最快(所谓 PROOF OF WORK 机制),它就能竞争到这十分钟区块的合法记账权,并得到二十五个比特币的奖励。这就是所谓俗称的“挖矿”过程,实际是建立一个全网总账:区块链的去中心化信用过程,所以矿工更本质的职能是“记账员”!

  中本聪在其比特币白皮书中,比较详尽的叙述了这个信用系统建立的过程:

  • 第一步:每一笔交易为了让全网承认有效,必须广播给每个节点(node:也就是矿工);
  • 第二步:每个矿工节点要正确无误的给这十分钟的每一笔交易盖上时间戳并记入那个区块(block);
  • 第三步:每个矿工节点要通过解 SHA256 难题去竞争这个十分钟区块的合法记账权,并争取得到二十五个比特币的奖励(头四年是每十分钟五十个比特币,每四年递减一半);
  • 第四步:如果一个矿工节点解开了这十分钟的 SHA256 难题,它将向全网公布它这十分钟区块记录的所有盖时间戳交易,并由全网其他矿工节点核对;
  • 第五步:全网其他矿工节点核对该区块记账的正确性(因为他们同时也在盖时间戳记账,只是没有竞争到合法区块记账权,因此无奖励),没有错误后它们将在该合法区块之后竞争下一个区块,这样就形成了一个合法记账的区块单链,也就是比特币支付系统的总账-区块链。
  • 1.4 区块链的应用领域

       区块链的形态分为三种:公链、私链和联盟链。

而区块链也经历了三个阶段:区块链 1.0-数字货币,区块链 2.0-数字资产与智能合约,区块链 3.0-科学,医疗,教育,区块链 + 人工智能等。看一个具有实际用途的案例:ipfs协议能取代http吗

2. 区块链产业链

  • 2.1 上游:矿机产业

       挖矿是将一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程。挖矿的人叫做矿工,简单说来,挖矿就是记账的过程,矿工是记账员,区块链就是账本。

那么怎样激励矿工来挖矿?

比特币系统的记账权力是去中心化的(即每个矿工都有记账的权利),成功抢到记账权的矿工会获得系统新生成发比特币奖励。因此挖矿就是生产比特币的过程。中本聪最初设计比特币时规定每生产 210000 个区块,比特币奖励减半一次,直至比特币不能再被细分,因为比特币和黄金一样总量有限,所以比特币被称为数字黄金。比特币生产也俗称挖矿。

 比特币怎么挖矿?

比特币通过挖矿产生,每 10 分钟,全网矿工一起计算一道算术题,谁先算出答案就相当于挖到了这个区块,该矿工便能获得系统新生的比特币奖励。在比特币刚诞生的时候,通过计算机的 CPU 便可以挖矿,随着挖矿的矿工越来越多,目前用 CPU 已经不能挖出比特币了,大家开始用矿机挖矿。

自从比特币诞生以来,比特币挖矿经历了以下四个阶段:

  • 1. CPU 挖矿
  • 2. GPU 挖矿
  • 3. 专业矿机挖矿 (A 卡,N 卡) 
  • 4. 矿池挖矿 (PPLNS、PPS)

矿池代表:鱼池,蚁池。

矿机代表:比特大陆蚂蚁矿机。

几个问题:

1. 比特币等虚拟货币成本怎么算?

获取虚拟币的渠道主要是两个,第一个挖矿 (成本最低,属于源头,对于 pow 算法的币,主要成本是电费 + 机器损耗),现在挖出一枚比特币的成本大概在 4 万人民币左右;第二是交易,比如从交易所购买,或者线下 OTC。

2. 每个区块的大小是有限的,如果提高交易打包速度?

目前有两种方式,第一种区块扩容,这种完全没有技术含量,就是 fork 比特币的源码,修改区块的大小值,然后矿工使用这套代码去共识挖矿,比如 BCH (比特币现金);第二种就是闪电网络,将交易数据脱离出区块,存储在另一个地方。

3. 比特币等虚拟币的总量是有限的,当币都挖完后,如果产生收益?

矿工交易的手续费。

4. 关于 51% 的算力

51% 是指算力占全网算力的 51%,比特币网络需要通过哈希碰撞来匹配随机数从而获得记账权,算力衡量的是一台计算机每秒钟能进行哈希碰撞的次数。算力越高,意味着每秒钟能进行越多次的哈希碰撞,即获得记账权的几率越高。在理论上,如果掌握了 50% 以上的算力,就拥有了获得记账权的绝对优势(意味着可以更快地生成区块),也拥有了篡改区块链数据的权利。所谓 51% 的攻击,就是利用比特币网络采用 POW 竞争记账权的特点,使用算力优势生成一条更长的链“回滚”已经发生的“交易行为”。但是从非理性角度考虑,发动 51% 攻击是为了攻击而攻击,不考虑任何后果(动机无法揣测,可能性也无法衡量),这种做法最终会失去共识,其他社区成员可以通过硬分叉重新建立共识(比如采用新的证明机制),最终 51% 的攻击也将变成“一个人的游戏”。

5. ASIC 矿机

我们都知道,一台电脑就可以当作矿机来使用,但是挖矿对计算机的要求较高,所以有人配备了更强大的 CPU、显卡等等配置组装成一台专业的矿机,而 ASIC 矿机就使用专门的 ASIC 芯片代替以往的通用芯片,针对特定的币种,用 ASIC 矿机可以换来更高的性能、更小的能耗、更小的体积,并且在批量生产时可以降低造价。

相同价格下 ASIC 矿机的性能往往远超显卡和 CPU 矿机,最直接的结果是使用 ASIC 矿机的数字货币单位能耗对网络的支撑性更好。在形成相同算力的网络里,使用 ASIC 矿机显然要更低成本、更环保,比显卡矿机低到了不可想象的地步。

值得一提的是,ASIC 挖矿往往带来的是整个网络算力指数级别增长,支撑网络所消耗的能源和制造成本也会比显卡矿机更多。当然,因为 ASIC 矿机只针对专门的币种,所以也导致矿工对所挖币的忠诚。

例如门罗币就进行了分叉,升级算法为 CryptoNight V2,以便更好地抗 ASIC。

6. 区块链的安全问题

比如,应用层可分为交易所、矿机、矿池、钱包等。交易所往往会面临比较传统的外部安全问题,以及业务方面安全问题。矿机主要是可遭受远程弱口令登陆问题,而矿池则存在可被伪造的问题,还有钱包的安全问题等等,不一而足。

而合约层面临的问题也很多,比如相对熟知的智能合约。截至目前,针对智能合约所发生的攻击次数已多达 21 次,累计造成了 10 亿美金的损失。虽然智能合约的代码逻辑比较简单,但却可以造成巨大的经济损失。安全专家在对当前以太坊网络上现存合约做全面排查后,总共发现有 160 多个合约漏洞,其中有大量还未被公开的漏洞。比如 ETC 的合约问题,导致分叉出 ETH,美图发行的 beauty coin,就因为转账合约的代码漏洞被黑客攻击导致该币破产。

数据层则往往面临恶意信息攻击、资源滥用攻击等威胁。由于区块数据是分布在多个节点上的链式结构数据,节点与节点之间的交互变化记录到区块中,然后各节点间同步完整的区块数据。但随着时间的推移,区块数据可能会爆炸式增长,也有可能被写入恶意信息,如病毒特征码,都可能导致整个链条存在威胁。曾经就有因为攻击者篡改了区块链生成时间,导致挖矿难度下降的事件,让劫持整条主链成为可能,最终致使攻击者获取到大量代币。

  • 2.2 中游:区块链产业

       区块链产业,包括公链、私链、联盟,这里是数据存储和运动的场所,是区块链的中游产业,也是区块链产业的核心产业。在区块链产业中,生产者是矿工了,矿工就是其上游产业(矿机产业)的买方,而在区块链产业中,矿工成了卖方。在区块链产中业,需求者有两种,一种是 DAPP 的开发者,另一种是数字货币的需求者。这就对应着两种区块链了:

  • 第一种区块链是可以开发 DAPP 的,那么就有一些人需要在这样的区块链上开发 DAPP。以太坊、EOS 和 NEO 就是这样的公链,针对的就是人们开发 DAP 的需求 (类似 Android framework)。
  • 第二种就是不能开发 DAPP 的区块链,比特币、莱特币、狗狗币等,就是这样的区块链,这样的区块链就是一个数字货币为基础的金融体系,用户对这样的区块链的需求就是使用数字货币。
  • 2.3 下游:DAPP 产业

DAPP 产业是区块链的下游产业,也是终端产业。因为 DAPP 面向的是广大用户。显然,这是区块链产业的最终环节,如果没有人需要 DAPP,也就没有人需要在区块链上开发 DAPP,那么区块链的应用就只剩下数字货币交易了。那整个产业就会委缩了。在 DAPP 产业中,生产者是 DAPP 开发者,而这些人是上一个产业链环节中的需求者。 DAPP 产业中,需求者就是 DAPP 的用户们了。

  • 2.4 周边:交易所与社区

除了产业链上的这些产业以外,区块链还有一些周边产业。最典型的两个周边产业就是交易所和区块链垂直社区。交易所是把项目的代币接入交易所,区块链也好、DAPP 也好都要在交易所才能体现出价值来。而区块链垂直社区,就是一个区块链公关和营销的平台,是区块链信息交流的场所。

3. 钱包

目前基于区块链的手机钱包很多,最有名的就是 IMToken。

https://token.im

里面涉及到助记词生成,公钥,私钥产生,数据加密,rpc 与远程区块节点通信等。一般比较成型的开发包有以太坊的官方开发包 web3j,支持的 api 包括转账,查询,智能合约部署等。

https://docs.web3j.io

4. 手机挖矿

可以看看我之前的两篇文章:

NDK篇 - 教你移植门罗币 CPU 挖矿

NDK篇 - 教你移植 Zcash GPU 挖矿

发布了126 篇原创文章 · 获赞 215 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/u014294681/article/details/94987208