本篇文章主要给网友们分享余额证明区块链的知识,其中更加会对区块链存证进行更多的解释,如果能碰巧解决你现在面临的问题,记得关注本站!
区块链技术
背景:比特币诞生之后,发现该技术很先进,才发现了区块链技术。比特币和区块链技术同时被发现。
1.1 比特币诞生的目的:
①货币交易就有记录,即账本;
②中心化机构记账弊端——可篡改;易超发
比特币解决第一个问题:防篡改——hash函数
1.2 hash函数(加密方式)
①作用:将任意长度的字符串,转换成固定长度(sha256)的输出。输出也被称为hash值。
②特点:很难找到两个不同的x和y,使得h(x)=h(y)。
③应用:md5文件加密
1.3 区块链
①定义
区块:将总账本拆分成区块存储
区块链:在每个区块上,增加区块头。其中记录父区块的hash值。通过每个区块存储父区块的hash值,将所有的区块按照顺序连接起来,形成区块链。
②区块链如何防止交易记录被篡改
形成区块链后,篡改任一交易,会导致该交易区块hash值和其子区块中不同,发现篡改。
即使继续篡改子区块头中hash值,会导致子区块hash值和孙区块中不同,发现篡改。
1.4 区块链本质
①比特币和区块链本质:一个人人可见的大账本,只记录交易。
②核心技术:通过密码学hash函数+数据结构,保证账本记录不可篡改。
③核心功能:创造信任。法币依靠政府公信力,比特币依靠技术。
1.5如何交易
①进行交易,需要有账号和密码,对应公钥和私钥
私钥:一串256位的二进制数字,获取不需要申请,甚至不需要电脑,自己抛硬币256次就生成了私钥
地址由私钥转化而成。地址不能反推私钥。
地址即身份,代表了在比特币世界的ID。
一个地址产生之后,只有进入区块链账本,才能被大家知道。
②数字签名技术
签名函数sign(张三的私钥,转账信息:张三转10元给李四) = 本次转账签名
验证韩式verify(张三的地址,转账信息:张三转10元给李四,本次转账签名) = True
张三通过签名函数sign(),使用自己的私钥对本次交易进行签名。
任何人可以通过验证韩式vertify(),来验证此次签名是否有由持有张三私钥的张三本人发出。是返回true,反之为false。
sign()和verify()由密码学保证不被破解。·
③完成交易
张三将转账信息和签名在全网供内部。在账户有余额的前提下,验证签名是true后,即会记录到区块链账本中。一旦记录,张三的账户减少10元,李四增加10元。
支持一对一,一对多,多对已,多对多的交易方式。
比特币世界中,私钥就是一切!!!
1.6中心化记账
①中心化记账优点:
a.不管哪个中心记账,都不用太担心
b.中心化记账,效率高
②中心化记账缺点:
a 拒绝服务攻击
b 厌倦后停止服务
c 中心机构易被攻击。比如破坏服务器、网络,监守自盗、法律终止、政府干预等
历史 上所有有中心化机构的机密货币尝试都失败了。
比特币解决第二个问题:如何去中心化
1.7 去中心化记账
①去中心化:人人都可以记账。每个人都可以保留完整的账本。
任何人都可以下载开源程序,参与P2P网络,监听全世界发送的交易,成为记账节点,参与记账。
②去中心化记账流程
某人发起一笔交易后,向全网广播。
每个记账节点,持续监听、持续全网交易。收到一笔新交易,验证准确性后,将其放入交易池并继续向其它节点传播。
因为网络传播,同一时间不同记账节点的交一次不一定相同。
每隔10分钟,从所有记账节点当中,按照某种方式抽取1名,将其交易池作为下一个区块,并向全网广播。
其它节点根据最新的区块中的交易,删除自己交易池中已经被记录的交易,继续记账,等待下一次被选中。
③去中心化记账特点
每隔10分钟产生一个区块,但不是所有在这10分钟之内的交易都能记录。
获得记账权的记账节点,将得到50个比特币的奖励。每21万个区块(约4年)后,奖励减半。总量约2100万枚,预计2040年开采完。
记录一个区块的奖励,也是比特币唯一的发行方式。
④如何分配记账权:POW(proof of work) 方式
记账几点通过计算一下数学题,来争夺记账权。
找到某随即数,使得一下不等式成立:
除了从0开始遍历随机数碰运气之外,没有其它解法,解题的过程,又叫做挖矿。
谁先解对,谁就得到记账权。
某记账节点率先找到解,即向全网公布。其他节点验证无误之后,在新区块之后重新开始新一轮的计算。这个方式被称为POW。
⑤难度调整
每个区块产生的时间并不是正好10分钟
随着比特币发展,全网算力不算提升。
为了应对算力的变化,每隔2016个区块(大约2周),会加大或者减少难度,使得每个区块产生的平均时间是10分钟。
#欧易OKEx# #比特币[超话]# #数字货币#
UXTO与余额
区块链入门从使用钱包开始余额证明区块链,我们最关注的是钱包的账户余额。可看过很多区块链资料以后余额证明区块链,一直存在一个疑问,钱包的余额信息存在区块链的什么位置余额证明区块链?一直没有找到,只有一个相近的概念叫UTXO(Unspent Transaction Output),但看完以后还是对应不上。直到翻遍网上所有关于UXTO的资料,才知道在中本聪设计的比特币系统中,并没有余额这个概念,“比特币余额”是由比特币等钱包应用派生出来的产物。钱包的余额是通过与账户相关的多个UXTO算出来的。下面且听我详细道来。
余额证明区块链了解过一点点会计学,我们现在的会计系统绝大部分采用的是一种叫做“借贷记账法”的方法,账目分成借方和贷方,每发生一笔业务都要登记两个以上的科目。
简单来说,Alice转账给Bob 1美元,使用借贷记账法至少要产生两条账目,Alice账户减少1美元,Bob账户增加1美元。这种记账法在企业经营、企业审计中有无数的好处。但是这种记账法也有一个最大的缺点,就是容易产生记账错误和记账误差。一笔交易需要登记两条以上的账目,本质上记录的是“交易的结果”,而不是“交易本身”。
中本聪发明了UTXO(Unspent Transaction Output)交易模型,并将其应用到比特币当中。UTXO是“未花费的交易输出”,简单来说就是,每一笔比特币交易实际上都是由若干个交易输入和输出组成的。交易输入是资金来源,交易输出是资金去向,每一笔交易都要从交易输入中花费出去一部分,这一部分就是未花费的交易输出(UTXO)。每一次的交易输入都可以追溯到之前的UTXO,直至最初的挖矿所得。
由挖矿所得创建的比特币交易,是每个区块中的首个交易,又称之为coinbase交易,它由矿工创建,没有上一笔交易输出。
在比特币交易中 UTXO 就是基本单位,一个UTXO一旦被创建就不可被继续分割,它只能当作是下一笔交易的输入被花费掉,花费后产生新的UTXO,这样周而复始地实现货币的价值转移。所以我们在比特币钱包中所看到的账户余额,实际上是钱包通过扫描区块链并聚合所有属于该用户的UTXO计算得来的。
因此,当我们在说某人拥有1枚比特币的时候,我们实际上说的是,在当前的区块链记录中,有若干笔交易的 UTXO 收款地址写的是这个人的钱包地址,这些UTXO的总和是1个比特币。
比特币的UXTO系统遵守两个规则余额证明区块链:
我们以以太账户为例,打开 etherscan.io ,选择BLOCKCHAIN-All Accounts,这样可以看到所有地址与余额,可以选择其中一个查看详细信息。如果看不懂, 没关系,把自己的以太地址输入到右上角的搜索框回车后,会显示地址的余额和详细交易记录,如下图。
至此,我能理解李笑来老师说为什么他的账户没有余额,只有UXTO了,O(∩_∩)O哈哈~,内行人不要说外行话嘛。
区块链最成功的衍生品是什么?
在区块链领域,对于“扩容”一直是争议不断的。
为什么要有“扩容”这个事情呢?这是因为,比特币的区块容量太小,导致比特币系统处理交易速度过慢。于是,比特币社区提出一种设想:通过扩展比特币区块容量这种方式来提升比特币处理交易的速度......后来,以太坊也提出了一些扩容手段。
下面我们将用通俗的语言,为大家介绍一下“扩容”的两种主要方式:链上扩容和链下扩容,以及其中具体的技术手段。
一、链上扩容:隔离见证、分片技术
链上扩容意味着要直接在区块链主链系统上动手术,去修改区块链主链系统的基础规则、区块大小、共识机制等等,以此来扩大区块容量。说白了,就是把主链这个系统的道路修的更宽一点。
链上扩容的主要方式有两种方式:隔离见证和分片技术,下面我们分别介绍一下。
(一)隔离见证
隔离见证是对于比特币来讲的,它可以看作是比特币系统的一次重要升级,这次升级涉及到比特币共识规则和网络协议,相当于在比特币系统上“动刀子”,所以我们说,隔离见证属于链上扩容。
隔离见证是如何实现链上扩容的呢?我们还需要从比特币的交易验证说起。在隔离见证提出之前,比特币的交易验证主要依赖两部分数据:一部分是交易状态,简单来讲就是谁给谁转多少钱;另一部分是见证数据,简单来讲就是证明这次交易是真实合法的。
隔离见证,就相当于把这部分“见证数据”从基本结构里拿出来,放在一个新的数据结构当中,但却不破坏数据的完整性。
我们举一个通俗的例子,假如你有10本书,你把每本书横着放在桌子在,那么可能放完这10本书,你的桌子就被铺满了;但是你把每本书立着放,那么你的桌子还会有很多的空余空间,而书还是那十本书,没有多也没有少。这就是隔离见证,简而言之就是:通过改变区块数据结构来释放区块容量。
(二)分片
分片技术是以太坊率先提出来的。分片是一种基于数据库分成若干片段的传统概念扩容技术,它将数据库分割成多个碎片,并将这些碎片放置在不同的服务器上。
这就意味着,在区块链底层公链的系统内,网络上的交易将被分成不同的碎片,我们可以理解成“分组”。这样一来,一笔交易就不必发动全网所有节点都去处理,只要让网络中的一部分节点(矿工)处理就好了。
基于分片技术,将网络分割为碎片会使得更多的交易同时被处理和验证,而且,随着网络的增长,区块链处理越来越多的交易将成为可能。
大概的意思就是:如果有一个很大的仓库,里面放了很多货物,但是这个仓库只有一个出入口,所以在取货存货的时候,效率就会低很多。但是如果把这个大仓库改用成10 个较小的仓库,那么同时存货取货的效率就会高10倍。
这个过程就相当于分片。简而言之就是:通过分而治之,提升处理交易效率。
二、链下扩容:闪电网络、雷电网络
链下扩容意味着不需要修改比特币区块链系统的代码就能够提升交易速度。采用链下扩容,交易都在链下处理,根本不需要对比特币区块链系统做什么大的改动,因为我们压根儿就不走这条路。
链下扩容主要有两种方式:闪电网络和雷电网络。
其实二者的原理差不多,只不过,二者最主要的不同就是:闪电网络针对的是比特币链下扩容,而雷电网络针对的是以太坊链下扩容。
下面我们分别介绍一下。
(一)闪电网络
“闪电网络”是针对比特币处理交易速度过慢提出的一种“链下扩容”对策。
闪电网络通过引入支付通道手段(支付通道我们可以理解成一个智能合约)来实现比特币快速转账。
这个“支付通道”相当于在比特币系统的主网之外,再构建一个点对点的网络,不过,为了保证信任,两个人在建立支付通道之前需要先抵押一部分资产。这样一来,小额交易都放在链下这个“支付通道”来处理,不仅省去了链上处理交易的手续费,还节省了处理时间,因为在链下处理交易,根本不需要占用区块内存,也不需要共识机制来记账。
所以,闪电网络的原理,我们可以理解为:先把一些资金汇集在一起,建立支付通道,然后按照事先约定的方式,把资金池里面的所有权进行承诺转让(先不付钱,先做承诺转让)。如果两个人频繁交易,就一直保持这个状态(支付通达打开的状态),如果两个人决定停止交易,就关闭支付通道,结算清楚,这一步才会被记录到主链上。
所以,闪电网络 ,总结来讲,就是:不是每做一次交易就要走一次区块链网络,而是经过了好几次交易之后,才走一次区块链网络。这样一来,就能够“摆脱”区块链的束缚,极大提升交易速度,实现闪电般的处理速度。
这个原理就相当于我们日常生活中打扑克、打麻将,我们不是每一局都结算一下谁赢
谁输,而是先把钱压在桌子上证明我有钱我输得起,然后打好几局之后,再一起结算输赢。
(二)雷电网络
再说说雷电网络。雷电网络和闪电网络的原理几乎是一样的,只不过,雷电网络是以太坊提出的链下扩容方式。
雷电网络也需要建立支付通道, 在建立支付通道之前也需要做资产抵押生成余额证明,来证明我有钱我输得起,这一步就好比打扑克时候在桌子上先押一些钱。
之后,在交易双方都持有余额证明的情况下,双方可通过支付通道在链下进行无限制次数的转账。只有在完成链下交易,需要将资产转回链上时,才会在以太坊主链上登记主链账户的余额变化信息,而这期间不管发生多少次交易,在主链上是不会有记录的(原理和闪电网络非常相似)。
总结一下,今天我们为大家介绍了区块链的衍生技术——扩容,扩容分成链上扩容和链下扩容,从这个角度上讲,隔离见证和分片属于链上扩容,而闪电网络和雷电网络则属于链下扩容;
而如果从币种的角度来讲,隔离见证和闪电网络属于比特币的扩容方式,而分片和雷电网络则属于以太坊的扩容方式。
区块链的"区块"是何含义?
“区块链余额证明区块链,就相当于这个账本,区块就相当于这个账本的一页,区块中所承载的信息,就是这一页上记载的交易内容。区块链是一块一块的,每一块写满了交易记录,连在一起成了一条链就是区块链。”
以比特币为例,大约每十分钟就行一次「算力竞赛」来竞争这个记账的权利。就好比说,余额证明区块链你的算力牛逼,算得多,就像肌肉更结实,更会打,大家都服你,让你来记这个帐,即向区块链这个总账本写入一个区块(注意不是区块里的内容)的权利。不过需要说明的一点是,计算能力只能决定赢得竞争的概率。就好比说,一共有若干张彩票,算力多的可以买更多张提高中奖概率,然而买得多的人,也不一定最后就中奖了
区块链即为一个个用这样的计算力保障的数据块链条。从第一块开始,每一个区块依照一定规则收集数据,然后将这些数据附上一个值,使得形成的数据块经过类似的单向函数计算后的结果落到一定范围内。通过估算全网的算力以及控制结果范围的大小,来保障符合要求数据块在足够长的时间内才能被找到。这个计算结果会被下一个区块包含,而这样形成的链式数据结构则称为区块链。
每一个小账本被称为区块,每一个不同的区块链协议(产生不同的加密货币)都会规定每一个区块的大小(最初比特币为1M)账本组成区块,区块构成链表,区块的头包含前一块的哈希值,这就是区块链。如此一来,任何人就不能随意修改其中的内容,或者交换顺序。如果你这么做,意味着你需要重新计算所有的特殊数字。
规定,允许世界上的每一个人建造区块。每一个新建区块的人(找到了这个特殊数字 - SHA256值有30个零)都能获得奖励,对于新建区块的这部分人(矿工)来说:
1.没有发送者信息,不需要签名
2.每一个新区块都会给整个币种增加新的虚拟(加密)货币
3.新建区块的过程又被称为“挖矿”:需要大量工作量并且可以向整个经济体注入新的货币
4.挖矿的工作是:接受交易信息,建造区块,把区块广播出去,然后得到新的钱作为奖励
对每个矿工来说,每个区块就像一个小彩票,所有人都在拼命快速猜数字,直到有一个幸运儿找到了一个特殊数字,使得整个区块的哈希值开头有许多个零,就能得到奖励。我记得有一个知乎答主给了一个形象的比喻,区块链就像一个拥有貌美如花女儿(区块)的国王,有很多的青年翘首以盼,而国王的方法是出了一道很难得题目让所有的青年计算(学习改变人生),谁算的快(在计算哈希值过程也可能是运气好)就能抱得美人归
对于想用这个系统来收付款的用户来说,他们不需要收听所有的交易,而只要收听矿工们广播出来的区块,然后更新到自己保存的区块链中就可以了
“区块”也可以想象为一个盒子,区块里放着一些数字货币以及一张小纸条,小纸条上记录了这十分钟内产生的那唯一一笔交易信息, 比如说——“小A转账给了小B100元”余额证明区块链;当然,这段信息肯定是被加密处理过的,为的就是保证只有小A和小B(通过他们手上的钥匙)才有能力解读里面真正的内容。
这个神奇的区块被创造出来之后,很快被埋在了地底下,至于埋在哪里?没有一个人不知道,需要所有计算机节点一起参与进来掘地三尺后才有可能找到(找到一个有效的工作量证明)。显然,这是一件工作量巨大、成果随机的事件。但是呢,对于计算机节点来说,一旦从地底下挖出这个区块,他将获得区块内价值不菲的数字货币,以及“小A转账给了小B100元”过程中小A所支付的小费。同时,对于这个节点来说,也只有他才有权利真正记录小纸条里的内容,这是一份荣耀,而其他节点相当于只能使用它的复制品,一个已经没有数字货币加持的副本。当然这个神奇的区块还有一些其他很特别的地方,
可以将计算机节点从地底下挖出区块的过程叫做「挖矿」,刚才说了,这是一件工作量巨大、运气成分较多、但收益丰厚的事儿。来自中国上海浦东新区张衡路上的一个节点突然跳出来很兴奋的说:“ 我挖到区块了!里面的小纸条都是有效的!奖励归我!” 。虽然此刻张衡路节点已经拿到了数字货币,但对于其他计算机节点来说,因为这里面还涉及到其他一些利益瓜葛,他们不会选择默认相信张衡路节点所说的话;基于陌生节点彼此不信任的原则,他们拿过张衡路节点所谓挖到的区块(副本),开始校验区块内的小纸条信息是否真实有效等等。在区块链世界里,节点们正是通过校验小纸条信息的准确性,或间接或直接判断成功挖出区块的节点是否撒谎。(如何定义小纸条信息真实有效,后面会讲解,这里暂不做赘述)。在校验过程中,各个节点们会直接通过下面两个行为表达自己对张衡路节点的认同(准确无误)和态度:停止已经进行了一半甚至80%的挖矿进程;将张衡路节点成功挖出的区块(副本)追加到自己区块链的末尾。你可以稍微有点困惑:停止可能已经执行了80%的挖矿行为,那之前80%的工作不是就白做了嘛?!然后,区块链的末尾又是个什么鬼东西?对于第一个困惑。我想说,你说的一点没错,但是没办法,现实就是这么残酷,即便工作做了80%,那也得放弃,这80%的工作劳苦几乎可以视为无用功,绝对的伤财劳众。第二个困惑,区块链和区块链的末尾是什么鬼?这里因为事先并没有讲清楚,但是你可以简单想象一下:区块是周期性不断的产生和不断的被挖出来,一个计算机节点可能事先已经执行了N次“从别人手上拿过区块 - 校验小纸条有效性”的流程,肯定在自己的节点上早已经存放了N个区块,这些区块会按照时间顺序整齐的一字排列成为一个链状。没错,这个链条,就是你一直以来认为的那个区块链。如果你还是不能够理解,没关系,文章后面还会有很多次机会深入研究。
进入到区块内更微观的世界里一探究竟,看看小纸条到底是怎么一回事,它的产生以及它终其一生的使命:发起交易的时候,发起人会收到一张小纸条,他需要将交易记录比如说“盗盗转账给张三40元”写在纸上。说来也神奇,当写完的那一刹那,在小纸条的背面会自动将这段交易记录格式化成至少包含了“输入值”和“输出值”这两个重要字段;“输入值”用于记录数字货币的有效来源,“输出值”记录着数字货币发往的对象。刚刚创建的小纸条立马被标记成为“未确认”的小纸条。从地下成功挖出区块并最终连接到区块链里的小纸条一开始会被标记为“有效”。若这条有效的小纸条作为其他交易的输入值被使用,那么,这个有效的小纸条很快会被标记为“无效”。因为各种原因,区块从链上断开、丢弃,曾经这个区块内被标记为“有效”的小纸条会被重新标记为“未确认”。区块链里面没有账户余额的概念,你真正拥有的数字资产实际上是一段交易信息;通过简单的加减法运算获知你数字钱包里的余额。上面的1、2、3仅仅作为结论一开始强行灌输给你的知识点,其中有几个描述可能会有点绕,让你觉得云里雾里,只有了解整体区块链你才能更全面认知其中奥妙。
区块容量,比特币从被创建时,或者说源代码中规定了,区块容量是1M。最初设计成1M的原因一方面,防止DOS攻击。另一方面,当年中本聪在创建区块链的时候的容量是32M,但是他通过一个说明为”Clear up“这样毫不起眼的Commit把区块容量改成了1M,为防止区块链体积增长过快,为区块容量这个问题添加了些神秘色彩。1M的容量意味着比特币最大的处理交易数量在约2400(486882区块1034.39的大小很接近了)。
区块链说白了,就是一个分布式的记账的一个小本本,用来记账的一个工具,并且基于密码学加密学的技术铺垫,一旦数据交易记录在区块链这个本本上了,数据是不可篡改和抵赖的。互联网是价值的传递,那区块链呢就是信任的传递。在区块链技术作为信用背书的前提下,区块链中的各节点从各自单一的中心变为多方参与的统一多中心,不需要第三方机构的参与便可实现交易传递,效率提高。
以太坊带来了那些争议和质疑呢?
以太坊和比特币是有着本质区别的,区别在哪里呢?比特币定义的是一套货币体系,而以太坊侧重的是打造一条主链(可以理解为一条公路),可以让大量的区块链应用跑在这条公路上。
从这一点来看,以太坊的应用场景更广泛,这也是为什么我们说以太坊标志着区块链
1.0时代一个单纯的货币体系,向区块链2.0时代实现其他行业以及应用场景的转变。
但是,世界上没有十全十美的事物,以太坊虽然拓展了区块链在各行各业的应用范围,还提升了处理交易的速度,但是它也存在着一定的争议与质疑。
一、以太坊的扩展性不足的解决之道:分片技术和雷电网络
以太坊的底层设计,最大的问题是以太坊只有一条链,没有侧链,这就意味着,所有程序都要对等地跑在这条链上,消耗资源的同时,还会引发系统拥堵。正如去年非常火爆的以太坊游戏“加密猫”,这个游戏火爆的时候,一度引发以太坊网络瘫痪。
对于提升处理能力这个问题,以太坊提出两种方式:一个是分片技术(shard),一个是雷电网络,下面我们分别介绍一下这两种技术。
(一)分片技术
以太坊创始人 V 神(Vitalik Buterin)认为,诸如比特币这种主流的区块链网络,之所以处理交易的速度很慢,是因为每一个矿工要处理全网的每一笔交易,这样的效率其实是非常低下的。分片技术的构想是:一笔交易不必发动全网所有节点都去处理,只要让网络中的一部分节点(矿工)处理就好了。于是,以太坊网络被划分成很多片,同一时间,每一分片都可以处理不同的交易,这样一来,会大大提升网络性能。
但是,分片技术也是有一定争议的。我们知道,区块链技术的重要思想是去中心化,全网都去见证(处理)同一交易,这才具有最高的权威性。而以太坊分片技术,并不是所有节点共同见证,而是类似于分小组见证,这样一来,它便失去了绝对的“去中心化”属性,只能通过牺牲掉一定的去中心化特性来达到高性能的目的。
(二)雷电网络
雷电网络使用的是链下交易的方式。这是什么意思呢?它的意思是:使用雷电网络的参与者在互相转账时,不需要通过以太坊主链交易确认,而是通过参与者之间创建支付通道,在链下完成。
不过,雷电网络并不是脱离主链的,在建立支付通道之前,需要先用主链上的资产做抵押,生成余额证明(Balance Proof),拥有余额证明才能表明你能做出相应余额的转账。在交易双方都持有余额证明的情况下,双方可通过支付通道在链下进行无限制次数的转账。
只有在完成链下交易,需要将资产转回链上时,才会在以太坊主链上登记主链账户的余额变化信息,而这期间不管发生多少次交易在主链上是不会有记录的。
雷电网络还有一个实实在在的好处,就是可以为你省下矿工费用。目前我们在以太坊主链上进行交易,需要消耗 Gas,需要支付矿工费用,那么一旦将交易搬到链下,就可以节省这一部分的成本。
当然,雷电网络并不是十全十美的。在使用雷电网络时需要用主链上的资产作抵押;而这部分资产作为抵押物,在使用者完成链下交易之前是不能使用的。这也就决定了,雷电交易只适合小额交易。
上面就是以太坊扩展性不足的问题,以及目前提出的两个主要解决方案:分片技术和雷电网络。
二、以太坊的智能合约存在漏洞与臭名昭著的 The Dao 事件
以太坊的智能合约很强大,但是,凡是代码都会存在漏洞的,以太坊智能合约最大的争议就在于所谓的漏洞,也就是安全性问题。据相关研究表明,在基于以太坊的近100万个智能合约上,发现有34200(约3%)个含有安全漏洞,将允许黑客窃取ETH、冻结资产或删除合约,比如说,臭名昭著的The Dao 事件。
(一)Dao是什么意思?
介绍 The Dao 事件之前, 我们先见到介绍一下 DAO 是什么。DAO 是 Decentralized
Autonomous Organization 的简称,可以理解为:去中心化自治组织。从以太坊的角度来理解,DAO 是区块链上的某一类合约,或者一个合约组合,用来代替政府的审查以及复杂等中间程序,从而实现高效的、去中心化的信任的系统。所以,DAO 不是特定的某个组织,也就说呢,可以有很多的DAO,各种各样的DAO。
(二)臭名昭著的The Dao事件
但是,我们现在提到DAO,基本上所指的都是The DAO事件,也就是我们刚刚说的那个臭名昭著的黑客攻击事件。我们知道,英文中的 The是特指的意思,The DAO事件呢就
是特指的那个DAO事件,因为我们刚刚说了DAO不是特定的某个组织,可以有很多的DAO,各种各样的DAO。
2016 年的时候,德国一家专注“智能锁”的公司 Slock.it,为了实现去中心化的实物交换(比如说:公寓啊,船只啊),在以太坊上发布了 DAO项目。并且于2016年4月
30日开始,融资窗口开放了28天。
没想到,这个DAO项目的人气非常高,短短半个月就筹得了超过一亿美元,而到整个融资期结束,一共筹集到1.5亿美元,由此呢,它成为历史上最大的众筹项目。然而好景不长,到了6月份,黑客利用智能合约里面的漏洞,成功转移了超过360万个以太币,并投入到一个DAO子组织中,这个组织和The DAO有着同样的结构。以至于当时以太币价格从20多美元直接跌破13美元。
这个事件说明智能合约的确是有漏洞的,而且一旦漏洞被黑客利用,那么后果是非常严重的。这就是现在很多人批评以太坊,说它的智能合约不智能。
对于这个问题,目前国外有很多公司为了解决智能合约的漏洞问题 ,开始提供代码审计服务。而从技术的角度来说,目前一些团队正在对智能合约进行检验,这些团队多数由哈佛、斯坦福和耶鲁的教授带队,部分团队已经获得了头部机构的投资。
除了目前以太坊存在的扩展性不足、智能合约漏洞问题,对于以太坊的争议还在于它所追求的POS共识机制,也就是权益证明机制,在权益证明机制下,如果说谁持币的数量越大、持币时间越久,获得的“权益”(利息)就越多,还有机会得到记账权力,记账又可以获得奖励,那么这样一来,容易造成“强者越强”的寡头优势。
还有一个问题就是ICO乱象的问题。ICO是区块链项目筹措资金的常用方式,咱们可以理解为预售。以太坊上ICO项目的爆发,滋生了打着ICO旗号进行资金盘、诈骗圈钱等不法行为,对社会和金融稳定造成安全隐患。
区块链技术是什么?未来可能用于哪些方面?
区块链(blockchain)技术是维护一个不断增长的数据记录的分布式数据库,这些数据
通过密码学的技术和之前被写入的所有数据关联,使得第三方甚至是节点的拥有者难以篡改。区块(block)包含有数据库中实际需要保存的数据,这些数据通过区块组织起来被写入数据库。链(chain)通常指的是利用Merkle tree等方式来校验当前所有区块是否被修改,这一点用过Git的码农们早就熟悉了,回想一下如何修改Git的历史记录吧。
目前已知的一些区块链技术应用大致有这三类:
公开区块链(public blockchain) 例子:比特币,Ethereum Frontier。公开区块链上的数据所有人都可以访问,所有人都可以发出交易等待被写入区块链。共识过程的参与者(对应比特币中的矿工)通过密码学技术以及内建的经济激励维护数据库的安全。公开区块链是完全的分布式。
协作区块链(federated blockchain) 例子:Hyperledger以及德勤等会计所尝试的审计系统。参与区块链的节点是事先选择好的,节点间很可能是有很好的网络连接。这样的区块链上可以采用非工作量证明的其他共识算法,比如有100家金融机构之间建立了某个区块链,规定必须67个以上的机构同意才算达成共识。这样的区块链上的数据可以是公开的也可以是这些节点参与者内部。部分意义上的分布式。
私有区块链(private blockchain) 例子:Eris Industries。参与的节点只有用户自己,数据的访问和使用有严格的权限管理。近期部分金融机构公布的内部使用的区块链技术大都语焉不详,不过很可能都在这个范围内。
余额证明区块链的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于区块链存证、余额证明区块链的信息别忘了在本站进行查找喔。
标签: #余额证明区块链
评论列表