以太坊智能合约存储大量数据
1. 以太坊技术系列-以太坊数据结构
本篇文章和大家介绍一下以太坊的数据结构,上篇文章我们提到,以太坊为了实现智能合约这一功能,使用了基于账户的模型。我们来看看以太坊中数据结构。
既然是基于账户的模型,我们需要通过账户地址找到账户的状态。就像通过银行卡号可以找到你在银行中的各种信息一样。最简单的想法当然是一个简单的哈希表 key是账户地址 value是账户状态。但这里有个问题解决不了。
轻节点如何校验账户合法性?
上篇我们说过,区块链中有2类节点,全节点和轻节点,轻节点只会存储block header,所以轻节点如何才能校验账号是否合法呢?
这个思路和我们平时用的md5校验一致,我们会对区块内的信息进行hash运算从而得出区块内信息唯一确定的值,区块链所有节点中这个值都是相同的。
在这个过程中我们用到了一种数据结构Merkle Tree(哈希树),我们先看下Merkle Tree(哈希树)的示意图。
上篇文章说到区块链中的链表(哈希链)和我们平时常见链表不同的是将指针从地址改为了hash指,这里也一样,哈希树和二叉树的区别有2个
1.将地址改为了哈希值
2.只有叶子节点存储数据
回到之前的问题轻节点是如何校验1个账户或交易是否是在链上的呢?
整个流程如上图所示
1.轻节点需要判断1个账号是否合法
2.轻节点由于只存储block header,所以拿到1个账号的时候会向全节点发出请求
3.全节点存储了所有账户状态,将账户路径中的需要计算用到的hash值返回给轻节点
4.轻节点本地进行计算根hash值,如果计算结果和自己存储一致则账户合法,不一致则不合法。
那以太坊中的账户信息的数据结构就是这样吗?
直接用这样的数据结构来存储账户信息会有2个问题
查找困难
生成hash值不确定
第1个问题应该比较容易发现,在这个树中寻找1个账号需要的复杂度是O(n),因为没有任何顺序。
第2个问题其实也是因为无序导致的,无序的组合每个节点针对同一批账户生成的hash值不一致,这就导致无法达成共识。
既然2个问题都和顺序有关,那我们类似二叉排序树一样,使用哈希排序树是不是就可以解决问题了呢?
使用排序树后会带来另外1个问题
插入困难
因为要维持树是有序的,很可能带来树结构的很大变动。
以太坊中使用了另外一种数据结构字典树。和哈希树不同,字典树应该是很多地方都有使用。我们简单来看下字典树的结构。
字典树能够较好地解决哈希树的2个缺点1.查找困难 2.生成的hash值不确定以及排序二叉树的1个缺点 插入困难。
但字典树我们可以看到可能树的深度可能由于部分元素导致整棵树深度非常深。
这时我们可以进一步优化,将相同路径进行压缩。这就是压缩字典树。
将哈希树和压缩字典树结合,就可以得到以太坊存储账户的最终数据结构-MPT。
将压缩字典树里面的指针从地址改为指针,并且将数据存储在叶子节点中即可。
介绍完状态树的数据结构,我们接下来讨论1个问题,区块中存储的账户状态是什么样的范围。有2种选择。
只保存当时区块中产生交易的账户状态。
保存全局所有的账户。
我们可以看下这2种方式,无非就是空间和时间的平衡,只保存当前区块产生的交易意味着是做懒加载(需要的时候才去寻找账户),在区块链中这个代价是非常大的,因为寻找的账户之前从未交易过,这样会遍历整个区块链。另外一种保存全局的账户方式虽然看起来空间消耗较大,但查找快捷,而且空间的问题我们可以通过其他方式优化。所以最终以太坊选择了第2种每个区块都报错全局所有账户的方式。
我们来看下以太坊中是如何保存状态树的。
可以看到以太坊中虽然每个区块都保存了全部账户,但是会将未发生变化的账户状态指向前1个节点,本身只存储发生变化的状态,这样可以较大程度优化空间占用。
介绍完以太坊中比较复杂的状态树后,我们继续来看看以太坊中的另外两棵树,交易树和收据树。
首先介绍一下,为什么需要交易树&收据树。
1.交易树
虽然以太坊是基于账户的模型,但是就像银行不仅会存储银行卡的余额,还会存储卡中的每笔钱怎么来的以及怎么花的。交易树中就存储着当前区块中的包含的所有交易。
2.收据树
由于智能合约的引入增加了不少复杂性,所以以太坊用收据树存储着一些交易操作的额外信息。比如交易过程中执行日志就包含在收据树中方便查询。收据树和交易树是一一对应的。每发生一次交易就会有一次收据。
和状态树不同交易树和收据树只维护当前区块内发生的交易,因为当时区块发生交易时不需要再去查找另外1个交易,也就之前需要可能遍历整个区块链的查找操作了。
由于以太坊中的出块速度较快,我们进行一些查询一些符合条件交易的时候会面临大量数据遍历困难的问题。收据树中引入了布隆过滤器可以帮助我们有效缓解这一困难。
布隆过滤器将大集合中每个元素进行hash运算映射到1个较小的集合,这时再来1个元素要判断是否在大集合的时候,不需要遍历整个大集合,而是去进行hash运算去小集合中寻找是否存在,如果不存在,肯定不在大集合中,如果存在则不能说明任何问题。
如上图所示,布隆过滤器只能证明某1个元素不在集合中,不能证明1个元素在结合中。
以太坊中如果我们要在较多区块中寻找某1个交易,则可以利用布隆过滤器,过滤掉肯定不存在目标交易的区块,然后进入收据树内继续利用布隆过滤器筛选,剩下的才是可能的目标交易的交易,进行一一比对即可。
我们介绍了以太坊的核心数据结构,状态树&交易树&收据树,他们都是使用相同的数据结构-哈希压缩字典树。但状态树是维护1颗全局账户树,交易树和收据树则是维护本区块内的交易或收据。
介绍完数据结构后,后面我们会用几篇文章来介绍以太坊中的一些核心算法,比如共识机制,挖矿算法等。
2. 区块链应用开发找哪家好
区块链技术是通过2008年由中本聪编写的题为“比特币:对等电子现金系统”的论文宣布的。有趣的是,本文没有专门使用“区块链”这个词。
本文讨论的是“纯粹的电子现金版本”,其中“网络通过将交易哈希到持续的基于散列的工作证明链中来标记交易时间,创建一条无需重做证明即可更改的记录”工作的”。
开源的PT-BSC(区块链安全控制)将区块链定义为点对点网络,通过将它们散列到正在进行的基于散列的工作量证明链中来记录时间戳记,形成不能成为记录的记录改变而不重做工作证明。区块链可以被授权,无权限或混合使用。
另一方面,分布式账本被定义为对等网络,该网络使用定义的共识机制来防止修改有序的时间戳记录序列。共识机制包括证明利益,联合拜占庭协议等。
最流行的区块链平台
1.以太坊
以太坊是一个开源的Blockchain平台,运行智能合约并为其创建提供编程工具。在2013年由Vitalik Buterin提出后,该平台简化了下一代分散式应用程序(DApps)和在线合同协议的开发。
以太坊允许设计和发行加密货币和可交易的数字令牌。更重要的是,您可以创建自己的DAO(民主自治组织),例如,一个虚拟组织,通过成员投票解决各种问题。
该平台提供了许多有用的功能,包括图灵完整语言,命令行工具(内置于Go,C ++,Python,Java等)以及Ethereum钱包,这是最后一个支持和保护加密资产并简化智能合约的开发者发展。
2. BigChainDB
BigChainDB是一个开源的分布式账本系统,专为存储大量数据而设计,并支持开发人员部署区块链概念验证和应用程序。
该数据库提供分散控制,低延迟,不变性,强大的查询功能以及高速的事务处理。
该系统没有自己的货币,但允许发行和转让任何资产,代币和加密货币。BigChainDB支持自定义数字资产并在事务级别建立访问权限。
BigChainDB基于联邦共识模型,一个拥有投票权限的节点联盟。BigChainDB支持公共和私人网络,有许多用例,包括知识产权,人力资源,政府和土地登记等领域。
此外,深入了解比特币,以太坊和BigchainDB的比较。
3.Blockchain Hyperledger Fabric
Blockchain Hyperledger Fabric是由The Linux Foundation主办并于2016年发布的最受欢迎的Hyperledger项目之一。Hyperledger Fabric是Go编写的,使用Docker容器实现智能合约。
该平台是基于模块化架构构建基于区块链的解决方案的基础,并支持使用一个或多个网络。为了确保高水平的灵活性,可靠性和可扩展性,Hyperledger Fabric最适合开发企业解决方案。
考虑到有用的功能,它包含共享机密信息和交易背书政策的渠道。此外,交易还包括所有签署同行的签名,并提交给订购服务。Hyperledger Fabric是创建授权区块链的最佳平台之一。
4.Hyperledger Cello
Hyperledger Cello是一个区块链平台和操作系统,也是Linux基金会托管的Hyperledger项目之一。Hyperledger Cello的目标是通过向Blockchain生态系统提供按需“即服务”部署模式,最大限度地减少设计和管理区块链的工作量。
Hyperledger Cello使开发人员能够从头创建区块链即服务(BaaS)平台,并管理区块链的生命周期。更重要的是,通过Cello,他们可以在裸机,虚拟云和容器集群之上维护一组网络(大提琴支持Docker,Swarm和Kubernetes)。
5. Hyperledger锯齿湖
Hyperledger Sawtooth Lake是一个区块链平台,代表支持许可和无许可开发的企业解决方案。该平台帮助软件工程师更轻松地创建,部署和运行分布式账本系统和应用程序。
Sawtooth Lake是一个用Python编写的模块化套件,提供智能合同抽象,允许开发人员以他们想要的编程语言编写合同逻辑。Hyperledger Sawtooth中的交易业务逻辑与共识层分离。
共识机制称为经过时间证明(PoET),并使用内置于最新一代英特尔处理器中的SGX可信计算模块。
对于锯齿湖有很多有用的应用。例如,在供应链管理和海鲜配送中,它可以解决诸如食物储存条件不当,非法捕捞行为和海鲜欺诈等问题。
此外,Hyperledger Sawtooth可以确保创建和交换数字资产的安全基础设施。了解一下,锯齿湖及其解决方案如何在不同领域发挥作用。
6. Hydrachain
HydraChain是Ethereum Blockchain平台的开源扩展,为开发和部署许可的分布式分类帐提供支持。
HydraChain完全兼容以太坊协议,并提供了一个基础设施来创建Python中的智能合约。Hydrachain有许多工具可以缩短开发时间并提高调试功能。
重要的是,HydraChain可以确保高水平的定制:系统的各个方面可以轻松配置以满足客户的需求。例如,在创建智能合约时,交易费用,天然气限额,创世分配和封锁时间等事项可以轻松定制。
7. Corda
Corda是一个开源的Blockchain平台,用于构建许可的分布式账本系统。该项目由R3联盟创建,结合了大型银行并允许管理各方之间的法律协议。
像其他分布式分类帐一样,R3 Corda提供安全的数据存储和不可变的数据记录。值得注意的是,只有Corda才能开发交互操作的区块链网络,这些网络在严格的隐私中进行交易。目前,它可能是唯一一个有可插拔共识的分布式账本平台。
8. Multichain
Multichain是一个开源分布式账本系统,基于比特币区块链,专为处理多币种金融交易而设计。
该平台提供各种级别的访问控制和权限,并实现快速解决方案部署。在Multichain中,各种网络可以同时在一台服务器上。
9.开链
作为一个开源的区块链平台,Openchain以强大,安全和可扩展的方式为数字资产的发布和管理而设计。该技术包括智能合约模块,统一的API,以及由于分级账户系统的多级控制和访问权限。
在Openchain中,每笔交易都进行了数字签名(就像比特币一样),共识机制由分部共识引入。你应该注意到Openchain是免费的,所以你不需要花钱加密货币来使用它。
10.链核心
Chain Core是一个企业级的区块链平台,由Chain Protocol和链接协议设计,用于在许可的区块链网络上发布,传输和管理数字资产。此外,该平台还使开发人员能够从头开始创建金融服务。
在连锁核心中,本地数字资产涉及货币,证券,衍生品,礼品卡和忠诚点。该平台提供基于角色的权限访问管理,以便在网络中运行。Chain Core具有联合共识,并提供智能合同支持,交易隐私和多重签名帐户支持。
3. 以太坊智能合约是什么
以太坊是一个分布式的计算平台。它会生成一个名为Ether的加密货币。程序员可以在以太坊区块链上写下“智能合约”,这些以太坊智能合约会根据代码自动执行。
以太坊是什么?
以太坊经常与比特币相提并论,但情况却有所不同。比特币是一种加密货币和分布式支付网络,允许比特币在用户之间转移。
相关:什么是比特币?它是如何工作的?
以太坊项目有更大的目标。正如Ethereum网站所说,“以太坊是一个运行智能合约的分布式平台”。这些智能合约运行在“以太坊虚拟机”上,这是一个由所有运行以太网节点的设备组成的分布式计算网络。
“分布式平台”部分意味着任何人都可以建立并运行以太坊节点,就像任何人都可以运行比特币节点一样。任何想要在节点上运行“智能合约”的人都必须向Ether中的这些节点的运营商付款,这是一个与以太坊相关的加密货币。因此,运行以太网节点的人提供计算能力,并在以太网中获得支付,这与运行比特币节点的人提供哈希能力并以比特币支付的方式类似。
换句话说,虽然比特币仅仅是一个区块链和支付网络,但以太坊是一个分布式计算网络,其区块链可以用于许多其他事情。以太坊白皮书中提供了详细信息。
以太是什么?
以太网是与以太坊区块链相关的数字标记(或者说就是加密货币)。换句话说,以太是代币,以太坊是平台。但是,现在人们经常交替使用这些术语。例如,Coinbase允许你购买以太坊代币(Ethereum),即代表以太币代币。
这在技术上就是“altcoin”,这实际上意味着一个非比特币加密货币。和比特币一样,Ether也受到分布式区块链支持 - 在这种情况下是以太坊区块链。
想要在以太坊区块链上创建应用程序或以太坊 智能合约的开发人员需要以太网代币来支付节点来托管它,而基于以太坊的应用程序的用户可能需要以太网来支付这些应用程序中的服务费用。人们也可以在以太坊网络之外销售服务,并接受以太网支付,或者可以在交易所以现金形式出售以太币代币 - 就像比特币一样
4. 一文读懂以太坊—ETH2.0,是否值得长期持有
这几天一直在看关于ETH伦敦升级方面的资料,简单的聊一下,在加密货币的世界里,无论是投资机构、区块链应用开发者、矿机商,还是个人投资者、硬件供应商、 游戏 行业从业者等等,提起以太坊,或多或少都会有一些了解。
一方面取决于以太坊代币 ETH 本身的造富效应。从 2014 年首次发行以来,投资回报率已经超过 7400 倍。
另一方面,以太坊作为应用最广泛的去中心应用编程平台,引来无数开发者在其之上开发应用。这些应用不仅产生了巨大的商业价值,伴随 DEFI 生态、NFT 生态、DAO 生态蓬勃发展,也给 ETH 带来了更多使用者。
随着“伦敦升级计划”临近,ETH 再次聚集所有人的关注目光。
以太坊 2.0 到底是什么?包含哪些升级?目前进展如何?
以太坊 2.0 到来,会对现有以太坊生态的去中心化应用产生哪些影响?
ETH 是否值得持续投资?看完相信你会有自己的判断。
如果将搭建应用比作造房子,那么以太坊就提供了墙面、屋顶、地板等模块,用户只需像搭积木一样把房子搭起来,因此在以太坊上建立应用的成本和速度都大大改善。以太坊的出现,迅速吸引了大量开发者进入以太坊的世界编写出各类去中心应用,极大丰富人们对去中心应用场景的需求。
以太坊应用开发模型示意
以太坊与ETH
现有市场的加密货币,只是在区块链技术应用在某一场景下的单一代币。
以太坊也不例外,它的完整项目名称是“下一代智能合约与去中心化应用平台”,Ether(以太币)是其原生加密货币,简称 ETH。
ETH 除了可以用来与各种类型数字资产之间进行有效交换,还提供支付交易费用的机制,即我们现在做链上操作时所支付的 GAS 费用。GAS 费用机制的出现,即保护了以太坊网络上创建的应用不会被恶意程序随意滥用,又因为 GAS 收入归矿工所有,让更多的用户参与到以太坊网络的记账当中成为矿工,进一步维护了以太坊网络安全与生态发展。
与 BTC 不同的是,ETH 并没有采用 SHA256 挖矿算法,避免了整个挖矿生态出现由 ASIC(专用集成电路)矿机主导以至于大部分算力被中心化机构控制所带来的系统性风险。
以太坊最初采用的是 PoW(Proof of Work)的工作量证明机制,人们需要通过工作量证明以获取手续费回报。我们经常听说矿工使用显卡挖矿,他们做的就是 POW 工作量证明。显卡越多,算力越大,那么工作量就越大,收入也就越高。
当前,整个以太坊网络的总算力大约为 870.26 TH/s,用我们熟悉的消费级显卡来对比,英伟达 RTX 3080 的显卡算力大约为 92-93 MH/s,以太坊网络相当于 936 万张 3080 显卡算力的总和。
以太坊白皮书内非常明确提到之后会将 PoW 工作证明的账本机制升级为 POS (Proof of Stake)权益证明的账本机制。
ETH经济模型
与 BTC 总量 2100 万枚不同,ETH 的总量并没有做上限,而是在首次预售的 ETH 数量基础上每年增发,增发数量为 0.26x(x 为发售总量)。
但也不用担心 ETH 会无限通胀下去,长期来看,每年增发币的数量与每年因死亡或者粗心原因遗失币的数量大致相同,ETH 的“货币供应增长率”是趋近于零的。
ETH 分配模型包含早期购买者,早期贡献值,长期捐赠与矿工收益,具体分配比例如下表。
现在每年将有 60,102,216 * 0.26 = 15,626,576 个 ETH 被矿工挖出,转成 PoS 后,每年产出的 ETH 将减少。
目前,市场上流通的 ETH 总量约为 116,898,848 枚,总市值约为 2759 亿美元。
以太坊发展历程
1. 边境阶段(2015年):上线后不久进行了第一次分叉,调整未来挖矿的难度。此版本处于实验阶段,技术并未成熟,最初只能让少部分开发者参与挖矿,智能合约也仅面向开发者开发应用使用,并没有用户参与,以太坊网络处于萌芽期。
边境阶段 ETH 价格:1.24 美元。
2. 家园阶段(2016年):以太坊主网于 2016 年 3 月进行了第二次分叉,发布了第一个稳定版本。此版本是第一个成熟的正式版本,采用 100% PoW 证明,引入难度炸弹,随着区块链数量的增加,挖矿难度呈指数增长,网络的性能大幅提升,以太坊项目也进入到快速成长期。在”家园“版本里,还发生了著名的”The DAO 攻击事件“,以太坊被社区投票硬分叉为以太坊(ETH)与以太经典(ETC)两条链,V 神站在了 ETH 这边。
家园阶段 ETH 价格:12.50 美元。
3. 都会阶段(2017~2019年):都会的开发又分为三个阶段,升级分成了三次分叉,分别是 2017 年 10 月的“拜占庭”、2019 年 2 月底的“君士坦丁堡“、以及 2019 年 12 月的“伊斯坦布尔”。这些升级主要改善智能合约的编写、提高安全性、加入难度炸弹以及一些核心架构的修改,以协助未来从工作量证明转至权益证明。
在都会阶段,以太坊网络正式显现出其威力,正式进入成熟期。智能合约让不同链上的加密货币可以互相交易,ERC-20 也在 2017 代币发行的标准,成千上万个项目在以太坊网络进行募资,被称作“首次代币发行(ICO)”,相信很多币圈的老人都是被当时 ICO 造富效应带进来的。到 2019 年,随着DeFi 生态的崛起,金融产品正式成为以太链上最大的产业。
都会阶段 ETH 价格:151.06 美元。
4. 宁静阶段(2020-2023年):与都会分三阶段开发相同,宁静阶段目前预计分成三次分叉:柏林(已完成)、伦敦(即将到来)、以及后面的第三次分叉。“宁静”阶段又称为“以太坊 2.0”,是项目的最终阶段,以太坊将从工作量证明方式正式转向权益证明,并开发第二层扩容方案,提高整个网络的运行效率。
宁静阶段可以说是以太坊网络的集大成之作,如果说前个三阶段只是让以太坊的愿景展现的实验平台,宁静阶段之后的以太坊,将正式成为完全体,不仅有完备的生态应用,超级快的处理速度,众多网络协同发展,而且 PoS 机制会非常节约能源,真正代表了区块链技术逐渐走向成熟的标志。
宁静阶段 ETH 价格:2021 年 4 月 15 日完成的柏林阶段,当天价格为 2454 美元。
即将到来的伦敦协议升级
以太坊生态
以太坊的生态发展,从属性划可分为两大类:一是以太坊网络生态应用建设,二是以太坊网络扩容建设。两者相互融合,互相成就,应用需要更健壮强大的网络作为承载,网络需要功能完善的应用场景服务用户。
先说应用生态,以太坊的生态我们又可以分为以下几大类:
1. 去中心化自制组织(DAO)生态
什么是去中心化自制组织?还是以我们熟悉的比特币举例:比特币目前市值七千多亿美金,在全球资产市值类排名第九,但比特币并不是某一公司发布的产品,也没有特定公司组织招聘人员进行维护。比特币现有的一切,都源于比特币持有者、比特币矿工自发形成的分布式组织,他们通过投票方式规划比特币发展路线,自发参与维护比特币程序与网络 —这仅仅因为只要拥有比特币,所有人都是比特币网络建设中的受益者,一切维护都源于自身的利益关系。
比特币的发明与成功运行,突破了由荷兰人创建、至今流行 400 多年的公司商业架构,开创出一种全新的、无组织架构的、全球分布式的商业模式,这就是 DAO。
再说回以太坊,以太坊的 DAO 可以由智能合约编写,用户自定义应用场景。简单说就是我们规定出程序执行条件与执行范围,真实世界里只要触发设定好的条件,程序就会自动执行运行,且所有过程都会在以太坊的网络上进行去中心化公开验证,不需要经过人工或者任何第三方组织机构确认。
以太坊 DAO 生态演化出许多商业场景,有慈善机构使用 DAO 建立公开透明的捐款与使用机制,有风投机构使用 DAO 建立公平分配的风险基金。
以太坊生态的很多项目都采用 DAO 自治,代表项目有:Uniswap,AAVE,MakerDAO,Compound,Decred,Dash 等。
2. 去中心化金融(DEFI)生态
在传统商业世界里,我们如果需要借钱、存钱,或者买某一公司股票,或者做企业贷款、融资,只要是进行金融活动,总离不开与银行、证券机构、会计事务所这些金融机构打交道。
而在去中心的世界里,区块链本质就是集合所有人交易记录且公开的大账本,我们可以非常容易的追溯到每一个钱包地址发生过的每一笔交易,查询到任意一个钱包地址的余额信息,从而对钱包地址里的资产做评估。
举个例子:全世界个人贷款最贵的国家是印度,印度的年轻人房贷利率目前是 8.8%,最高曾经到过 20%;与此对应,全世界个人存款利率最低的国家是日本,日本政府为了鼓励民众消费,在很长一段时间里银行存款利率是负值,日本人在银行存款不仅没有利息,还要给银行交保管费。理论上,如果日本人将自己的存款借与印度人,双方都能获得利益最大化,但现实生活中这样的场景很难发生。一是每个国家都有外汇管制,日本人的钱并不容易能给到印度人,二是印度人的信用如何日本人也不好评估,大家没有统一标准,万一借出去的钱无法归还,不能没了收益还要蒙受损失。
但在去中心的世界里,这样的事情就简单的多。
如果印度人的钱包地址里有比特币,我们就可以利用智能合约,印度人将自己的比特币质押进去,根据比特币当时的价格,系统自动给印度人一个授信额度,印度人就可以拿着这个额度去和日本人借款,并规定好还款的周期与利率。如果印度人违约,合约自动将印度人质押进去的比特币扣除,优先保障日本的权利,这样,日本人不用担心安全问题放心享受收益,印度人也有了更多的款项做为流动资金。
这个例子就是去中心金融的简单应用,实际上,这就是我们参与 DEFI 挖矿是质押理财的原理 —— 当然真正应用实现算法与场景要复杂的多。
DEFI 根据场景不同,又可以分为很多赛道,比如稳定币、预言机、AMM 交易所、衍生品、聚合器等等。
DEFI 代表项目有:Dai,Augur,Chainlink,WBTC,0x,Balance,Liquity 等。
3. 非同质化代币(NFT)生态
世界名画《蒙娜丽莎》,只有达·芬奇的原版可以展览在法国卢浮宫博物馆,哪怕现代的技术可以无比精细地复刻出来,仿品都不具备原版的收藏价值。
这就是 NFT 的应用场景。NFT是我们可以用来表示独特物品所有权的代币,它们让我们将艺术品、收藏品甚至房地产等现实事物唯一代币化。虽然文件(作品)本身是可以无限复制,但代表它们的代币在链上可以被追踪,并为买家提供所有权证明。
相比现实中实物版权、物权的双重交割相比,NFT 只需要交割描述此物品的唯一代币。NFT 作品往往存储在如 IPFS 这样的分布式存储网络里,随用随取,永不丢失,加之交割简单方便,很快吸引了大量玩家与投资者收藏转卖,NFT 出现也给艺术家提供了全新的收入模式。
类似 DEFI 生态,NFT 生态根据应用场景不同也产生了不同赛道,目前比较火热的赛道有 NFT 交易平台,NFT 游戏 平台,NFT 艺术品平台, NFT 与 DEFI 结合在一起的金融平台。
NFT 代表项目有:CryptoKitties,CryptoPunks,Meebits,Opensea,Rally,Axie Infinity,Enjin Coin,The Sandbox 等。
4. 标准代币协议(ERC-20)生态
与 NFT 非同质化代币所对应的,就是同质化代币。比如我们使用的人民币就是一种同质化代币,我们可以用人民币进行价值交换,即使序号不同也不影响其价值,如果面额相同,不同的钞票序号对持有者来说没有区别。
BTC,ETH 和所有我们熟知的加密货币,都属于同质化代币。同种类的一个比特币和另一个比特币没有任何区别,规格相同,具有统一性。在交易中,只需关注代币交接的数量即可,其价值可能会根据交换的时间间隔而改变,但其本质并没有发生变化。
以太坊的 ERC-20 就是定义这种代币的标准协议,任何人都可以使用 ERC-20 协议,通过几行代码,发布自己在以太坊网络上的加密货币。
现在,以太坊网络上运行的代币种类有上百万个,上边提到的项目,大多也在以太坊网络中发布了自己的同质化代币。
ERC-20 代表项目有:USDT,USDC,WBTC 等。
以太坊网络扩容性
我们先引入一个概念:区块链的不可能三角,即无论何种方法,我们都无法同时达到可扩展、去中心化、安全,三者只能得其二。
这其实很好理解,如果我们要去中心化和安全,就需要更多有节点参与网络进行验证,从而导致验证人增多、网络效率降低,扩展性下降。网络性能建设就是在三者之间找到平衡点。
用数据举例,目前比特币可处理转账 7 笔 / 秒,以太坊是 25 笔 / 秒,而 VISA 平均为 4500 笔 / 秒,峰值则达每秒上万笔。这种业务处理能力的差别,我们就可以简单理解为是「吞吐量」的差距。而想要提高吞吐量,则需要扩展区块链的业务处理能力,这就是所谓的扩展性。
根据优化方法不同,以太坊网络性能扩容方案可以分为:
1. Layer 1 链上扩展,所有交易都保留在以太坊上的扩展解决方案,具有更高的安全性。
链上扩展的本质还是改进以太坊主链本身,使整个系统拥有更高的拓展性与运行效率。一般的方法有两种,要么改变共识协议,比如 ETH 将从 PoW 转变为 PoS;要么使用分片技术,优化方法使网络具有更高效率。
2. Layer 2 链下扩展,在以太坊协议之上分层单独做各场景解决方案,具有更好的扩展性。
链下扩展可以理解为把计算、交易等业务处理场景拿到以太坊主链之外计算,最后将计算好的结果传回主链,主链只反映最终的结果而不用管过程,这样,无论多么复杂的应用都不会对主链产生影响。
我们并不需要明白具体技术实现,只需知道:相比 Layer 1 方案,Layer 2 方案网络不会干扰底层区块链协议,可以替 Layer 1 承担大部分计算工作,从而降低主网络的负担提高网络业务处理效率,是目前公认比较好的扩容方案。
以太坊2.0
终于讲到以太坊 2.0,回到主题。
通过回顾以太坊的发展 历史 ,以太坊 2.0 并不是新项目,它只是以太坊开发进程的最后一个阶段,它将由整个以太坊生态多个团队协同完成,目标是使以太坊更具可扩展性、更安全和更可持续,最终成为主流并为全人类服务。
ETH2建设目标:
1. 更具可扩展性。每秒支持 1000 次交易,以使应用程序使用起来更快、更便宜。
2. 更安全。以太坊变得更加安全,以抵御所有形式的攻击。
3. 更可持续。提高网络性能的同时减少对能源的消耗,更好地保护环境。
最重要的变化,ETH2 将从 ETH1 使用的 PoW(Proof of Work)工作量证明机制升级为 POS (Proof of Stake)权益证明机制。不再以算力做为验证方式,而是通过质押加密货币的数量做为验证手段。矿工不需要显卡也能挖矿,既节省了时间成本与电力成本,又提高了 ETH 的利用率,非常类似钱存在银行获得利息。
ETH2 主要使用的技术是分片分层技术实现整个网络扩容。
ETH2 升级将分为三个阶段进行:
1. 阶段0(正在进行):信标链的创建与合并。信标链是 ETH2 的主链,如同人类的大脑,是 ETH2 得以运行的基础。
2. 阶段1(预计2022年):分片链的创建与应用。当信标链与 ETH1 合并完成后,就进入分片链的开发阶段。分片链可以理解为将 ETH2 主链的整块数据按一定规则拆分存放,单独建立新链处理,用来分担主链上的数据压力,目前规划是建立 64 条分片链。
举个例子,从北京到上海,原来的交通工具只有一条公路,所有的车辆都需要在上边运行,就会非常拥挤;现在通过分片技术,多出来高铁、飞机等交通方式,分流的车辆同时到达速度更快,这就是分片链起到的作用。
分片链与主链交互示意图
3. 阶段2(预计2023年):整个网络功能的融合。到了此阶段,整个系统的功能全面开始融合,分片链的功能会更加强大,新的处理机制开始支持账户、智能合约、开发工具的创建,新的生态应用等。
此阶段是以太坊网络的最终形态,网络性能得到全面提升,生态应用全面爆发。但要服务全人类,ETH2 每秒 1000 次的交易效率显然还是远远不够,以太坊也会为它的目标持续优化下去。
ETH2对于大家有什么影响?
1. 对于以太坊生态开发者。ETH2 在部署应用的时候,是需要选择应用在哪条分片网络进行部署,造成这种差异的原因是跨分片通信不同步,这就意味着开发者需要根据自己发展计划做不同的组合。
2. 对与 ETH 持币者。ETH2 与 ETH1 数据完全同步,代币也不会有任何变化,你可以继续使用现在的钱包地址继续持有 ETH。
3. 对于矿工。虽然 PoW 与 PoS 还会并行一段时间,可以预计的 PoW 矿机的产出会越来越少,应该开始减少 PoW 矿机的投资,开始转向 PoS 机制。
4. 对于用户。ETH2 速度更快,交易手续费更低,网络体验会非常好,唯一值得注意的是,由于 Dapp 部署在不同的分片网络上,可能需要手动选择应用的网络选项。
ETH是否值得投资?
ETH 是除了 BTC 以外市场的风向标,明确了解 ETH2 非常有助于我们理解其他区块链项目,理解二级市场。
简单总结几个点吧:
1. 通过以太坊的项目分析,我们可以清晰地看到:在比特币之后,以太坊项目的发展史就是目前区块链应用生态的发展史。无论 DEFI 生态,NFT 生态,DAO 生态还是代币、合约、协议生态,其实在以太坊发布白皮书时已有预见,后来出现的项目,都是围绕以太坊做验证。
2. 以太坊的联合创始人里,只有 V 神还在为以太坊事业做贡献,但这并不影响以以太坊繁荣发展。以太坊初始团队只是创建了它,后续的发展是社区、开发者、矿工与用户共同建立的结果,现在的以太坊早已不是某一个人的思维,它是所有以太坊生态参与者共同的结晶,它属于全人类。
3. 以太坊在过去的几年一直沿着既定的开发轨迹发展,虽然中途一度出现过危机,以太坊“被死亡”了好几百次,以太坊还是顽强的发展下来,并且拥有了繁荣生态。ETH2 还要两三年时间才能落地,中间也充满变数,比如其他的公链抢占先机,但可以预见,ETH2 后的以太坊会更加健壮。
4. 不要在抱有任何 BTC 会死亡,区块链行业会消失这样的伪命题。BTC、ETH 让我们看到了突破原有公司组织架构,一种全新无组织架构的商业模式存在,这种商业模式显然更符合这个时代的发展需求,无论项目地发起团队在不在,无论各国政府如何打压,只要技术对人类有贡献,就会由人员自发组织维护,区块链技术是革命。
5. ETH2 的上线,短期看 PoW 奖励与 PoS 奖励并行,可能会让 ETH 总通胀率短期内飙升,长期看 ETH 通胀率始终保持平衡。加上 ETH 本身的生态与应用场景,ETH是值得投资的,目前看不到有其他公链代替以太坊公链的可能性,ETH2 的上线,甚至会对其他公链造成“虹吸效应”,万链归一。
#比特币[超话]# #数字货币#
5. 以太坊怎么修改数据
先以太坊的数据保存在user用户名当中需要在硬盘的位置,一是可以备份你的私钥,而是可以删除钱包,还有其他的一些比较详细的操作
原标题:《解码以太坊智能合约数据》 正如我们在之前的文章中所讨论的,智能合约交易类似于智能合约驱动的web3应用程序中的后端API调用。每个智能合约交易和结果应用程序状态更改的细
以太坊中各种操作都需要支付gas,如存储数据、创建合约以及执行哈希计算等操作发起方在某次操作中愿意支付的最高手续费
6. 以太坊是什么
以太坊(英语:Ethereum)是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether,又称“以太币”)提供去中心化的虚拟机(称为“以太虚拟机”EthereumVirtualMachine)来处理点对点合约。
坊区块链上的代币称为以太币(Ether),代码为ETH,可在许多加密货币的外汇市场上交易,它也是以太坊上用来支付交易手续费和运算服务的媒介。
以太坊的概念首次在2013至2014年间由程序员VitalikButerin,受比特币启发后提出,大意为“下一代加密货币与去中心化应用平台”,在2014年通过ICO众筹得以开始发展。截至2018年2月,以太币是市值第二高的加密货币,仅次于比特币。
(6)以太坊智能合约存储大量数据扩展阅读:
以太坊平台本身没有特点,没有价值性。和编程语言相似,它由企业家和开发者决定其用途。不过很明显,某些应用类型较之其他更能从以太坊的功能中获益。以太坊尤其适合那些在点与点之间自动进行直接交互或者跨网络促进小组协调活动的应用。
例如,协调点对点市场的应用,或是复杂财务合同的自动化。比特币使个体能够不借助金融机构、银行或政府等其他中介来进行货币交换。以太坊的影响可能更为深远。
理论上,任何复杂的金融活动或交易都能在以太坊上用编码自动且可靠地进行。除金融类应用外,任何对信任、安全和持久性要求较高的应用场景——比如资产注册、投票、管理和物联网——都会大规模地受到以太坊平台影响。
7. 智能合约除魅:它能避免俄罗斯违约和“镍逼空”吗
· 《文理两开花》主播 ·
肖小跑: 《羊群的共识》作者,金融行业从业者及连续创业者,播客《墙裂坛》主播,公众号“肖小跑”主理人。
王玮: 数学和计算机学霸,兼通技术与金融。若干年前“all-in”区块链领域,成为区块链行业知名意见领袖之一。
“智能合约”这四个字似乎也是个“模因”了:这是一个在金融 科技 业界、甚至所有和 科技 、数字化相关行业中都会听到的概念——一个“听起来很厉害但并不知道到底是什么”或者“不知道厉害在哪儿”的模因,反正这四个字代表了“ 科技 进步”,都“智能”了还能不厉害么?
但它到底是什么?能做什么?不能做什么?迫切需要智能合约专家用小白和文科生都能听懂的语言来除魅。
正好最近在现实世界的金融市场上,也发生了几件有趣的事:俄罗斯债券违约、还有金属市场上的“镍逼空事件”——所以我们干脆做一个案例分析,现场来看看智能合约到底能不能解决这些现实世界中头疼的问题。
· 本期提纲 ·
1、365度全景式“除魅”智能合约:它到底“智能”在哪儿?是一段代码?一份合同?还是一个机器人?
2、它只能解决虚拟世界的问题,还是也能用于现实世界?
3、俄罗斯债券违约:如果用了智能合约,结果会不同吗?
4、如果主权债放在智能合约上会不同吗?智能合约能解决“信用”问题吗?
5、镍逼空事件和LME“硬分叉”:如果LME采用智能合约来自动执行,结果会不同吗?
6、区块链上的“硬分叉”和现实世界中的“硬分叉”(取消交易)有什么不同?
7、“投票”+“冷静期”的设定能避免“多数人的暴政”吗?
· 文字稿 ·
小跑 02:48
“智能合约”(smart contract)这四个字好像已经变成一个“模因”了。 它是金融 科技 业界、甚至更广泛的跟 科技 、数字化相关的行业,都会听到的一个概念——反正这四个字就代表了 科技 进步、代表智能。
但它依然是一个“听起来很厉害,但不知道到底是什么”,或者“不知道到底厉害在哪儿”的概念。大部分人,包括我在内对它也是一知半解。所以今天请王玮老师用小白和文科生都能听懂的语言,给大家“除魅”一下智能合约。
另外,正好最近现实世界的金融市场上,发生了几件很有意思的事——包括俄罗斯债券违约、镍逼空事件。今天干脆拿这两件事来做一个案例分析, 来看看智能合约到底能不能解决这些现实世界中的头疼问题。
先请王玮老师给大家解释一下: 智能合约它到底“智能”在哪儿?
王玮 04:26
智能合约如今不管在区块链、DeFi、还是未来的web3领域,都是最重要的核心。比特币出来时,大家都说区块链是“分布式账本”;自从以太坊诞生,大家慢慢看到智能合约在web3.0甚至metaverse领域,作用越来越大,重要性也越来越高。
我先从发生在身边的一个小故事说起。我有一位师妹,是大学计算机系教授,去年问了一个问题:区块链我都能理解,但有一个问题没想明白——智能合约到底“智能”在哪儿呢?
之所以这么问,她一定是把“智能合约”理解为“智能代码”了。因为是搞技术的,她一定是跟别的代码比较,默认“智能合约”应该比别的代码更“智能”,才配叫“智能合约”。
我的答案是: 不要把它跟计算机代码相比,而是跟现实世界当中的“合同”相比——它是一段智能的“合同”,而不是智能的“代码”, 就好理解了。把它跟代码比较,有点侮辱“智能”这个词。但跟日常经济活动中签的合同来比,逻辑就比较贴切了。
那跟合同来比,它智能在哪儿呢?
我们日常的合同有几个特征:第一,有签署的双方或多方;第二,它有合同的条款,什么情况下执行什么条件做什么事情;第三,有合同标的物,一手交钱一手交货,合同约定了提供什么商品或者服务,付多少钱;第四,合同大概还有个编号,有个标识记录这是哪份合同,哪年哪月哪日签的,谁跟谁签的等等;第五,要有一个管理手段,签署多方要各持一份,防止某方把条款改掉。这五个特征基本代表了日常执行合同的最基本条件。
从这个角度,智能合约就好理解了。
比如以太坊的智能合约: 第一,它的代码和存储的数据,其实相当于合同条款达到什么条件、怎么自动执行——大家可能都知道智能合约的这个特点。第二,它还能够让“签署双方各执一份”这件事在链上实现,签署双方都能访问到区块链的时候,其实就是都能看到合同副本,而副本不是自己能掌握或篡改的,而是链上存储的。
这就很有意思了:中本聪发明区块链,是为了防止“双花”比特币这种纯数字资产的,结果到了智能合约时代,以太坊一下子赋予了它“帮助合同所有方存储无数副本、保证不被篡改”的神奇能力。区块链是全球化的分布式存储,它能够让世界上任意多的人来共同签署和执行一个合同,而不会让有被篡改的危险——这件事在传统领域做不到。因为技术的限制,你没法让任意无数人同时签署一份合同。
第三,智能合约的每一段代码都有一个对应的“地址”,执行这段代码的入口,这个入口可以理解为合同的编号,唯一的标识。
第四,智能合约本身还能够拥有“其他的财产”。 我们日常的合同只是一张纸,一个附属品,财产仍然在人的掌控之中——合同就算约定了镍的交割,纸怎么能控制镍的移动呢?而智能合约本身却能掌控财产。合同一定要有“标的物”,有“钱”有“货”,这个标的物是可以受到智能合约所控制的,相当于是被它“所拥有”的。在这种情况下,所谓的“自动执行”才有保障,它拥有对资产的全部执行权。
小跑 11:30
相当于司法执法合二为一。
王玮 11:33
对。所以有签订方、有无数可靠的备份、有自动执行能力、有可以找到的地址和入口、还有对于合同标的物的控制权——从这个角度,它确实比普通的合同要“智能”的多。
小跑 12:04
其实特别理解王老师师妹的想法,毕竟都是理科生,大家可能天然会从代码角度来理解。但作为非技术背景的普通人,我反而没有理解的这层障碍。
一看到“智能合约”这四个字,没有代码背景的人,天然就会先把它想象成一个合同,一个不用人来执行的“聪明的合同”。在现实世界中,比如我跟老板签了合同,但是他每个月不给我往账户里发工资,我也没办法。
另外,智能合约建在区块链上,就是说跟我签合同的人,我不用认识也行。我们之前没有做过买卖,没有建立过任何信任关系,其实也能签——因为区块链保证了“人手一份”且不能改。 这有点像我们讨论过的SWIFT——它实现了“信息”和“账户”合二为一;而智能合约是实现了合同的“内容”和“执行”合二为一,一旦建立了,执行就不用太担心了,智能合约会自动给我发工资,不用再信任老板。
可是,仔细再想的话,好像又有点琢磨不透。如果它的执行是自动的,那出了问题该怎么办呢? 我们订立传统合同时,会有后续发展过程中修改条款的情况,或者出现特殊情况导致合同不能按照订立时的条款来执行——如果出了差错,智能合约还是会不管不顾的执行下去吗?
如果真是这样,大家在“签”智能合约,按启动键的一刹那可能就要再想想了——只要一按,后面就没有改的余地了,对吗?
王玮 15:00
先说第一个问题:智能合约最大的价值就是能让世界上相互不认识、或者没有过任何协作关系的人,能立刻签署、执行这个合约,获得结果——这跟区块链的特征是一脉相承的。
很早我们在介绍区块链时,会强调它的一个特征——能让全世界本来没有任何协作关系的人,开始转账交易。中本聪发明的防止“双花”,就是为实现——我们虽然不认识,但我转账给你,你知道这笔转账一定是真实的,而不会出现任何问题。智能合约就继承了这个特点,不会因为咱俩不认识、或者你耍赖而导致合约执行不了。
但如果是这样,签订了合同一定能执行,就意味着它肯定不会变。那我又怎么敢随便签?
这一点倒是要从技术角度看了—— 智能合约是可以“变”的,“变”从技术角度讲,跟一个软件系统的升级没有太大区别。
如果你一定要改变某个条款,就相当于原来的作废,新的合同重签。智能合约也是一样,相当于你把代码升级, 现在是版本1.0,过两天我来了个1.1版,换掉1.0版——我们从现在开始执行1.1版——这是没问题的。但是问题又来了,谁有权利来做这件事呢?如果是合同签订双方都有权利改合同,就没任何意义了,完全实现不了。
智能合约其实相当于在一个“市场”上,合约由一个第三方来创建,然后大家分为甲方乙方丙方,在合约上去签署和执行。
之所以敢签署,是因为我作为甲方,相信乙方丙方丁方改不了这个合约,必须执行。第三方就是合约发布和创建方,它是有权利来升级合约代码的。这样一个机制,有点像建立一个“卖场”, 里边的买卖双方在卖场里签合约,做买卖,但改变不了卖场的规则——只有卖场的构建者有权利来改。这也是一种必要性。
这种必要性会带来什么问题吗?
肯定也有。比如,第三方有“监守自盗”的危险,如果他发现改动合约对自己有利,也可以去篡改合约,导致签订者的损失。就算他不是出于私利,而是想改进合约的执行效率,或者改善条款,但大家是否都同意?
我们常举的例子:一个“借贷”智能合约可以规定一个利率算法,比如说年化5%;如果调整成为年化30%——表面上看,利率是借贷双方互相支付的成本,跟规则制定方的利益没有直接的关系;但也不能因为是中立方,就可以随便瞎改规则, 于是你需要给买卖双方一个“缓冲期”或者“冷静期”,或者一种投票的机制,可以让参与者共同决定。如果接受,投票通过,就可以修改规则。
如果参与者不接受,你还要改的话,那么你给我个冷却期,我要退场。所以最终整个逻辑还是完备的,还是要引入第三方的制约机制。我觉得这一点跟现有金融市场的一些规则也很类似。
小跑 20:42
这就是为什么需要专家解读。如果只看这四个字,会觉得就是个冷冰冰自动执行的代码;但实际上背后还有一系列规则,而且这些规则大部分是可以映射到现实世界的。比如刚才的例子就很像一个“仲裁机制”。
既然如此,我们就在现实世界中找几个案例,分析一下在现实世界中出了问题的、让人挠头的情况,放在智能合约上,结果会不会不同?
我找了两个:一个是俄罗斯违约,一个是镍逼空。
先从俄罗斯开始。俄罗斯其实是个经常违约的国家,它主权债的违约次数是很频繁的:1918年沙皇帝国债券违约,1998年俄罗斯布雷迪债券几乎违约,最近俄乌战争,又把它带进另一个违约危险时期。
3月16号这一天俄罗斯两只美元债,要付1亿多美元的利息;付息前一个礼拜大家就开始担心,因为俄乌已经开打,它到底还有没有能力支付?如果支付用什么币种?用卢布吗?当时已经贬值20%。
结果是没有违约,危机暂时解除了。3月18号俄罗斯财政部已经还了,虽然晚了一天,不过仍然在30天宽限期内。但事情还没完,4月还有20多亿美元的本金偿还。所以到现在为止,会不会发生违约还是一个巨大的问号。
通常一个国家不愿意违约自己的主权债,主要原因是如果违约,市场会以某种方式惩罚你,比如失去信用,被评级机构贬为垃圾债,导致投资者在很长一段时间内不愿意碰,你就很难在市场上找钱。
但是一个国家违约的可能性实在太多了。上个世纪大量主权债的发行,其实都是为了资助战争,一旦战争爆发,肯定是要违约——因为钱都要拿去打仗。俄罗斯现在就是这么个情况,而且更棘手——不管是被动制裁,还是大家主动制裁,显然投资者已经不愿意碰了。俄罗斯基本与世界隔绝,也不能再失去更多信用,因为它几乎已经没有信用了;外汇储备被冻结,就算想还,去哪儿找美元、硬通货呢?
所以在这种情况下,“违约”这两个字究竟意味着什么?
在现实世界中,作为政府的债主,你其实是很难冻结或者强制出售一个国家资产的。这是一个信心加耐心的 游戏 ,如果你有本事在一个足够长的时间内,不停骚扰这个国家的政府,年复一年穷追猛打,就像当年保罗辛格为了追债,干脆把阿根廷的船给劫了。俄罗斯这个战斗民族不一样, 历史 经验表明,即使是最坚决的债权人,俄罗斯人也有足够的能力胜过,以死猪不怕开水烫的心态挡住所有追债。
这次还有个很有意思的地方: 这笔主权债中有一个条款,叫做“pari passu”——“一视同仁”原则。这是一个古老条款,一个多世纪前大家就用在债务合同中。它要求债务人对所有债权人要平等对待,不能厚此薄彼,只要跟其中任一个债主谈妥了,也要给予所有其他债主相同的偿还待遇。
自从保罗辛格利用了这个条款,向阿根廷政府讨债成功,之后大部分国家在发行主权债务时便删除了此条款——防止这些“钉子户”追债时再利用这个条款。
但是俄罗斯这笔债中却没有删除——要么是战斗民族太傲慢,觉得自己永远不会被起诉;要么就是忘了。 尽管如此,条款中关于“未来偿还“的字眼却神奇的消失了——是故意,也许是笔误,反正结果变成了:发行时会遵守“一视同仁”原则,所有债主都一样,但并不意味着“未来”还是一样的。
这个例子告诉我们,债券市场是一个完全由“样本文件”主导的“ & paste”交易,很少有人真的会看多达几百页的条款——但魔鬼也就在这里,人为的“调整”、“违约”空间太多了。
如果债发行在智能合约上,是不是就不会出现这种情况了?
王玮 28:09
这个案例特别有意思。本来还有点担心,因为区块链也好、智能合约也好,其实最不适合迎来解决债的问题。不过听了俄罗斯债务里的很多细节,又有好解决的地方了。
首先,“债务”这个东西,是一个典型的“信用”过程。从本质上,我把金融分为“信用过程”和“计算过程”两个部分。区块链、智能合约、DeFi等等,其实解决的是“计算性过程”的部分,而“债”是典型的“信用过程”。
实际上, “债券违约”这件事是最不适合于用智能合约去解决的。或者说,智能合约、区块链这些技术对于“债券违约”是最无能为力的——因为违约就是个信用丧失的过程, 就算用智能合约来写债务合约,但还债的过程涉及到还债主体,你需要把资产放入智能合约才能执行;不放进来,就执行不了。
这就回到最关键的一点:智能合约能保证自动执行的前提,是合约本身对标的物有“控制权”。但如果我未来才要还的钱——本金甚至是利息都要放在智能合约里,被它所控制,那我现在“借”钱干嘛呢?还得倒贴往里面放点利息。
在DeFi领域里,我们也看到非常多的项目和创业者,试图用智能合约来解决一个债务市场的问题,或者创建信用产品。其实没问题, 因为智能合约背后还可以有一套其他的保障机制,比如投票等等;最终把“信用”部分转化为其他的保障机制,还是有可能的。
信用的“执行部分”不可能转化为代码层面的保障机制,但这不代表智能合约不能对债务市场有所改进。
在俄罗斯债务例子中,它把“一视同仁”条款中的“未来”字眼去掉,这是它的权利,没有办法控制;买债的人一不留神,没注意到改动就买了——这一点其实在智能合约层面可以有所改进。
首先, 智能合约作为代码规则写进来,天然就有“一视同仁”的条款,因为代码是人人都可以执行的。只要有地址,有代码固化在里面,天下人都可以执行,所以默认一定是会“一视同仁”的,你要是想不“一视同仁”,反而要去做很多手脚。
关于“债券市场是一个以模板为基础, & paste的市场”——让我想起了过去几年,很多DeFi智能合约领域的“微创新”,也是把某些智能合约的代码全盘拷贝过来,然后改上两三个字。
但是你会发现在这种情况下,智能合约反而有价值了。为什么呢?
因为智能合约是精确的代码。一个审计机构是可以轻而易举找到改动之处的。几行代码的不同,意味着结果有什么差别,是可以精确推导和判断出来的。而在传统市场,因为自然语言是不精确的,就算让律师去审,我们也不知道这几句话改动的背后,是不是还隐含其他含义?或者导致什么意想不到的后果。
智能合约的审计机构是整个生态中非常重要的一方。这些机构往往是一些智能合约开发高手,或者白帽子黑客。他们的作用很像现实世界中的律师事务所,专门负责去审合同、审合约代码。
所以总结一下:智能合约不能解决债务的所有问题,但是它在债务的执行、和条款分析层面,仍有很大的作用。
小跑 35:47
所以我现在觉得可能俄罗斯这个案例,甚至整个主权债放在智能合约上,可能不太现实。因为对于本来就有意“不执行”的一方,可能根本不会签了。
这就引出了第二个案例:前些时候闹得沸沸扬扬的镍逼仓事件。
大概复盘一下:三八妇女节那天,市场上演了一个 历史 性的事件,我们在LME(伦敦金属交易所)市场上见证了史诗级的空头挤压。镍价创了有史以来最极端的价格波动,3月7日暴涨76%,达到每吨5万多美元;紧接着第二天突破一吨10万美元的关口。
这是一个明显的逼空。被逼仓的是青山——全球最大的镍生产商,在俄乌战争之前押错了方向。15万吨的镍空头头寸,其中5万吨是和摩根大通的OTC(场外)头寸;也就是说此刻青山已经欠JP大概10亿美金的保证金。
对于OTC的场外交易,其实大家还是有商量余地的,如果极端情况发生,各方会首先场外协商解决方法。这一次爆仓后,青山的经济上先向交易所垫付了保证金,不然清算会出现巨大问题。谈判的结果空头头寸先保留,之后LME“创造了 历史 ”,取消了交易,并且把镍的交易一直停到3月中旬。
从那一刻起,从全球市场的角度,LME的“信用”和“中立性”就出现了巨大的问号——突如其来的停牌影响了几千笔的交易,市场上其他参与方损失巨大。
这个案例,智能合约有可能在哪些环节会发生一些作用呢?
王玮 42:10
其实刚才在介绍智能合约的时候也提到了:我们确实可以“干预”智能合约,它并不是真的100%不能变。
从这个角度讲,LME的这种干预也可以算是“干预”的一种情况。但这里确实有一些问题:第一,智能合约的“干预”,必须要通过“有权限的人”去升级代码;或者直接去修改智能合约当中的参数来实现。这跟一个中心化的体系把交易“回滚”、“取消”还是有区别的。
智能合约的干预,不管是代码升级还是参数调整,它也只能是“向后干预”,改未来的规则,不能倒退回过去的某个阶段——区块链是不支持这种干预方式的。
当然,并不是说“向后干预”完全不能出现。举个例子,大家可能都听说过以太坊的DAO攻击事件, 为此以太坊发生了“硬分叉”——这确确实实是“回滚”,在以太坊的 历史 上就发生过这么一次。但是这次“回滚”的结果,是同时产生了ETC和ETH这两条链。
所以,在“计算性”的体系下,就算想要“回滚”,也不是100%的滚,因为仍然有人可以选择去执行那些没有被你“回滚”的合约。
但这在现实世界中没办法发生。 因为不可能有另一个平行世界的人,选择继续去成交被逼空的那些单,因为交易所只有一家,回滚就是回滚了,不会硬分叉出来两个交易所。
现实世界无法分叉,无法分叉出两个青山、两个俄罗斯、一吨镍变成二吨——两个平行世界中各一吨。这是物理世界决定的。所以智能合约、区块链这套体系,只能针对“纯数字资产”才有所谓的“保障执行”能力。
那LME这种“停止交易”、“取消交易”的情况,在智能合约领域能不能做到?
客观的说,也可以做到。一般可以通过两个手段: 第一个是投票。相当于LME的股东集体来投票,投票结果决定是否允许回滚,投票不通过就不能改。 这就是为什么现在的加密领域会推行“token economics”(通证经济学)体系,这是一套类似于股权的模型,投票结果可以绑定智能合约,自动执行结果。
第二,投票意味着什么?数字世界里的投票,是个“刚性”的结果——51%的人同意就改,但这不会引起“多数人的暴政”吗?49%的人不同意,也只能接受吗?投票不能解决问题怎么办?
答案是设定 “冷静期”或者“过渡期”——几天、几小时都可以。就算投票通过,也只能冷静期之后才能执行。不想玩的,就在这段时间内从系统里退出。改规则没有问题,但要给我离开的自由——这是最基本的自由了。
LME的做法,就是典型的“中心化”系统的弊端——就算要改规则,第一能不能让大家投个票?受到规则影响的人,起码要给一个发言的机会。第二,就算投票通过,也要给一些时间之后再改。
如果用智能合约来实现,并且遵守刚才的那套治理规则,它的信用程度肯定更高。所以从这个角度讲,智能合约在维护一个公平高效、更高信任的市场规则,是会有比较大用途的。
小跑 50:51
是的。虚拟世界中的一些机制也可以用到现实世界。 但是这些投票、冷静期等等规则有多大可实施性呢?
比如多数人的暴政。如果大家突然意识到有“多数人暴政”的可能性,比如我仇富,反正大家都是市场的韭菜,我们以数量取胜,联合起来投票,把大户账户里的钱全都转到我们账户来——如果真的按投票结果来自动执行,不是相当于“合理抢劫”吗?
但是如果设了冷静期,15天之后再正式“执行打劫”,大户肯定会离开,总不能等着被打劫。可是大户都已经离开了,我15天之后还打劫谁呢?整个 游戏 就没有存在的意义了?
王玮 52:17
这就是区块链和加密货币的一个核心理念——就是你的行为要有经济上的合理性。
如果小散这么做,就是损人不利己。不仅没有得到钱,唯一的结果是毁灭了这个平台的价值、信用。在这种情况下,你会发现小散也没有那么傻,他们知道自己投这个票是没有意义的。
这就回到中本聪写比特币白皮书中提到的,你可以51%的算力攻击,把比特币全拿到自己手里,但是比特币也因此归零了——你买的那些机器成本也回不来了,这对你有什么好处呢?
所以某种意义上, “经济模型”是区块链领域最核心的“模因”。我们维护的这套经济模型的合理性,导致攻击是没有意义、不合理的。
小跑 54:11
我现在觉得其实任何规则和机制,虽然看起来像是补救措施, 但实际上它发挥最大作用的时间——还是在事情发生之前。
大家的行为会在博弈影响下,自动找到一个最理性、“守规矩才能价值最大化”的结果来走。也就是说好的事前设计,会导致一个理性的结果。
王玮 55:13
智能合约和区块链最核心的价值,其实是“维护规则的有效性”。更适用于平台经济、或者双边市场的逻辑。 区块链和智能合约的创造者,是规则的制定者和维护者,本身并不一定是参与方。而参与方是世界上互不认识的人,共同参与 游戏 。
如果两个人认识、签一个合同、互换了合同文本、以及后续都有意愿保障执行——那这个场景下,智能合约没有太大意义。
小跑 56:55
非常同意。大家可能有各种通关升级办法,但是整个 游戏 规则大框架是可以用智能合约改进的。
— End —
播客《文理两开花》
8. etg是什么意思
Ethereum Gold(简称ETG)是在以太坊平台上发行的一种加密货币代币。今日ETG币的价格为$ 0.00131989,24小时交易量为$ 0.923301。在过去的24小时内,价格下跌了-40.8%。它的循环供应量为1400万枚硬币,最大供应量为2400万枚硬币。ETG币在2个交易所上市,共有3个活跃市场,交易ETG币的最活跃交易所是STEX。ETG币的市值为$ 24 772.00,在所有加密货币中排名第1665。在诸如etherscan.io,ethplorer.io和enjinx.io之类的区块浏览器上浏览Ethereum Gold的地址和交易。
CoinExchange交易所:https://www.coinexchange.io/
ethereum gold简称ETG,etg币通过一流的技术和金融专业人员,ethereumgold是一个非营利组织,将人们与低成本金融服务联系起来,以消除贫困并发挥个人潜能。ethereum gold是一种以太复刻品,它将有24,000,000 etg的总供应量。
ETHEREUM GOLD是ETHEREUM智能合约管理的新生态系统,采用区块链技术使用GOLD的价值。
以太坊是目前为止最引人注目的智能合约框架,因为它是专门为支持智能合约的使用创建的。用Solidity语言编程,以太坊智能合约框架有助于促进去中心化网络,便于用智能合约处理交易。
补充资料:
Pulley swap是建立在以太坊智能合约上的一项全球共享ETH海星体矩阵裂变计划,由一群网络技术极客和区块链社区爱好者共同开发打造,没有项目方,没有管理者幕后操控,所有数据链上存储。系统只需智能合约及算法部署完毕,便能自行运营,所有的交易都在链上进行,100%开源,100%公正,不受任何或第三方管控,所有ETH矩阵裂变100%获利。
Pulley swap建立在以太坊智能合约上的最突出的特点就是在该网络系统中所有合约都是不可违约,更不可伪造的,合约一旦生效,就会达成永久的共识机制。从某种角度来看,也是解决了互联网时代的信任危机,通过这种带有强制性执行的方式,让所有合约自动生效,不再需要律师来维权,也不再需要中心化机构来处理各种复杂的问题。
9. 美国上市公司由第三方审计作为公司状况的顾问是否具有可借鉴性
第三方审计 工作是由具备资质的会计师所进行审计,那么所谓的第三方,就是中立的一方,注册会计师正好具备这个特点。因为 第三方具有中立的特点 ,所以在对上市公司做审计工作的同时可以做到公平、公正、公开,不偏袒任何方面。可以最大程度的做到就事论事,以提高投资者对审计报告的认可度。
对于美国上市公司来说, 有效的财务会计报告内部控制对公司管理及其事务,尽到对其投资者的责任,有至关重要的作用。 公司管理当局、公司所有者、投资公众和其他相关方都需依赖公司承保的财务信息来制定决策。那么需要做到这些,自己来审计自己,显然是做不到足够的公平公正与公开,也不可能得到各方面的对报告的认可。 所以把这些交给具有中立性的第三方来做是最合适的事情。
那么 审计的独立性 ,就是说注册会计师不受那些削弱或总是有合理的估计,仍会削弱注册会计师做出无偏审计决策能力的压力及其他因素的影响。这对审计工作来说,至关重要,因为涉及到市场经济的,利益公平,独立性。这个独立性,也应当保持形式上的独立和实质上的独立,也就是说注册会计师与被审计单位或个人没有任何直接或间接的利益关系。不受到个人或外界因素的约束,影响和干扰,保持客观且无私的精神及工作态度。
而第三方审计,在我国也是非常有必要的。我们不仅是借鉴,而且也正在使用第三方审计的工作。而且 我国有明确的法律规定,上市公司的年度报告必须要经过第三方的审计。 这么做也是为了能够让上市公司的审计报告能够更加的客观,公平,公正,公开,做到不掺杂任何利益关系和个人 情感 关系。
全球第三大审计机构certik为众多知名项目保驾护航
据统计,2018年全球区块链130领域93706165发生近百起安全事件,损失超20亿美元,相较于2017年增长了538%。比特币的底层技术“区块链”面临着来自数据层、网络层、共识层、激励层、合约层、应用层的安全风险,安全攻击方式层出不穷,防不胜防。安全攻击主要发生在应用层,其中智能合约是区块链安全的重灾区。
而且还发生了很多的安全事件,影响较大的例如MtGox事件,MtGox是当时全球最大比特币交易平台,处理的比特币交易占全球70%。2014年,MtGox遭遇了最严重的黑客攻击,随后MtGox宣布暂停交易,理由是其安全软件存在漏洞。两周后,网站突然关闭,MtGox申请破产。
据MtGox估计,公司的比特币投资损失约合4.8亿美元,其中包括客户的75万单位比特币和公司自己持有的10万单位,合计约占全球比特币发行量的7%。此次事件导致投资者信心受挫,比特币直接暴跌36%。
还有非常多别的项目同样受到巨大的损失,仔细研究不难发现:在区块链的安全事件中,大多都是由于源代码存在漏洞而使黑客趁虚而入。智能合约受到区块链本身保护,所以智能合约代码可以最大限度的开源和让人阅读。但是代码的公开性使得黑客容易掌握代码的缺陷,进一步利用代码缺陷触发条件改变智能合约执行结果,使得区块链项目存在巨大的经济隐患。所以智能合约代码的开源性需要代码的高可靠性,这种可靠性要求100%的正确。
但是,对于程序员来说,写一个完全没有漏洞的代码实在是太难了,即使采取了所有可能的预防措施,在复杂的软件中也总会出现没有预料到的漏洞。所以,代码审计的重要性不言而喻。
通过代码审计,检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。
目前已经服务的有交易所、钱包、公链和智能合约等代码审计,为区块链行业保驾护航,合作的慢雾 科技 ,Certik等全球知名审计公司,我们有着优质的服务满足客户的需求,欢迎合作伙伴合作交流,共同探讨!
发生过的案例:
一、区块链代码审计可以解决哪些问题:让黑客无孔可入
随着BTC、ETH、EOS等区块链项目的迅速发展,区块链项目已经进入了智能合约时代,但是智能合约自身的正确性和安全性却面临着巨大的问题。
也就是说任何一个项目在使用区块链时都有可能走向歧途,不能完全保证代码的准确性。就像每个人在电脑打字时都会打错字一样,程序员在输入代码时也会存在笔误和错漏。
而区块链中的基础:智能合约代码的开源性需要代码的高可靠性,这种可靠性要求100%的正确。
差之毫厘,谬以千里。
用专业的术语来说:
类似比特币这样的代码全部公开,用智能合约代码存储在区块链上,与交易数据一样受到区块链的加密保护,要想修改智能合约代码需要掌握51%的算力,因此,智能合约代码的防篡改性得到大大提升。
智能合约受到区块链本身保护,所以智能合约代码可以最大限度的开源和让人阅读。智能合约解决了可以公开代码并保障其安全的问题,但是代码的公开性使得黑客容易掌握代码的缺陷,进一步利用代码缺陷触发条件改变智能合约执行结果,使得区块链项目存在巨大的经济隐患。
就像,我们在银行里转账,每一个账户的信息都是对的,转账才能够是正确的,你的财产才可以安全被保护,所以:区块链代码中一个字都不能错。
二、区块链代码错误导致的严重后果
区块链中的智能合约代码质量不好造成了许多严重的后果。
目前来看,许多交易所和代币项目在上交易所之前没有经过区块链代码审计,造成了许多虚拟货币被盗窃的黑客事件。
1、SMT项目方与美国BEC代币的安全漏洞
2018年4月25日凌晨,SmartMesh(SMT)项目方反馈发现其交易存在异常问题,经初步排查,SMT的以太坊智能合约存在漏洞。受此影响,火币Pro目前暂停所有币种的充提币业务。
另据媒体报道,发现SMT与美图BEC代币存类似的安全漏洞,即可通过溢出攻击可以收到大量的代币。
2、美图BEC的异常交易漏洞
2018年4月22日,美图BEC出现异常交易,据分析,BEC 智能合约中的batchTransfer批量转账函数存在漏洞,攻击者可传入很大的value数值,使cnt * value后超过unit256的最大值使其溢出导致amount变为0。
3、Parity多签名钱包漏洞
2017年7月,Parity多签名钱包由于其智能合约代码中存在漏洞,被黑客盗取时价超过3000万美金的ETH。
4、黑客盗币漏洞
2016年6月由于智能合约的一个错误,黑客从DAO偷走了价值5500万美元的ETH。
代码的安全缺陷倒逼智能合约的代码自动审计。
三、区块链代码审计成就完美合约
区块链智能合约通过代码建立一套“法律合同”,软件工程师创造一个完全无误差的代码是不可能的,程序员总存在疏忽的地方。红岸 科技 和国防 科技 大学的Ulord区块链项目研究团队对市面上的区块链智能合约进行了审计,他们的研究发现:
对所有的程序员来说,写一个没有bug的代码实在是太难了,即使采取了所有可能的预防措施,在复杂的软件中也总会出现没有预料到的执行路径或可能的漏洞。
这是为什么要代码审计最重要的原因之一。
区块链中的 “法律合同”是一项受解释和仲裁的约束,程序员很难去创造一个缜密的合约。在任意一个大的合约里,可能出现的文稿错误以及一些条款需要解释和仲裁。
同时,软件工程师不是法律专家,反之亦然。起草一份好的合约需要各种各样的技能,不一定与编写的计算机程序兼容。
因此,智能合约代码在一定程度上都可能存在安全隐患。传统的智能合约代码审计主要利用人工,依靠code reviewer阅读智能合约代码。人工代码审计最终还是依赖人的经验,代码审计效果不明显,针对目前ETH大量代币的智能合约,人工审计工作量大,难以高效的完成工作。
在区块链领域从事代码审计业务的项目公司较少,目前每个代币在上交易所之前,其区块链智能合约代码由交易所进行审察和判定,但交易所有时并不能完全有效地判断合约是否完美。
智能化代码审计,利用计算机进行稳健性检验是当前代码审计最重要的方式,掌握该项技术标准的国内公司并不多。
但,区块链代码审计的重要性不言而喻,区块链世界本身是相当安全的,但是由于人为撰写代码的问题,不可能完美,必须加强代码有效性的识别。
10. 以太坊的智能合约是什么意思
以太坊智能合约是指,部署在以太坊上的智能合约,是一段程序,运行在以太坊的虚拟机EVM中,程序可以按照事先约定的某种规则自动执行操作,执行合约的条款。
同时,智能合约对接收到的信息进行反应,它既可以接收和储存价值,也可以向外发送信息和价值。
介绍
以太坊创始人V神指出过,以太坊智能合约中的“‘合约’不应被理解为需要执行或遵守的东西,而应看成是存在于以太坊执行环境中的‘自治代理’(autonomous agents),它拥有自己的以太坊账户,它们收到交易信息后就相当于被捅了一下,然后自动执行一段代码。”
智能合约可以调用其它的智能合约,这就是开启创立自治代理的能力,代理可以自己进行交易。在区块链上,我们存储的信息都是“状态”,而智能合约就是它用于状态转换的方式。