区块链技术原理学习记录
仅仅是一个普及化的说明,不涉及到技术的细节。
这个是网上找到的区块链的定义:
“区块链”技术最初是由一位化名中本聪的人为比特币(一种数字货币)而设计出的一种特殊的数据库技术,它基于密码学中的椭圆曲线数字签名算法(ECDSA)来实现去中心化的P2P系统设计。但区块链的作用不仅仅局限在比特币上。现在,人们在使用“区块链”这个词时,有的时候是指数据结构,有时是指数据库,有时则是指数据库技术,但无论是哪种含义,都和比特币没有必然的联系。
区块链的特点:
去中心化(Decentralized)、去信任(Trustless)、集体维护(Collectively maintain)、可靠数据库(ReliableDatabase)。
区块链数据结构的组成:
1. 交易记录 主要由输入输出组成。
2. 区块 多条交易记录,组成一个区块。
3. 区块链 所有区块,按照顺序,组合起来,形成一个不可修改的链条。
区块链简单过程描述:
1. 用户A要转账给B,于是,发出了一个广播,告诉所有人。形成一条交易记录。
2. 收到广播的节点,开始抢记录的权利。
3. 抢到记录权利的节点,检查转账是否合理,如果合理,就把这个交易记录放到一个区块中,把区块放到总到区块链上,并广播通知所有人。同时,记录的节点得到奖励。
4。大家都检验一下这个区块链是否合理,如果合理,记录这个区块链了,相当于大家都知道这个交易了,于是,交易就成功了。
中间涉及到的技术:
1. A用户要转账,那么,就要检验是不是真的是A用户自己要转账。这里就用了非对称加密技术。
2. 在收到一个交易的广播后,到底由谁负责记录,这个中间涉及到的就是共识算法。
非对称加密算法,这是一个非常成熟的技术了,简单说就是,每个人拥有两个钥匙,来作为自己唯一的证明:公钥,私钥。公钥是公开的,私钥加密之后,公钥能解开,那就证明你是你了。
共识算法 各家的共识算法不一样,这也是区块链最核心的地方了,现在有的,比如比特币的工作量证明(做额外的工作,谁先做完谁抢到),还有其他啥权限份额(谁有钱谁能抢到)之类的。
问题:
1. 区块链是记录在所有节点的,数据是公开的,做这个的,首先数据要不保密的。
2. 记账的用户,要想用户愿意参与记账,这就必须有奖励,否则哪里有那么多无偿的啊。所以,这个或者给币奖励,或者直接现金吧。
3. 每个机器上都要记录一份,那么存储空间的浪费是显而易见的,如果是大量数据,那恐怕就没谁能做了吧。