以太坊虚拟机EVM在设计上有什么特性?

2022-09-16T18:41:33+08:00

EVM在设计上具有如下的特性。 (1)基于栈+区分存储类型:EVM是一种基于栈的虚拟机,其对栈的大小不做限制,但限制栈调用深度为1024;使用256比特的机器码,用于智能合约字节码的执行;同时,以太坊区分为临时存储和永久存储,其临时存储(Memory)存在于EVM的每个实例中,而其永久存储(Storage)则存在于区块链状态层。 (2)图灵完备+Gas限制计算量:EVM是图灵完备的。然而,图灵完备则会导致一些问题,比如某些恶意节点可能上传无限执行的智能合约代码从而达到消耗以太坊计算资源的目的。因此,EVM中引入了Gas的概念。以太坊节点在创建执行智能合约代码的消息时,需要支付一定量的Gas用于“购买”执行智能合约所需的计算量。当EVM执行交易时,Gas将按照一定的规则逐渐被消耗,执行完后剩余的Gas会返还至支付节点。若在执行合约代码的过程中Gas被消耗殆尽,则EVM会触发异常,将当前已执行的相关合约代码已进行的状态修改回滚,而不会将Gas回退给支付节点。Gas可以通过以太坊购买,类似于云计算中对提交任务所占用的计算资源进行付费的机制。 (3)环境隔离:EVM在节点上是一个隔离的环境,它保证了在其中执行的所有智能合约代码均不能影响以太坊节点中与以太坊EVM无关的状态,从而保证了运行EVM的以太坊节点的安全性。

以太坊虚拟机EVM在设计上有什么特性?2022-09-16T18:41:33+08:00

以太坊智能合约及以太坊虚拟机EVM

2022-09-16T18:39:01+08:00

相比于比特币所提供的极为受限的交易脚本语言,以太坊所提供的智能合约极大增强了区块链的功能,同时也为区块链赋予了可编程性。通过以太坊平台提供的智能合约编程语言和相应的对智能合约进行解释执行的以太坊虚拟机,区块链开发者可以直接在以太坊平台上进行各种可能的操作的开发,赋予以太坊区块链各种方向的应用。 我们可以将以太坊视为一个可以实现去中心化应用的平台,其核心是一套用于运行以太坊的节点所要执行的智能合约进行编程的语言,及相应地在保证节点运行其他服务的环境不受影响的条件下,对所编写的智能合约语言进行解释执行的虚拟机。用户通过调用以太坊提供的接口,对自己所希望部署的去中心化应用进行编写。 在调用时,通过共识协议在所有以太坊节点间,同将要执行的智能合约达成一致,进而在每个节点的EVM上执行。具体地可以将智能合约理解为代码和数据的集合。 以太坊所提供的智能合约编程语言是图灵完备的,亦即以太坊的智能合约可以做到所有能够用图灵机做到的事情,类似于常见的高级编程语言,如C++、GoLang 等 。 以 太 坊 提 供 了 几 套 编 写 智 能 合 约 的 高 级 语 言 , 如Solidity、Viper、Serpent及LLL等,其中目前较为流行的是Solidity及Viper。以太坊默认的智能合约编程语言是Solidity,该语言编写的智能合约对应的文件扩展名为.sol,目前有许多可用的在线Solidity集成开发环境(IDE),如Browser-Solidity Web IDE等,用户可以很方便地在其上编写并编译自己所需的智能合约代码。 用户通过这些高级语言编写出较为复杂的智能合约代码后,对应的代码进而被编译为可以在EVM上执行的EVM字节码,这些字节码再被上传至以太坊区块链从而使所有节点均可获取代码段,从而使每个节点都能够利用本地的EVM对字节码进行执行。

以太坊智能合约及以太坊虚拟机EVM2022-09-16T18:39:01+08:00

比特币保证安全性及解决51%攻击

2022-09-07T16:55:35+08:00

