区块链技术自比特币网络设计中被大家发掘关注,从最初服务数字货币系统,到今天在分布式账本场景下发挥着越来越大的技术潜力。
1.区块链的演化
比特币区块链已经支持了简单的脚本计算,但仅限于数字货币相关的处理。除了支持数字货币外,还可以将区块链上执行的处理过程进一步泛化,即提供智能合约(smart contract)。智能合约可以提供除了货币交易功能外更灵活的合约功能,执行更为复杂的操作。
这样,扩展之后的区块链已经超越了单纯数据记录的功能,实际上带有一点“智能计算”的意味;更进一步,还可以为区块链加入权限管理和高级编程语言支持等,实现更强大的、支持更多商用场景的分布式账本。
2.区块链与分布式记账
记账技术历史悠久,现代复式记账系统(double entry bookkeeping)由意大利数学家卢卡·帕西奥利于1494年在《Summa de arithmetica,geometrica,proportioni et proportionalità》一书中最早制定。复式记账法对每一笔账目同时记录来源和去向,首次将对账验证功能引入记账过程,提升了记账过程的可靠性。
从这个角度来看,区块链是首个自带对账功能的数字记账技术实现。
更广泛地看,区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织,彼此无需信任;区块链数据由所有节点共同维护,每个维护节点都能复制获得一份完整或部分记录的拷贝。
跟传统的记账技术相比,基于区块链的分布式账本应该包括如下特点:
-
维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
-
去中心化,或者说多中心化,无需集中控制而能达成共识,实现上尽量采用分布式;
通过密码学的机制来确保交易无法被抵赖和破坏,并尽量保护用户信息和记录的隐私性。
3.分类
根据参与者的不同,可以分为公开(public)链、联盟(consortium)链和私有(private)链。
·公有链,顾名思义,任何人都可以参与使用和维护,如比特币区块链,信息是完全公开的;
如果进一步引入许可机制,可以实现私有链和联盟链两种类型:
-
私有链,由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开;
联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,如供应链机构或银行联盟。
目前来看,公有链更容易吸引市场和媒体的眼球,但更多的商业价值会在联盟链和私有链上落地。
根据使用目的和场景的不同,又可以分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等,也有不局限特定应用场景的通用链。
现有大部分区块链实现都至少包括了网络层、共识层、智能合约和应用层等结构,联盟链实现往往还会引入一定的权限管理机制。
2.3 关键问题和挑战
从技术角度讲,区块链所涉及的领域比较繁杂,包括分布式系统、存储、密码学、心理学、经济学、博弈论、控制论、网络协议等,这也就意味着大量工程实践上的技术挑战。
下面列出了目前业内关注较多的一些技术话题。
1.抗抵赖与隐私保护
怎么防止交易记录被篡改?
怎么证明交易双方的身份?
怎么保护交易双方的隐私?
密码学的发展为解决这些问题提供了不少手段。传统方案包括Hash算法、加解密算法、数字证书和签名(盲签名、环签名)等。
随着区块链技术的应用,新出现的需求将刺激密码学的进一步发展,包括更高效的随机数产生、更高强度的加密、更快速的加解密处理等。同时,量子计算等新技术的出现,也会带来更多的挑战,例如,RSA算法等目前商用的加密算法,在未来可能无法提供足够的安全性。
能否满足这些新的需求,将依赖于数学科学的进一步发展和新一代计算技术的突破。
2.分布式共识
这是个经典的技术难题,学术界和业界都已有大量的研究成果(包括Paxos、拜占庭系列算法等)。
问题的核心在于如何解决某个变更在分布式网络中得到一致的执行结果,是被参与多方都承认的,同时这个信息是被确定的,不可推翻的。
该问题在公开匿名场景下和带权限管理的场景下需求差异较大,从而导致了基于概率的算法和确定性算法两类思想。
最初,比特币区块链考虑的是公开匿名场景下的最坏保证。通过引入了“工作量证明”策略来规避少数人的恶意行为,并通过概率模型保证最后参与方共识到最长链。算法在核心思想上是基于经济利益的博弈,让恶意破坏的参与者损失经济利益,从而保证大部分人的合作。同时,确认必须经过多个区块的生成之后达成,从概率上进行保证。这类算法的主要问题在于效率的低下。类似算法还有以权益为抵押的PoS、DPoS和Casper等。
后来更多的区块链技术(如超级账本)在带权限管理的场景下,开始考虑支持更多的确定性的共识机制,包括经典的拜占庭算法等,可以解决快速确认的问题。
共识问题在很长一段时间内都将是极具学术价值的研究热点,核心的指标将包括容错的节点比例、决策收敛速度、出错后的恢复、动态特性等。PoW等基于概率的系列算法理论上允许少于一半的不合作节点,PBFT等确定性算法理论上则允许不超过1/3的不合作节点。
哼╭(╯^╰)╮,我才不会告诉你,
我们公众号是
Garlicmedia,
为什么?
我怕你无法自拔