排除万难,从入门到精通区块链

简介: 目前越来越多的人已经进入或准备进入区块链领域,过程中不免抱着各样的疑虑和问题。想起自己之前用几年时间,从“略懂”区块链到all in,同样也经历着类似的心路历程,这个领域确实是有一些门槛的,但万事开头难,摸索路上还远不止八十一难,这里梳理几个概要性的困难和感悟,谨作分享。方向之难“我是谁”、“我在哪”、“我要去哪儿”,一切都源于这么一个哲学三问。区块链是什么?区块链究竟能做什么?为什么区块链这么火?不用区块链行不行?这些问题都充满了终极拷问的意味。其实很难彻底回答这些问题,因为,并没有标准答案。所有创新的前沿的事物大抵如此,在质疑和动荡中发展,在黑暗和荒芜中摸索,精华和糟粕齐飞,绿

目前越来越多的人已经进入或准备进入区块链领域,过程中不免抱着各样的疑虑和问题。想起自己之前用几年时间,从“略懂”区块链到all in,同样也经历着类似的心路历程,这个领域确实是有一些门槛的,但万事开头难,摸索路上还远不止八十一难,这里梳理几个概要性的困难和感悟,谨作分享。

方向之难

“我是谁”、“我在哪”、“我要去哪儿”,一切都源于这么一个哲学三问。区块链是什么?区块链究竟能做什么?为什么区块链这么火?不用区块链行不行?这些问题都充满了终极拷问的意味。

其实很难彻底回答这些问题,因为,并没有标准答案。所有创新的前沿的事物大抵如此,在质疑和动荡中发展,在黑暗和荒芜中摸索,精华和糟粕齐飞,绿洲与韭菜一色,直到引爆点迸发。如果因为充满疑虑而左右摇摆,或者裹足不前,那么在从事相关工作研究的过程,体验会很糟糕,结果也不会好。

分享一点个人体会:区块链领域从一开始就吸引了全世界无数的聪明人,不乏极客、学者、大师, 他们进行了大量的技术和社会实践。这个领域蕴含着数学、计算机、密码学、博弈论、经济学、社会学等学科的精华,这是一个智力飞扬、思想激荡的世界。目前,整个行业更是获得前所未有的关注,包括政府、各行业巨头都在关注,大量注意力和资源持续涌入,区块链迎来了“最好的时节”。

在持续进化、结构多元的现代社会里,分布式商业的理念已经成为现实。人和人、机构和机构之间会产生更多的联系和协作,信息和价值在新型网络模式中快速流转,作为分布式技术代表之一的区块链,很有机会成为新一代基础设施和创新的据点。

所以,方向并不是问题。即使你不把区块链当做“信仰”,只看这个充满魅力的技术本身,以及区块链与实体经济深度融合的机遇,还是可以给我们带来信心。

概念之难

在哲学三问中,“区块链是什么”是最晦涩的问题,区块、交易、账户、共识、智能合约、双花...这都是什么?!我自己在刚接触区块链时,也有一种被颠覆了认知的感觉。有一些介绍区块链的文章,往往着眼在区块链的社会和经济效能,从价值理念讲起,这些固然是必要的,但俗话说“科学要定性更要定量”,作为工程技术人员,我们更应该关注的是,区块链里的知识点、基本原理,进而澄清术语、把握架构、处理逻辑和程序流程。

前面提到,区块链蕴含着大量学科的精华,同时,行业也有一句俗语:“区块链并没有发明什么新技术,都是成熟技术的组合”。

这些成熟的技术包括数据结构,诸如链表、树、图、过滤器等,是大学里数据结构的基础知识;

基础密码学,包括HASH和对称非对称加密、数字签名等等,已经是几十年的经典技术,而事关隐私保护等领域的新一代密码学,更给密码学专业人士开拓了一片广阔的发挥空间;

分布式网络和系统这门学科本身包罗万象,覆盖了海量服务的知识范畴,许多从事过海量互联网服务技术的同学,都会对区块链的P2P网络和共识算法、并行计算模型、事务性一致性原理如数家珍;

博弈论和激励相容是协作方面的知识点,是“区块链思维”的重要组成部分,工科学生可能需要翻翻书,社科经管背景的同学估计会似曾相识吧;

至于智能合约,比如solidity语言、WebAssembly等,很少听说吗?其实这些语言以及编程模式学习曲线未必有javascript高,有几年程序基础的同学基本上一周就可以上手,写出顺溜的智能合约来。