比特币的安全性保证源于其独特的PoW共识机制,以及其每个节点都可以独立正确验证的交易脚本机制。 要分析比特币系统的安全性,我们应首先考虑在比特币系统中可能存在的攻击形式。一个攻击者若想通过攻击比特币系统获益,显然是需要掌控“记账权”,即产生区块的权力。由于比特币系统中,由谁来产生下一个区块是一个完全随机的事件,因此,由一个攻击者节点产生部分区块是完全有可能的,但由于比特币中的正常节点都会对产生区块中的交易进行验证(通过运行交易中的锁定脚本和解锁脚本),因此,所有诚实的节点都不会接受包含了无效交易的区块,这意味着攻击者无法凭空创造价值,也无法对不属于自己的比特币进行掠夺,攻击者所能够进行的仅仅是对自己发出的交易信息进行修改(因为它无法伪造其他参与者的签名等信息)。 一个典型的攻击场景即为“双花攻击”,在这种攻击中,攻击者先将自己所拥有的资产(UTXO)在一笔交易(记为TX1)中支付给另一个参与者以换取某些其他资产,该交易被写入当前比特币区块链(记为链A)的第N+1个区块;此时攻击者同时秘密地准备另一条基于原比特币区块链第N个区块的后续链(记为链B),该链中并不包含TX1;攻击者等待实际获取到TX1交易中所涉及的其他资产之后,再使用自己准备的这条秘密链B同原记录有TX1交易的链A进行替换,便可“抹消”自己所参与的TX1交易,收回自己在TX1交易中所使用的UTXO。 当然,由于比特币的“最长链胜出”原则,攻击者秘密生成的链B需要在替换时比原有链A更长,才能够成功实行双花攻击。而比特币系统中采用的PoW机制保证了,某节点产生下一个区块的概率与该节点的算力占所有参与PoW的节点的算力的比例成正比,因此,双花攻击的成功概率与攻击节点的算力密切相关。

比特币保证安全性及解决51%攻击2022-09-07T16:55:35+08:00

为什么数字钱包基本都有波场?

2022-08-05T15:40:30+08:00

我们发现不管是大的数字钱包imtoken或小狐狸metamask还是私人钱包都有波场,这是因为波场的转账手续费极低且速度快。 大家知道区块链转账其实就是矿工打包区块发往其他节点,波场3秒出一个块儿,20个块儿确认,也就是说,3秒能看到交易记录,1分钟就能确认是否到账,手续费0.1U至1U不等。而比特币omiu20,一个区块需要10分钟,需要6个区块确认,差不多就是需要一个小时,这对于习惯快捷支付的我们来讲是不能忍受的;还有一个使用较多的是以太坊ERC20,安全性和速度适中,一个区块不到1分钟,12个区块确认,也就是10分钟左右,但是价格需要6U左右。因此又便宜又快的波场更受国人的喜爱。 另外安全性也是转账时考虑的主要因素,据泰达公司官网7月13号统计,U在10个公链上都有发行,其中以太链和波场链上发行量最大均超过了300亿美元,这说明人们习惯使用以太和波场转账, 参与的人越多,跑路的风险性相对就越小。 综上所述波场安全手续费低速度又快,数字钱包又是作为代币存储交易转账的平台,因此大部分钱包都有波场。

为什么数字钱包基本都有波场?2022-08-05T15:40:30+08:00

区块链公司和互联网公司有什么区别

2022-08-02T18:15:45+08:00

在互联网公司和链圈矿圈混迹几年,发现有几个有意思的现象,下面简单介绍一下: 相同点呢就是人员配置基本相同,前端、后端、测试、UI产品是人员标配,一样的需要过需求排周期。 不同点有以下几点 一,心态不同,互联网公司周期长,心情相对平和,而区块链公司心情就像过山车,随币圈牛市而起,熊市而落,币圈大涨的时候就觉得形势一片大好,扩充团队开疆扩土,过段时间币圈大跌,行业又是哀鸿遍野 二,融资不同,互联网公司融的是米米,区块链公司融的是各种代币。 三,融资收款不同,互联网公司融资打到公司公户,区块链公司融资收款打到钱包地址 四,财富自由标准不同,互联网公司以上市为荣,敲钟的那一刻代表了财富自由,区块链公司以上“所”为荣,能上币安,coinbase说明也是实现了财富自由 五,项目周期不同,互联网公司项目周期3-8年,而区块链公司一般3-8个月 六,广告代言不同,互联网公司喜欢请明星代言,区块链公司请大佬站台 甚至啊连喝的饮料不同,互联网公司喜欢喝咖啡、水果茶之类的,在咖啡厅里谈融资。而区块链行业大佬们到公司第一时间先泡茶。 以上就是总结的几个不同点,还有什么不同点大佬们可以评论区留言,我是己任区块链。

