8肖臻区块链_听课笔记
权益证明,用户拥有的币数,闭环,发动攻击的资源只能从加密货币内部获得,现在还是挖矿为主,转向权益证明有很多挑战

智能合约是一段代码,面向对象,下面是一个拍卖活动,竞拍的账户调用payable函数转账竞拍


调用合约的函数

payable才能接收外部账户钱,外部账户调用这个函数转账锁定在合约账户中
,将拍卖的钱发过去
外部账户没有合约代码,汽油费给矿工


调智能合约的指令是矿工做的,所以给矿工汽油费


gaslimit矿工可以微调,1/1024,区块链发布一个交易本来就是需要所有的节点都执行的,在本地同步状态,全节点收到对一个合约的调用,一次性先把gas扣掉,从发起交易的账户扣掉,三棵树都是全节点在本地维护的,所以扣gas时从我本地维护的状态树中减掉即可,智能合约的修改都是改全节点本地的数据,发布到链上之后才会变成共识,收到一个区块会执行块里的交易,更新本地的三棵树
同步状态,即执行收到的区块里的交易,候选区块丢掉,先执行交易才能挖矿,因为需要执行完的树的根hash值去挖矿,收到别人发布的区块,先执行一遍按,更新三棵树的hash,和它比较进行验证是否正确
矿工必须验证,不然hash不对,以后挖不了,矿,别人不认,发布的区块不包含三棵树,只有根hash,只在本地维护,发块里太大了
执行错误的智能合约也要发布块里,拿gas

多线程可能造成执行结果不确定,对内存访问顺序不同,智能合约的执行必须是确定性的




用交易创建合约,发布到区块链上,会返回区块链的地址,所有人都可以调用,合约账户维护状态,

所有人都收不到钱,没有解决办法,code is law,智能合约写不好会出错,无法修改
智能合约发布要尽量测试

任何未知的合约可能恶意,反过来调用你的合约函数
浙公网安备 33010602011771号