Warning: Trying to access array offset on value of type bool in /www/wwwroot/blockchain/wp-content/themes/Grace8.2/functions_suxingme.php on line 1208

Warning: Trying to access array offset on value of type bool in /www/wwwroot/blockchain/wp-content/themes/Grace8.2/functions_suxingme.php on line 1209

Warning: Trying to access array offset on value of type bool in /www/wwwroot/blockchain/wp-content/themes/Grace8.2/functions_suxingme.php on line 1210

Warning: Trying to access array offset on value of type bool in /www/wwwroot/blockchain/wp-content/themes/Grace8.2/functions_suxingme.php on line 1303

以太坊

10篇文章
“去中心化不只是理想,更是成功率极高的实用战略。” 记者 / 吴杨盈荟 刘泓君 特约作者 橙皮书 编辑 / 宋玮 本文由橙皮书与《晚点LatePost》联合出品 如果你对区块链的印象还停留在炒币,94年出生的Vitalik Buterin则是区块链世界的一股清流。这个俄罗斯裔的加拿大人,有着硕大的脑门和瘦骨嶙峋的身体。他语速极快,对经济、政治、技术与逻辑有异于常人的敏锐。 中本聪的比特币论文给人们打开了加密货币的大门,但早期人们一直在尝试区块链的应用方向,却找不到突破口。直到2017年,通过以太坊的智能合约平台可以发行自己的代币,区块链火了,人们找到了新的打开方式。Vitalik一手创建的以太坊则将整个行业推向巅峰,人们为了表示对他的崇拜,称这位25岁的年轻人为“V神”。 V神的成长经历也很特别,他主要通过互联网而非学校教育获取知识。他的父亲 Dmitry Buterin是一名计算机科学家,他4岁时收到人生的第一台电脑,5岁父母离婚, 6岁随父亲从俄罗斯移民加拿大,小学三年级能以常人两倍速度心算,六年级他发觉了自己的数学天分,12岁用C++写了一款小游戏。 高中时他在父亲的影响下知道比特币,之后沉迷其中。17岁时他就成为了《比特币周刊》的撰稿人,每篇文章可以赚5个比特币。19岁,Vitalik办理休学。 Vitalik一直认为自己是“outside the system”,所以他建立以太坊的初衷也是为一群边缘人群服务。但讽刺的是,2017年ICO爆红之后,以太坊却成为炒作者与投机者的天堂。这与Vitalik当初的梦想背道而驰。 以太坊受到的第一次冲击,是类似波场这种靠营销上位的币,这极大刺激了这位理想主义者,Vitalik说,如果波场超越了以太坊,“我会对人类失去一大部分希望”。 以太坊受到的第二次冲击,是Facebook提出的Libra,Libra是一个更现实、也更有想象力的产品。Vitalik说, Libra“绝对会”和去中心化的区块链公链形成竞争。 Vitalik的成长故事、独特的理念和思考,让他成为区块链世界中最值得对话的人物之一。以下是橙皮书联合《晚点LatePost》对Vitalik的访谈。 谈Libra     “去中心化不仅是一个理想,更是一个成功率极高的、非常实用的战略。” Q:Facebook推出Libra,会对以太坊和比特币造成什么冲击? Vitalik:我不认为像Libra这种大企业背书的加密货币会完全取代去中心化金融,不受任何个人或中心化组织控制的平台依然有很大价值。 硅谷肯定是想在金融方面涉足更多。要知道,做一个加密货币比做支付生意简单的多。后者你需要和各国的金融系统搞好关系。 Q:这会对其他国家的法币造成冲击吗,比如人民币? Vitalik:有可能。因为为Libra做背书的主要参与者大多都是美国企业,其他国家会对这样一个基本由美国控制的项目存有戒备。 Q:纯粹的理想主义者很少在历史上成为最后的赢家。像Facebook的Libra这样更现实的项目,是否才是区块链大规模应用的关键推动者? Vitalik:也许。区块链里实际发生的一些事,有一些很可能包括我在内的理想主义者期望的,直接产生冲突。每一场技术革命都是这样。 但绝大多数的Libra验证者都在美国,很多国家的很多人都非常不信任以美国为基础的系统,因为他们不信任美国政府。这可能是它全球化应用的重大障碍。像以太坊这样的去中心化系统没有这个障碍。 因此,去中心化不仅仅是一个理想目标,更是一种在如今日益缺乏信任的世界中具有极高成功率的战略,一个非常实用的战略。我们应该坚持它,以增加我们成功的机会。 Q:你非常认同自由和去中心化。什么给了你自由主义、去中心化的第一次启蒙? Vitalik:我从小就感觉到自由、开放、平等都很重要。当我上高中时,这些感觉开始变成更稳固的人生观。当时我发现了免费开源软件社区、奥地利经济学、比特币,它们都在同一时期出现在我的世界里。我花了很多时间在互联网上阅读书籍和文章,探索这些理念和社区。 某种程度上,我是一个一直生活在“系统之外”的人。我通过互联网自己学习很多东西的经历,让我意识到一件事情很重要:建立一个世界,让不管以任何方式脱离主流的人们都可以在这里生活。 我年轻的时候没有信用卡,比特币使我能够在互联网上买东西,更重要的是它让我能在网上找到工作,开始赚钱。对我来说这就是一个重要的现实生活示范,证明了去中心化技术的价值——创造一个更包容的世界。 Q:在现实世界中,人们似乎还是倾向于相信中心化的组织,比如政府、银行、大公司。 Vitalik:我不认为去中心化系统应该接管全世界,只要能够占据一个关键领域就够了。 Q:现在区块链占据的领域是不是太小了,只有交易所和一部分加密货币。 Vitalik:只是技术还没有发展到。当技术发展到那了,我们再看看会发生什么。 Q:你曾经说过,如果波场战胜了以太坊,你会对人类失去部分信心。你认为波场和孙宇晨会成功吗? Vitalik:我之前称孙宇晨为中国的特朗普。他很有可能以像特朗普那样的方式“成功”。如果又一场区块链泡沫发生了,像波场一样的项目可以膨胀得非常巨大。它甚至可以演变成对某些东西有用的项目,例如赌博。 但它不是真正的去中心化,这是我非常担心的结果。这种事情可能会让政府介入监管,然后打击整个行业。 现在很多项目上的人们其实都没有接受足够的金融教育,不知道避开风险——这是我不通过银行整合等方式将大量资金投入到区块链的原因之一。区块链世界需要更多时间在相对简单的环境中成长。 Q:你是否认为区块链领域实际上增长得太快? Vitalik:以太坊区块链目前100%已满(指以太坊网络拥堵)。如果增长变得越来越快,额外的能量就不会花在有用的事情上。 Q:高速增长带来的问题是什么? Vitalik:可扩展性尚未准备好是一个大问题,用户账户安全性尚未准备好是另一个大问题。想象一下,如果移动钱包中有500亿美元的加密货币,操作系统中有一个后门……这就是为什么我每周都会在Twitter上公开推动更好的账户安全解决方案,例如多机构恢复和社交恢复。 我知道中国科技界的巨大优势在于建立良好的用户体验,因此解决账户安全问题可能是中国以太坊社区的人们可以尝试并做得很好的事情。 谈进化     “我们不得不在最完美和最简洁之间取舍。” Q:以太坊向2.0升级的过程中,你做过最大的妥协是什么? Vitalik:最大的妥协可能是我们不得不放弃一些东西。比如我们没有时间创造更完美和更漂亮的算法。 Casper FFG就是一个例子。即使在今天,我们也知道Casper CBC在理论上更好,但我们决定将它放到未来版本。Casper FFG协议比六个月前缩短了约30%,因为我们一致努力简化它。(注:Casper FFG是以太坊2.0的核心共识机制,Casper CBC是另一种共识机制,比前者更复杂。) 另一个关键决定是将以太坊2.0作为一个独立公链和以太坊1.0分开。它使协议设计更加清晰,但也意味着从以太坊1.0到以太坊2.0的过渡很难管理。我们不得不在最完美和最简洁的协议之间取舍,我们选择了后者。 Q:以太坊现在最大的对手是谁,未来最大的对手是谁? Vitalik:以太坊是一个多元生态,包含很多东西。如果你把它看成是加密货币,那它就面临着其他加密货币的竞争。如果你把它看作去中心化应用,那它面临着越来越多此类应用的竞争。 作为一个承接Dapp(去中心化应用程序)等应用的基础设施,和其他中心化的基础设施其实很难比较。举个例子,区块链总共才有1000万用户,像Facebook、微信这样的平台的用户数是区块链的100倍,如果区块链不能提供中心化平台用户需要的服务,那就无法比较。 Q:很多人对以太坊的质疑是,以太坊除了ICO并没有其他成为主流的应用。以太坊2.0上线后,你认为会有杀手级应用出现吗? Vitalik:我希望会有。 Q:到目前为止,你认为以太坊中最重要的三个项目是什么? Vitalik:取决于你怎么定义“重要”和“项目”。例如,Solidity和Vyper(都是以太坊编程语言)非常重要,如果两者不存在,以太坊将无法使用。但我们不会过多考虑它们。 我认为改善隐私对以太坊的下一步非常重要,同时要考虑到安全性。但是你不能从这些项目中轻松赚出十亿美元的加密货币,除非你是Zooko(Zcash联合创始人)。 上面说的更接近基础设施。应用项目方面,交易所Uniswap是我今年的最爱之一它使加密货币之间的交换变得更加容易,而且它是一个纯粹的去中心化应用,比中心化应用更易于使用。通用合成资产(General purpose synthetic assets)很有趣,值得关注。 Q:你一直在试图淡化自己对以太坊的影响力。你是否担心过自己退出导致以太坊竞争力变弱? Vitalik:很有可能,在项目的早期有一小部分人致力于推动项目是很有必要的。但随着项目的成熟,我觉得更分布式去中心化的社区架构就会变得重要。 让以太坊变得越来越去中心化,不是需要我离开或隐退,而是需要更多优秀的人加入,并且承担起和我一样的重要角色。 Q:除了你,能决定以太坊2.0命运的人还有谁? Vitalik:以太坊2.0的决策过程是相对集中的。大多数由3-5个核心人员决定:我自己,Danny,Justin,Hsiao-wei,Dankrad(均为以太坊核心开发者)。 以太坊1.0的决策过程更开放些,因为它是一条已经在运行的公链。以太坊2.0也在向着这个阶段发展。 谈颠覆     “科技不会改变颠覆政府组织和大公司,但是会促使他们改变。” Q:人们总认为区块链将颠覆现在的一切。区块链真的是“全新事物”吗?历史上有什么东西和区块链相似? Vitalik:区块链有趣的地方在于,它结合了经济激励和社会运动的双重特性,人们主动为它做贡献是因为人们真正相信它的价值并认同去中心化的理念。 不同的区块链项目侧重点不同。比如Zcash很注重隐私保护,比特币更侧重于价值的存储,以太坊则旨在构建一个能够让人们可以很容易的搭建各种去中心化应用的基础设施。但与此同时,这些项目有其象征性的token,token的价格会上下浮动,如果你持有它你肯定希望它上涨。所以综合这些动机,决定了它和历史上的事物都不一样。 Q:很多人声称区块链世界里不再需要公司存在? Vitalik:做公司和做以太坊确实很不一样。公司有逐利的天性,而开源项目成员是无偿参与贡献。 以太坊可以说是开源项目,但也不仅仅是开源项目。比如说,对于开源项目你很容易照搬代码(“FORK”),并在此基础上做一个不一样的甚至超越原版。但是对于区块链来说,你要么就遵守我构建的网络的规则,要么就构建你自己的网络。 做企业,你不需要更多的人来参与建立生态,你需要让业务快速步入正轨,让员工们各司其职。这期间吸引用户,获取用户是最重要的;而对于开源项目,用户可以去找自己感兴趣的。 做企业你会制定路线,指导你的团队做事情。开源项目你的控制力就会弱很多,而且你会看到社区成员以各种方式自发为这个生态作贡献。你的社区会因此变得更包容且多元。 Q:如果10-20年后加密货币应用普及了,那时世界会是什么样?最大的变化会是什么?…
0.引子 关心链圈或者币圈的朋友,或许听过北大岳昕事件或者最近的疫苗事件。 北大岳昕事件: https://etherscan.io/tx/0x2d6a7b0f6adeff38423d4c62cd8b6ccb708ddad85da5d3d06756ad4d8a04a6a2 疫苗事件: https://etherscan.io/tx/0xb1ed364e4333aae1da4a901d5231244ba6a35f9421d4607f7cb90d60bf45578a 各大媒体和社交网络都被封口,但区块链的世界里没有404。 那么问题来了,我们应该如何将信息发布到区块链上呢?如果做到已经发布,就不可篡改。一经发布就永久流传呢?方法很简单。深研未来今天将手把手教大家内容上链的具体操作方法和流程。以后再出现公共事件时,希望大家第一时间将内容保存,并上链。这个世界的公平公正,需要我们每个人共同努力! 1.原理 其实原理很简单: 在以太坊上,任何一笔交易都会记录在区块里面,而每一笔交易都有一个独一无二的交易id。 我们可以在区块链上通过交易 id 查看历史上的任何一笔交易。 每个交易都可以设置一个可选的 transaction data 字段,用来描述交易说明。 transaction data 这个字段是不会占用 gas 的,既它不会产生任何费用。 我们就是通过以太坊上的这个 “漏洞“ ,自己给自己转账 0 eth,生成一笔最低成本的交易,将我们要发布的内容填入交易说明,来实现内容上链的。 2.MetaMask 首先,你得有一个以太币的钱包,Mist 或者 MetaMask 都可以。在这篇文章里,我们默认使用MetaMask,安装方法如下: 2.1 Metamask安装 这是一款运行在谷歌浏览器Chrome上的插件,所以首先你必须要安装google chrome浏览器。或者使用其他浏览器的极速模式也可以(如360浏览器)。浏览器安装好之后,接下来要进行metamask插件的安装。 这款插件的官方地址为https://metamask.io/,我们用Chrome打开这个链接,进入后按照下面两个图的顺序进行安装即可。 因为众所周知的原因,安装过程需要科学上网。科学上网详情请见:【点我科学上网】 2.2 Metamask使用 1. 安装完成后,当你第一次点开这个小狐狸图标,会出现这样的提示。 2. 这里提示用户,当登录到MetaMask之后,你的账户对你访问的所有网站都是可见的,为了你的隐私,在使用完MetaMask之后最好退出登录。同时也提示读者,默认情况下MetaMask会登录到一个测试网络,要使用真实的以太网络,需要用户手动连接到以太坊的主网络,这里后面会给大家演示。 3. 点选 Main Ethereum Network 之后,阅读完使用说明,往下拉到最下面,连续点击Accept,便可以设定密码。 4. 当成功设定密码之后,你会获得 12 个英文字(这组英文成为助记词),请一定一定要把这 12 个英文字记录在安全的地方 ,因为在区块链上,如果忘记了密码的话,你的只能通过输入这组英文字来恢复帐号。 5. 确定这 12 个英文字都记录好之后,你便可以看到在区块链上属于自己的地址了。 6. 下面是关于钱包页面各个按钮功能的一些介绍和翻译,直接从图中就可以了解了。 以上是关于metamask的安装及简单的使用和介绍,接下来,要讲一下关于账户的管理,以及如何快速的进行转账等操作。 2.3 使用Metamask操作 Metamask的优势在于快速的账户创建,和地址之间的互相转账。 如下图,我们点击右上角那个小人儿,点击Create Account,差不多可以在一秒之内完成一个钱包的创建,直接点击进去便可以对该钱包进行操作和管理,其页面都是一样的。 之后如果要将ETH转账给其他几个钱包,此时我们点击SEND。 在之后出现的页面中,我们输入转账对象的地址,和转账数量。(我们把鼠标移动到转账地址的框框里,会发现右侧出现了一个小三角,用鼠标点击它,会直接出现metamask内自己的其他地址的选项(Account1,Account2,……),直接选择即可,无需复制地址。) 之后会进入转账具体信息的界面,可以设置gas limit以及gas price。点击ACCEPT就将转账发送出去了。如果顺利的话,过一会儿就能在ETH区块链浏览器中看到你的转账交易了。 Metamask优势 如果你是手动操作,在进行大量地址转账操作的时候,会发现有了这个功能会省去大量的时间,尤其是配合metamask快速创建钱包的特性。 3.购买ETH 知道Metamask怎么操作后,接下来你需要往你的Metamask钱包里转入一定数量的以太坊,这个数量不用太多,内容上链,一条内容的成本也就几块钱而已(主要用于支付gas费),你通过用类似OTCBTC的软件去场外市场用法币购买eth,然后提币到metamask自己的地址。如果你自己的其他钱包(如imToken)里有eth,那么直接转账到metamask自己的地址即可。不会购买eth的童鞋,可以在深研未来官网的投资交易栏目中去搜寻如何购买。   4.内容上链 4.1 复制地址 复制你自己的地址,用于自己给自己转账。 4.2 准备内容 然后,准备你需要上链的内容。内容必须是十六进制的 Hex 字符。有很多种方法可以从UTF-8字符得到Hex字符。比如使用Python: content = “区块链的世界里没有404,深研未来将和您一同维护这个世界的公平、公正!” content= '\xe5\x8c\xba\xe5\x9d\x97\xe9\x93\xbe\xe7\x9a\x84\xe4\xb8\x96\xe7\x95\x8c\xe9\x87\x8c\xe6\xb2\xa1\xe6\x9c\x89404\xef\xbc\x8c\xe6\xb7\xb1\xe7\xa0\x94\xe6\x9c\xaa\xe6\x9d\xa5\xe5\xb0\x86\xe5\x92\x8c\xe6\x82\xa8\xe4\xb8\x80\xe5\x90\x8c\xe7\xbb\xb4\xe6\x8a\xa4\xe8\xbf\x99\xe4\xb8\xaa\xe4\xb8\x96\xe7\x95\x8c\xe7\x9a\x84\xe5\x85\xac\xe5\xb9\xb3\xe3\x80\x81\xe5\x85\xac\xe6\xad\xa3\xef\xbc\x81' 然后批量去除掉\x。 或者通过在线工具(本文推荐使用此方法):https://onlinehextools.com/convert-utf8-to-hex 调节转换参数(三个勾都去掉),将UTF-8字符转换成Hex字符: 得到: e58cbae59d97e993bee79a84e4b896e7958ce9878ce6b2a1e69c89404efbc8ce6b7b1e7a094e69caae69da5e5b086e5928ce682a8e4b880e5908ce7bbb4e68aa4e8bf99e4b8aae4b896e7958ce79a84e585ace5b9b3e38081e585ace6ada3efbc81 然后使用Word等文字编辑工具,将Hex字符批量变大写(深研未来亲测过,不经过此步骤,直接把小写的Hex字符写入到以太坊区块链中,显示View…
[iframe src="https://mubu.com/doc/HGQqGvw6I" width="100%" height="900"] 思维导图百度云下载:链接:https://pan.baidu.com/s/1eCN4qmIDS400s2suaHBm-Q 密码:fte8 Source:红石@氢石科技 - 知识星球 星球里的原帖:https://t.zsxq.com/2Z3JUZB
0.以太坊 —— 挣脱数字货币的枷锁 君子和而不同。 在区块链领域,以太坊项目同样是十分出名的开源项目。作为公有区块链平台,以太坊将比特币针对数字货币交易的功能进一步进行拓展,面向更为复杂和灵活的应用场景,支持了智能合约(Smart Contract)这一重要特性。 从此,区块链技术的应用场景,从单一基于 UTXO 的数字货币交易,延伸到图灵完备的通用计算领域。用户不再受限于仅能使用比特币脚本所支持的简单逻辑,而是可以自行设计任意复杂的合约逻辑。这就为构建各种多样化的上层应用开启了大门,可谓意义重大。 本文将参照比特币项目来介绍以太坊项目的核心概念和改进设计,以及如何安装客户端和使用智能合约等内容。 1.以太坊项目简介 图  以太坊项目 以太坊(Ethereum)项目的最初目标,是打造一个运行智能合约的平台(Platform for Smart Contract)。该平台支持图灵完备的应用,按照智能合约的约定逻辑自动执行,理想情况下将不存在故障停机、审查、欺诈,以及第三方干预等问题。 以太坊平台目前支持 Golang、C++、Python 等多种语言实现的客户端。由于核心实现上基于比特币网络的核心思想进行了拓展,因此在很多设计特性上都与比特币网络十分类似。 基于以太坊项目,以太坊团队目前运营了一条公开的区块链平台——以太坊网络。智能合约开发者使用官方提供的工具和以太坊专用应用开发语言 Solidity,可以很容易开发出运行在以太坊网络上的“去中心化”应用(Decentralized Application,DApp)。这些应用将运行在以太坊的虚拟机(Ethereum Virtual Machine,EVM)里。用户通过以太币(Ether)来购买燃料(Gas),维持所部署应用的运行。 以太坊项目的官网网站为 ethereum.org,代码托管在 github.com/ethereum。 以太坊项目简史 相对比特币网络自 2009 年上线的历史,以太坊项目要年轻的多。 2013 年底,比特币开发团队中有一些开发者开始探讨将比特币网络中的核心技术,主要是区块链技术,拓展到更多应用场景的可能性。以太坊的早期发明者 Vitalik Buterin 提出应该能运行任意形式(图灵完备)的应用程序,而不仅仅是比特币中受限制的简单脚本。该设计思想并未得到比特币社区的支持,后来作为以太坊白皮书发布。 2014 年 2 月,更多开发者(包括 Gavin Wood、Jeffrey Wilcke 等)加入以太坊项目,并计划在社区开始以众筹形式募集资金,以开发一个运行智能合约的信任平台。 2014 年 7 月,以太币预售,经过 42 天,总共筹集到价值超过 1800 万美金的比特币。随后在瑞士成立以太坊基金会,负责对募集到的资金进行管理和运营;并组建研发团队以开源社区形式进行平台开发。 2015 年 7 月底,以太坊第一阶段 Frontier 正式发布,标志着以太坊区块链网络的正式上线。这一阶段采用类似比特币网络的 PoW 共识机制,参与节点以矿工挖矿形式维护网络;支持上传智能合约。Frontier 版本实现了计划的基本功能,在运行中测试出了一些安全上的漏洞。这一阶段使用者以开发者居多。 2016 年 3 月,第二阶段 Homestead 开始运行(区块数 1150000),主要改善了安全性,同时开始提供图形界面的客户端,提升了易用性,更多用户加入进来。 2016 年 6 月,DAO 基于以太坊平台进行众筹,受到漏洞攻击,造成价值超过 5000 万美金的以太币被冻结。社区最后通过硬分叉(Hard Fork)进行解决。 2017 年 3 月,以太坊成立以太坊企业级联盟(Enterprise Ethereum Alliance,EEA),联盟成员主要来自摩根大通,微软,芝加哥大学和部分创业企业等。 2017 年 11 月,再次暴露多签名钱包漏洞,造成价值 2.8 亿美元的以太币被冻结。 目前,以太坊网络支持了接近比特币网络的交易量,成为广受关注的公有链项目。 后续按照计划将发布第三阶段 Metropolis 和第四阶段 Serenity,主要特性包括支持 PoS 股权证明的共识机制,以降低原先 PoW 机制造成的能耗浪费;以及图形界面的钱包,以提升易用性。 包括 DAO…
1.概述 智能合约(Smart Contract)是时下非常热门的概念,但是它在 20 多年前就已经被非著名计算机科学家 Nick Szabo 提出了,它将智能合约描述为一种以信息化方式传播、验证或者执行合约的计算机协议,能够允许在没有第三方的情况下进行可信的交易,并且这些交易是无法被追踪、同时也是不可逆的。 A smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible. 作为区块链鼻祖的 Bitcoin 虽然通过 POW 实现了 分布式一致性,同时使用 UTXO 模型 存储和管理底层数据结构,实现了去中心化的分布式账本,并且在一定程度上实现了『可编程』这一特点,但是它的脚本机制非常简单,只是一个基于堆栈式的脚本语言,它不仅没有函数的功能,同时也不是图灵完备的,无法实现复杂的逻辑。 Ethereum 在今天一般被视为区块链 2.0 项目,与 Bitcoin 不同,Ethereum 平台实现了图灵完备的编程语言,这样我们就能够在 Ethereum 上编写和部署智能合约,利用 Ethereum 支持的编程语言 Solidity 以及 API 实现一些复杂的功能。 Solidity 在 Ethereum 上提到编写智能合约时,很难离开 Solidity 这门编程语言。想要系统、详细地学习 Solidity 建议直接阅读相关的 官方文档,文章并不会对详细展开介绍如何编写智能合约,而是会重点介绍这门编程语言是如何设计的。 虽然目前很多的基础链都使用 Solidity 作为平台支持的编程语言,但是也有一些基础链,例如 EOS 提供了 C++ 的 API 用于编写智能合约,这只是不同的平台基于不同目的之后做出的选择和权衡。不过在这篇文章中,我们会以 Ethereum 上的 Solidity 为例展开介绍。 组成 Solidity 是一门面向合约并且图灵完备的编程语言,这门编程语言总共包含四种不同的重要元素,Contract、Variable、Function 和 Event。 其中合约(Contract)是 Solidity 中的核心概念,我们都知道…
整个区块链行业最近有非常多的变化,但是区块链技术,尤其是底层技术却没有太多的改变。这篇文章将要介绍的就是 Bitcoin 以及众多的加密货币,比如 Ethereum、NEO 和 Qtum 的底层结构究竟是什么样的。 目前的绝大多数区块链项目不是使用 UTXO 模型作为底层的数据结构,就是使用账户余额模型存储交易相关的信息。 在这篇文章中,我们会分别展示两种不同区块链模型的实现方式以及优缺点,我们会以 Bitcoin 和 Ethereum 为例分别介绍 UTXO 模型和账户余额模型。 区块与区块链 在具体介绍 UTXO 模型和账户余额模型之前,我们不得不首先介绍它们两者、甚至所有区块链应用中最重要的概念和数据结构,也就是区块(Block)。区块链其实就是由一个长度不断增长的链表组成的,其中包含了很多记录,也就是区块。 在上述区块链网络中,绿色的区块都被包含在主链中,所有黄色的区块都是孤块(Orphan Block),它们没有被主链接受,在每一个区块链网络中只能有一条主链,也就是最长的有效链,也是当前区块链网络中所有节点达成的共识。 区块 想要了解区块到底是什么,最简单快捷的办法就是分析它的数据结构,以 Bitcoin 中的区块 #514095 为例: {   "hash":"00000000000000000018b0a6ae560fa33c469b6528bc9e0fb0c669319a186c33",   "confirmations":1009,   "strippedsize":956228,   "size":1112639,   "weight":3981323,   "height":514095,   "version":536870912,   "versionHex":"20000000",   "merkleroot":"5f8f8e053fd4c0c3175c10ac5189c15e6ba218909319850936fe54934dcbfeac",   "tx":[    // ...   ],   "time":1521380124,   "mediantime":1521377506,   "nonce":3001236454,   "bits":"17514a49",   "difficulty":3462542391191.563,   "chainwork":"0000000000000000000000000000000000000000014d2b41a340e60b72292430",   "previousblockhash":"000000000000000000481ab128418847dc25db4dafec464baa5a33e66490990b",   "nextblockhash":"0000000000000000000c74966205813839ad1c6d55d75f95c9c5f821db9c3510" } 在这个 Block 的结构体中,previousblockhash 和 merkleroot 是两个最重要的字段;前者是一个哈希指针,它其实是前一个 Block 的哈希,通过 previousblockhash我们能递归地找到全部的 Block,也就是整条主链,后者是一个 Merkle 树的根,Merkle 树中包含整个 Block 中的全部交易,通过保存 merkleroot,我们可以保证当前 Block 中任意交易都不会被修改。 Ethereum 的区块链模型虽然与 Bitcoin 有非常大的不同,但是它的 Block 结构中也有着类似的信息: { "jsonrpc":"2.0", "result":{ "author":"0x00d8ae40d9a06d0e7a2877b62e32eb959afbe16d", "difficulty":"0x785042b0", "extraData":"0x414952412f7630", "gasLimit":"0x47b784", "gasUsed":"0x44218a", "hash":"0x4de91e4af8d135e061d50ddd6d0d6f4119cd0f7062ebe8ff2d79c5af0e8344b9", "logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "miner":"0x00d8ae40d9a06d0e7a2877b62e32eb959afbe16d", "mixHash":"0xb8155224974967443d8b83e484402fb6e1e18ff69a8fc5acdda32f2bcc6dd443", "nonce":"0xad14fb6803147c7c", "number":"0x2000f1", "parentHash":"0x31919e2bf29306778f50bbc376bd490a7d056ddfd5b1f615752e79f32c7f1a38", "receiptsRoot":"0xa2a7af5e3b9e1bbb6252ba82a09302321b8f0eea7ec8e3bb977401e4f473e672", "sealFields":[ "0xa0b8155224974967443d8b83e484402fb6e1e18ff69a8fc5acdda32f2bcc6dd443", "0x88ad14fb6803147c7c" ], "sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size":"0x276", "stateRoot":"0x87e7e54cf229003014f453d64f0344e2ba4fc7ee3b95c7dd2642cca389fa1efe",…
\n \n \n \n以太坊(Ethereum),简称ETH。2013年底,Vitalik发布以太坊白皮书,2014年7月,开始以太币的预售。那时候圈内人称这种代币发行叫“币众筹”。通过为期42天的预售,以太坊团队通过预售60102216个以太币,募集了3万多个比特币;另外还对预售之前参与开发的早期贡献者、长期从事项目研究的开发者分别按照当时以太币发售总量的9.9%进行分配。所以以太坊正式发行时有 7200多万个以太币。 \n \n以太坊预售结束后,采用工作量证明机制PoW进行挖矿,每年按照当时发行总量的26%奖励矿工。2014年10月,以太坊将区块的出块时间从60秒缩减到了12秒,目前基本稳定在15秒,每个区块奖励5个以太币。 \n \n虽然都是采用PoW挖矿机制,但是以太坊的出块机制和比特币还是有所区别。由于以太坊的出块时间短,导致以太坊很容易形成孤块,孤块是指不在最长链上的区块。比特币的孤块没有任何区块奖励,但是在以太坊中,孤块可以被引用,被引用的孤块被称为“叔块”(uncle block),它们打包的数据也会记录在区块链中。和比特币不一样,以太坊的叔块有奖励,每个叔块最多可以获得4.375个以太币的奖励。 \n \n以太坊是一个可编程的、图灵完备的区块链开发平台,相当于一个去中心化的全球计算机。在一个编程系统之上,通常会有一些编译和执行的虚拟机来去做支撑。JAVA有JVM,在以太坊里,也有以太坊的虚拟机EVM,可以执行任意复杂的算法代码。开发者可以使用现有的JavaScript 或Python等编程语言,在以太坊上创造出自己想要的应用。通过以太坊的虚拟机,你可以很简便地发行数字资产,编写智能合约,建立和运行去中心化的应用,成立去中心化自治组织等。 \n \n以太币(ETH)又被称为以太坊内部的燃料。和币类数字资产不同,以太坊除了用于转账,还用于支付智能合约的费用。 \n \n为了避免以太坊区块链上充斥垃圾合约和垃圾应用,在以太坊上建立和运行智能合约,你必须用ETH支付智能合约费用。举个例子,在以太坊区块链上转账你新创造的数字资产,需要用ETH支付手续费,而不是你新创造的数字资产。 \n
\n \n \n \n以太坊是一个可编程、可视化、更易用的区块链,它允许任何人编写智能合约和发行代币。 \n \n就像比特币一样,以太坊是去中心化的,由全网共同记账,账本公开透明且不可篡改。 \n \n与比特币不同的是,以太坊是可编程的区块链,它提供了一套图灵完备的脚本语言,因此,开发人员可以直接用C语言等高级语言编程,转换成汇编语言,大大降低了区块链应用的开发难度。类似于安卓系统,提供了非常丰富的API 和接口,让用户可以开发出各种APP。 \n \n从诞生到现在,有200多个以太坊应用诞生,俄罗斯银行也与以太坊基金会达成合作,截止目前(2017年9月)以太坊市值仅次于比特币,排行第2位。 \n
\n \n \n \n以太坊(ETH)和以太经典(ETC)是硬分叉的典型案例。 \n \nThe DAO计划基于以太坊智能合约建立一个众筹平台,于2016年5月正式发布,截止当年6月,募集资金超过1.6亿美元。之后,The DAO被黑客利用智能合约的漏洞,转移了市值五千万美元的以太币。为了挽回投资者资产,以太坊社区投票表决决定将更改以太坊代码,希望索回资金。为此,以太坊在第1920000区块进行硬分叉,回滚所有以太币(包括被黑客占有的)。 \n \n但是,有一部分人认为以太坊这种作法违背了区块链的去中心化和不可篡改精神,坚持在原链上挖矿,从而形成两条链,一条为不承认回滚交易的链即以太经典(ETC),一条为承认回滚交易的链即以太坊(ETH),各自代表不同的社区共识以及价值观。分叉时持有以太币的人在分叉后会同时持有ETH和ETC。

关注我们的公众号

微信公众号