区块链公司和互联网公司有什么区别2022-08-02T18:15:45+08:00

区块链防伪溯源指的是防篡改和可追溯

2022-07-13T00:37:33+08:00

“防篡改”和“可追溯”可以被拆开来理解,现在很多区块链应用都利用了防篡改可追溯这一特性,使得区块链技术在物品溯源等方 面得到了大量应用,比如红酒、大闸蟹、医药用品、农产品等等。 “防篡改”是指交易一旦在全网范围内经过验证并添加至区块链,就很难被修改或者抹除。一方面,当前联盟链所使用的如PBFT类共识算法,从设计上保证了交易一旦写入即无法被篡改; 另一方面,以PoW作为共识算法的区块链系统的篡改难度及花费都是极大的。若要对此类系统进行篡改,攻击者需要控制全系统超过51%的算力,且若攻击行为一旦发生,区块链网络虽然最终会接受攻击者计算的结果,但是攻击过程仍然会被全网见证,当人们发现这套区块链系统已经被控 制以后便不再会相信和使用这套系统,这套系统也就失去了价值,攻击者为购买算力而投入的大量资金便无法收回,所以一个理智的个体不会进行这种类型的攻击。 在此需要说明的是,“防篡改”并不等于不允许编辑区块链系统 上记录的内容,只是整个编辑的过程被以类似“日志”的形式完整记 录了下来,且这个“日志”是不能被修改的。“可追溯”是指区块链上发生的任意一笔交易都是有完整记录的,我们可以针对某一状态在区块链上追查与其相关的全部历史交易。“防篡改”特性保证了写入到区块链上的交易很难被篡改,这为“可追溯”特性提供了保证。

区块链防伪溯源指的是防篡改和可追溯2022-07-13T00:37:33+08:00

智能合约的安全性需要关注

2022-07-07T13:39:07+08:00

因为合约是严肃的事情,传统的合约往往需要专业的律师团队来撰写。古语有云:“术业有专攻。”当前智能合约的开发工作主要由软件从业者来完成,其所编写的智能合约在完备性上可能有所欠缺,因此相比传统合约,更容易产生逻辑上的漏洞。另外,由于现有的部分支持智能合约的区块链平台提供了利用如Go语言、Java语言等高级语言编写智能合约的功能,而这类高级语言不乏一些具有“不确定性”的指令,可能会造成执行智能合约节点的某些内部状态发生分歧,从而影响整体系统的一致性。 智能合约原理 因此,智能合约的编写者需要极为谨慎,避免编写出有逻辑漏洞或是执行动作本身有不确定性的智能合约。不过,一些区块链平台引入了不少改进机制,对执行动作上的不确定性进行了消除,如超级账本项目的Fabric子项目,即引入了先执行、背书、验证,再排序写入账本的机制;以太坊项目也通过限制用户只能通过其提供的确定性的语言(Ethereum Solidity)进行智能合约的编写,确保了其上运行的智能合约在执行动作上的确定性。 2016年著名的The DAO事件,就是因为智能合约漏洞导致大约几千万美元的直接损失。The DAO是当时以太坊平台最大的众筹项目,上线不到一个月就筹集了超过1 000万个以太币,当时价值一亿多美元。但是该智能合约的转账函数存在漏洞,攻击者利用该漏洞,盗取了360万个以太币。由于此事件影响过大,以太坊最后选择进行回滚硬分叉挽回损失。The DAO智能合约的具体内容感兴趣的读者可以自行查阅(1)。但是我们并不能因此而否认智能合约的价值,任何事物在发展初期必然因为不完善而存在风险,因噎废食并不可取。 随着智能合约的普及,智能合约的编写必然会越来越严谨、规范,同时,其开发门槛也会越来越低,对应领域的专家也可参与到智能合约的开发工作中,智能合约必定能在更多的领域发挥越来越大的作用。随着技术的发展和大家对智能合约安全的重视,从技术上可以对智能合约进行静态扫描,发现潜在问题反馈给智能合约开发人员,也可以通过智能合约形式化验证的方法全面地发现智能合约中存在的

