OK区块链工程学院:区块链如何工作?|详细解释7层架构

OK区块链工程学院:区块链如何工作?|详细解释7层架构

近日,OK区块链工程院举办了区块链产业全球监管及相关热点问题研讨会。在此期间,来自清华大学中国政法大学的许多专家教授正在分析全球发展趋势。期间,OK区块链工程院高级工程师吴先生就技术及应用进行了主题演讲。会上,吴先生首先介绍了OK区块链工程院的工作:1 .OK区块链工程院正在开发公链,在某些方面对目前的区块链技术做一些改进。2.探索区块链在商品溯源、跨境支付等不同领域的应用。3.研究区块链的底层技术,钻研区块链的前沿技术,输出我们的技术能力,促进整个区块链产业的发展。以下是亮点:

00-1010我理解区块链是一个不可篡改的去中心数据库,或者说是一个分布式账本有一个故事可以帮助你理解区块链技术是怎么一回事。

《咬村的故事》,在一个村子里,一开始,村民们互相交易黄金。后来村民发现直接交易金条很不方便。首先,金条易于佩戴;二是金条质量比较重,交易时可能需要随身携带,特别不方便。

后来他们提出了一个方法,由一个德高望重的村长替大家记账,从村长手里接过金条,记录每个人多少钱,把余额信息记在村长的账本上。之后村民互相交易的时候,只需要告诉村长自己转了多少钱,比如买牛的时候张三转了多少钱给李四。村长完成交易记录后,转账完成。这就是集中账本,也可以理解为数字货币时代

但是中本聪发现这种模式可能存在一些问题:

1.中心的信任度,村长可以做假账,增加自己或朋友的余额。普通村民无法监督这样的变化,可能会增加整个市场流通的货币,造成通货膨胀

2.这个账本只有村长在这里保管,所以账本的维护可能会有问题。如果账本损坏或其他因素导致历史记录丢失,可能再也找不到了。

中本聪提出了分散账本的思想,目的是在没有可信中心的情况下建立一个全国性的账本。这种账本的主要原理就是大家一起记账,每一笔账都需要所有记账人的共识,而且每个人都有这样一个一模一样的账本,这样就不用担心个别记账人的造假或者流失问题了。

第一,一个人的假户口本不会被所有人认可;第二,一个人丢失了账本,可以通过别人重新找回账本,恢复所有的历史交易记录。然而,在这种分布式分类帐中有一些问题需要解决:

第一个问题:账簿的一致性,因为每个人都参与记账,如何保持每个人的账簿一致是最关键的问题;

第二个问题:每个人都有这样一个账本,也就是说每个人的交易都是公开的,大概每个人的余额也是公开的。交易是否可以匿名处理,是为了隐藏每个人的资产信息;

第三个问题:如何鉴别一笔交易的真伪?如何防止别人冒名顶替你,花你的钱?

第四个问题:大家都记账,所以记账肯定有消耗,需要储存和能量。记账员如何长期维护?

针对这些问题,中本聪提出了解决这些问题的一些关键技术,我们将在后面解释。

区块链技术架构可以分为七层,自下而上有加密层、数据层、网络层、共识层、激励层、契约层和应用层,每一层都使用一些技术来保证整个区块链系统的正常运行。

00-1010 1.哈希函数

也称为哈希函数,它将一段数据压缩成摘要。今年夏天

基本上是不可逆的。给定一个输出,直接计算输入是不可能的。虽然我们知道有无数的输入会输出相同的哈希值,但是如果哈希值已知,就很难计算出任何输入。

“雪崩”效应,只要输入信息的一小部分被修改,哪怕是一个单词、一个字母甚至是1-1位的值,输出的哈希值都会有翻天覆地的变化,这就保证了它的不可逆性。

哈希函数有什么用?

在分布式账本中,为了保证数据的完整性,将使用哈希值进行验证。比如一笔交易,账本的一页(也就是块的概念),哈希后生成摘要,意味着整个块的交易信息不可篡改(也就是篡改数据后摘要不能保持不变)。

区块链最初的定义或狭义的理解是区块链的形式它是通过散列连接起来的。每个块可能有许多事务,整个块可以通过哈希函数生成汇总信息。然后规定每个区块需要记录前一个区块的汇总信息,这样就可以把所有区块连成一个链。

如果历史中某个块的数据发生了变化,也就是说这个块的汇总值(即hash值)会发生变化,那么下一个块中记录的前一个块的hash也要做相应的修改,以此类推。也就是说,如果要修改历史记录,必须从该点开始修改所有记录,以保证账本的合法性,而哈希函数会增加篡改账本的难度

2.采用非对称加密技术。

这是相对于对称加密而言的。对称加密使用相同的密钥进行加密和解密,而非对称加密使用一对密钥,分别称为“公钥”和“私钥”。公钥可以公开,私钥由个人存储和维护。