区块链让人觉得认知困难,是因为它就像个“筐”,什么都可以往里装,牵涉的技术繁杂,组合方式却和常规技术套路不同。所以学习者一定程度上先要放空自己,避免让自己在原有领域的思维定势干扰了学习,在丰富自己知识面的同时,接受区块链的“群体共识”、“防止篡改”、“不可否认”、“高度一致性”等神奇逻辑,然后潜心进去看每一个独立的概念时,并不会觉得高不可攀。

突破概念之难的要点,是排除来自各种渠道的噪声,有些信息似是而非,或者是各说各话,把同一件事用N种话术讲出来,混淆了定义,模糊了本质,于事无补的同时还带来更多疑问。靠谱的方法是着重阅读权威媒体的正规内容,关注一些主流区块链项目的文档库,认真地、全面地通读技术文档,然后找一个自己感兴趣的领域(如共识算法),结合自身经验知识进行对照研究。

同时,也可以加入活跃的开源社区和技术圈子,和有经验的人多讨论,勇于把问题抛出来,挨个术语,挨个流程讨论透彻。我们在研究区块链的初期,团队经常就一个概念的定义咬文嚼字地争论很久,最后愉快地达成共识时,大家都觉得神清气爽。

在概念阶段,切忌求全责备,不要变成资料收集机,一口吃不成胖子,基于靠谱的学习资料,澄清基本概念,在实践中去验证和发掘新的概念,建立发现问题、解决问题的方法论,慢慢就能举一反三,说不定某一天就能醍醐灌顶了。

上手之难

好吧,哲学和概念问题终于不会阻碍我们学习的脚步了,那么怎么继续“二十一天入门到精通”之路。作为技术人员,遇到新的技术平台、软件体系、编程语言...那当然是:“不要怂,就是干!”

几年前,我们刚开始研究区块链时,通读过几个国外流行的开源区块链项目代码,并搭建测试网进行试验剖析,分析如何让这些平台能在复杂的金融业务上用起来。当时有个困惑,如果直接基于底层平台开发应用,当需要实现更多功能时,是不是就得直接修改底层平台代码。

而当看到“智能合约”这个东西时,思路一下就打开了:采用智能合约作为中间层,在合约里编写业务逻辑,并为调用者定义清晰的功能接口,这样,业务可以很好和底层解耦,而底层平台则定位成强大的引擎,通过架构的解耦,使得整个开发过程变得清晰合理、轻松愉快,感觉就像是从“C/S”架构到“B/S”架构的演变,多年互联网海量服务开发的手感又回来了。

另外,我们觉得当时的开源项目主要是公链形态,在安全可控以及合规方面考虑没有那么周全,并不适合金融场景使用。

那么,没有趁手的平台,就想办法造一个。从此,深耕底层技术、迭代应用验证的漫漫之路开启了。这个过程也和开源社区一众伙伴建立了紧密的合作,正是“来自开源并回馈开源”,经过开源工作组几年的打磨,FISCO BCOS已经是一个全面开源、安全可控、高速稳定、易用友好的金融级底层技术平台,面向金融和广大的产业领域,提供丰富的功能和各种操作工具。丰富全面的文档可以帮助开发者从快速入门到精通,整体的技术门槛和开发成本变得前所未有的低。

有了基础的底层平台之后,下载、安装、配置、运行、阅读使用手册、写hello world和业务应用、Debug和分析日志...都是step by step的工作了。

我们目标是,用户在几分钟内,用一键安装、docker、云服务等方式顺畅无错地搭建出自己的区块链网络,在一周内通过学习就可以写出完整的智能合约,基于支持多款语言的SDK(Java、Node.js、Python、Go...还在增补中)实现业务逻辑,将业务发布上线,保持稳定运行。

为了这个目标,我们一直在持续优化使用文档、开发手册,以及部署和运维工具。众所周知 ,“码农”们喜欢写代码,而写注释和文档就比较痛苦了,为了向社区交出一份漂亮的作业,大家倾尽了有生以来的语文水平,一次又一次修订,硬是写出了数十万字的文档库。

同时,开源社区推出了一系列的线下线上沙龙、培训,用社区的方式,进行广泛交流和技术支持。在多次的现场学习和黑客松大赛中,我们欣喜地看到,开发者用两三天时间,就能基于FISCO BCOS实现他们精巧的项目设计,而且有开发者将其中和开源项目相关的优化贡献到Github上。