智能合约的安全性需要关注2022-07-07T13:39:07+08:00

智能合约的原理

2022-07-07T11:27:23+08:00

一个基于区块链的智能合约需要包括事务处理机制、数据存储机制以及完备的状态机,用于接收和处理各种条件。并且事务的触发、处理及数据保存都必须在链上进行。当满足触发条件后,智能合约即会根据预设逻辑,读取相应数据并进行计算,最后将计算结果永久保存在链式结构中。 智能合约在区块链中的运行逻辑 对应前面打赌的例子,智能合约即为通过代码实现的打赌内容。该智能合约预置的触发条件即为规定球赛场次、时间等相关信息,同时需要规定获取结果途径(例如直接从官网获取结果)。预置响应条件即为触发事件后,智能合约具体执行内容。条件 1:皇马赢,响应1:钱直接打入我的账户; 条件2:拜仁赢,响应2:钱直接打入小明账户。该智能合约一经部署,其内容就会永久地保存在链上,并严格执行。球赛结束后,区块链网络中的节点均会验证响应条件,并将执行结果永久记录在链上

智能合约的原理2022-07-07T11:27:23+08:00

生活中的智能合约是什么?

2022-07-07T11:27:50+08:00

其实,智能合约并不是区块链独有的概念。早在1995年,跨领域学者Nick Szabo就提出了智能合约的概念,他对智能合约的定义为:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”简单来说,智能合约是一种在满足一定条件时,就自动执行的计算机程序。例如自动售货机,就可以视为一个智能合约系统。客户需要选择商品,并完成支付,这两个条件都满足后售货机就会自动吐出货物。 合约在生活中处处可见:租赁合同、借条等。传统合约依靠法律进行背书,当产生违约及纠纷时,往往需要借助法院等政府机构的力量进行裁决。智能合约,不仅仅是将传统的合约电子化,它的真正意义在革命性地将传统合约的背书执行由法律替换成了代码。俗话说,“规则是死的,人是活的”,程序作为一种运行在计算机上的规则,同样是“死的”。但是“死的”也不总是贬义词,因为它意味着会严格执行。 比如,球赛期间的打赌即可以通过智能合约实现。首先在球赛前发布智能合约,规定:今天凌晨2:45,欧冠皇马VS拜仁慕尼黑,如果皇马赢,则小明给我1 000元;如果拜仁赢,我给小明1 000元。我和小明都将1 000元存入智能合约账户,比赛结果发布,皇马4:2胜拜仁,触发智能合约响应条件,钱直接打入我的账户,完成履约。整个过程非常高效、简单,不需要第三方的中间人进行裁决,也完全不会有赖账等问题。

生活中的智能合约是什么?2022-07-07T11:27:50+08:00

己任区块链观察|Vitalik带你深入理解Danksharding

2022-06-03T16:19:44+08:00