用公钥加密的数据只能用配对的私钥解密,用私钥加密的数据也可以用配对的公钥解密。数字签名可以通过不对称加密生成。

假设有一笔交易,我转10元。该消息或该事务具有固定的数据格式。这个事务的哈希值(消息摘要)是通过哈希函数计算出来的,用私钥加密得到一个数字签名。然后,数字签名和该邮件可以同时发送给其他人。

别人得到这个消息和数字签名后,可以先计算出这个消息的消息摘要,然后用公钥验证这个签名是不是真的从这个消息摘要计算出来的,再判断这个消息是不是我签名的,有没有被篡改。

这就是数字签名的效果。其作用如下:第一,可以确认消息的归属,即可以验证消息是否确实是私钥所有者发送的。只要用相应的公钥验证签名,就可以证明消息是私钥所有者验证后发出的;二是保证消息的完整性。如果邮件被篡改,哈希值将发生变化,并且无法使用相同的数字签名进行验证。

非对称加密和数据签名解决了“比特村”的两个问题:一是交易可以鉴别真伪;第二,可以保证交易的匿名性。

现在,不需要实名认证每个人有多少钱。你只需要用公钥作为钱包地址。花掉公钥钱包里的钱,只需要用相应的私钥签一笔交易,证明自己是钱包的主人。此交易不能被他人篡改或伪造。

而且公私钥可以自己在网上生成,不需要在户口本上实名登记。如果没有账本之外的额外信息,没有人会知道某个公钥钱包属于谁,从而达到交易匿名的目的

00-1010刚才说到块的概念,可以理解为账本上的一页记账纸,记录几笔交易。此外,区块中应该包含哪些信息?一是有块高,可以理解为账本的页码;包含前一块的汇总信息,这是为了确保整个区块链链的总账不能被篡改;包含该块中所有数据事务的哈希摘要值。

00-1010网络层使用P2P网络传播消息。P2P网络是一种对等网络,也可以称为无中心的自组织网络。它的特点是没有集中的服务器在这个网络中任何一个节点既是服务器又是客户端。消息的发送和网络的组织是自发的,整个网络可以无限扩展,任何节点可以随时加入或退出。网络层规定交易如何在区块链系统中传输,以及每个账簿(即块)如何传输。

区块链是什么

是保持全网所有记账人的账本一致,也就是说所有的交易都有一个顺序,达成完全一致。具体来说,共识机制主要需要解决以下三个问题:

1.什么,下一块包括哪些交易;

2.谁,谁就生产下一块;

3.什么时候,下一块什么时候生成;

最常用的区块链共识算法是PoW,字面意思是工作量证明,也就是证明你做了一定量的工作。

工作负载的官方定义证明,要求用户执行一些复杂耗时的操作,然后答案可以很快被其他人验证。工作期间消耗的时间设备能源作为保证成本,保证资源被真正的需求者使用。

PoW最初用于反垃圾邮件。在发送一封电子邮件之前,本地需要平均几秒钟的功率计算,以便增加黑客大量发送一些垃圾邮件的成本。对于正常用户来说,发送一封邮件是低频操作,一次等待几秒钟完全可以接受;但对于制作垃圾邮件的人来说,成本大大增加。

通常,幂是通过散列函数来实现。哈希函数的特点是结果是确定的,但不可逆。知道一个哈希值或哈希值特征,很难计算输入。如何利用哈希函数实现PoW?假设现在有一条消息,哈希值是确定的。如果规则允许给这个消息添加一个随机数(我们称之为nonce值),然后计算hash,那么这个hash可以随着nonce值的变化而变化。我们可以通过不断尝试不同的nonce值来获得不同的哈希值。

当所获得的散列值满足某个特征时,例如前三位是0或小于某个数字,则随机数值被接受为令人满意的答案。在这个过程中,计算器需要多次尝试才能得到一个合格的答案。条件越严格,需要计算的次数就越多。这个答案在检查端只需要一次哈希计算,就可以知道这个nonce值是不是合格答案。通过使用哈希函数,PoW保证了难以计算,易于验证。

PoW应用于比特币,在块头有一个Nonce值。每个矿工都需要不断调整块的nonce值,使整个块的hash值小于某个目标hash值(这个目标hash值由难度值决定,难度值越高,目标hash值越小)。这种封锁是合法的。谁先计算出这个合法块,广播到网络上,谁就被别人接受。

POW的优点是工程上非常简单可靠,容易实现,容错率可以达到50%,控制全网的计算能力达不到50%,篡改历史记录基本不可能。这是中本聪一篇论文中经过严格数据论证的公平机制。计算能力投入越多,获得记账权的概率越大,产生新块的可能性越大。

缺点效率低,计算能力和能量浪费非常严重。有人统计过,现在整个区块链网络的耗电量超过了一个小国。

同时,POW也会出现分叉。可能有几个矿工,同时计算下一个区块。因为哈希值是随机的,所以可能有人在类似的时间内计算过。因为网络的延迟,不同的矿工接受不同的块,然后就出现了分叉。分叉可能需要等待多个区块确认,此交易的确认时间不确定。

