请问会计: 假设小明收入80000元,按照图表,应当缴纳百分之多?

第一次来混知乎,恰巧看到自己专注的问题解决学领域,来码一段试试看,这应该是处女作了~

下面所讲基本思路正好是我某一次给销售团队开的内部培训内容,我尽量去掉了一些繁琐的引用,用最直白的话来表述这个问题

如果等不及的人可以直接跳到第三个大点,想要知道问题是如何产生的话请从头看起,因为对自己的身体构造有一定了解后协调各部分运转也会更容易:

  • 先来看一下一般的问题解决思路:

遭遇一个问题→把问题看清楚→(注意,这个过渡过程是重点)问题的可能的解决方案→每个方案可能的优缺点和产生的联动。

没问题,大部分人可能因为各种原因都是这样做的(先别急着说还有问题总结和反馈,在文章开头不打算谈到那么远的事情)

接下来的差距就在于,“有经验的问题解决者”能对一个问题迅速给出无数种可能的解决办法,这个可能是由于多年经验的积累或者碰巧最近对这个方面研究较多。对于“一般的问题解决者”这个反应的CD(技能冷却时间)就很长了。现在这里有了一个gap,在问题和解决方法之间,“一般的问题解决者”绞尽脑汁想要想出好的解决方案。

谈到这里,似乎问题解决者的唯一差别就在于积累了。真的是这样吗?创造性的问题解决思路是从哪里来的?

首先,我们看到,不管是不是“有经验”的问题解决者,当遭遇一个问题时都会有一个反应时间,这段时间可能会被用来回忆以前的解决方案,不管愿不愿意承认,反应速度快慢只是由于对这个方案的熟悉程度大小决定。那么这个gap真的没有东西填补吗?

  • 那么我们需要从生物学角度来了解下问题解决原理:

(注意是生物学,不是心理学,是我们的生理构造的部分原因让我们产生了现在的状态)

如果我们从上到下,看大脑的横截面,我们会发现大脑分为三个部分。在面对复杂问题(公式,逻辑,图表等)首先接收到的都是我们的大脑皮层(neocortex),由此我们可以理解很多复杂的东西,并且拥有语言功能。

但是当我们做出决策,使用的是我们的边脑(limbic brains,一左一右),但是边脑没有语言功能,需要向外输出到大脑皮层做出决策。

这也就是说,一般人直接思考到解决方案的时候只是在用最外层的大脑皮层进行积累的输出,没有一个决策的环节。

现在,看起来问题是天生的构造,没有办法解决了,不是么?

  • 一个有经验的问题解决者的解决思路:(这个有经验没有“”哦)

首先我们需要知道,一个问题包含两个部分:问题域和解决域

大部分解决者专注于解决域,而忽视了问题本身,那么问题解决的一半就已经被你丢弃了。

那么问题域我们需要做什么呢?

1.这是谁的问题?我是从谁的角度出发解决这个问题?

这是两个不同的问题,关于第一点这个需要一些洞察力和对这个领域或者生产线流程的一些了解,不过这里有一条原则:当一个问题产生,75%时候可以从自己身上找到原因。

关于从谁的角度出发,我想我举这个案例会更好理解:

一个房屋长期租户用这个房子开了个饭店,门口高峰期拥堵,外面的人想进去,里面的人想出来。

可能的解决方案:①把门拓宽②两个门分别标为“进”和“出”③在门口放置一面镜子④提供更多服务,如窗口和路边摊位⑤安排高速“无需等待”窗口,但只供应特定食物⑥限制客户数量,如排号等。

那么,以上设想的方案是从在帮谁解决问题?作为问题解决者的“你”又是什么身份?

如果房东是碰到问题的人,并且是问题的解决者,可能方案会变成这个样子:①提高租金②投诉房门的建筑商③让人们相信,就是因为这里条件良好才会出现这种情况④放把火把房子烧了领保险金

所以,现在是谁碰到了问题?作为问题解决者的你又是谁?(这很重要,从单一思维模式到多重思维模式是问题解决学的入门关键)

2.问题的定义是什么?

在一场解决方案的讨论中,最终提出方案的人,往往有以下几个特点之一:声音最响,口才最好,钱最多,权力最大。

首先,不要把解决方案当初问题的定义,不管是别人提出的还是自己提出的(通常我们不会定义问题,直接开始解决方案)。这并不是说要忽视看到问题的第一印象,相反,那很重要,只是需要剔除其中的解决方案的部分。

其次,多视角,把自己想象为你的问题可能包含的所有人(儿童、老板、开发商、律师),从每个人的视角看待下这个问题。并对问题做修正。

再者,如果是上级派发下来的任务,通常情况下,不同的表述会让我们定义出不同的问题,此时最好与问题的上级(或者,可能的话,源头)保持下联系,保证问题的定义尽量准确。

表述举例如下:图示是一个东西,请问它是什么?

