以太坊概述和以太坊账户(一)
RenLJ1895 于 2022-01-07 12:14:57 发布 518 收藏 3
以太坊概述
以太坊的另一个改进就是挖矿使用的mining puzzle,比特币的mining puzzle是计算密集型的,比拼的是计算哈希值的算力,这样造成的结果是挖矿设备的专业化,这样跟以前宣扬的去中心化是不符合的,所以以太坊设计的mining puzzle对内存的要求就是很高的,叫mining hard mining puzzle,这样设计的目的是限制了ASIC芯片的使用,管它叫做ASIC resistance,将来以太坊还会有些革命性的改变,用权益证明(proof of stake)来替代工作量证明(proof of work)。
- 权益证明: 不挖矿,而是按照类似于股票投票的方法决定下一个区块怎么产生。
以太坊的账户
基于交易的账本
但是这样就带来一个问题,就他使用上比较别扭,跟我们的日常体验不太一样,像转帐的时候,A要转给B 10BTC,A要说明这10个币的来源,其中七个币是前面这个交易中收到的,另外三个币是之前另外一个交易收到的,证明币的来源的合法性,和我们平时去银行的体验是不太一样的,银行是你存钱的时候要说明钱的来源,下次花钱的时候是不用说明每一笔钱是从哪儿来的。另外一个比较别扭的地方,你在前面交易中收到一笔输出,收到一些币,将来要花的时候,必须要一次性都花出去,不能只花一部分,如果只花一部分,会出现什么情况
基于账户的模型
比如 A转给B 10ETH,这个交易的合法性只要检查一下A账户上有没有足够的钱就行了,比如A账户上有一百个以太币,要转10个给B,这就没问题,不用说明这100个以太币中是具体把哪十个转给了B,不用说明币的来源,是来自之前哪个交易,将来B要转给C三个以太币也是可以的,不用把剩下的转给他自己,因为有显示的这种余额的概念,所以剩下的币就直接发到账户上就行了,哈希指针也不用,不用说明币的来源。
这样做的好处是对double spending attack有天然的防御作用,因为不用管币的来源,每花掉一次钱,就从你的账户上扣掉,花两次就扣两次。
replay 以太坊是银行帐户 以太坊是银行帐户 attack (重放攻击) A->B(10ETH)发布到网络上,过一段时间之后,这个交易被写到区块链里了,A就以为转账交易完成了,假设B是有恶意的,把这个交易在网上重新广播一遍,其他节点一看是个新的转账就把A的钱扣掉了。
比如A->B(10ETH),A一共发布过20个交易,这是是21个,所以写上nonce=21,然后整个内容写上A的签名,如下图
以太坊账户的分类
externally owned account(外部账户)
smart contract account(合约账户)
合约账户的调用
系统设计上账户模型的改进
05-10 1万+
XCoinPay 团队目前拥有彩色区块链技术专利与数个软件著作版权,XCoinPay 团队的核心成员 均来自于区块链业内,拥有深厚的业内资源及背景。 XCoinPay 开发团队在开发上有着诸多技术创新,由 XCoinPay 自主研发的柔支付技术(RouPay) 和 MHT 技术(Matching hedge Technology 匹配对冲技术)等都是由 XCoinPay 团队自主研发的创新 功能。 柔支付技术(RouPay)是由 XCoinPay 开发团队自主研发,而基于柔支付技术(RouPay)为底 层打造的柔支付网络(RouPay Network),综合运用了 2-of-2 多重签名、锁定时间交易、交易构造 延后广播等技术,可以在不需信任的情况,实现区块链资产的零手续费秒速转移,在速度、安全性 和隐私性方面,足以媲美闪电网络(Lightning Network)。
目 录 摘 要 1 关键词: 计算机网络;网络规划;网络设计 ;校园网 1 一. 前言 2 二. 学校描述 3 三. 需求分析 4 3.1 带宽 4 3.2 子网与VLAN规划 4 3.3 实现的信息服务 4 3.4 应用程序 5 3.5 存储系统分析 5 3.6 以太坊是银行帐户 系统及数据安全分析 5 3.7 QoS 5 3.8 网间隔离 6 四. 拓扑图及方案整体描述 7 4.1 主干网传输方案设计 7 4.2 Internet接入方案 7 以太坊是银行帐户 4.3 远程访问支持 8 4.4 子网划分 9 4.5 网间隔离方案设计 12 4.6存储方案 13 4.7 设备选型 13 4.8 软件 14 4.9 信息服务方案 14 4.10 综合布线方案 15 4.10.1 结构化布线设计 15 4.10.2 综合布线系统 16 4.10.3设计目标 17 4.10.4工作区设计 18 4.10.6主干线区设计 19 4.10.7子配线间设计 20 4.10.8主配线间设计 21 五. 网络管理 22 5.1网络管理 22 5.2远程监控 22 5.2.1 制作客户端安装盘 22 5.2.2 配置客户机 23 5.2.3远程控制 23 5.3网络安全 24 六. 系统主要设备报价 26 七. 网络测试及协议数据包分析 27 参考资料 31 致谢 32 摘 要 当今的世界正从工业化社会向信息化社会转变。一方面,社会经济已由基于资源的经济逐渐转向基于知识的经济,人们对信息的需求越来越迫切,信息在经济的发展中起着越来越重要的作用,信息的交流成为发展经济最重要的因素。另一方面,随着计算机、网络和多媒体等信息技术的飞速发展,信息的传递越来越快捷,信息的处理能力越来越强,信息的表现形式也越来越丰富,对社会经济和人们的生活产生了深刻的影响。网上教育以受众广、投入低、不受师资的校舍等条件限制、容易开展高水平教育、教学质量相对容易保证等特点而受到教育界的广泛重视,目前国内一些重事业高校的网站已经开展这方面的应用。但现在中小学的校园网正在建设阶段。中小学建设校园计算机网络的根本动机,就是提高学校的管理效益和教学质量。而并非只有大量的资金投入,建设具有规模的计算机网络,才能开展学校的教育手段。架设满足学校应用需求的小的局域网络、教学网络同样也能发挥大的教育效益。 网络是信息时代的产物,互联网本身以及各种基于互联网的应用都成了学校教学的内容,这就需要一个平台支持实施这种教学活动.校园网就是利用学校原有的内部局域网, ,通过架设WEB服务器、FTP服务器、论坛、在线流媒体等,从而组建起一个校园网络,促进学校教育的发展. 关键词: 计算机网络;网络规划;网络设计 以太坊是银行帐户 ;校园网 一. 前言 在二十一世纪的现代信息社会中,对于网络办公和学习是越来越受到重视很运用,几乎在全球的绝大多数学校都组建了网络环境。在通信设备不断普及的今天,原始的教学方式已经不能完全满足我们学习和生活的需求。为了提高教育和学习的质量,所有师生对网络办公和学习的需求是迫在眉睫,所有人都希望在校园里的都能上网络。正所谓大有大的难处,校园网一般具有较大的规模,它不是网络设备的简单组合,而是一种整体的校园系统。校园网必须满足校园扩展需要,确保高吞吐量、安全性。在很多时候,由于校园网络的种种问题的产生,以及学校对网络的需求随着学校的扩招却迅速增大。因此迫切需要在保障学生的学习和生活不受到影响的前提下,通过引进先进的组网模式,改造或者重新规划建设校园网络,以满足学校对网络的需求,保障学校的正常运转,同时实现教育信息化的目标。要求全新设计的校园网络能够最大限度的保护现有网络投资,以最低的造价实现信息化校园网络的标准,以满足日益增长的校园建设需求;建成后的网络应易于应用、管理和维护;施工过程中不能影响学校的正常运转,所提供的方案最好具有推广的价值,或者能够有效的降低网络接入与运行费用,保障大多数学生、教职员工都能够有条件接入、使用网络,提高学习与工作效率,实现教育的信息化。鉴于现在大多数校园都已经普及了有线网络,为了保障投资和提高网络的利用率以及最大限度的保障网络的健壮性,我在下面的方案中主要是以校园网组网为主。为所有师生提供最好的网络接入方式。
比特币跟以太币有何不同?比特币像钞票,以太坊是银行帐户
这促成了以太坊和比特币的另一个关键差异,布特林称之为以太坊的「第一类公民」(first-class citizen,程式语言中的术语,亦称First-class object,指能在程式执行期间,创造并做为参数传递给其他函数或存入一个变数的实体)——合约帐户和外部帐户拥有同等的权力,而这个特征也使得自动执行程式码的应用程式变得更加容易使用。如果区块链技术的目的是去掉中介者,这个概念就深植在以太坊的核心中。
布特林写道,有些应用程式可以建立在以太坊的基础上,例如数位货币、避险合约、网域名称系统、信誉系统(reputation system,一种由实体相互给出看法和评价,以确定这些实体的等级和类别的合作性筛选机制。
另一个例子是农作物保险。「怎么做?很简单,就是依据天气资料、而不是任何价格指数」,换言之,就是一种分散式的交易市场。类似的例子不胜枚举。
他想像的是一台世界电脑,把权力从那些傲慢的公司与政府的手中拿回来,让世界变得更有效率、更公平。可能性无限宽广。
以太坊则反其道而行,取消了一些功能。以太坊的协定不支持多签交易、多重输入与输出、杂凑码、锁定时间、甚至连比特币提供的许多功能也不支援。
Notice: The content above (including the pictures and videos if any) is uploaded and posted 以太坊是银行帐户 by a user of NetEase Hao, which is 以太坊是银行帐户 a social media platform and only provides information storage services.
以太坊与比特币账户的区别¶
以太坊的账户模型里有nonce(已发送交易数)这个字段。它起到的作用不仅是防止双花,更是强制以太坊的状态 “有序化”。这是对它自身单一账户模型无法保留历史记录的补充。nonce字段在每发出一笔确认过的交易后就自动+1。例如,在以太坊上进行的某一次模拟双花攻击中,当攻击者的账户余额为100以太币的时候,他发出两笔交易nonce编号为“6” 和 “8”的交易。编号“6”的交易承诺付款90以太币,同时编号为“8”的交易承诺付款80以太币,这将大于他的总余额100以太币。 当以太坊网络接收到两个请求后,因为nonce必须有先后顺序,会优先处理编号为“6”的交易请求。而轮到“8”交易请求的时候会因为余额不足(100-90=10 < 80)而被自动拒绝。
以太坊中的账户(Account)
二进制狂客 于 2018-05-10 17:44:28 发布 10060 收藏 8
1. 什么是账户?
说了这么多,我们要回到本文的主题。在以上两种目的中,参与者A和B,其实就是乙太坊中的最常见的账户,我们称为外部账户(EOA: Externally Owned Account)。我们提到的合约,也被维护在是一个账户中,即合约账户(以太坊是银行帐户 CA: Contract Account)。
2. 公钥和私钥
私钥经过一种哈希算法( 椭圆曲线算法 ECDSA-secp256k1 )计算生成公钥,然后取公钥的最后160位二进制(通常表现为40位的16进制字符串)形成了地址。
3. 账户的创建
12-21 3288
02-07 459
06-24 533
02-03 163
以太坊有两种不同类型的账户: 外部拥有的账户,公私钥。 合约账户 一个以太坊的账户包含四个部分 内容 外部账户 合约账户 该地址交易的次数( nonce ) a counter that 以太坊是银行帐户 indicates the number of transactions sent from the account.代表从此账户地址发送的交易序号它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放( replay )攻击 the number of contracts created by
04-08 313
以太坊账户 从UTXO谈起 比特币在基于UTXO的结构中存储有关用户余额的数据:系统的整个状态就是一组UTXO的集合,每个UTXO都有一个所有者和一个面值(就像不同的硬币),而交易会花费若干个输入的UTXO,并根据规 以太坊是银行帐户 则创建若干个新的UTXO: • 每个引用的输入必须有效且尚未花费;对于一个交易,必须包含有与每个输入的所有者匹配的签名;总输入必须大于等于总输出值 所以,系统中用户的余额(bala.
07-07 303
文档:以太坊帐户 | ethereum.org以太坊帐户是一个具有以太币 (ETH) 以太坊是银行帐户 余额的实体,可以在以太坊上发送交易。帐户可以由用户控制,也可以作为智能合约部署。以太坊有两种帐户类型:这两种帐户类型都能:外部持有合约以太坊帐户有四个字段:合约帐户具有编程的代码片段,可以执行不同的操作。如果帐户收到消息调用,则执行此 EVM 代码。 与其他帐户字段不同,不能更改。所有代码片段都被保存在状态数据库的相应哈希下,供后续检索。 此哈希值称为 codeHash。对于外部所有的帐户,codeHash 字段是空字符串
07-08 468
1、概述 比特币(BitCoin):去中心化的货币(decentralized money) 以太坊(Etherem):去中心化的合约(decentralized contract) 2、账户 可以很好的防御double spending attack,因为每花费一笔钱,就扣除,更新余额,不需要说明币的来源。 但是存在replay attack,比如:A转给B:10个以太币,发布到网络上,此次交易被写入区块链中,此时A认为本次转账交易已经完成了。假设B是有恶意的节点,它将此次交易又广播了一遍,其.
12-30 923
03-10 434
UTXO 比特币再基于UTXO的结构中存储有关用户余额的数据:系统的整个状态就是一组UTXO的集合,每个UTXO都有一个所有者和一个面值,而交易会花费若干个输入的UTXO,并根据规则创建若干个新的UTXO: 每个引用的输入必须有效且尚未花费:对于一个交易,必须包含有与每个输入所有者匹配的签名:总输入必须大于等于总输出值 所以,系统中用户的余额是用户具有私钥的UTXO的总值。 以太坊的做法 以太坊是银行帐户 以太坊的状态,就是系统中所有账户的列表 每个账户包括一个余额,和以太坊特殊定义的数据(代码和内部存储) 如果发送账户有足
05-12 6461
从命令行开始解析以太坊新建账户过程(geth account new命令) 如上图是生成一个账户的过程,最后的账户表现为一个地址那么,这个过程的代码是怎么实现的呢,接下来我们从main函数命令行开始解析这个过程的代码。 在cmd/geth/main.go中的init函数中,有一个accountCommand的命令行参数 func init() < // Initialize the .