当前位置:首页 - 第33页

09月29日

6.5 闪电网络

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1737次

比特币的交易网络最为人诟病的一点便是交易性能:全网每秒7笔左右的交易速度,远低于传统的金融交易系统;同时,等待6个块的可信确认将导致约1个小时的最终确认时间。为了提升性能,社区提出了闪电网络等创新的设计。闪电网络的主要思路十分简单——将大量交易放到比特币区块链之外进行,只把关键环节放到链上进行确认。该设计最早于2015年2月在论文《TheBitcoinLightningNetwork:ScalableOff-ChainInstantPayments》中提出。比特币的区块链机制自身已经提供了很好的可信保障,但是相对较慢;另一方面,对于大量的小额交易来说,是否真需要这么高的可信性?闪电网络主要通过引入智能合约的思想来完善链下的交易渠道。核心的概念主要有两个:RSMC(Reco

09月29日

6.6 侧链

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1838次
6.6 侧链

侧链(sidechain)协议允许资产在比特币区块链(blockchain)和其他区块链之间互转。这一项目也来自比特币社区,最早是在2013年12月提出的,2014年4月立项,由Blockstream公司主导研发。侧链协议于2014年10月在白皮书《EnablingBlockchainInnovationswithPeggedSidechains》中公开。侧链诞生前,众多“山寨币”的出现正在碎片化整个数字货币市场,再加上以太坊等项目的竞争,一些比特币开发者希望借助侧链的形式扩展比特币的底层协议。简单来讲,以比特币区块链作为主链(parentchain),其他区块链作为侧链,二者通过双向挂钩(two-waypeg),实现比特币从主链转移到侧链进行流通。侧

09月29日

6.7 热点问题

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1451次
6.7 热点问题

6.7.1 设计中的权衡比特币的设计目标在于支持一套安全、开放、分布式的数字货币系统。围绕这一目标,比特币协议的设计中很多地方都体现了权衡(trade-off)的思想。·区块容量:更大的区块容量可以带来更高的交易吞吐率,但会增加挖矿成本,带来中心化的风险,同时增大存储的代价。兼顾多方面的考虑,当前的区块容量上限设定为1MB。·出块间隔时间:更短的出块间隔可以缩短交易确认的时间,但也可能导致分叉增多,降低网络可用性。·脚本支持程度:更强大的脚本指令集可以带来更多的灵活性,但也会引入更多的安全风险。6.7.2 分叉比特币协议不会一成不变。当需要修复漏洞、扩展功能或调整结构时,比特币需要在全网的配合下进行升级。升级通常涉及更改交易的数据结构或区块的数据结构。由于分布在全球的节点不可能同时完成升级来

09月29日

6.8 相关工具

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1679次

比特币相关工具包括客户端、钱包和矿机等。1.客户端比特币客户端用于和比特币网络进行交互,同时可以参与网络的维护。客户端分为三种:完整客户端、轻量级客户端和在线客户端。说明如下:·完整客户端:存储所有的交易历史记录,功能完备;·轻量级客户端:不保存交易副本,交易需要向别人查询;·在线客户端:通过网页模式来浏览第三方服务器提供的服务。比特币客户端可以从http://bitcoin.org/en/download下载。基于比特币客户端,可以很容易地实现用户钱包功能。2.钱包比特币钱包可以存储和保护用户的私钥,并提供查询比特币余额、收发比特币等功能。根据私钥存储方式不同,钱包主要分为以下几种:·离线钱包:离线存储私钥,也称为“冷钱包”,安全性相对最强,但无法直接发送交易,便利性差;·本地钱包:

09月29日

第7章 以太坊——挣脱数字货币的枷锁

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1518次

君子和而不同。在区块链领域,以太坊项目也是十分出名的开源项目。作为公有区块链平台,以太坊将比特币针对数字货币交易的功能进一步进行了拓展,面向更为复杂和灵活的应用场景,支持了智能合约(smartcontract)这一重要特性。从此,区块链技术的应用场景,从单一基于UTXO的数字货币交易,延伸到图灵完备的通用计算领域。用户不再受限于仅能使用比特币脚本所支持的简单逻辑,而是可以自行设计任意复杂的合约逻辑。这就为构建各种多样化的上层应用开启了大门,可谓意义重大。本章将参照比特币项目来介绍以太坊项目的核心概念和改进设计,以及如何安装客户端和使用智能合约等内容。

09月29日

7.1 以太坊项目简介

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1568次
7.1 以太坊项目简介

以太坊(Ethereum)项目的最初目标是打造一个智能合约的平台(PlatformforSmartContract),该平台支持图灵完备的应用,按照智能合约的约定逻辑自动执行,理想情况下将不存在故障停机、审查、欺诈,以及第三方干预等问题。以太坊平台目前支持Golang、C++、Python等多种语言实现的客户端。由于其核心实现是基于比特币网络的核心思想进行了拓展,因此在很多设计特性上都与比特币网络十分类似。基于以太坊项目,以太坊团队目前运营了一个公开的区块链平台——以太坊网络。智能合约开发者使用官方提供的工具和以太坊专用应用开发语言Solidity,可以很容易地开发出运行在以太坊网络上的“去中心化”应用(DecentralizedApplication,DApp)。这些

09月29日

7.2 核心概念

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1433次

基于比特币网络的核心思想,以太坊项目提出了许多创新的技术概念,包括智能合约、基于账户的交易、以太币和燃料等。1.智能合约智能合约(SmartContract)是以太坊中最为重要的一个概念,即以计算机程序的方式来缔结和运行各种合约。最早在上世纪90年代,NickSzabo等人就提出过类似的概念,但一直因为缺乏可靠执行智能合约的环境,而被当作一种理论设计。区块链技术的出现,恰好补充了这一缺陷。以太坊支持通过图灵完备的高级语言(包括Solidity、Serpent、Viper)等来开发智能合约。智能合约作为运行在以太坊虚拟机(EthereumVirualMachine,EVM)中的应用,可以接受来自外部的交易请求和事件,通过触发运行提前编写好的代码逻辑,进一步生成新的交易和

09月29日

7.3 主要设计

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1569次
7.3 主要设计

以太坊项目的基本设计与比特币网络类似。为了支持更复杂的智能合约,以太坊在不少地方进行了改进,包括交易模型、共识、对攻击的防护和可扩展性等。7.3.1 智能合约相关设计1.运行环境以太坊采用以太坊虚拟机作为智能合约的运行环境。以太坊虚拟机是一个隔离的轻量级虚拟机环境,运行在其中的智能合约代码无法访问本地网络、文件系统或其他进程。对同一个智能合约来说,往往需要在多个以太坊虚拟机中同时运行多份,以确保整个区块链数据的一致性和高度的容错性。但另一方面,这也限制了整个网络的容量。2.开发语言以太坊为编写智能合约设计了图灵完备的高级编程语言,降低了智能合约开发的难度。目前,Solidity是最常用的以太坊合约编写语言之一。智能合约编写完毕后,用编译器编译为以太坊虚拟机专用的二进制格式(EVMbytec

09月29日

7.4 相关工具

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1536次
7.4 相关工具

7.4.1 客户端和开发库以太坊客户端可用于接入以太坊网络,进行账户管理、交易、挖矿、智能合约等各方面操作。以太坊社区现在提供了多种语言实现的客户端和开发库,支持标准的JSON-RPC协议。用户可根据自己熟悉的开发语言进行选择:·go-ethereum:Go语言实现;·Parity:Rust语言实现;·cpp-ethereum:C++语言实现;·ethereumjs-lib:javascript语言实现;·Ethereum(J):Java语言实现;·ethereumH:Haskell语言实现;·pyethapp:Python语言实现;·ruby-ethereum:Ruby语言实现。上述实现中,go-ethereum的独立客户端Geth是最常用的以太坊客户端之一。用户可通过安装Geth来接入以

09月29日

7.5 安装客户端

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1454次

本节将介绍如何安装Geth,即Go语言实现的以太坊客户端。这里以Ubuntu16.04操作系统为例,介绍从PPA仓库和从源码编译这两种方式来进行安装。7.5.1 从PPA直接安装首先安装必要的工具包:$apt-getinstallsoftware-properties-common之后用以下命令添加以太坊的源:$add-apt-repository-yppa:ethereum/ethereum$apt-getupdate最后安装go-ethereum:$apt-getinstallethereum安装成功后,则可以开始使用命令行客户端Geth。可用geth--help查看各命令和选项,例如,用以下命令可查看Geth版本为1.6.1-stable:$gethvers

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!