区块链由包含批量有效交易的块组成。

每个块包括区块链中先前块的散列,将两者连接起来。链接的块形成链。

除了基于安全散列的历史记录之外,任何区块链数据库都具有用于存储历史的不同版本的指定算法,以便可以选择具有更高值的一个而不是其他版本。支持数据库的同行在任何时候都没有完全相同的历史版本,而是保留了他们目前所知的数据库的最高得分版本。每当对等体获得更高的评分版本(通常是添加了单个新块的旧版本)时,它们会扩展或覆盖自己的数据库并将改进重新传输给其对等体。

绝不保证任何特定条目将永远保留在历史的最佳版本中。区块链通常用于将新块的分数添加到旧块上。只有通过新块进行扩展而不是覆盖旧块,才有动力。随着更多的块建立在它之上,入口被取代的可能性下降 - 最终变得非常低。

在比特币的背景下,区块链是一个数字分类账,记录了曾经发生过的每一个比特币交易。

区块链实现由两种记录组成:事务和块。

这个简短的背景将遵循“块链”技术的演变。

椭圆曲线和区块链加密

:例如(三次多项式)具有特定的已知解。

椭圆曲线具有独特的属性,因为有一种方法可以将椭圆曲线的“加”解决方案组合在一起以获得另一种解决方案。

简而言之,如果您在曲线上绘制一条直线(不是完全水平或垂直),它将始终在第三点处与曲线相交。这被定义为将Point P添加到Point Q.如下所示: -

唯一的例外是如果一条线与椭圆曲线相切。在这种情况下,该线仅在另一个点处与曲线相交。这被定义为点“P”的“加倍”。如下所示:-

在上面的例子中,通过沿x轴反射R'找到点R.

区块链,有限域和散列函数

在椭圆曲线数字签名算法(ECDSA)的上下文中,有限域可以被认为是预定义的正数范围,其中每个计算必须落在其中。超出此范围的任何数字都“环绕”以便落在该范围内。

考虑这个的最简单方法是计算余数,如模数(mod)运算符所表示的。例如,9/7给出1,余数为2:

9 mod 7 = 2

这里我们的有限域是模7,并且该域上的所有mod操作产生的结果落在0到6的范围内。

哈希函数只是一个应用于数据的规则,用于给出结果 - 在本例中为数字。例如,SHA256是一个Hash函数,它接受一个输入并具有256位输出。(SHA =安全散列算法)。

文件>

密码> SHA256> 256位数

数据>

在SHA256的情况下,有2256种可能的结果。

(另一个重要的哈希算法是RIPMED160)。

块链技术(如比特币)使用非常大的数字作为基点,素数模和序。

算法的安全性依赖于这些值很大,因此对暴力或逆向工程来说是不切实际的。

在比特币的情况下:

椭圆曲线方程:y2= x3+7

Prime modulo = 2256- 232- 29- 28- 27- 26- 24- 1 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFC2F

基点= 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

顺序= FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141

私钥和公钥以及钱包

为了产生“私钥”,块链协议选择椭圆曲线上的点,例如。点“E”即基点。

私钥只是一个数字 - “N”(这样,0 <= N <= 2256)

与私钥相关联的公钥只是点“E”,自身加“N”次。IE P = NxE

对于比特币,与密钥相关联的地址是公钥的SHA256哈希的RIPMED160哈希。

钱包只是包含私钥和公钥以及地址的文件。钱包通常包含许多密钥,也可能包含交易的标签信息,例如“贷款支付”等。

数字签名和区块链

椭圆曲线用于构建数字签名算法以对数据进行签名。数据可以是任何长度。第一步是“散列”数据以创建一个包含与曲线顺序相同的位数的数字(256)。数学是悄然参与的,所以为了简单起见,我将概述步骤。(如果您需要更多信息,请单击此处查看使用小数字的完整工作示例。

散列数据以创建一个包含与曲线顺序相同位数的数字,即256位。 使用标量乘法计算点(x,y)= k * G. 找到r = mod n(如果r = 0,则返回步骤1)。模数算术计算器 求s =(z + r * d)/ k mod n。(如果s = 0,返回步骤1) 签名对是(r,s)。

要使用公钥验证签名,第三方将执行以下步骤:

验证r和s介于1和n-1之间 计算w = s-1mod n 计算u = z * w mod n 计算v = r * w mod n 计算点(x,y)= uG + vQ 验证r = x mod n。如果不是,签名无效。

您可以点击此处验证这些步骤是否有效

“比特币”挖掘和“工作证明”概念

矿工并没有那么多解决数学问题,因为他们花了很多心思做出猜测,直到他们猜对了。

比特币的工作原理是拥有一组链接的交易记录“块”,记录谁拥有比特币。为了使比特币工作,他们需要一些方法来确保块的记录是不可变的,即没有人可以改变它。

他们实现这一目标的方式是创造采矿的概念。矿工采用当前的一组交易,其中包括指向最后一组接受的链接,并进行数万亿次猜测,每次将一个数字放入块头的“随机数”字段中。块头通过哈希函数运行,也称为“单向”或“陷阱门”功能。在这种情况下,使用SHA-256哈希函数。如果散列函数的输出低于阈值,则该块有效,被其他矿工接受,并且正确猜测的矿工在比特币中获得块奖励。

散列函数输出阈值越低,提供猜测的难度就越大,这将导致散列函数的输出足够低,并且阈值的低度由比特币“难度”决定。难度调整每个两周的时间取决于找到最后6 * 24 * 14块的时间:如果只花了一周时间,那么“难度”应该加倍 - 这样无论在全球范围内采矿多少,一个新的块平均每10分钟继续创建一次。

你写的是什么,留在里面。比特币是区块链上第一个跟踪资产的货币,因为它用于支付矿工,比特币和区块链交织在一起。但只要比特币生态系统继续咆哮,您就可以使用区块链永久地写下任何东西。