图示是一个生活中常见的东西,请问它是什么?

要保证,每个人对问题的理解统一(可以尝试把问题里的某些词汇变为反义词看看是否定义准确)

当然,有时候,问题不是分配给谁解决,而是该由谁来解决,通常来说谁掌握关于问题最多的信息,解决者就应该是谁。

最后,需要思考的是,问题来自哪里?需要根据这个对问题定义进行修正

如果你是在借用某样东西和安保处打交道,那么你需要知道他们为什么不借给你,如果他们说:上级那边这种情况会被算作违规操作,那么你就需要给他的上级打电话,尽力说服这不是违规操作,而不是给保安处买条烟。

关于解决域方面,有很多的思考模式和思考方法,再次赘述的话太过冗长,所以只希望提醒大家平时忽略的问题域。


  • 以上所说均为方法论层面,具体关于某个领域的问题的好的解决者一定是对领域足够了解并且对每一个流程都足够了解的人。

但还是有几点需要提醒的:

1.问题解决太迅速,别人会认为你没有好好看问题(当然这不是初级的问题解决者需要考虑的问题)

2.最好不要帮没有幽默感的人解决问题

3.每一个解决方案都会带来下一个问题,不要期望能够一劳永逸,问题解决只能期望下一个出现的问题比这个更容易解决

4.每一种解决方案如果找不出三种以上的不合理之处(可能带来的问题)那就没有真正思考问题

}

摘要:本文分析了如何挖掘物理题中隐含条件的途径和方法。并对物理学试题题型进行归类、例举和解析。学生要解好物理题,必须要有扎实的物理知识和相关学科的知识,综合分析和解决问题的能力。因此,在物理教学过程中要注重提高学生的解题能力,加强对解题方法的教学。

关键词:隐含条件 物理学 解题能力

学习在解物理习题时,经常会遇到这种情况,有些解题的必要条件,题中并为明确给出,而是隐含在字里行间。充分挖掘隐含条件,明确题目要求,采用合适方法,选择正确答案,是解好这类题的关键。本文就如何挖掘试题中的隐含条件,提高解题能力作一例析。

一、从关键词中挖掘隐含条件

在物理题中,常见的关键用语有:表现为极值条件的用语,如“最大”、“最小”、“至少”、“刚好”等,它们均隐含着某些物理量可取特殊值;表现为理想化模型的用语,如“理想滑轮”、“轻质杠杆”、“光滑水平面”等,扣住关键用语,挖掘隐含条件,能使解题灵感顿生。

例1 一个物体在平衡力的作用下,在光滑水平面上做匀速直线运动,当这对平衡力突然消失,则物体将( )

C.速度减慢,最后停止

解析:题中“光滑水平面”为关键词。光滑水平面意味着物体不受摩擦力的作用。题目中的物体待平衡力消失后,将不再受力的作用,因此仍要保持匀速直线运动(牛顿第一定律)。

二、从物理学常识中找隐含条件

有些题目几乎没有条件,但仔细研究就会发现条件其实全部隐含于物理常识中,这就要求学生根据题意进行发散性思维,努力挖掘相关知识,在条件不足的情况下,根据常识假设适当的条件和数据以弥补题中明确给出的已知条件的不足。

例2 一个中学生对地面的压强大约是( )

解析:此题隐含条件有两个,一是中学生的体重约为50kg,二是中学生双脚底面积约为5dm2,而这两个条件都非常隐蔽,属于物理学常识,只要明确了这两点,不难得出正确答案D。

三、从物理学发展史中寻找隐含条件

这类试题一般涉及对物理学研究有贡献的科学家、科研成果和历史进程等,增加了学生的爱国情感,有利于培养学生的高尚情操,激起学生学习生物学知识的远大理想。

例3 发电机和电动机的发明使人类步入电气化时代,制造发电机的主要依据是电磁感应现象,首先发现电磁感应现象的是( )

解析:知道这些科学家的研究成果和对社会的巨大贡献,很快就能准确地选出正确答案D。

四、从物理现象的出现条件中寻找隐含条件

一定的物理现象的出现,是以具备一定的条件为前提的,当知道什么条件具备时可出现什么现象后,一旦题目给出某种现象,马上可以找出相应的隐含条件。

例4 我国“远望号”卫星测控船从江阴出发执行任务,由长江进入海洋。下列有关测控船所受浮力的说法正确的是( )

A.由于海水的密度大,所以船在海洋力受到的浮力大

B.由于船排开海水的体积小,所以它在海洋里受到的浮力小

C.由于船排开的海水的体积大,所以它在海洋力受到的浮力大

D.由于船始终漂浮在水面上,所以它受到的浮力不变

解析:“一个物体漂浮在液面上……”,出现这种现象的条件是物体所受浮力等于物重,所以隐含条件是物体受到的浮力等于重力。