目前计算能力越来越集中,因为如果一个独立矿工想挖一个区块,你的计算能力可能在全网都很低,挖到下一个区块的概率低到他可能一辈子都挖不到一个区块。这时候最好的选择就是加入某个矿池,贡献你的算力,按照算力份额来分。比如全矿池挖出下一块,下一块的奖励平分给全矿池。

除了POW,共识层还有其他算法,比如POS权限证明,即份额越多,获得下一个区块发布权限的概率越大。权力简单理解就是按劳分配,多劳多得。POS就是按钱分配。持有越多,收益就越大。

早期的POS和POW一样。结合POW,通过计算目前持有的股权比例来确定这个节点的难度。你可能握得越多,需要计算的难度值就越低,就越有可能解出下一个方块。这是早期的POS。

后来有人提出了纯POS的想法,完全是由节点的权益决定的区块形成的。这个时候挖矿不需要计算POW,但是现在业内还没有公认的安全可靠的纯POS项目。不过学术也有一些论文,也提出了一些解决方案安全性有严格的数据论证,但其工程化非常困难。

POS的优势是资源消耗少;共识效率高;公平平等。缺点是实现复杂,安全性需要验证,容易导致马太效应。有钱人越有钱,权益就会越集中,类似POW。

已经讨论了加密层、数据层、网络层和共识层,基本上可以确定交易的过程:

新事务创建后,通过P2P网络广播给全网所有矿工。在矿工验证交易之后,他们将它打包成一个块,然后开始计算PoW。在获得某个nonce值使该块的hash值满足条件后,通过P2P网络将该块广播给所有矿工。其他矿工验证这个区块合法后,会把这个区块加到他们的账本里,这样一个交易就写成了全网。

00-1010这样的分布式账本系统,通过消耗CPU、存储、带宽等资源,要求所有矿工诚实记账。如果完全没有激励,这些矿工可能就没有动力去维持这个体系

比特币的激励机制是,如果一个矿工计算出一个新的区块,这个区块就会产生一些新的比特币,这些比特币连同区块内所有交易的手续费可以归矿工所有。这些比特币是对一个诚实矿工的奖励。

如果一个矿工试图修改历史记录或将非法交易打包到一个新的块中,那么这个矿工将浪费他的计算能力,而不是让其他矿工同步他们自己的账簿。这种计算能力的浪费可以理解为对不诚实矿工的惩罚。

在公共链中,激励机制是必要的。在联盟链中,所有节点都是经过组织认证的,它们会自发地维护整个系统的安全和稳定,不需要额外的激励。

但在公链中,节点可以随时加入和退出网络,无需认证,计费需要消耗CPU、存储、带宽等资源。因此,需要有一定的激励机制来保证矿工在核算过程中能够获利,从而保证整个区块链系统朝着良性循环的方向发展。

00-1010合同层是区块链可编程功能基础。区块链可以理解为去中心化的账本,不可篡改。程序代码也是数据,也可以存在账本里。智能合同是一段不能被篡改并存储在区块链中的程序。它可以自动执行一些预定义的规则和条款,并对收到的信息做出响应。合同解除后,其运维交由全网矿工达成共识。契约的开发者定义了契约运行的规则,公开透明,发布后不可更改。

00-1010运行在契约层之上,通过使用契约层的脚本和代码来构建去中心化的应用程序。现在比较流行的应用有众筹的WeiFund,游戏的加密猫,赌博的Fomo3D等。

摘要

加密层是区块链技术的基石,提供了整个区块链系统的安全性和匿名性保证。

数据层采用偏序数据结构和消息摘要的形式,使得历史数据不易被篡改,保证了数据的完整性。

网络层规定了整个网络节点中的通信机制,可以在没有中心服务器的情况下实现数据共享。

共识层通过POW、POS等共识算法保证全网数据的一致性,是区块链技术中的关键。

激励层通过经济激励机制,使整个区块链系统良性循环发展。

契约层,提供区块链系统的可编程性。

应用层可以开发分布式应用,丰富整个区块链的生态

区块链的整个发展过程可以分为区块链1.0,即比特币,是一种可信的分布式账本,更多应用于数字加密货币领域;

以太坊代表的区块链2.0在可信分布式账本的基础上增加了图灵的完全智能契约,基本上所有的程序逻辑都可以用智能契约的形式编写。区块链2.0拓展了区块链的应用场景

区块链3.0,目前没有公认的区块链3.0项目,未来可能在可扩展性或区块链应用上有更大的突破。

区块链的技术特点是没有特定的主体,是一个由P2P网络连接的去中心化的全球系统,这确实会给监管带来很多挑战。目前区块链行业比较混乱,需要监管介入,促进区块链行业健康发展,但同时也要避免过于严格的监管阻碍区块链行业的发展。

暂无评论

暂无评论...