文档章节

【区块链】以太坊区块链技术初探

linapex
 linapex
发布于 2017/10/20 10:05
字数 4437
阅读 4.6K
收藏 132

[国内首家]以太坊区块链实战教学http://edu.csdn.net/course/detail/6455

LinApex个人简介

    奋斗在区块链网络在数字货币交易平台,底层框架设计,区块链钱包,区块链解决方案一线,做过人工智能,金融支付行业,目前正在做一款区块链+黄金的App系统。

玩赚区块链QQ群:128148617

 

连载系列(基于以太坊)

    开发系列

        1、【区块链】以太坊区块链技术初探

        2、【区块链】以太坊区块链环境搭建

        3、【区块链】以太坊区块链概念了解

        4、【区块链】以太坊区块链技术进阶

    源码系列

        1、【以太坊源码】编译以太坊源码,打造自己的公链私链

        2、【以太坊源码】以太坊源码研究系列(以太坊模拟机、挖矿、点对点网络库、节点发现、合约代码传输、加密签名等)

 

区块链基本概念

    区块链就是通过密码学的方式形成的一个由集体维护的分布式数据库。

    区块链的概念最近很火,它来自于比特币等加密货币的实现,但是目前,这项技术已经逐步运用在各个领域。什么是区块链技术?为了感性认识这个问题,我们可以使用谷歌地球的例子做类比,ajax不是什么新技术,但组合在一起就成就了产品谷歌地球,与之类似,区块链也不是什么新技术,但与加密解密技术、P2P网络等组合在一起,就诞生了比特币。技术人员,特别是Web开发工程师,学习了解ajax技术最早是被谷歌地球酷炫的效果所吸引。而现在,历史再一次重演,很多人被比特币的疯狂发展所吸引,进而开始研究其背后的技术——区块链。

    区块链作为比特币背后的技术,无需中心服务器,可实现各类存储数据公开、透明、可追溯。原本是比特币等加密货币存储数据的一种独特方式,是一种自引用的数据结构,用来存储大量交易信息,每条记录从后向前有序链接起来,具备公开透明、无法篡改、方便追溯的特点。实际上,这种特性也直接体现了整个比特币的特点,因此使用区块链来概括加密货币背后的技术实现是非常直观和恰当的。区块链是一项技术,加密货币是其开发实现的一类产品(含有代币,也有不含代币的区块链产品),不能等同或混淆。与加密货币相比,区块链这个名字抛开了代币的概念,更加形象化、技术化、去政治化,更适合作为一门技术去研究、去推广。

    所以,目前当大家单独说到区块链的时候,就是指的区块链技术,是实现了数据公开、透明、可追溯的产品的架构设计方法,算作广义的区块链。而当在具体产品中谈到区块链的时候,可以指类似比特币的数据存储方式,或许是数据库设计,或许是文件形式的设计,这算作狭义的区块链。广义的区块链技术,必须包含点对点网络设计、加密技术应用、分布式算法的实现、数据存储技术的使用等4个方面,其他的可能涉及到分布式存储、机器学习、VR、物联网、大数据等。狭义的区块链仅仅涉及到数据存储技术,数据库或文件操作等。本文的区块链,指的是广义的区块链。

 

区块链架构

 

区块链专业名词

1. 特定用户:指按照中国法律法规及政策规定必须要配合融识履行个人信息披露义务的用户。
2. 私钥:由256位随机字符构成,是用户拥有并使用数字代币的核心。
3. 公钥:由私钥借助密码学原理单向推导生成,并用以生成区块链数字钱包地址,数字钱包地址即为公开收款地址。
4. 助记词:符合区块链BIP39 行业标准,由随机算法生成的12(或15/18/21/24)个有序单词组成。是私钥的易记录表现形式,方便用户备份保管。
5. Keystore: 是私钥或助记词经过用户设置的钱包密码加密保存的文件形式,它只存储在您的这台移动设备中,不会同步至融识服务器。
6. 数字代币:指以太坊目前支持的数字代币种类,包括但不限于ETH、DGD等。
7. 个人信息:指以电子或者其他方式记录的能够单独或者与其他信息结合识别用户个人身份的各种信息,包括但不限于自然人的姓名、出生日期、身份证件号码、个人生物识别信息、住址、电话号码、银行卡号、邮件地址、钱包地址、移动设备信息、操作记录、交易记录等,但不包括用户的钱包密码、私钥、助记词、Keystore。
8. 去中心化:这个系统在最初设定完规则后就可以自主开始在互联网中运行,不依靠中央的服务器和监管机构,每个参与的节点都是平等和自由竞争的。是一种去中心化自治系统(DAC)。
9. 以太坊:以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球已有200多个以太坊应用诞生。以太坊是一个平台和一种编程语言,使开发人员能够建立和发布下一代分布式应用。 以太坊可以用来编程,分散,担保和交易任何事物:投票,域名,金融交易所,众筹,公司管理, 合同和大部分的协议,知识产权,还有得益于硬件集成的智能资产。