例5 放在水平常木板上重10N的木块,受到水平向右,大小为5N的拉力作用,沿水平方向做匀速直线运动,这时木板水平方向受的合力为_______N。当拉力增大到8N时,木块受到的合力为_______N。

解析:“一个物体匀速运动……”要出现这种现象,前提条件是物体必须不受力或受平衡力作用,所以隐含条件为:物体不受力或受平衡力作用。

五、从物理概念、物理原理中寻找隐含条件

有些物理学问题、现象、判断等条件隐含于相关的概念和原理中,或是命题时有意混淆概念,偷换概念,要求学生对概念掌握准确,理解要透彻。

例6 晴天,几位大学生在森林中迷路了,下面四种利用风向引导他们走出森林的说法中,正确的是_______(图中虚线为空气流动形成风的路径示意图)

A.森林吸热,温度升高慢,空气温度低、密度大,地面空气从森林流向外界,应顺风走

B.土地吸热,温度升高快,空气温度高、密度小,地面空气从外界流向森林,应顺风走

C.森林吸热,温度升高慢,空气温度低、密度大,地面空气从森林流向外界,应迎风走

D.土地吸热,温度升高快,空气温度高、密度小,地面空气从外界流向森林,应迎风走

解析:本题中隐含了比热容的概念。物体的比热容越大,吸收热量后温度变化越小。

土地的比热容大,吸热后温度升高较快,空气温度高。热空气因密度小而向上升,地面空气从森林流向外界,应顺风走。

六、数学关系之中寻找隐含条件

正确的示意图不仅能帮助我们理解题意、启发思路,而且还能通过数学关系找出题中的隐含条件。这种方法不仅在几何光学中有较多的应用,而且在其它物理问题中也经常应用。

例7 有一均匀正方体对水平地面的压力是F,压强是P,如下图所示。若切去阴影部分,则剩余部分对地面的压力是原来的_______倍,压强是原来的_______倍。

解析:该题的条件隐含在数学关系之中,解题的关键要建立物理模型的空间想象力。切去部分的正方体边长为a/2,体积为V/8。切去阴影部分后,其质量为7/8m,底部受力面积为3/4S,剩余部分压强为P’=m/S=7/6P,压力为F’=Ps=7/8F。

七、从图形、图表与曲线关系中寻找隐含条件

图示是贮存和传递科学文化知识比较便捷的一条途径,它能够高度浓缩物理学的基本概念及原理,使之更加形象、直观。试题图文并茂,生动活泼,但图表曲线中隐含了相当多的没有叙述和未提及的条件,解题时结合题设条件分析图形,从图形中挖掘隐含条件,才能正确作答,较好地培养学生的观察和分析问题的能力。

例8 在如图所示的各图中,关于磁场的描述和小磁针表示正确的是( )

解析:这是一道集概念、实验和理论于一体的图形选择题,要求学生明确磁场的概念、磁场方向及磁场方向的规定等情况,这样才可选出正确答案为B。

八、从实验的器材、操作过程或结果中寻找隐含条件

在理论试题中,也有相当多的题干条件看似不足,其实隐含在实验器材、操作步骤和实验结果之中,要求学生根据已有知识,挖掘这些隐含条件,从而得出正确答案,这有利于考查学生的实验操作技能,有利于培养学生的创新精神和实践能力。

例9 如图所示电路,图中1、2、3表示电流表或电压表,请填上各表电路符号.并标出正、负接线柱的位置。

解析:判断电表的类型,需了解器材的使用规则。电流表要串联接入电路,电压表要并联接入电路。判断时,可假设将改表处断开,凡对电路结构有影响的是电流表,没有影响的是电压表。答案如上图。

确定解题思路,根据题型特点,充分理解题意。采用合适方法,能很好地提高解题能力,常用的物理方法有控制变量法、等效法、转换法、数据归纳法等。

例10 下表列出由实验测定的几种物质的比热容。认真阅读,你一定会有所发现,请填出任意三条:

解析:给表找规律时一般采用比较分析,综合分析的方法,即可找一般规律如某种变大或变小的趋势,共性等,也可找特殊规律。此表中12种物质除煤油和冰比热相同外,其他不同。说明不同物质得比热一般不同,这是共性。但冰和煤油不同物质比热相同这是特殊性质。水、冰同种物质,状态不同,比热容也不同。且可将物质分为金属、非金属进行比较。还可找比热容最大的、最小的。

例11 用实验研究决定电阻大小的因素,供选择的导体规格如下表:

解析:本题中导体的电阻与导体的长度、材料、横截面积三个物理量有关,要探究它们之间的关系,要采用“控制变量法”。要验证猜想一,就要取不同的长度,相同材料和横截面积的导线,所以应选序号1、2,同理可选出另两个猜想的序号。

答案:(1)1、2;(2)3、4;(3)1、3

}

更新在之后,说一些新的关于区块链的发展:

首先先说央行数字货币——央行数字货币的技术其实早就成熟了,都用不到区块链,因为区块链的目的是去中心化,而央行数字货币用不到这个。当然,采用区块链的央行数字货币技术也早就有了(参见RSCoin),这里面可能会在某些环节采用区块链技术去中心化——例如货币的发行仍旧是中心化的,但是流转中的管理和验证可以通过区块链技术去中心化到其他银行。同时,据我所知,官方早就有一个数字货币研究所在研究这个很久了。我在很早就写过,从大势上,货币的数字化是必然的,但这和比特币是两码事,看起来可能会更像支付宝。然后,现在facebook来了一出libra(请参见我关于libra的文章),我觉得从很大程度上推动了这次区块链的新闻,也推动了央行数字货币的推出。libra本身只代表facebook的野心,目前来看,他们的野心很有可能不会成功,但是也许是这种野心和指明的技术方向让国家产生了紧迫感——因为就算现在libra的所有成员都退出得差不多了,libra本身也前途未卜,但是万一类似的框架被搭起来又吸引了其他的重量级成员加入,那么国家在这上面就失去了主导权。因此,根据最近的新闻,央行的数字货币应该已经非常接近了。

但这点,并不足以突然让“区块链”成为国家战略,这里说的区块链,一定是包含数字货币之外的其他应用的。

区块链最引人遐想的应用,无疑是以“以太坊”为代表的,用区块链来做一个“全球计算机”,然后,用“智能合约”来编写在这台全球计算机上运行的软件(又被称为Dapp,即去中心化应用)。简单来说,这个全球计算机的好处在于,你可以把一切想要“去掉中间商赚差价”的事情,全都搬到这上面来做,而不需要依赖于某个大企业作为可信中心,例如银行或者互联网巨头。关于这个问题,可参见这篇

然而,这种全球计算机的设想在这两年间暴露出了非常多的问题,让人看不到短期的解决希望。

于是,从这次区块链的新闻中透露出来的应用方向,“不可篡改”这个区块链的特点,以及它在存证、溯源、防伪、征信等方面的作用。这个,是目前在落地上做的最成熟,也是能够实打实地看出来区块链对比于传统中心化系统优势的应用。

这次战略中最主要提出的,是“要掌握区块链核心技术”,那么区块链的核心技术是什么呢?

区块链相关技术有很多方面,我可以把它大致分成4类:1),共识算法;2),隐私保护技术和相应密码学技术;3),智能合约相关技术;4),面向应用相关技术。其中,前三者可以认为是底层,后两者是上层。

1),其中,共识算法是区块链最核心,也是整个技术发展和学术界最热衷的领域:大量的公链项目都追求共识算法的创新,同时,大量的研究者也投身于这个领域,然而,大多在国外(我之前主要研究方向也是这个领域)。这点其实并不意外——众所周知,国内很少人愿意搞基础理论研究。

但是共识算法中的涵盖面非常广,其中有一个概念非常重要——有许可和无许可,有许可共识算法要求所有参与节点的身份已知,主要采用类BFT算法。而无许可共识算法则允许任何节点只要达到某些条件就能进入,无需事先在任何系统中注册身份,而POW和后来衍生出的POS以及其他许多POx类算法都在此列。前者,多用于联盟链,而后者多用于公有链。其中,两者发展至今日,在速度和延迟上的差异已经不大了,归根结底的差别就是前面说的有无许可的差别。而无许可共识算法由于无许可的特性,又引出了一个很重要的概念叫“激励机制”,比如比特币的挖矿,于是,又衍生出了“货币”。于是,就又衍生出许多非常有趣的方向,例如:ASIC矿机,链上治理,加密经济学等等。

以上,哪些方向可能会被认为是这次战略中的“核心技术”呢?

我个人更看好许可共识算法的相关技术,而且,这类共识算法也可能布上支付宝的道路,会摒弃很多意识形态方面的需求,追求速度更快,规模更大,使用更方便,更标准化。而非许可类的共识算法,则面临着更高的风险——首先,对于“币”这个事的政策并不明确;其次,在之前所说的应用方向上,公有链相对于联盟链并没有显著的优势。

2),其实区块链技术本身采用的密码学技术并不高深也不复杂,无非是哈希函数和数字签名这两个非常经典和简单的密码学工具而已。然而,由于区块链技术和密码学天生的契合性(大部分早期研究区块链的学者都来自于密码学领域),同时,由于“加密货币”这个词,即:cryptocurrency,(注:在英文中,这个词被用来指代所有类似于比特币之类的货币,而不是中文领域中常用的“数字货币”),导致大部分人都认为密码学天生和区块链是联系到一起的。

实际上,区块链技术本身并用不到特别先进的密码学工具(当然,一些新的共识算法中采用了一些新的密码学工具)。但是,其中最重要的密码学挑战,是隐私保护技术,而其中,可能会用到的,包括零知识证明,同态加密等目前还在发展之中的密码学工具。这点,其实并不是区块链本身的需求,但又和区块链紧紧联系在一起——原因,还得说回之前区块链的性质和区块链的应用上:

首先,区块链最大的特点是所有上链的数据必须通过所有节点的验证,然而,如果区块链得到了大规模应用,这就代表了所有的节点都会获取所有的数据。好吧,我们现在不信任中心,有很大的一部分原因是中心获取了我们所有的数据,而现在倒好,用了区块链去中心之后,所有人都可以获取我们所有的数据了。

因此,如何在能够保证隐私的同时还可以享受区块链带来的去中心化优势呢?这需要所有节点能够在不知道数据内容的情况下,还能够对数据的有效性进行验证,例如:在不知道你是谁,具体有多少钱,你想要支出多少钱的情况下,验证你确实有一笔钱可以来完成这笔支出……

这听起来像是天方夜谭,然而,实际上我们有一种密码学工具可以实现它——叫做零知识证明。

然而,目前零知识证明尽管一直在发展,但是目前仍存在很大的局限性,这种局限性是效率——我们有了一些高效的证明方式,例如:我们可以很快地证明某个未知的数比另一个已知数大,或者我们可以证明某个未知的值来自于某个集合。然而,这些高效的零知识证明,还不足以覆盖区块链的所有应用。因此,可想而知,这些新加密技术,尽管不是区块链技术中的必须品,却是区块链技术能够得到广泛应用的必需品,所以一定是“核心技术”中的一部分。

3),智能合约相关的技术,实际上包括语言,包括编译……这些,实际上相当于是当我们已经有了区块链作为底层之后,如何使用它的问题。在这上面目前还没有一个非常明确的方向,因为,其实目前在尝试的思路有几种:

i,以太坊式的,高度自由的图灵完备的系统。然而问题是,写程序太容易出错了,而且出错的代价太大。

ii,Hyperledger-fabric式的,高度模块化的系统,然而,极度复杂,复杂到想要采用HF的公司,要么放弃,要么花钱请IBM的人帮他们做。

iii,Libra式的,专注于某项应用的系统,例如libra的move语言就明白地说了,我们不追求图灵完备,我们的目标是做一个更方便于实现各种金融场景的语言——这可能是个趋势,但是还没有经过足够的检验。

这些方向,在目前的尝试还很少。大部分区块链项目仍旧采用以太坊式的系统,或者加以改进。然而,我认为这一点很有可能成为“区块链的核心技术”中最重要的部分——因为一旦区块链上升到了国家战略的高度,那么势必会诞生大量的需求、场景和用户,于是才会有充分的尝试和实现的平台。由此,可能会衍生出一个最适合区块链的语言和开发工具,而这个,会如同OS一样,成为一个新的世界范围内的标准。而从目前来看,在其他的区块链项目都在挣扎着寻求落地的时候,可能只有中国有这样的土壤能够诞生出这样的标准。这大概就是把区块链作为国家战略的原因。

4),应用相关的技术。其实在区块链应用方面最大的技术难点并不在技术上。例如:区块链存证,如果我们做一条联盟链将相关各方作为共识节点然后把证据上链,那么,这个证据就是无法篡改的了。这道理大家都懂,然而问题在于:谁来做这个事呢?证据怎么数字化?怎么运行区块链?给出数据我的好处在哪里?最重要的是,谁掏钱?

区块链目前落地最大的难点,在于其相比传统的中心化方案,除了在存证,溯源方面的一些场景下,找不到明显的优势,也就找不到可行的商业模式。于是,也就很难通过市场的方式推行出去,近两年币市的低迷已经证明了这一点。然而,这一切都会在国家的支持下产生变化,于是,就如同中国互联网产业从模仿学习国外到开始向外输出抖音一样,中国希望能在区块链领域,能够激发出更多的尝试和场景。于是,在这些场景中,我们会积累相关的经验、技术和商业模式,从而将这种模式在出口到国外去,而这点,也会是区块链核心技术中非常重要的部分。

——————————————————————————————

首先要搞清一个问题——比特币是区块链,但是区块链并不是比特币。

于是,在区块链的这个问题回答里,提到“矿工”,“挖矿”,“最长链”,“分叉”等等词的,其实都不准确。

写一点上个月讲课的内容——个人觉得大部分的回答,包括google搜出来的或者wiki的,都不能很好地解释区块链是个什么东西。因为讲比特币的人很多,懂比特币的人也很多,但是具体到区块链,现在并没有一个很清楚的定义说什么是区块链,基本上所有的介绍里都是这样的:

比特币——〉区块链是比特币的底层技术。

比特币——〉比特币是一种区块链。

具体到什么是区块链的问题,目前没有看到很好的定义和介绍,更多的是大而化之地讲区块链的意义在哪里的空泛文章,要不然就是一水的矿工和挖矿。所以我来从纯理论角度说一下我个人对区块链的定义:

1,区块链是一个放在非安全环境中的分布式数据库(系统)。

