前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【区块链】以太坊区块链技术初探 顶

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

作者头像
linapex
发布于 2019-03-26 02:08:25
发布于 2019-03-26 02:08:25
2.7K00
代码可运行
举报
文章被收录于专栏:区块链实战区块链实战
运行总次数:0
代码可运行

连载系列(基于以太坊)

开发系列

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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分,本来想免费的。

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/10/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
区块链技术学习指引
本文原文发表于深入浅出区块链, 原文区块链技术学习指引会保存更新,大家最好前往原文阅读。
Tiny熊
2019/04/12
1.9K0
区块链技术学习指引
以太坊是什么 - 以太坊开发入门指南
很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。 以太坊是什么 以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。 对这句话不理解的同学,姑且可以理解为以太坊是区块链里的Android,它是一个开发平台,让我们就可以像基于Android Framework一样基于区块链技术写应用。 在没有以太坊之前,写区块链应用是
Tiny熊
2018/06/21
2.6K0
第三课 以太坊术语说明及开发者资源列表
也称钱包,提供账户管理、挖矿、转账、智能合约的部署和执行等等功能,以太坊节点利用以太坊客户端接入到以太坊网络。 现在以太坊客户端主要有:Wallent/ist , Geth, Parity, Harmony,
辉哥
2018/08/10
7440
第三课 以太坊术语说明及开发者资源列表
玩区块链游戏谜恋猫 CryptoKitties, 学习区块链技术
以太坊是可编程的区块链,是业内公认的区块链 2.0 代表项目。可以将以太坊理解为一个操作系统,使用 Solidity 等语言编写智能合约发布应用到链上,使用 Go、Java、Python、JavaScript 等语言在链下调用链上的智能合约读写区块链数据,通过这种方式实现各种各样的区块链应用。
CSDN技术头条
2018/07/30
1.8K0
玩区块链游戏谜恋猫 CryptoKitties, 学习区块链技术
以太坊智能合约开发第二篇:理解以太坊相关概念
很多人都说比特币是区块链1.0,以太坊是区块链2.0。在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太坊的整个生态。目前,以太坊是区块链世界里生态建设最好的底层公链。本篇将以通俗易懂的方式介绍以太坊开发中涉及到的相关概念,带领大家轻松入门。 以太坊 以太坊(Ethereum)是一个建立在区块链技术之上的、图灵完备的去中心化应用平台。它允许任何人在平台中通过智能合约技术开发、部署和使用去中心化应用。 > 有没有感到和ios、Android平台有点类似? 在以太坊未问世之前,写区块链的应用是
Marser
2018/06/25
1.3K0
【葵花宝典】区块链技术面试必考题 01 区块链面试真经
话说,区块链行业对人才的缺口越来越大,但由于区块链涉及的知识领域较为广泛,能找到真正有用的人才对每个企业来说都非常不易。
辉哥
2018/10/18
2K0
【葵花宝典】区块链技术面试必考题
01 区块链面试真经
对以太坊的优雅介绍
重要提示:如果您拥有价值超过1,000美元的加密货币,那么您肯定应该使用硬件钱包,而不是在交易所保留硬币。我推荐Trezor,您可以直接从他们的网站购买€89 。
天空
2018/03/13
1.8K0
对以太坊的优雅介绍
区块链技术开发入门
本文将对区块链开发使用的技术、工具、语言、平台做一次全景扫描,并对其应用状况进行分类。
南坡海瑞
2018/12/25
3.3K0
.netcore如何开发以太坊区块链示例 原
本文描述了在dotNet核心中使用像以太坊这样的区块链平台的过程。目标受众是其他想要从以太坊开始的dotNet开发者。需要了解区块链。在本文中,我们构建了一个完整的示例,允许你与自定义编写的智能合约进行交互。
笔阁
2018/10/26
1.4K0
区块链开发如何选择底层平台和开发语言?
大多数人并不需要自己重新创建一套区块链,而是基于现有的区块链底层平台去开发自己的应用,对于类似加密算法、 P2P技术、共识算法等只需要有个基本了解就可以了,暂时不需要深入研究。在文本中,将介绍三种主流的区块链底层平台:比特币、以太坊和超级账本Fabric,以及这些平台上的应用开发语言。 比特币区块链开发 最早的区块链开发便是基于比特币的区块链网络进行开发了,由于比特币是全球最广泛使用和真正意义的去中心化应用,因此,围绕比特币的各种区块链技术非常多,这里不一一描述,只针对入门开发进行介绍。 基于比特币的区块链
用户1408045
2018/05/17
2.5K0
为什么区块链开发者工资这么高?看看他们需要掌握多少东西就知道了
说起区块链一直有个大家喜闻乐见的话题,就是「开发者」,无论是人才招聘还是技术开发,开发者都是区块链大潮背后的中坚力量。
区块链大本营
2018/09/21
1.5K0
为什么区块链开发者工资这么高?看看他们需要掌握多少东西就知道了
如何使用Meteor开发以太坊Dapp 原
本教程将向你展示如何设置Meteor应用程序以用作Ðapp,并可能回答几个关于为什么应该使用Meteor的问题。
笔阁
2018/12/21
1.7K0
区块链安全技术总结
区块链的安全需求越来越多,下面就将这些需求一一拆分,看看区块链安全需求到底是个什么样子。
FB客服
2018/07/31
2K0
区块链安全技术总结
初识以太坊
以太坊(Ethereum)已经成功跻身为密码货币资本市场的第二名,其地位仅次于比特币。在短时间内,以太坊迅速演化成一个'世界计算机',它凭借全世界的数千个节点(个人计算机)协同工作来替代集中式服务器。
白加黑大人
2018/03/13
2K0
初识以太坊
以太坊会是区块链的终极形态吗?
比特币于 2009 年诞生后,我们很快就迎来了所谓的「山寨币」时代。人们在比特币的基础上衍生出了诸多想法,并付诸实验,一时间涌现出成千上万种加密货币。一些新的加密货币活了下来,另一些很快消失在我们的视野中。其中最成功的莫过于以太坊了。为什么是以太坊?
用户7358413
2021/03/25
6120
Ethereum - 以太坊项目
以太坊项目进一步扩展了区块链网络的能力,从交易延伸为智能合约(Smart Contract)。 其官网首页为 ethereum.org。 简介 根据以太坊官方的宣称,以太坊(Ethereum)目标是打造成一个运行智能合约的去中心化平台(Platform for Smart Contract),平台上的应用按程序设定运行,不存在停机、审查、欺诈、第三方人为干预的可能。以太坊平台由 Golang、C++、Python 等多种编程语言实现。 当然,为了打造这个平台,以太坊提供了一条公开的区块链,并制定了面向智能合
架构师研究会
2018/04/09
1.6K0
学习以太坊Dapp开发
比特币设计的初衷就是要避免依赖中心化的机构,没有发行机构,也不可能操纵发行数量。既然没有中心化的信用机构,在电子货币运行的过程中,也势必需要一种机制来认可运行在区块链上的行为(包括比特币的运营,亦或是运行在区块链上的其他业务),这种机制就是共识机制。在完全去中心化的区块链上运行的比特币,采用的是PoW(Proof of Work,工作量证明),该机制完美的解决了拜占庭将军问题(存在异常的情况下仍能达成一致)。因为基础网络架构为分布式,对单独一个节点是无法控制或破坏整个网络,掌握网内51%的运算能力(非节点数)才有可能操作交易,而这个代价大概要超过270亿美元。
笔阁
2018/09/04
7650
学习以太坊Dapp开发
从离开以太坊,到“威胁”以太坊,Gavin Wood只用了三年
当Gavin Wood于多年后再次回忆与V神相识的那段经历时,他在个人主页中写道:“And Ethereum has dominated my life since” (此后以太坊主宰了我的生活)。
区块链大本营
2019/04/28
1.1K0
从离开以太坊,到“威胁”以太坊,Gavin Wood只用了三年
以太坊介绍和使用
以太坊是一个能够在区块链上实现智能合约、开源的底层系统。换言之,以太坊是可编程的区块链,它并不是给用户一系列预先设定好的操作(例如比特币交易),而是允许用户按照自己的意愿创建复杂的操作。这样一来,以太坊是就可以作为多种类型去中心化区块链应用的平台,这些应用比如包括之前很火的各种代币但并不仅限于此,我们可以做很多除了代币之外的东西,比如你可以输出一行代表自己不是外行身份的hello world,或者在上面做一个简单的计算器,总之你可以在上面实现你想要的任何功能。
fnatic
2022/07/15
37.3K0
《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
ConsenSys产品经理认为,区块链新手和经验丰富的区块链开发人员,需要共享工具、开发模式和组件。
区块链大本营
2018/09/21
1.9K0
《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
推荐阅读
相关推荐
区块链技术学习指引
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文