待续~
 

以太坊常用网址

1、以太坊官方网站:https://ethereum.org/

       该网站为以太坊的官方网站,有详细的以太坊介绍和各种连接地址,推荐详细看一看

2、以太坊所有源码地址(官方):https://github.com/ethereum/

       该github为以太坊所有项目的源码地址,以及更新和发布。

3、以太坊Homestead文档地址(官方):http://www.ethdocs.org/en/latest/index.html

       该网站为以太坊的详细介绍文档,基本包括了以太坊的方方面面,如果有什么不清楚的原理和应用,基本都可以在这里找到答案和线索。

4、以太坊网络状态地址(官方):https://ethstats.net/

       该网站能全面的显示网络状态,包括节点、难度、算力等等,非常直观

5、以太坊资源网站(官方):http://ether.fund/

       该网站提供了以太坊很多应用资源,比如市场情况、合约辅助工具、已发布的智能合约、以太坊网络、DAAP等,方便开发和发布。

6、Solidity编程文档(官方):http://solidity.readthedocs.io/en/latest/

       该网站提供了以太坊Solidity语言的全面参考手册,学习Solidity语言必备。

7、以太坊网络扫描(官方):http://etherscan.io/

       该网站提供了以太坊网络的各种状态,比如帐号的详情、TOKEN详情,难度详情、区块详情,非常方便和直观。

8、以太坊官方博客:https://blog.ethereum.org/

9、以太坊wiki百科地址:https://github.com/ethereum/wiki/wiki

       在这里有白皮书、黄皮书以及开发指南,比较全面。

10、以太坊中文爱好者网站:http://ethfans.org/

       该网站为国内以太坊爱好者自发建立的网站,内容比较全,信息更新很快。

11、以太坊的gitter的实时交流网站:https://gitter.im/orgs/ethereum/rooms    

       该网站是以太坊的gitter chart的网站,根据项目分了很多房间,只要你提问题,大部分有人回答,很不错,不过只能英语交流。

12、以太坊的官方论坛:https://forum.ethereum.org/

      官方论坛,没什么好说的,我遇到的几个问题,都是在这里找到的答案

13、以太坊第三方强大的IDE:https://live.ether.camp/

        这个是第三方发布的Solidity IDE,我看了一下,很强大,强大到还不太会用,他的目标是企业级IDE,老外用的较多。

14、以太坊开发框架Truffle说明书:http://truffle.readthedocs.io/en/latest/

        以太坊目前很流行的开发框架Truffle的说明书,这个框架比较流行。

15、以太坊开发框架dapple说明书:http://dapple.readthedocs.io/en/master/

        这个开发框架是在gitter chart上看到的,感觉用的人不多,先观察

16、以太坊官方推荐开发框架Meteor说明书:https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor

        这个开发框架是以太坊官方推荐的,写进了以太坊的官方wiki,值得学习,当然,以太坊官方经常转换方向,以后换别的也没准

 

以太坊各个项目说明

(一)Go-ethereum项目

    开发语言:go语言

    客户端文件:Geth

    界面:命令行

    适用平台:windows、linux和OSX

    功能和特点:该项目是使用最广泛的以太坊客户端,大部分节点都是运行的该客户端,教程和例子也最多,推荐使用,可用于挖矿,组建私有链,管理账号,部署智能合约等常用功能,不可以编译智能合约。

(二)webthree-umbrella项目

    此项目包含3个客户端

    开发语言:c++

    客户端文件:AlethZero、Mix和Eth

    使用平台:windows、linux和OSX

    界面:图形化界面

    功能和特点:该项目严格来说是cpp-ethereum 项目的一个shell,是以太坊基金会的前CTO,Gavin Wood主持编写的,所以人气也很高,易用性也很好。AlethZero是图形化的钱包客户端,对应的是Geth的功能,不过是全图形化的。但是随着后续以太坊基金会主推的图形化钱包Mist的推出,渐渐没落。Mix 是智能合约(以太坊称为DAPP)的开发IDE,可以支持智能合约(DAPP)的编写、调试,部署,全图形化界面,但是目前已经停止开发了,开发组转向了Remix。Eth是C++编写的命令行客户端功能和Geth一样。