2,区块链采用密码学的方法来保证已有数据不可能被篡改。

3,区块链采用共识算法来对于新增数据达成共识。

具有以上三个性质的系统,就是区块链。

1,区块链是一个放在非安全环境中的分布式数据库(系统)。

这里的要点有两个:(1)分布式,(2)非安全环境。

首先,这是一个分布式的,去中心化的系统。所以,有一个中心服务器或者节点的,不是区块链。节点都是安全的,无恶意的,那这不是区块链。同理,从应用的角度讲,如果你的应用必须要使用中心节点(例如要用超级计算机做深度学习)或者没必要考虑节点不安全的情况(例如某个安全的工厂里的传感器),那么并不需要考虑区块链技术。

至于后面的词“数据库”,目前大部分成熟的区块链都是数据库,例如比特币就是一个分布式账本,而账本其实就是数据。然后,根据数据的格式,又可以分三种——1,数据是完全不相关的,只是达成的共识,没有有效无效之分;2,数据有某些逻辑结构,例如账本中,一笔交易实际上除了金额,还有输入和输出,连接到之前的交易,这些数据需要通过逻辑验证(例如交易中,节点需要验证输入的交易是否有效);3,数据拥有图灵完备的逻辑,而验证的时候需要通过节点使用算力运算,每笔交易可以有不同的输出和状态,每个节点要做的不仅仅是验证交易的真实性和输入的正确性,还要根据交易里的逻辑读入数值,进行验算然后再验证结果。

比特币的系统就是第二种,又叫分布式账本;以太坊是第三种。第三种可以支持智能合约。

用比特币举例的话,1,它是一个完全去中心化的系统,2,它放在一个非安全的环境,它并不要求所有使用比特币的人都没有恶意。

2,区块链采用密码学的方法来保证已有数据不可能被篡改。

这个是误解最多的部分,因为很多人一提到区块链就只觉得是这个。诚然,这部分很重要,而且确实区块链也因此得名,但这只是区块链的定义的一部分。

这个部分的两个核心要点是:(1)密码学哈希函数,(2)非对称加密。

两个都是密码学的基础概念,网上都有非常清晰的定义,我只简单说下:

(密码学)哈希函数:一个函数Y=H(X),有如下性质:1,有X可以很容易算出Y;2,有Y不可能算出X;3,有Y不可能找到另一个X'使得H(X')=Y;3.5,如果X和X'相差很小,H(X)和H(X')则完全不相关。

这东西主要用于验证信息完整性——在一个信息后面放上这个信息的哈希值,这个值很小,例如256bit,而且计算方便。收到信息之后收信人再算一遍哈希值,对比两者就知道这条信息是否被篡改过了。如果被篡改过,哪怕只有一bit,整个哈希值也会截然不同。而根据哈希函数的性质,没有人能够伪造出另一个消息具有同样的哈希值,也就是说篡改过的数据完全不可能通过哈希校验。

非对称加密:这东西很好理解——对称加密就是有个密钥,可以理解成保险箱钥匙,你把消息加密变成密文,没有人能看懂这是啥,然后同一把钥匙解密成原来的消息。

非对称加密就是有两把钥匙,一把叫公钥,一把叫私钥,用其中一把加密的话,只能用另一把解密,反之亦然。另一个重要的性质是,给你密文,明文和其中一把钥匙,你还是解不出来另一把钥匙是啥。原理基本上是基于一些困难数学问题,例如因数分解和离散对数,常用的有RSA,Diffie-Hellman和ECC(椭圆曲线),比特币用的是椭圆曲线。

非对称加密除了和对称加密一样用于信息加密之外,还有另一个用途,就是身份验证。因为通常情况我们假设一对公私钥,公钥是公开的,而私钥只有本人有,于是一个人如果有对应的私钥,我们就可以认定他是本人。其中一个重要的应用就是数字签名——某个消息后面,发信人对这个消息做哈希运算,然后用私钥加密。接着收信人首先对消息进行哈希运算,接着用相应的公钥解密数字签名,再对比两个哈希值,如果相同,就代表这个消息是本人发出的而且没有被篡改过。

以上是基础知识,至于区块链怎么实现的,很简单:

交易(数据)写在区块里。

第一个区块叫创世区块,写啥都行。

从第二个区块开始,每个区块的第一部分有前一区块的哈希值。此外,区块里的每一笔交易(数据),都有发起人的数字签名来保证真实性和合法性。于是,先前区块里的任何数据都不可被篡改,原因见上。

到这为止有人可能会问:为什么要弄个链啊?直接所有数据加个哈希值不就行了?

因为——这个数据库并不是静止的啊。

数据库的数据是会增加的,而每次增加的数据,就是一个区块,于是这些生成时间不同的区块,就以这种形式链在一起了。

至于如何增加区块,就涉及到第三个部分——共识算法。

3,区块链采用共识算法来对于新增数据达成共识。

