当区块链遇上智能合约.pdf

返回 相似 举报
当区块链遇上智能合约.pdf_第1页
第1页 / 共31页
当区块链遇上智能合约.pdf_第2页
第2页 / 共31页
当区块链遇上智能合约.pdf_第3页
第3页 / 共31页
当区块链遇上智能合约.pdf_第4页
第4页 / 共31页
当区块链遇上智能合约.pdf_第5页
第5页 / 共31页
点击查看更多>>
资源描述:
当区块链遇上智能合约庄重2016-01-16什么是智能合约“Conclusion of smart contract discussion no-one has a clue what a smart contract actually is, and if we did itd need oracles.-- Peter Todd智能合约概念的由来Nick Szabo,1994年◦以自动售货机为例子◦扩展到所有可以数字化的资产◦自动执行通常意义上的合约智能合约通常的执行过程是1.创建合约,锁定数字资产2.调用合约提供的接口执行程序3.由合约来完成资产的转移区块链上的智能合约区块链区块链的功能存储数据(全局的账本)进行计算(校验交易)对数据和计算达成共识内部状态对所有人可见程序存储账本智能合约以太坊----可编程的智能合约平台以太坊----可编程的智能合约平台智能合约用Solidty等语言编写,图灵完备,在自己定义的虚拟机EVM上执行。区块链基于余额的全局账本,地址可能带有智能合约,每个智能合约会保存独立的状态合约的执行方式是给对应的地址发送交易,并说明调用的方法和参数。一个合约的执行可能会触发多个其他合约,产生数个交易。以太坊的一些细节◦两种Account▫普通Account,私钥由用户掌握▫合约Account,自动创建,用户没有私钥▫两种Account都有余额◦Storage▫每个合约256bit到256bit的Key-Value存储◦交易▫包含Sender, Receiver, Gas, Data▫Receiver为空代表创建新的合约以太坊的一些细节◦EVM▫设计了一套指令集▫基于栈的虚拟机▫访存空间无限▫嵌套深度最大为1024▫通过Log将EVM中的状态发送给外部▫合约执行过程中会消耗Gas,限制程序的复杂度在以太坊上开发DApp以太坊用Solidity编写合约在以太坊上发布Web前端开发使用以太坊的JS API查看合约执行中产生的Event智能合约◦合约的执行由程序控制,降低了执行带来的成本◦减少了参与方之间的信任◦随之带来的问题▫可扩展性▫合约的安全性▫合约的法律效力编写安全的智能合约怎样设计安全的协议智能合约执行中可能的问题◦合约的参与方可能随时退出,参与方发送给合约的钱需要能找回◦对智能合约的调用是公开的,合约的参与方可以通过他人的行动谋利◦合约的执行可能意外中止,如Gas耗尽,嵌套层数太深◦矿工是否能有选择性得加入交易以及不广播对自己不利的区块实例Bug 1可能的问题有1.第3个队伍误操作2.队伍发送到合约的钱不是10003.第2个队始终不参与投票 ÂžÆ †ÿ¥ ºµ†ÿŒ ³ íBug 2◦第1个队伍的选择公开可见▫改为提交Hashchoice,nonce▫增加open函数,让队伍公布其选择和nonce,与之前的Hash校验▫当两个队伍都open后执行reveal确定结果▫需要给两个队伍增加open的时限Bug 3◦在执行send的时候会触发合约的执行,如果此时超过了栈的限制,退款会失败▫需要在相应函数入口增加检查智能合约平台现状不完整列表◦S◦Orisi◦Codius◦Symboint◦Hedgy◦BitHalo◦Mirror◦Hyperledger◦Eris Industries◦Ethereum◦智能坊◦小蚁◦Colored Coin◦Bitcoin以太坊◦当下最为成熟的公开区块链上的智能合约平台◦以太坊开发组提供了很多工具用于开发合约以及Dapp◦兼容以太坊的EVM是私有链的好选择比特币◦尽管脚本不是图灵完备,比特币上仍然有我们熟知的很多智能合约,需要关注社区对新OpCode的态度▫多签名地址▫Micro Payment Channel▫闪电网络提出的双向支付通道(需要新OpCode▫Counterpart等比特币区块链上的二层协议小蚁◦小蚁扩展了比特币的脚本,实现了图灵完备Digital Asset Holdings◦私有区块链,共识算法Mirror.co◦Mirror is a financial contracts plat that provides hedging instruments to OTC marketsEris Industries◦私有区块链,兼容以太坊的虚拟机◦共识算法搭建自己的智能合约平台◦账本▫公有链私有链协作链▫PoWPoS共识算法◦合约▫兼容以太坊,根据自身业务需求扩展潜在的研究方向◦编程语言▫设计类型系统更为完备的语言,一定程度上减少不安全的合约▫引入形式化验证,证明合约的安全性◦解决隐私问题▫结合零知识证明,在联邦链或者私有链上保证用户执行合约时的隐私(零知识证明通常体积较大)◦可扩展性◦改进智能合约平台的模型参考引用1. https// http//mc2-umd.github.io/ethereumlab/3. http// https//ethereum.gitbooks.io/frontier-guide/5. https//“◦感谢大家
展开阅读全文

最新标签

网站客服QQ:123120571
环境100文库手机站版权所有
经营许可证编号:京ICP备16041442号-6