(三)Mist项目

    开发语言:JavaScript

    客户端文件:Mist(目前使用Ethereum-Wallet的名称)

    使用平台:windows、linux和OSX

    界面:图形化界面

    功能和特点:该项目是以太坊基金会主推的项目,Mist定位不只是一个钱包,而是将来DAPP(智能合约的应用APP)市场,类似于苹果市场,在这里可以有你的账号,可以浏览、发布和买卖以太坊的DAPP应用。目前因为开发还不够全面,名称暂时显示为Ethereum-Wallet,作用也很简单,就是一个钱包的功能。强烈推荐,未来的主流客户端。

(四)solidity项目

    开发语言:C++

    客户端文件:solc

    使用平台:windows、linux和OSX

    界面:命令行界面

    功能和特点:该项目是以太坊智能合约(DAPP)的编程语言,使用solc作为编译程序,该项目主要用于编译,严格来说是一个基本的编译平台,一般开发可用MIX替代。

(五)browser-solidity项目

    开发语言:C++

    客户端文件:浏览器中显示

    使用平台:windows、linux和OSX

    界面:浏览器界面

    功能和特点:该项目是智能合约浏览器版本的开发环境,可以支持在浏览器中直接开发、调试和编译,对于初学者来说,可以快速上手,不需要安装,非常方便,直接访问地址使用:https://ethereum.github.io/browser-solidity/

(六)pyethereum项目和ethereumj项目

    pyethereum项目是用Python语言编写的以太坊客户端,ethereumj项目是用Java语言编写的以太坊客户端,只是语言不同,和前面GO语言编写的客户端Geth的功能完全相同。

(七)etheminer项目

    开发语言:C++

    客户端文件:ethminer

    使用平台:windows、linux和OSX

    界面:命令行

    功能和特点:该项目是cpp-ethereum项目的一部分,用于和Geth配合进行GPU挖矿,比CPU挖矿效率高100多倍,也可以用于矿池挖矿

 

 

区块链的诞生是为了解决什么问题?

在支付宝转账的时候,作为用户的你感觉是把你的钱直接打到对方的账户中。但!....事实是这样的:

这里的支付宝等公司就是“第三方”,那为什么我们俩转账为什么要有一个“第三方”出现?

这是阿里巴巴的纪录片《造梦者》中的一段话,ps:下文会多次引用,就可以很好解释“第三方”这个名词,这也是淘宝和支付宝诞生的伊始。换句话说,当时的阿里是被逼做了这个“第三方”,因为当时没有任何一家公司能够担任这样的角色,于是阿里成为了信任的中心,商家和用户因为“信任”,选择把钱给阿里。但是,如果阿里携款潜逃了(尽管不可能...)或者财务运营商出了问题(毕竟是人嘛...)怎么办?如果有一个机器或者一个“超级系统”来做这些事就好了!在互联网技术更新替换了十几年后的今天,区块链出现在我们面前,没错!它就是那个“超级系统"!一个信任的机器

有了区块链,事情开始变得不一样了。

传统中心化的方式:

区块链网络下的”去中心化的方式:

在去中心化的网络下,每个用户之间都可以是直接联系的,不再有任何第三方的参与,用户间的转账就像手递手付现金一样,这也是为什么比特币会被称为”电子现金“。

好了,现在A已经把钱转给B了,那么谁来记这笔账呢?之前有支付宝帮我记账对账,会统一存在支付宝后台系统中。为了让所有用户的交易都被记录下来并且账目都是正确的,支付宝会为此付出巨大努力。看看支付宝的初期...

每天1000笔的账单,人工对账就已经很痛苦了。以现在支付宝的体量,每天少则几十万的账单,即使是系统对账也难免漏单,并且要付出相应的人力、物力来维护这一套非常复杂的收支清算系统。说了这么多,那区块链是怎么对账的呢?答案是:没有!在区块链的网络中根本不需要对账,零清算,因为区块链中的每一个节点(就是一台计算机或理解为一个用户)自己都有一个账本,这个账本是实时更新的,区块链网络中发生的任何交易都会被记到你自己的账本中,没错,别人的帐你也有,但是你是不知道这个人是谁的,因为他们统一都长这个样子:

0x3c7e7bd1ff2952fbf5a16d0d8b0fc2803162b088

这就意味着,以前由一个中心化的机构帮你记账对账,现在由每一个网络中的参与者帮你记账,大家都有同一个账本。如下图