共识算法的目的,就是让所有节点对于新增区块达成共识,也就是说,所有人都要认可新增的区块。对于有中心的系统,这事很简单,中心说什么大家同意就好了,但是放到去中心化系统里,尤其是当有些节点有恶意的时候,这东西非常复杂,计算机科学里有个相应的问题,叫做“拜占庭将军问题”或者“拜占庭容错”(BFT)。

有很多用Lamport给出的那个例子来讲BFT的东西,我在这里换一个角度。

Lamport大神当年提出这个问题的时候在斯坦福研究中心给NASA做项目,他提出这个问题的原因并不是考虑类似比特币的应用场景(整个互联网成千上万个用户),而是考虑特殊背景下的一个简单的系统——

如果有航空背景的同学可能知道,飞机有三套独立的控制系统,为什么呢?因为任何系统都不可能完全不出故障,就算飞机控制系统的故障率已经极低了,还是有飞到一半这东西坏了的可能。于是我们可以弄两套独立的系统,同时坏掉的几率就会大大降低。

可是两套独立的系统还是不足以容下一个系统的错误——一架飞机迎面飞来,两套系统一个说要躲,一个说不躲,那到底是躲还是不躲呢?所以我们需要三台独立的系统,这样,如果有一个系统有故障了,还有两台能正常工作,能少数服从多数给出正确的结果。学过纠错码的同学对这个应该不陌生,这个系统的输出之间的汉明间距是3,所以可以纠正一位的错误。

然而,对于航天飞机,在冷战的背景下,万一某个系统不是坏掉了,而是被敌人控制了呢?三套系统还够吗?

答案是否定的,因为不同于单纯只是坏掉的节点,恶意节点可以做一些别的事来阻止整个系统达成共识。

这个部分略复杂要讲的话要单开一帖,所以我们只说最简单的情况(无签名同步系统)。

我们管三个系统叫ABC,正常工作流程是三个人每次得出结果就互相告诉一下,然后每个人选多数人同意的结果。这是个没有中央节点的分布式系统,也就是说三人不能聚在一起开个会啥的,仨人只能两两通信。这个时候,假设C有恶意,它的目标是破坏这个系统。于是,假设正确的读数是1,A和B都得出了1这个结果,这个时候C这个小婊砸告诉A说“我的结果是0,B也觉得是0”,同时打个电话跟B说“哎我觉得是0,A也这么说”,于是A和B就懵逼了。假设你是A,你听到了两个不同版本的B的答案,B说自己选了1,C说B选了0,可是A这个时候没法知道B和C谁才是那个骗了自己的小婊砸,因为如果B真的告诉A选了1然后告诉C是0,他听到的结果和现在是一模一样的。

于是结论是,拜占庭容错,也就是需要容下一个恶意系统而非错误系统,需要4个独立系统。

(当然,签名可以解决这个问题,但是这只是同步系统的情况,在异步系统里这问题会变得更加复杂,原因是正常节点的回答有延迟,而恶意节点可以不回复,所以,正常节点一方面要等另一个节点的回复,但是它又不知道对方会不会回复因为对方有可能会有恶意,而在收到回复之前,它完全没法判断对方是正常节点还是恶意节点,这个问题叫异步BFT,也是BFT的最复杂的情况,这里不再做更多的解释,下文提到的BFT算法,其实都是异步BFT的算法)

Lamport提出这个问题之后,有无数的算法被提出来,统称BFT(拜占庭容错)算法,其中最有代表性的叫PBFT,然后由于最近区块链的热度,无数针对区块链应用场景优化过的BFT算法也涌现出来,但是一个重要的问题是,所有目前的BFT算法,都只能应用在小型网络里。原因很简单——因为BFT这个问题是设计给类似于航天飞机控制系统这样的场景的,早期的算法考虑的也主要是这种场景。PBFT论文里考虑的就是一个5个节点的系统。就算算上新提出的BFT算法,也最多应用在不超过100个节点的网络里。

这个问题被搁置了很久,直到比特币的诞生——中本聪从某种意义上简化了这个问题,在比特币中,同样是共识问题,中本聪引入了一个重要的假设——奖励,他之所以能这样做的原因是,他考虑的是一个数字货币,也就是说共识这个东西是有价值的。

于是在这样的系统上,他提出了工作证明机制。

所有挖矿,矿工,最长链,分叉等等等等,都可以归结为一句话:

说话是要有代价的,说真话是有好处的,说假话是要扣钱的……

这就是目前两类共识算法的核心区别:

BFT共识模型:恶意节点可以干任何事。

比特币共识模型:模型中有公认的“价值”,每个节点说话都需要一定代价,诚实节点会受到奖励,而恶意节点由于只付出代价而收不到奖励,变相受到了惩罚。

也就是说,BFT共识模型其实涵盖了比特币共识模型的场景,比特币共识其实放宽了BFT共识模型的限制。

