以太坊尤柏淳4星评价
2020-10-30 14:02:02
有人称:区块链(Blockchain)技术也许是继蒸汽机、电力、信息和互联网技术之后,能与大数据、移动互联网、云计算等新技术共同推动经济金融转型升级、最有潜力触发第五轮颠覆式产业革命浪潮的核心技术。从上述描述可见,近几年,区块链一定会是大热门,不管你是不是支持这一观点,如果你还不知道什么是区块链,那你就out了!
什么是区块链
区块链有两个主要部分:区块和链。这不是废话吗?但大道至简,它的本质就是一串链子把区块串起来,然后数据被划分成连续的多个区块的形式,在电脑里储存。
举个例子你就明白了,下图中方框代表国家,每个方框里每个国家的一些城市名字。
除此之外,每个方框里面还有一个称作哈希值(hash)的部分,哈希值是由一系列字符组成(比如“1hi515AHA5H”),它的值由每个方框的里面信息决定。
由于技术上哈希值的产生比较复杂,简便起见我们用城市名首字母来代替正轨的哈希值比如USA的那个方块里面有New York,LosAngeles和 Chicago三个城市,那么哈希值就是“NYLAC”,每个连续的区块链都包含上一个区块的哈希值,暂把它们称作“前哈希值”(Prev Hash)。
这就有点像 C 语言的指针,把区块连接起来。如果有人想篡改 USA 这个区块,比如加入一个城市 Boston,那么这个区块的新哈希值就会变成“NYLACB”,但是下一个区块India中存储的“前哈希值”仍然是“NYLAC”,这样就没法匹配,这个链就此断了。
所以你知道了吧,哈希值的引入就是为了防止有人篡改任何一个区块。
那么你也许又会问了,那我把下一个区块的“前哈希值”也一并改了不就行了!Too young,too naive!
区块链的数据并不是只存在于一台电脑上的,他的数据是在存在于所有接入区块链网络的电脑上的,每个电脑上的数据都是一样的,因为每当你加入区块链网络,你的电脑就会下载所有区块,如果某人篡改了他的版本,网络就会判断是否可信,它的策略是相信大多数人的版本。
还有一点需要说明,在区块链网络里面,除了数据,所有电脑上运行的程序都是一样的,所有电脑一起执行这套程序。这一点和我们日常生活中所见的大多数应用的机制不同,比如微博,所有的数据和处理程序都是集中在微博的服务器上,而手机 APP、PC 应用、网页等终端的主要功能仅仅是用于与处理服务器进行交互。
但在区块链网络里面,是去中心化的,它依靠所有接入区块链网络的用户的计算机共同执行它的程序。这意味着只有区块链网络中的每台电脑都关机了,它才会停止运行。
公共区块链
那这些能防范篡改的区块有什么用?比如大名鼎鼎的比特币。
比特币是一种电子货币,它具有一套自己的支付系统,它的防篡改区块功能就是人们能放心进行所有交易的核心。就像前面说的,需要大家贡献出自己的电脑去执行比特币的程序,作为回报,他们会得到比特币,这些人的电脑被戏称为“矿工(miner)”。
以太坊(Ethereum,一个开源的有智能合约功能的公共区块链平台)负责处理繁重的工作,被广泛应用于电子货币系统的搭建,比如我们之前提到的委内瑞拉石油币(Petro),毕竟从零开始开发一个区块链并建立自己的社区将是非常困难的,尤其是人们必须贡献他们的电脑。
区块链的应用场景不仅仅是支付系统或加密货币,它可以是任何东西,比如社交网络或者像 BitTiger 这样的学习平台等等。
私有区块链
比特币、以太坊等都是公共区块链的例子,任何人都可以参与其中。如果我们想要创建一个私有的区块链网络呢?它能解决一些生活中更具体的问题。
例 1:房租收不回
房客已经5个月没有付房租了,当房东催房租的时候房客总是打保票说稍后就会付,房东很无助,走法律途径,律师太贵了,而且会花费大量时间和精力去打官司,房东是个善良的人,做不出换钥匙赶人的事情,唯一能做的就是说服房客付钱。
例 2:商场遇老赖
老王是一个商人,他经常和不同的零售商合作,几个月前他和一个零售商签了一份合同,后来那个零售商拒绝支付费用,并且利用法律漏洞要老王减少需要支付的钱。这种情况以前也遇到过,他选择打官司,但是在官司里耗费的时间和金钱是他的利润大打折扣。
遇人不淑的事情我们经常见,但是我们有解决的方法吗?
房东和房客之间的关系是通过合同来联结的,既然纸质合同不保险,那不妨试试一份电子智能合同。伪代码如下:
If today’s date is 1st and rent is not paid then
Transfer ¥1000 from tenant’s account to owner’s account
那问题来了,代码部署在哪里呢?它应该部署在有关各方的电脑上。房东和房客的银行成为私有区块链网络的一部分,双方将签署一份电子智能合同,然后它被部署在网络上,而且双方的银行都有副本。每个月1号0点将商定的金额从房客的账户转到房东的账户。
老王的处理办法同上。
由于私有区块链网络仅限于参与交易的各方,所以例1跟例2都是私有区块链的网络,相互是看不到对方的交易的。所以私有区块链能既保障了各自的隐私,又保障了资金的安全。
这样一来,关于所谓“神鬼莫测”的区块链你是否已经懂了呢?
小玩~久久电4星评价
2020-10-16 14:03:10
区块链,是“比特币”的核心技术之一。
比特币的发明初衷,是为打破以银行为中心的传统货币体系,开创一种“去中心化的”新型货币体系 。
那银行是怎么运作的呢?
比如A付100人民币给B,银行就在A的账户上,标一个:“付了100人民币给B,余额还剩1900人民币”,在B的账户上,标一个:“收到A的100人民币,余额增至600人民币”,就可以了。
简单讲,货币交易的过程,就是一个记账的过程。
之所以通过银行,是因为他权威、可信,不会透过作弊,擅自给谁标个:“收到马云1个亿,余额增至1个亿零3毛。”
但是,银行的记账之所以能不出错,也是借助了一些外力的。比如,你透过网银付款,银行怎么确信就是你付的呢?还是借助了密码、验证码等计算机、互联网方面的技术。
既然如此,为什么不一步到位,干脆用更厉害的计算机、互联网方面的技术,一举取银行而代之呢?
没错,中本聪就是这么想的!
中本聪来了个“群狼战术”,试图集全球互联网上成千上万台计算机的力量,与拥有专门人力、物力配置的银行,拼上一拼。
群狼合力,如何统一协调,成了最大问题。成立一个专门的机构,统一管理?那就违反了“去中心化”的初衷,等于又走了银行的老路。
于是,★“区块链”★技术,便应运而生了:
计算机“群狼”中的某一台,收到A发来“付100块钱给B”的请求后,他需要先确认两个问题,然后才能决定是否执行请求,帮A记这个账。
①这个请求,是否真是由A发出来的。这个简单,计算机领域已经有一种叫做“数字签名”的技术,只要A能提供某个只有他自己才知道的“私钥”,计算机就能够确定——这个请求确实是A发出来的。
②A的请求,跟目前整个记账系统上的所有既存信息,是否矛盾。比如,系统上显示A的余额只有99块,A却请求支付100块,这肯定不行。
问题②怎么解决,相对麻烦一点。因为每台计算机,都属于整个系统的一部分,一旦出现矛盾,谁都认为自己是“目前整个记账系统上的所有既存信息”之一,要求别人“不许和我矛盾!”那究竟以谁为准?
比如,A在余额还有100块钱时,请求支付100块钱,去买什么什么。紧接着,他却又请求再支付100块钱,还要再买另外什么什么。由于存在网络延迟之类的问题,计算机们难以确定,这两条请求,究竟哪条在前。但反正,在后的那条,肯定是无效的。因为前面既然已经付了100,余额已经用光了,哪还能执行在后那条“再支付100”的请求?
“区块链”技术怎么解决这个问题呢?简单粗暴:做题定胜负——
先把两条请求都记录在案,但不要忙于确认。
系统出一些公费,雇甲、乙两人来对赌——分别押注那两条自相矛盾的请求。然后让两人分别运用自己计算机的算力,比赛做题。谁计算机算力强,而且运气好(解题成败具有一定的随机性),先把题解出来了,这笔公费就归他了。同时,他押注的那条请求,也就被系统“确认”了,另外一条请求呢,就相应地“作废”了。这就是所谓“挖矿”。
如果甲、乙两人旗鼓相当,不分高下,怎么办?那就再雇丙、丁两人,接着比。丙跟在甲后面,丁跟在乙后面。如果丙赢了,丙和他前面的甲,就都赢了。就那最终“确认”的,就是当初甲押注的那条请求。如果丁赢了,丁和他前面的乙,就都赢了。就那最终“确认”的,就是当初乙押注的那条请求。
如果丙、丁又打平了呢?那就再雇戊、己,重复上述过程。总不可能,永远都打平吧。
刚才举的是简化的例子,现实中,那些记账请求,往往是几条并在一块,一起处理的。所以,可以把这些并在一块的记账信息,叫做一个个“区块”。而新请求的记账信息,总是不能违逆前面既存的记账信息,只能通过矿工们的“做题比赛”,押注“确认”过后,跟在既存信息的后边。
这样一来,许多的信息“区块”,按“被确认”的先后顺序,连接在一起,不就成了“区块——链”。
从本质上讲,“区块链”就是:一种透过精心设计的计算机互联网协作机制,确保新登记信息与整个系统庞大的既存信息之间,不发生矛盾,进而使整个系统保持惊人的“整体一致性”,的一种信息技术。
比特币世界的“计算机群狼”们,要保证步伐一致,全靠“区块链”这根锁链,死死拴着啊。