到这个程度,即使是对没有区块链研发经验的开发人员,快速上手已经没有什么问题,即便区块链底层还像一个黑盒子有待探索,但就像在电脑上安装App、使用mysql、tomcat之类的软件一样,足可以用起来,感受区块链的魅力了。

深入之难

对技术人员来说,探索技术的内涵永无止境:参与到区块链底层开发,实现大型的区块链应用,为区块链生态增加更多有用的特性、工具,对现有功能性能进行极致优化,这些都是进入“深水区”的路线。

之前提到,区块链系统知识点和框架涉猎广泛,无论是知识面还是深度都有相当的规模。量化一下的话,可以套用一万小时理论:如果每天学习工作8-10小时,一个月足以上手,一年可得小成,两年轻车熟路,三年可成老司机……但老司机要行的前路依旧漫漫。我们希望通过持续的科普、交流、实践,去缩短这个过程,但毕竟学习就是一种最基本的“工作量证明”,并没有什么其他捷径。

学习方法,首先是大量的泛读,每天早上一睁眼到晚上,都可以看到持续更新的行业新闻、公众号文章、技术大咖博客、邮件组讨论组、开源项目...阅读的过程或许会遇到不同观点的碰撞,需要去伪存真,在心态开放的同时,也保持自己的立场和方向。

然后是深入的精读,先选定一两个感兴趣的方向,研读诸如密码学、分布式理论等方面的一些经典论文。FISCO BCOS的核心共识算法使用的PBFT和RAFT算法,是基于对原版论文的研究解读,有了深入的理解再去做的实现和优化。区块链里广泛用到密码学原理,场景和逻辑多变,其原理有可能来自某一篇“顶会”论文。精读深度原理剖析文章和学术论文,基于扎实的理论,才能根据自己的需要进行发挥,创造性地解决工程问题。

其实我们的在线文档已经有数十万字的规模,各种信息应有尽有,技术社区会定期对热点知识进行解读,只要读者认真阅读在线技术文档,接受公众号的体贴推送,并动手进行更多的实践,随着时间推移,必能深度理解手机号购买平台区块链的技术原理,参透架构设计的来龙去脉,建立起巩固的知识体系。

最后,精读的对象,自然也包括源代码,毕竟“Talk is cheap, show me the code”,区块链开源项目代码大多是几万到几十万行的级别,阅读代码是达成庖丁解牛水准最直接的方法。在研究区块链的历程里,我们有许多长夜漫漫review代码的日子,当读到一眯眼,眼前都是代码在飞,各种接口和对象翩翩起舞,既优雅又有规律,脉络清晰,那种愉悦简直难以名状。这种体验,之前有,之后也会继续有。

如果已经深入到了这个程度,领域门槛已经基本越过,考验的就是开发者的脑力和体力了吧。

持续之难

在过去几年因为鱼目混珠、政策法规、技术障碍等等一系列情况,区块链会遇到市场波动、应用落地延缓等挑战。未来如何,虽然没有预言家告诉我们,但现在大家已经看到了趋势。这又回到了第一个问题:“方向”,明确清晰的方向,不但能回答“要不要进入这个领域”,同样也能回答“要不要坚持下去”。我们一直在分布式商业模式中开拓场景,为公众提供优质的服务,为行业提供完备和好用的开源技术,这是从开始到现在,乃至未来坚持的方向,从未改变。

再具体一点,如果我们已经用区块链部署上线了业务系统,那么影响系统生命周期和持续性的问题还有:可运维性、可升级性、兼容性、数据容量、业务性能容量等等。

多次和社区朋友交流的过程,他们会提起一些问题,例如,新版本是否能兼容旧版本?随着业务发展,越来越多的数据是否可以迁移和重用?这都是用户的真实声音。我们所构建的平台,一定要走可持续发展的路线,重视软件体系的兼容性,有合理的版本发布节奏,以及周全的数据迁移维护策略,可以更好地保护社区用户利益,也使得用户愿意长期与社区共同发展。

另外,区块链领域还在高速发展中,各种新技术、新思潮、新模式、新政策还在层出不穷,这个领域集结了世界上大量的聪明人,他们不但聪明而且努力,从来都不闲着。于是在这个领域工作,每天都会有新的知识、新的刺激,这一方面是一种幸运,另一方面,也会让人极其焦虑。