比特币共识对于BFT的优势在于,由于给恶意节点的能力做了限制,恶意节点所能造成的破坏大大降低了,尤其是对于异步系统——BFT共识里恶意节点可以一直拒绝相应而诚实节点还需要一直等它(因为不知道它是不是恶意的),而对于比特币共识,随你便,你不响应就没有奖励可拿。于是,比特币共识算法可以应用于成千上万个节点,而且,任何人随时都可以加入,不需要预先在网络里注册自己的身份(而BFT算法里,网络中节点的数量和身份都必须是已知的)。

但比特币共识的缺陷在于,首先,得有个有价值的东西,也就是说放在比特币里这东西还行,以太坊的话现在可能也凑合,但是其他数字货币嘛……BFT共识有个严格的限定,就是恶意节点不能超过总数的1/3,然而其实比特币共识没有这样的限制,唯一的限制就是假定大部分节点都是理性的,是逐利的,也就是会采用最佳的策略来赚取最大的价值。所以,严格来说,自私挖矿这种行为在比特币共识里是允许的,而多数攻击,其实也算不上一种攻击,因为这些都没有突破比特币共识的框架——如果这个价值无限大,比特币共识是非常可靠的。然而这并不是事实,因为并不是每个虚拟货币都和比特币一样值钱,而在价值不高的情况下,比特币共识的前提就站不住脚了——当损失可能是几千上万块钱的时候,假定每个人都是理性的是合理,但是如果损失就几分钱这个假设就相当扯淡了,事实上也发生过一个比特币矿池跑到另一个货币恶意挖矿搞垮对手的情况。

此外,比特币共识是最长链共识,也就是说最长链-->大多数-->理性,于是分叉是允许的。于是导致了一些附带的问题,例如,如果网络有延迟,你怎么知道你手里那条链是整个网络里当前的最长链呢?于是,如果需要传输的数据多,那么延迟加大。延迟加大,那么越多的人手里的链并不是全网络的最长链。于是,全网络的最长链,就没法代表大多数。这就打破了比特币共识的根本,这也是为什么比特币区块频率是10分钟一块的原因。比特币目前有个著名的7币交易每秒的上限,而现在扩容闹得很厉害,以太坊的交易格式不同,也用了新的工作证明,想要改成权益证明,但这些都不本质。真正本质的是,在目前的网络条件下,如果适用全网的话,比特币共识的交易量基本上超不过100笔交易每秒这个量级。

上面这几段有可能太深了,简单来说,BFT共识和比特币共识的区别可以这么理解:

BFT共识:来,大家开个会讨论一下集思广益啊,讨论出大家都满意的结果为止。

问题:开会的效率大家都懂,人越多越不容易出结果。只能用于少数节点,用于上千个节点的话……大家想象一下一天开一次人大的场景。

比特币共识:你的诗念得不错,组织已经决定了,今天就你来当领导了,做得好有奖,做不好扣钱。

问题:奖励几千块钱还好,奖励几分钱谁好好干?

而区块链也就因此被分成了泾渭分明的两类,很多人都听过什么公有链私有链联盟链,但是,如果你们以为这是根据应用区分的就大错特错,其实,这两种区块链最本质的区别,还是因为共识模型或者说算法不同——BFT算法没法应用于大量节点,所以用BFT算法的就没法做公有链。而比特币共识得有个价值体系,这东西去做私有链联盟链就很不靠谱,因为一个单纯逐利的人的假设还算靠谱,但是如果对象是公司的话,公司的利益就太复杂了,不能简单认为他们只追逐区块链上那点价值。

1,公有链,以比特币,以太坊和所有虚拟货币为代表,都采用比特币共识,共识算法基本上都采用工作证明机制,也就是挖矿那些,这种机制其他回答里已经讲得够清楚了,就略过。工作证明一切都好,除了费电……费多少电呢?差不多和一个百万人级别的城市那么多。此外以太坊的创始人特别喜欢权益证明,似乎很快要小范围投入使用(100个区块里一个用权益证明)。但是目前为止,大家对这东西的可靠性还持观望态度。

corda和ripple为代表,都用BFT共识。其实这方面的应用已经很多了,问题是,1,目前基本上所有应用给人的感觉都还是为了做区块链而区块链,真的觉得这东西好到不可或缺的应用还基本没有。2,由于为了区块链而区块链,其实很多场景的安全性和可靠性还值得怀疑,这点经常被被公有链的支持者诟病。

嘛,以上就是个人定义的区块链了,顺带概述一下现在区块链领域的发展。

之所以写这个帖子,就是因为发现明明是问区块链的问题,所有人都在讲比特币,都在讲挖矿,都在讲工作证明……工作证明不能说过时,也的确是现在公有链唯一可靠的共识算法,但是这东西确实是业界除了比特币死忠之外谁都不想要的东西好吗……

}

我要回帖

更多关于 记账凭证金额大于实际金额 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信