前不久,以太坊创始人Vitalik在ETH上海峰会上表示,以太坊合并或将在8月开始,合并后的第一项重大事情是EIP-4844即proto-danksharding,而proto-danksharding只是Danksharding的第一步。 在近期的Bankless播客中,合并协调人Tim Beiko和Vitalik Buterin、以太坊研究员Dankrad Feist和Protolambda就proto-danksharding和Danksharding主题进行了深入对话。 以下为对话的主要内容。 什么是Danksharding Danksharding和proto-danksharding是对以太坊分片设计的迭代 分片是以太坊网络处理更多数据的一种方式。“所有这些分片方法都有相同的最终目标,即为第二层解决方案创建一个便宜的地方,以便在以太坊上发布数据。”Tim Beiko EIP-4844是proto-danksharding Proto-danksharding是迈向分片的第一步 Danksharding是对之前路线图的简化 从完全执行分片转变为仅数据分片 自2016年发布以来,分片路线图一直在不断简化 第一步是决定不打扰二次方分片以外的任何事情 第二步是让每个分片块直接包含在信标链中 分片区块不再是包含将在以太坊层执行的交易,而是转变为分片区块只包含大块数据 2层rollup协议将负责使用该数据空间为其用户创建安全且可扩展的体验 接下来是Danksharding,只有一个提议者选择所有分片区块和出现在特定信标块中的分片 目前在时间线的一半进行完全分片 为什么可以在不牺牲链的去中心化的情况下实现Danksharding? Proof-of-Stake具有提议者-建造者分离 传统上,区块提议者构建区块 提议简单且便宜,而构建是一个复杂的过程 构建更适合资本化的实体——拥有可以处理大量数据的大型机器的人 任何人都可以验证区块是否正确 EIP-4844如何帮助2层? Danksharding引入了数据可用性抽样。它试图通过网络更好地分配作业 他们可以针对L2所需的安全属性进行优化 它如何帮助2层:发布数据并确保保护L2的诚实少数能够首先获得数据;确保参与者即使在停机、审查、不可预见等情况下也能够获取数据。 什么是数据可用性以及它与存储在以太坊上的数据有何不同 数据可用性:数据是否经过发布过程,在公共网络上广播,任何想要下载数据的人都有时间这样做? 当将以太坊与IPFS进行比较时,以太坊能够就数据可用性提供共识 2层协议取决于那里可用的数据 ZK Rollup示例:定序器(Sequencer)接受交易 —> sequencer发布包含state-delta的区块;定序器管理内部状态。 ZK Rollup和Validium的区别: 在ZK Rollup中,state-delta是链上的 在Validium中,只有证明是链上的。其他一切都是链下的 唯一的区别是当定序器消失时会发生什么。在Validium中,这是一个问题,因为如果定序器消失,资金就会永远卡在那里 信标链只会包含数据的哈希值 分片不需要永远存储数据。关键是要给想要下载数据的人足够的时间去下载 数据可用性抽样如何工作? 我们需要一种可扩展的方式来确保当人们想要下载一些数据时可以下载它 数据可用性抽样涉及选择数据的随机部分并尝试访问它们 如果你可以访问大部分数据,那就是你认为数据可用 如果有50%的数据可用,Reed-Solomon编码使你能够重建整个数据集 这支持扩展,因为它不需要100%的数据可用 攻击者必须将数据可用性降低到50%以上才能攻击网络 每下载10%的数据就可以将攻击减少10倍。这是一种确保数据可用性的可扩展方式 EIP-4844世界 继续扩展共识层 部分数据将被保留。之后,它们将被修剪 数据将在足够长的时间内可用,以保护网络 proto-danksharding中可用的数据量少于完整danksharding中可用的数据量 存储数据的成本降低了多少? 目前,以太坊区块大小在50-100 kbs之间 可以从每块50 kbs增长到mb rollup将受益于降低的成本 在full danksharding中,会增加一个数量级 为执行计算付出很多的人与为存储数据付出很多的人之间的区别 添加了额外的费用参数以创建不同的市场 Vitalik写了一篇关于Multidimensional EIP-1559的文章 KZG承诺 当数据被采样时,无法判断编码是否正确 KZG承诺是一种散列多项式函数并保证编码正确的方法 什么是可信设置? 必须设置有一定关系的椭圆曲线点。这是KZG承诺方案的基本输入之一 不允许任何人知道他们之间的实际关系 在受信任的设置中,即使只有一个人正确完成并且其他所有人都串通了,那么该设置是完全安全的 EIP-4844何时部署? 今年早些时候,他们为此写了一份提案 在ETHDenver黑客松中,他们实现了它并一直在测试它 两个不同的分支:进一步开发客户端软件并创建测试网;可信设置的发展 完成后,他们会将其包含为EIP Proto-danksharding是全面实施的垫脚石 试图在上海硬分叉中完成它 如果人们想从研究/工程的角度做出贡献,分片中有哪些未解决的问题? 弄清楚数据可用性抽样的网络 如果有更多具有网络专业知识的人会很好 经济挑战:如何制定一个好的提议者-建造者分离协议?如何增加审查阻力来绕过审查建设者? 从长远来看,更好的权益证明设计会是什么样子? 切换到2层以及增加2层去中心化的方法

己任区块链观察|Vitalik带你深入理解Danksharding2022-06-03T16:19:44+08:00

标题

返回顶部