区块链
文章平均质量分 89
区块链到底是什么?
Uaena(✿◡‿◡)
这个作者很懒,什么都没留下…
展开
-
区块链学习笔记21——智能合约
二十一、智能合约智能合约是以太坊的精髓,也是以太坊和比特币一个最大的区别。什么是智能合约?智能合约的本质是运行在区块链上的一段代码,代码的逻辑定义了智能合约的内容智能合约的账户保存了合约当前的运行状态balance:当前余额nonce:交易次数code:合约代码storage:存储,数据结构是一颗MPTSolidity是智能合约最常用的语言,语法上与JavaScript很接近智能合约的代码结构Solidity是面向对象的变成语言,这里的contrac原创 2021-02-28 19:44:05 · 6890 阅读 · 7 评论 -
区块链学习笔记17——GHOST协议
十七、GHOST协议以太坊中的共识机制GHOST协议,以太坊把出块时间降到了十几秒,这对于提高系统的throughput(吞吐量)和降低反应时间来说,都是很有帮助的,跟比特币的10分钟的出块时间相比,以太坊的出块速度相当于提高到了40倍,但是这样大幅度降低出块时间之后也带来一些新的问题,前面讲过比特币和以太坊都是运行在应用层的共识协议,底层是一个P2P的Overlay Network,这个Overlay Network本身传输的时间是比较长的,因为他的拓扑协议做flooding的时候没有考虑实际的拓扑结构原创 2021-02-18 21:30:33 · 1085 阅读 · 0 评论 -
区块链学习笔记16——以太坊中的交易树和收据树
十六、以太坊中的交易树和收据树每次发布一个交易的时候,那些交易会组织成一个交易树,也是一颗Merkle tree跟比特币中的情况是类似的,同时以太坊还增加了一个收据树,每个交易执行完之后会形成一个收据,记录这个交易的相关信息,交易树和收据树上面的节点是一一对应的。增加这个收据树,主要是考虑到以太坊的智能合约执行过程比较复杂,所以通过增加收据树的结构有利于我们快速查询一些执行的结果,从数据结构上,交易树和收据树都是MPT,这个跟比特币中有所区别,比特币的交易树就是用普通的Merkle tree,区块里的所有原创 2021-02-17 19:35:39 · 1193 阅读 · 2 评论 -
区块链学习笔记15——以太坊中的状态树
十五、以太坊中的状态树以太坊采用基于账户的模式,系统中显式地维护每个账户上有多少余额,今天看一下用什么样的数据结构来实现account-based ledger。完成的功能:从账户地址到账户状态的映射,addr->state。addr:账户地址,以太坊中用的账户地址是160位,也就是20个字节,一般表示成40个十六进制的数。state:外部账户和合约账户的状态,包括余额,交易次数nonce,合约账户还包括代码和存储。数据结构几个方案直观的想法:用哈希表实现,系统中的全节点维护一个哈希表,原创 2021-02-16 20:43:06 · 1825 阅读 · 0 评论 -
区块链学习笔记14——以太坊的账户
十四、以太坊的账户基于交易的账本比特币中是用的基于交易的账本,这种模式下,系统中并没有显示的记录每个账户上有多少钱,要根据UTXO里的信息推算,包括想知道这个人一共总资产有多少个比特币,就算一下这个人的所有账户,就他有私钥的那些账户在UTXO里面一共有多少个币就可以了,好处是隐私保护比较好,你有多少钱,可能连你自己都说不清楚,那别人就更不清楚了。但是这样就带来一个问题,就他使用上比较别扭,跟我们的日常体验不太一样,像转帐的时候,A要转给B10BTC,A要说明这10个币的来源,其中七个币是前面这个交易中原创 2021-02-09 17:46:31 · 906 阅读 · 0 评论 -
区块链学习笔记1——密码学原理
一、密码学原理比特币被称为加密货币(crypto-currency)哈希函数(cryptographic hash function)重要性质collision resistance:哈希碰撞两个输入x,y,且x不等于y,哈希函数H,有H(x)=H(y),两个不同的输入算出的哈希值相等=>哈希碰撞哈希表里也有哈希碰撞,不同的输入会映射到哈希表的同一位置,哈希碰撞不可避免一般输入远远大于输出,比如256位哈希值,输出空间是2的256次方,但输入空间是无限大的,按照鸽笼原理必然会原创 2021-01-24 00:10:18 · 1064 阅读 · 2 评论