每个人拥有同一个账本,即使你篡改了你自己的账本,让你的账上多了1亿,可是51%以上的账本中你的账户还是1分钱,那就说明你的帐上余额就是1分钱,无法抵赖。当然,如果你能控制网络51%的人在账本中帮你把一分钱变成1亿,你就能获得一亿,但基本上就要动用举国之力了....骚年,你确定你可以?

这就是为什么大家说区块链网络是安全的,因为攻击成本太过巨大,打个比方:比特币现在市值80亿美元,如果你想攻破它并得到这80亿美元,你可能要花费200多亿美元......

说了上面这么多其实就是想说明区块链的几个特性:

  1. 去中心化,没有第三方中介,一切都由程序来完成。
  2. 安全性,主要体现在分布式、51%攻击,即使一个节点被攻击或宕机也不会影响网络的运行。
  3. 最核心的就是:去信任。一切社会行为都要建立在”信任“的基础上,这也是区块链解决的最根本的问题。

 

区块链的落地场景

    全球P2P租赁    https://atlant.io/cn/#contribute

    京东区块链    https://www.leiphone.com/news/201612/VGtxUJDpj12JswTv.html

    微众银行:贷款清算
    中国银联:积分兑换
    Ripple:跨境支付
    ABRA:跨境支付
    Circle:境内外支付
    BTCJam:网络借贷
    Wave:供应链金融& 贸易金融
    Chain:股权交易发行
    ShoCard:身份识别

 

技术书籍

《区块链技术指南》 CSDN上必须要设置一个分数,所以弄了最低2分,本来想免费的。

 

© 著作权归作者所有

linapex
粉丝 45
博文 17
码字总数 22791
作品 0
深圳
程序员
私信 提问
加载中

评论(17)

AELF开发者社区
AELF开发者社区
您好,我这边想咨询一下您是否有撰写aelf技术解读资讯或文章(技术优势对比、经济系统解读、分析aelf经济系统设计思路)并进行发布的意愿,aelf也会对您写出的文章做曝光推荐(含aelf自媒体频道、aelf合作媒体渠道)及后续的开发者社区相关福利活动也会优先对您进行安排。

AELF是一个去中心化的云计算平台,旨在帮助企业/个人高效便捷地使用基础区块链技术构建去分布式应用(DAPP)。在中心化领域中,我们使用亚马逊AWS部署服务,在区块链领域中,可以将服务托管在AELF去中心化云计算区块链网络上。

GitHub:https://github.com/AElfProject/AElf

如有意向请添加微信:a439714,请您备注(aelf文章)
每周精粹
每周精粹
我在想,去中心化了,服务器是谁的?我产生了一笔交易,我的账本在哪里?在支付宝的服务器还是腾讯的服务器?还是得自己搞个服务器? 然后把我的账本跟别人的账本连接。我连接账本后会把改网络下的 别人的账本也 下载到自己的服务器上面?
zigzagroad
zigzagroad

引用来自“linapex”的评论

引用来自“zigzagroad”的评论

引用来自“linapex”的评论

引用来自“zigzagroad”的评论

应该是“非中心化”,不是“去中心化”,后者容易引起政治敏感性,建议少用或不用。
比特币开创了去中心化密码货币的先河,五年多的时间充分检验了区块链技术的可行性和安全性。

不是“去中心化”,是“非中心化”,这是《区块链技术指南》中的观点,在国内环境下还是要尽量避免使用政治化倾向的词语的。
http://download.csdn.net/download/feng6850170/10034717 CSDN上必须要设置一个分数,所以弄了最低2分,本来想免费的。 里面没有提到非中心化,全是去中心化,你可以再研读一下。

在此之前我下载并阅读了 邹均 所著的《区块链技术指南》,个人比较认可里面的这个观点。
linapex
linapex 博主

引用来自“zigzagroad”的评论

引用来自“linapex”的评论

引用来自“zigzagroad”的评论

应该是“非中心化”,不是“去中心化”,后者容易引起政治敏感性,建议少用或不用。
比特币开创了去中心化密码货币的先河,五年多的时间充分检验了区块链技术的可行性和安全性。

不是“去中心化”,是“非中心化”,这是《区块链技术指南》中的观点,在国内环境下还是要尽量避免使用政治化倾向的词语的。
http://download.csdn.net/download/feng6850170/10034717 CSDN上必须要设置一个分数,所以弄了最低2分,本来想免费的。 里面没有提到非中心化,全是去中心化,你可以再研读一下。
linapex
linapex 博主

引用来自“3789”的评论

