是不是很惊讶,协议和算法并不是一回事!而你是不是经常看到很多文章中把它们混用。在这篇文章中,我希望能对它们之间的区别做个清楚的阐释,并且向大家证明,弄清楚它们之间的区别将有助于我们对区块链的深入理解。
协议是掌管一个系统如何运行的一系列规则。这些规则确立了不同部分的基本功能、他们如何相互作用、以及对于良好运行所必需的条件。协议的不同部分对时间顺序不敏感——首先制定哪个部分并不重要。协议也不会告诉系统该如何产生一个结果或输出,除了顺利执行之外,没有其他目标。
协议就像一辆汽车的引擎。
算法,是一组产生输出结果的指令。它可以是一段简单的脚本,也可以是一个复杂的程序。指令的顺序非常重要,而算法指定了该顺序。它会告诉系统该做什么才能达到预期结果。它可能不会提前知道结果是什么,但它知道它需要一个结果。
算法就像一辆汽车的驾驶员,它发布的指令就是驾驶员为操作汽车而做的一系列行为。
(比如在这张图中,桥是协议,自行车是协议,骑车的人是算法)
协议是一组决定系统功能的规则,算法是一组告诉系统该做什么的指令。协议定义的是“是(is)”,算法是“做(dose)”。
如果在厨房中,协议就是一系列的条件和指令,例如:
刀切东西
火加热
橄榄油是美味的
煎锅适合炒洋葱
在做饭之前要洗手
烧焦的食物很难吃
算法则是这样的:
第一步:切洋葱
第二步:在平底锅里加热橄榄油
第三步:把洋葱放到锅里,加一些盐,翻炒洋葱至半透明状