如何去消化这么海量的信息,如何去探索和掌握前沿的知识,如何更好满足高速发展带来的用户需求和新挑战,如何做出卓有成效的突破性创新,这真的是一个创新和焦虑并存的世界,让人欲罢不能。

作为从业者,必须持续进行大量阅读,在各种信息流里过滤和吸收,不断地归纳/总结/思考/开拓;每一个需求和用户ISSUE反馈都是一个小目标,每发布一个新版本都会是下一个版本的新起点。区块链的世界和其他技术领域没有什么不同,都必须保持敏锐和奔跑,保持好奇和谦逊,不断学习和实践,修订短板寻求突破,将成果分享给社区。正如系统需要极大的弹性,人也需要极大的韧性。共勉。

目录
相关文章
|
Java 区块链
Java工程师入门区块链的7个开源项目
如果你是一个对区块链感兴趣的Java工程师,那么除了阅读书籍或博客之外,更好的学习方法是亲自动手,深入了解以下7个最流行的Java区块链项目。 1、Corda Corda可能是Java开发人员进入区块链世界的最自然的出发点。
6038 0
|
4月前
|
机器学习/深度学习 自然语言处理 物联网
深度学习入门:从理论到实践新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【8月更文挑战第30天】本文将介绍深度学习的基本原理和实践应用。我们将从深度学习的定义、历史和发展开始,然后深入探讨其工作原理和关键技术。接着,我们将通过一个简单的代码示例来展示如何实现深度学习模型。最后,我们将讨论深度学习在现实世界中的应用和挑战。无论你是初学者还是有经验的开发者,这篇文章都将为你提供深度学习的全面理解。
|
1月前
|
存储 人工智能 安全
区块链技术入门与应用前景
区块链技术入门与应用前景
41 0
|
3月前
|
存储 供应链 安全
掌握未来:区块链技术的简易入门指南
想象一下,有一种魔法可以安全地储存你的财富和信息,不受任何中心化机构的控制。听起来像是幻想?其实不是!这就是区块链技术的魅力所在。本文将带你走进区块链的世界,了解它如何工作,以及为什么它可能改变我们的未来。无论你是完全的新手,还是对这项技术略知一二,这篇文章都将为你提供有价值的见解。
|
6月前
|
安全 算法 定位技术
[Solidity][区块链安全入门]Solidity语言关于密码学知识的运用以及存在漏洞
密码学在区块链中扮演关键角色,确保机密性、完整性、身份认证和不可否认性。对称密钥加密用于快速加密,但不支持不可否认性。非对称加密(如RSA)解决了这一问题,每个用户拥有公钥和私钥。散列函数(如SHA-1、SHA-2)用于数字签名,保证信息来源和完整性。同态加密允许在不解密情况下处理加密数据,增强隐私保护。零知识证明则能验证信息正确性而不泄露额外信息,如ZCash使用该技术隐藏交易详情。环签名技术(如在门罗币中)隐藏签名者身份。区块链隐私保护措施包括混币技术,旨在混淆交易路径。网络和应用层面上也存在隐私挑战,需要综合策略来防御。
|
算法 Serverless 区块链
区块链入门认知指南
区块链入门认知指南
232 0
|
存储 安全 物联网
区块链入门科普
区块链g入门科普
|
存储 算法 区块链
区块链入门应该做哪些事情
区块链入门应该做哪些事情 作为初学者,区块链入门应该做以下几件事情: 1. 学习基础知识:了解区块链、加密货币、数字钱包等基础知识,学习基本的投资和交易策略。 2. 选择合适的数字钱包:选择安全可靠的数字钱包,保护好自己的数字资产。 3. 选择合适的交易所:选择安全可靠的交易所,了解交易所的费用、交易量、交易对等信息。 4. 观察市场行情:观察市场行情,了解数字货币的价格走势和市场情况,制定投资计划。 5. 分散投资风险:不要把所有的资金都投入到同一种数字货币中,应该分散投资,降低风险。 6. 谨慎投资:投资数字货币需要谨慎,不要盲目跟风,要根据自己的情况和风险承受能力进行投资。
121 0
|
存储 供应链 算法
区块链入门
详细介绍一下区块链,简单了解一下区块链技术,更好了解区块链基础知识、应用领域与核心技术。
318 0
|
存储 供应链 算法
区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
下一篇
DataWorks