如果作者再讲讲如何根据那一串十六进制的账单确定余额就好了。��
后面就有了,代码可查,还可以查询区块。
爱歆儿妹妹
爱歆儿妹妹
。。
3789
3789
如果作者再讲讲如何根据那一串十六进制的账单确定余额就好了。��
zigzagroad
zigzagroad

引用来自“linapex”的评论

引用来自“zigzagroad”的评论

应该是“非中心化”,不是“去中心化”,后者容易引起政治敏感性,建议少用或不用。
比特币开创了去中心化密码货币的先河,五年多的时间充分检验了区块链技术的可行性和安全性。

不是“去中心化”,是“非中心化”,这是《区块链技术指南》中的观点,在国内环境下还是要尽量避免使用政治化倾向的词语的。
linapex
linapex 博主

引用来自“沙发迪”的评论

要玩区块链玩的好,买一点btc,eth是必须的。
必须买
linapex
linapex 博主

引用来自“水涵”的评论

比特币我还有一点没懂,怎么样根据算力来下一个区块由谁写?就是那个随机值的许可范围怎么确定的
涉及到点对点网络库、节点发现的内容了,根据算力的值,你的算力值越高就越容易挖到矿,所以现在有很多矿池,大家把矿机组在一起挖矿,算力强就容易赚钱。
区块链核心技术及应用场景简介 - 知乎

个人博客链接如下:区块链核心技术及应用场景简介 最近公司内部组织了一场知识分享,在轮到本人进行分享的前夕正好区块链技术又一次被推到了风口,而且是官选的那种,并不是之前各种投机炒客...

数海拾荒
2019/11/14
0
0
开发者的以太坊进阶指南 | Jeth 以太坊系列线下活动第四期北京场

入群与讲师讨论 介绍 Jeth 以太坊系列线下活动:《开发者的以太坊进阶指南》北京站来了! Jeth 是由掘金技术社区主办,以太坊社区基金会、以太坊爱好者与 ConsenSys 协办,围绕以太坊技术开发...

掘金
2018/11/06
57
0
开发者的以太坊进阶指南 | Jeth 以太坊系列线下活动第四期北京场

入群与讲师讨论 介绍 Jeth 以太坊系列线下活动:《开发者的以太坊进阶指南》北京站来了! Jeth 是由掘金技术社区主办,以太坊社区基金会、以太坊爱好者与 ConsenSys 协办,围绕以太坊技术开发...

掘金
2018/11/06
27
0
2天闭门培训|以太坊智能合约从入门到实战(北京)

2天培训 16个课时 探寻技术原理,精通以太坊智能合约开发 以太坊智能合约是现在应用的最广泛的区块链应用开发方式,HiBlock区块链社区针对以太坊智能合约的学习特别推出2天闭门研修班,通过2...

HiBlock
2018/11/20
23
0
关于以太坊智能合约,你所需要知道的都在这里

关于以太坊智能合约,你所需要知道的都在这里 2018-09-03 15:24编辑: yyuuzhu分类:区块链来源:巴比特 区块链 招聘信息: iOS开发 iOS开发 iOS开发 app开发上架H5技术 app开发技术 图像处理...

yyuuzhu
2018/09/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

LeetCode.6.Z字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需...

tedzheng
18分钟前
21
0
使用postman测试接口,解决Session共享问题

问题: 在做登录模块时,使用Postman做接口测试,发现session不能共享问题:第一次请求将系统随机生成验证码放入Session中,第二次请求想要获取系统生成的验证码,但是取到的值为null,因此无...

code-ortaerc
51分钟前
67
0
从Maven存储库获取源JAR

有谁知道您是否可以在Maven存储库中找到源JAR? #1楼 如果您使用的是eclipse,则还可以打开“首选项”>“ Maven”并选择“下载Artifact源”,这将使pom.xml完整无缺,并将源或Java文档(如果...

技术盛宴
58分钟前
60
0
CentOS 7 SSH连接超时自动断开解决方案

用SSH登录到Linux的时候,由于默认的连接超时时间很短,经常断开。可以修改配置文件调整服务器端向客户端请求消息的时间间隔,解决自动断开的问题。 编辑/etc/ssh/sshd_config 找到 #ClientA...

matrixchan
今天
53
0
非典期间的一段回忆

最近的新型肺炎病毒甚嚣尘上,已经成了大众最瞩目的事件,整个国家层面反应也算迅速,毕竟我们是一个十几亿人口的国家。 公众号的读者和我分享了一个一段03年非典期间的故事,感慨颇深。经原...

王知无
今天
65
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部