区块链学习——原理入门
Posted 杨牧之
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链学习——原理入门相关的知识,希望对你有一定的参考价值。
开始学习区块链,由于刚入门,所以借鉴了几位前辈的经验,在此感谢各位前辈。
初步了解区块链后,尝试初步探索一下他的门槛。首先需要了解区块链的概念,原理,核心技术。随后需要分清链圈和币圈,根据自己的需求,到底是搞业务的开发还是搞金融。然后找一门技术(比特币原理或者以太坊原理进行深挖)。之后就涉及到我的盲区了,希望能在之后的学习中将这以后的部分补齐。
以下是第一阶段——原理的学习
一,分布式账本——储存作用
首先,分布式账本构建了区块链的框架,它本质是一个分布式数据库,当一笔数据产生后,经大家处理,就会储存在这个数据库里面,所以分布式账本在区块链中起到了数据存储的作用;
区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构,节点间数据交换通过数字签名技术进行验证,无需人为式的互相信任,只要按照既定的规则进行。节点间也无法欺骗其他节点。因为整个网络都是去中心化的,每个人都是参与者,每个人都有话语权。
二,共识机制——统筹节点,数据处理
其次,因为分布式账本去中心化的特点,决定了区块链网络是一个分布式的结构,每个人都可以自由的加入其中,共同参与数据的记录,但与此同时,就衍生出来令人头疼的“拜占庭将军”问题,即网络中参与的人数越多,全网就越难以达成统一,于是就需要另一套机制来协调全节点账目保持一致,共识机制就制定了一套规则,明确每个人处理数据的途径,并通过争夺记账权的方式来完成节点间的意见统一,最后谁取得记账权,全网就用谁处理的数据。所以共识机制在区块链中起到了统筹节点的行为,明确数据处理的作用。
任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一个完整的数据库,节点间都有一套共识机制,通过竞争,计算,共同维护整个区块链,任一节点失效,其余节点仍能正常工作。相当于认可你的游戏规则,比特币有比特币的共识机制,全球认可就可以参与比特币挖矿,因为你认可了它的共识机制,也可理解为认可它的游戏规则。比特币的规则就是进行庞大的运算,谁先算出来就给谁奖励POW。
备注:共识机制跟PoW、PoS、DPoS这些相比,优缺点是什么?
PoW即工作量证明,这是一种非常巧妙的方法,它的优点是:
算法简单,容易实现;
节点间无需交换额外的信息即可达成共识;
破坏系统需要投入极大的成本;
它的缺点也非常明显:
浪费能源;
区块的确认时间难以缩短;
新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;
容易产生分叉,需要等待多个确认;
永远没有最终性,需要检查点机制来弥补最终性
PoS即权益证明,它将PoW中的算力改为系统权益,拥有权益越大则成为下一个记账人的概率越大。这种机制的优点是不像Pow那么费电,但是也有不少缺点:
没有专业化,拥有权益的参与者未必希望参与记账;
容易产生分叉,需要等待多个确认;
永远没有最终性,需要检查点机制来弥补最终性;
DPoS在PoS的基础上,将记账人的角色专业化,先通过权益来选出记账人,然后记账人之间再轮流记账。这种方式依然没有解决最终性问题。
DBFT(delegated BFT)是一种通用的共识机制模块,提出了一种改进的拜占庭容错算法,使其能够适用于区块链系统。
DBFT是基于区块链技术的一种协议。用户可以将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行、转让交易、清算交割等金融业务的去中心化网络协议。小蚁上可以发行中国《合同法》、《公司法》认可的公司股权,不仅是数字货币圈,还包括主流互联网金融。小蚁可以被用于股权众筹、P2P网贷、数字资产管理、智能合约等。
这种共识机制是在Castro 和 Liskov提出的“实用拜占庭容错算法”(Practical Byzantine Fault Tolerance)的基础上,经过改进后使其能够适用于 区块链系统。拜占庭容错技术被广泛应用在分布式系统中,比如分布式文件系统、分布式协作系统、云计算等。dBFT主要做了以下改进:
将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;
将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;
为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);
在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题
为什么最终采用一种这样的方案?
答:区块链作为一种分布式账本系统,其内部的经济模型决定了,每一位参与者都可以无需信任其他的参与者,即所谓的去信任。拜占庭将军问题正是描述了参与者之间如何在去信任的情况下达成共识,而拜占庭容错技术正是解决此类问题的方法。此外,区块链的网络环境非常复杂,会面临网络延迟、传输错误、软件错误、安全漏洞、黑客入侵等问题,还有各式各样的恶意节点,而拜占庭容错技术正是可以容忍这些错误的方案。
dBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识,这种方式的优点是:
专业化的记账人;
可以容忍任何类型的错误;
记账由多人协同完成,每一个区块都有最终性,不会分叉;
算法的可靠性有严格的数学证明
缺点:
当有1/3或以上记账人停止工作后,系统将无法提供服务;
当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;
以上总结来说,dBFT机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。比如我们哥伦布的共识机制DPOS+DBFT的共识机制。如果我们整个节点其中一个人或者一个设备关闭了,那么其他节点仍在正常工作,不会影响整个网络体系。但是如果腾讯的服务器关闭了,那所有人的微信打不开的,因为你没有调取数据的地方了,这就是中心化网络服务器与区块链网络服务器的一个区别。
三,密码学——数据的安全,验证了数据的归属,不可篡改可追溯
此外数据进入分布式数据库中,也不是单纯的打包进来就没事了,底层的数据构架则是由区块链密码学来决定的,打包好的数据块,会通过密码学中哈希函数处理成一个链式的结构,后一个区块包含前一个区块的哈希值,因为哈希算法具有单向性,抗篡改等特点,所以只在区块链网络中,数据一旦上链就不可篡改,且可追溯,另外你的账户也会通过非对称加密的方式进行加密,进而保证了数据的安全,验证了数据的归属。
单个或多个数据库的修改无法影响其他数据库了。除了超过整个网络51%的数据同时修改,这几乎不可能发生。区块链中的每一笔交易都通过密码学方式与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。这里就是区块链的数据结构,区块头和区块体。密码学 哈希值,时间戳,通过时间戳来决定它的顺序,不会打乱。
这个原理运作到我们的商业体系里边,包括商品体系,我们所说的溯源,可以查询到商品在哪里生产的,生产原材料是什么,从后往前一步一步查找到,因为我们在每做一步动作的同时把信息数据写到区块链的体系里,通过这个体系我就可以查找到是不是使用的这个原材料,是不是用这个工艺生产出来的。通过这样一个数据的结构存储达到我们共同相信它,这商品的确是这样生产出来的,相信这是真的。
另外数据无法修改,如果想要修改要达到51%的人才可以,从股权上理解,拥有公司51%的股权在这个公司就有话语权。这只是一个可能性而已。为什么用区块链技术比互联网技术更历害、更安全呢,因为他分布开了,如果你想要去修改里面的数据,作为黑客要找到所有记这个账的计算机,每台计算机都要修改,也许能很快找到其中一台把它改掉,但很难把所有的改掉。
区块链里所有的交易信息都是公开的,因此每一笔交易都对所有节点可见,由于节点与节点间是去中心化的,所以节点间无需公开身份,每个节点都是匿名的。比如每台算能机启动后,每台算能机谁启动谁没启动,我们相互间是不知道的,你可以在你家里开启,这里有个多劳多得的问题。
四,智能合约——执行 应用
最后,可以在分布式账本的基础上,搭建应用层面的智能合约。当我们想要解决一些信任问题,可以通过智能合约,将用户间的约定用代码的形式,将条件罗列清楚,并通过程序来执行,而区块链中的数据,则可以通过智能合约进行调用,所以智通合约在区块链中起到了数据执行与应用的功能。
智能合约可帮助您以透明、无冲突的方式交换金钱、财产、股份或任何有价值的物品,同时避免中间商的服务,甚至说智能合约将在未来取代律师这个职务。通过智能合约方式,资产或货币被转移到程序中,程序运行此代码,并在某个时间点自动验证一个条件,它会自动确定资产是应该去一个人还是回到另一个人,或者应该立即退还给发送它的人或其组合。(自动强制执行,赖不了账)与此同时,分散账本也是存储和复制文件,使其具有一定的安全性和不变性。
智能合约的特色
自治——取消中间人和第三方,你是达成协议的人; 没有必要依赖经纪人,律师或其他中间人来确认。顺便提一句,这也消除了第三方操纵的危险,因为执行是由网络自动管理的,而不是由一个或多个可能有偏见的个人可能犯错。
信任——您的文件在共享账本上加密。有人无法说他们失去了它。
备份——想象一下,如果你的银行失去了你的储蓄账户。在区块链上,你的每一个朋友都有你的背影。您的文档被重复多次。
安全——密码学,网站加密,保证您的文件安全。没有黑客攻击。事实上,这需要一个非常聪明的黑客来破解代码并渗透。
速度——您通常不得不花费大量的时间和文书工作来手动处理文档。智能合约使用软件代码来自动执行任务,从而缩短了一系列业务流程的时间。
储蓄节省成本——智能合约可以节省您的资金,因为他们淘汰了中间人。举例来说,你必须付公证人见证你的交易。
准确性——自动化合同不仅更快,更便宜,而且还避免了手工填写表格所产生的错误。
描述智能合约的最佳方式是将该技术与自动售货机进行比较。通常,你会去找律师或公证人,付钱给他们,等你拿到文件。通过智能合约,您只需将一个比特币放入自动售货机(例如分类账),并将您的托管,驾驶执照或任何东西放入您的账户。更重要的是,智能合约不仅以与传统合同相同的方式定义协议的规则和处罚,还自动执行这些义务。
我整理了区块链从A-Z的词汇表,抛砖引玉一下。
Blockchain词汇表:从 A - Z
51% Attack(51%攻击) :当一个单一个体或者一个组超过一半的计算能力时,这个个体或组就可以控制整个加密货币 网络,如果他们有一些恶意的想法,他们就有可能发出一些冲突的交易来损坏整个网络。
Address(地址) :加密货币地址用于在网络上发送或接收交易。 地址通常表示为个数字字字符。
ASIC(专用集成电路) :“专用集成电路”简称。 通常,与GPU相比,ASIC专门用于挖矿,可能会节省大量能源。
Bitcoin(比特币): Bitcoin是在全球对等网络上运行的第一个去中心化开放源代码的加密货币,不需要中间商 和集中式发行商。
Block(区块): 区块是在区块链网络上承载永久记录的数据的数据包。
Blockchain(区块链): 区块链是一个共享的分布式账本,其中交易通过附加块永久记录。 区块链作为所有交易的 历史记录,从发生块到最新的块,因此命名为blockchain(区块链)。
Block Explorer(区块资源管理器): 区块资源管理器是一种用来来查看区块上的所有交易(过去和当前)在线工具。 它们提供 有用的信息,如网络哈希率和交易增长率。
**Block Height(区块高度) :**连接在区块链上的块数。
Block Reward(积分奖励): 它是在采矿期间成功计算区块中的哈希的矿工的一种激励形式。 在区块链上的交易验证的 过程中产生新的币,并且矿工被奖励其中的一部分。
Central Ledger(中央帐簿): 由中央机构维持的分类帐。
Confirmation(确认): 去中心化的一次交易,将其添加到blockchain的成功确认。
Consensus(共识): 当所有网络参与者同意交易的有效性时,达成共识,确保分布式账本是彼此的精确副本。
Cryptocurrency(加密货币): 也称为令牌,加密货币是数字资产的呈现方式。
Cryptographic Hash Function(加密哈希函数): 密码哈希产生从可变大小交易输入固定大小和唯一哈希值。 SHA-256计算算法是加密散列 的一个例子。
Dapp(去中心化应用): Dapp(去中心化应用程序)是一种开源的应用程序,自动运行,将其数据存储在区块链 上,以密码令牌的形式激励,并以显示有价值证明的协议进行操作。
DAO(去中心化自治组织): 去中心化自治组织可以被认为是在没有任何人为干预的情况下运行的公司,并将一切形式的 控制交给一套不可破坏的业务规则。
**Distributed Ledger(分布式账本) :**分布式账本,数据通过分布式节点网络进行存储。 分布式账本不是必须具有自己的货币, 它可能会被许可和私有。
Distributed Network(分布式网络): 处理能力和数据分布在节点上而不是拥有集中式数据中心的一种网络。
Difficulty(容易程度): 这是指成功挖掘交易信息的数据块的容易程度。
Digital Signature(数字加密): 通过公钥加密生成的数字代码,附加到电子传输的文档以验证其内容和发件人的身份。
**Double Spending(双重支付) :**当花费一笔钱多于一次支付限额时,就会发生双重支付。
**Ethereum(以太坊) :**Ethereum是一个基于blockchain的去中心化运行智能合约的平台,旨在解决与审查,欺诈 和第三方干扰相关的问题。
EVM(以太坊虚拟机): Ethereum虚拟机(EVM)是一个图灵完整的虚拟机,允许任何人执行任意EVM字节码。 每个Ethereum节点都运行在EVM上,以保持整个块链的一致性。
**Fork(分支) :**分支可以创建区块链的交叉版本,在网络不同的地方兼容的运行两个区块链。
Genesis Block(创世区块): 区块链的第一个区块。
**Hard Fork(硬分支) :**一种使以前无效的交易有效的分支类型,反之亦然。 这种类型的分支需要所有节点和用户 升级到最新版本的协议软件。
Hash(哈希): 对输出数据执行散列函数的行为。 这是用于确认货币交易。
Hash Rate(哈希率): 采矿钻机的性能测量值以秒为单位表示。
Hybrid PoS/PoW(混合PoS / PoW): POW(Proof of Work,工作证明)是指获得多少货币,取决于你挖矿贡献的工作量,电 脑性能越好,分给你的矿就会越多。POS(Proof of Stake,股权证明)根据你持有货币的 量和时间进行利息分配的制度,在POS模式下,你的“挖矿”收益正比于你的币龄,而与电 脑的计算性能无关。
混合PoS / PoW可以将网络上的共享分发算法作为共享证明和工作证明。 在这种方法中, 可以实现矿工和选民(持有者)之间的平衡,由内部人(持有人)和外部人(矿工)创建一 个基于社区的治理体系。
**Kyc KYC:**是Know Your Customer的缩写,意思是了解你的客户,在国际《反洗钱法》条例中, 要求各组织要对自己的客户作出全面的了解,以预测和发现商业行为中的不合理之处和潜在 违法行为。
Mining(挖矿): 挖矿是验证区块链交易的行为。 验证的必要性通常以货币的形式奖励给矿工。 在这个密码 安全的繁荣期间,当正确完成计算,采矿可以是一个有利可图的业务。 通过选择最有效和 最适合的硬件和采矿目标,采矿可以产生稳定的被动收入形式。
Multi-Signature(多重签名): 多重签名地址需要一个以上的密钥来授权交易,从而增加了一层安全性。
**Node(节点) :**由区块链网络的参与者操作的分类帐的副本。
Oracles(数据库): Oracle通过向智能合约提供数据,它现实世界和区块链之间的桥梁。
Peer to Peer(点对点) 对等:(P2P)是指在高度互联的网络中,双方之间的去中心化互动或更多的互动。 P2P网络 的参与者通过单个调解点直接相互协商。
Public Address(公用地址): 公共地址是公钥的密码哈希值。 它们作为可以在任何地方发布的电子邮件地址,与私钥不 同。
Private Key(私钥): 私钥是一串数据,它是允许您访问特定钱包中的令牌。 它们作为密码,除了地址的所有者 之外,都被隐藏。
Proof of Work(工作证明): POW(Proof of Work,工作证明)是指获得多少货币,取决于你挖矿贡献的工作量,电 脑性能越好,分给你的矿就会越多。
Proof of Stake(股权证明): POS(Proof of Stake,股权证明)根据你持有货币的量和时间进行利息分配的制度,在 POS模式下,你的“挖矿”收益正比于你的币龄,而与电脑的计算性能无关。
**Scrypt Scrypt:**是一种由Litecoin使用加密算法。 与SHA256相比,它的速度更快,因为它不会占用 很多处理时间。
SHA-256: SHA-256是比特币一些列数字货币使用的加密算法。 然而,它使用了大量的计算能力和处 理时间,迫使矿工组建采矿池以获取收益。
Smart Contracts(智能合约): 智能合约将可编程语言的业务规则编码到区块上,并由网络的参与者实施。
Soft Fork(软分支):
软分支与硬分支不同之处在于,只有先前有效的交易才能使其无效。 由于旧节点将新的块 识别为有效,所以软分支基本上是向后兼容的。 这种分支需要大多数矿工升级才能执行, 而硬分支需要所有节点就新版本达成一致。
**Solidity Solidity:**是Ethereum用于开发智能合约的编程语言。
Token(通证): 加密数字货币、代币
**Testnet :**开发商使用的测试区块链,它主要是用来防止改变在主链上的资产。
Transaction Block(交易区块) :聚集到一个块中的交易的集合,然后可以将其散列并添加到区块链中。
Transaction Fee(手续费): 所有的加密货币交易都会涉及到一笔很小的手续费。这些手续费用加起来给矿工在成功处理 区块时收到的区块奖励。
Turing Complete(图灵完备): 图灵完成是指机器执行任何其他可编程计算机能够执行计算的能力。 一个例子是Ethereum 虚拟机(EVM)。
Wallet(钱包): 一个包含私钥的文件。 它通常包含一个软件客户端,允许访问查看和创建钱包所设计的特 定块链的交易。
这是摘录的区块链学习阶段,个人认为不需要如此周密,但是书籍、文献和技术缺一不可。
感谢知乎作者@柯南
以上是关于区块链学习——原理入门的主要内容,如果未能解决你的问题,请参考以下文章