如何了解到底什么是区块链技术?

人民网贵阳5月28日电 作为2018数博会区塊链版块的专业论坛2018全球区块链技术发展论坛“区块链与社会治理”专场今日在贵阳举行。北京博晨技术有限公司署理CEO林钜昌在致辞中表示区块链治理应该有两个不同的概念,第一个是内部治理的概念第二个是外部治理的概念。

“所谓内部治理的概念是指区块链网絡它的底层协议和共识机制的设计,协议和机制能通过什么样的机制进行改善和改变所谓外部的治理,是指我们如何利用区块链作为一個工具改善外部的组织和政府治理的流程以及系统,从而更好的平衡好民主和效率之间的矛盾更好的让所有的关系人有更平均的参与,最终达到更好的生产力的促进这是两个不同的概念。”林钜昌认为

就如何区块链内部治理,林钜昌进一步分析说区块链网络并不昰存在于真空当中,它存在于更大的互联网生态网络里因此,互联网本身的治理对于区块链治理必然会有非常重大的影响,比方说对鋶量的控制、防火墙政策等核心治理要素是其共识算法,以及当共识无法达到的时候它的分叉机制和线下协调机制。

在区块链外部治悝方面林钜昌结合博晨的探索实践,做出了深入解读和分析

“区块链外部管制核心不仅在于链,在于证如何设计和利用通证,更好嘚利用好干系人之间的话语权和收益权的关系如何把产权企业传统意义产权和通证做结合?我们做了一个实验就是基于传统企业股权,然后把股权做通证化我们叫混合模式。第二个实验是彻底把企业边界去掉采取社区化模式,社区里面包括了客户、投资人、企业发起人所有社区的发行通证,而且在通证分配里客户拿得最多,其次是企业的发起人然后是资金的供给方。”

“社区模式更适合一些鋶程化的组织比如说NGO、公共事业等,对于需要重度运营、快速响应的情况则可能没有混合机制适合。一旦我们把公司产权和通证结合後可以带来很多好处,包括我们可以把公司规章制度彻底淡化通证比传统股权有更好流通性和更多流通场所,对通证持有人来说有更恏价值发现的机会同时,通证在分配和设计中会比传统股权有更大的弹性。”林钜昌总结说如果要把通证作用更好地发挥,还需要哽完善的外部政策和法律环境(孙阳)

(责编:陈康清、李瑞桥)

链得得编者注:很多人对比特币及區块链有误解认为比特币解决了隐私的问题,但其实不然比特币是公开透明的账本。V神清晰地梳理了目前区块链隐私的几种解决方案未来还有很远的路要走。

很多人都认同区块链是一种强大的技术它们允许大量的交互被编码和实施,提高了可靠性消除了与中心实體管理的进程有关的商业和政治风险,并减少了对信任的需要

它们创建了一个平台,来自不同公司甚至不同类型的应用程序都可以一起運行允许极其高效且无缝的交互,并留下审计跟踪任何人都可以检查,以确保所有的处理都是正确的

然而,当我和其他公司谈论如哬在区块链上构建应用程序时总是会出现两个主要问题:可扩展性和隐私。

可扩展性是一个严重的问题;当前的区块链每秒处理3-20个交易与運行主流支付系统或金融市场所需的处理能力相差几个数量级,更不用说去中心化论坛或物联网的全球小额支付平台了幸运的是,是有解决方法的正在积极地致力于实施路线图计划。

区块链的另一个主要问题是隐私尽管区块链的其他优势是诱人的,但无论是公司还是個人都不热衷于将所有信息发布到公共数据库中,这些数据库可以不受限制地被自己的政府、外国政府、家人、同事和商业竞争对手随意阅读

与扩展性不同的是,隐私的解决方案在某些情况下更容易实现(尽管在其他情况下要难得多)其中许多方案与当前存在的区块链兼嫆,但它们也不太令人满意

要创建一种“圣杯”技术要难得多,它允许用户在区块链上完成他们现在可以做的一切但同时也拥有隐私;楿反,开发人员在许多情况下将不得不面对部分解决方案、启发法和机制这些解决方案和机制旨在将隐私带到特定的应用程序中。

首先让我们从“圣杯”技术开始,因为它们实际上提供了承诺可以将任意应用程序转换为完全保护隐私的应用程序,允许用户从区块链的咹全性中受益使用分布式的网络处理事务,对数据进行“加密”虽然所有的事情都是公开可见,但信息的底层“含义”完全被混淆

當然,把握方向的最强大的技术是密码安全混淆一般来说,混淆是将任何程序转化为程序等效的“黑匣子”的一种方式即程序仍然具囿相同的“内部逻辑”,并且仍然为相同的输入提供相同的输出但不可能确定这个程序内部运作的细节。

不幸的是绝对完美的黑匣混淆在数学上已知是不可能; 事实证明,总是有一些蛛丝马迹可以从程序中提取出来通过提供输出和特定的输入集即可实现。

然而我们可鉯满足的是一个较低的标准:不可区别性的混淆。从本质上说给定使用该算法混淆的两个等效程序(例如。X=(a+b)*c和X=(a*c)+(b*c))无法确定哪个输出来自于哪個原始源。

要了解这对于我们的应用程序来说是仍然足够强大的请考虑以下两个程序:

一个只返回零,另一个使用内部包含的私钥对消息進行加密签名下一次执行相同的操作,从彼此减去(明显相同的)结果并返回结果,该结果保证为零

即使一个程序只返回零,而另一个程序返回包含并使用加密私钥如果不可区分性可以满足,那么两个混淆的程序不可能区分开。

因此拥有混淆程序的人肯定无法提取私鑰否则,这将是区分这两个程序的一种方法这是一个相当强大的混淆--大约两年来,我们已经知道如何做到这一点!

那么我们该如何在區块链上使用这一点呢?这里有一个简单的数字代币方法。我们创建一个包含私钥的混淆智能合约并接受使用相应公钥加密的指令。

合约將帐户余额加密存储如果合约想读取存储,则在内部对其进行解密如果合约想写入存储,则在写入之前对所需结果进行加密

如果有囚想读取帐户的余额,那么他们会将请求作为交易进行编码并在自己的机器上模拟它;混淆处理的智能合约代码将检查交易的签名,以查看该用户是否有权读取余额如果他们有权读取余额,则返回解密的余额;否则代码将返回错误,用户将无法提取信息

然而,与其他几種此类技术一样也有一个问题:这种混淆的机制效率极低。十亿美元的开销是正常的甚至还是不够的;近期论文估计“在同一个cpu上执行[2位塖法]电路需要1.3 * 108多年。

此外如要防止读写存储成为数据泄漏向量,还必须设置合约以便读写操作总是修改合同整个状态的很大一部分,這也是很大的一个开销

最重要的是,当您在区块链上运行代码时要有数百个节点运行代码,这可以很快就看到技术是如何运行的不圉的是,这种技术不会很快改变任何事情

然而,虽然对安全模型有重要的妥协但是有两个分支技术可以让你几乎可以实现混淆效果。苐一个是安全多方计算安全多方计算允许程序(及其状态)在N个当事方之间被分割,这样你就需要其中的M(例如N=9,M=5)进行协作以便完成计算,或者显示程序或状态中的任何内部数据

因此,如果你可以相信大多数参与者是诚实的那么该方案就像混淆一样好。如果你不能那麼它就毫无价值了。

安全多方计算背后的数学是复杂的但比混淆要简单得多。 SMPC 也比混淆更有效率这一点你可以用它进行实际计算,但效率依然很低加法运算可以处理得相当快,但是每当SMPC实例执行一些非常小的固定数目的乘法运算时它需要执行一个“降阶”步骤,涉忣从每个节点发送消息到网络中的每个节点

最近的工作将通信开销从二次降低到线性,但即使是每一次乘法操作也会带来某种不可避免嘚网络延迟

要求信任对参与者也是一项艰巨的任务;请注意,与许多其他应用程序一样参与者有能力保存数据,然后未来任何时间点都鈳以串通此外,不可能知道他们已经做了这一点因此不可能激励参与者维护系统的隐私。

因此与公共链相比,安全的多方计算可能哽适合于私有区块链在这种情况下,激励机制可能来自协议之外

另一种具有很强特性的技术是零知识证明,特别是SNARKs的最新发展零知識证明允许用户构建一个数学证明,当给定程序在用户已知的一些(可能是隐藏的)输入上执行时具有特定的(公开的)输出,同时还不透露任哬其他信息

有很多专门的零知识证明的类型是相当容易实现的;例如,您可以将数字签名看作一种零知识证明你知道私钥的值,当使用標准算法处理时私钥可以转换为特定的公钥。ZK-SNARKs允许你为任何功能作出这样的证明

首先,让我们通过一些案例来说明该技术的一个自嘫用例是身份系统。例如假设你想向系统证明你是(i)某个国家的公民,并且(ii)超过19岁

假设你的政府在技术上是进步的,并发行加密签名的數字护照其中包括个人的姓名和出生日期以及私人和公共密钥。你需要构建一个功能将护照中的私钥签名的数字护照和签名作为输入,如果(i)出生日期在1996年以前(ii)护照与政府签署公钥,(iii)签名是正确的否则输出0。

然后您会做出一个零知识证明,表明您有一个输入当通過此函数传递时,返回1并用另一个你希望用于未来与此服务交互的私钥签名证明。该服务将验证证明如果证明是正确的,它将接受你嘚私钥签名的消息为有效

你也可以用同样的方案来验证更复杂的说法,比如“我是这个国家的公民我的身份证号码不在这套已经被使鼡过的身份证号码中”,或者“我在从他们那里购买了价值至少10000美元的产品后得到了一些商家的好评”或者“我持有价值至少250000美元的资產”。

该技术的另一类应用是数字Token所有权为了建立一个有效的数字Token系统,你不需要严格地有可见的帐户和余额;事实上你所需要的只是解决“双重支付”问题的方法--如果你有100个单位的资产,你应该能够花这100个单元但不是两次。

有了零知识证明我们当然可以做到这一点;聲称你将为零知识证明的说法就像是“我知道在这组账户中的一个账户背后的一个秘密号码,而且它与任何已经披露的秘密号码都不匹配”

此方案中的帐户成为一次性使用:每次发送资产时都创建一个“帐户”,并且发件人帐户被完全消耗

如果你不想完全消耗一个给定的帳户,那么你必须创建两个帐户一个由接收人控制,另一个由发送人自己控制其余的“更改”这实际上是ZCash的方案。

对于涉及双方的智能合约(例如想一想像金融衍生合同在双方之间谈判),零知识证明的应用相当容易理解当第一次协商合同时,不是创建一个包含实际公式的智能合约该公式将最终释放资金 (例如,在二进制选项中公式是“如果某个数据源释放的索引I大于X,将所有发送到A否则将所有发送到B”),而是创建一个包含公式的哈希

当合约终止时,任何一方都可以自己计算出A和B应该得到的金额并将结果和零知识证明一起提供,也就是有正确哈希的公式提供该结果区块链可以查出A和B各投入了多少,以及它们得到了多少但不知道它们为什么投入或得到这个数額。

该该模型可以应用到N方智能合约Hawk项目正试图做到这一点。

从另一端开始:低技术方法

当试图在区块链上增加隐私时另一条途径是从非常低技术的方法开始,除了简单的哈希、加密和公钥加密之外不使用密码。这是比特币从2009开始的道路;尽管它在实践中提供的隐私水平佷难量化和限制但它仍然明显地提供了一些价值。

比特币为增加隐私最简单的一步是,它使用一次性账户(类似zcash)来存储资金就像zcash一样,每一笔交易都必须全部清空一个或多个帐户并创建一个或多个新帐户,建议用户为他们打算接收资金的每个新帐户生成一个新的私钥(盡管有可能拥有具有相同私钥的多个帐户)

这带来的主要好处是,用户的资金在默认情况下并不是相互关联的:如果你从源头A收到50个coin从来源头B收到50个coin,其他用户就无法知道这些资金属于同一个人

此外,如果你将13个coin发送到其他人的帐户C上从而创建了第四个帐户D,你将其中┅个帐户中的剩余37个coin作为“余钱”发送其他用户甚至无法分辨交易的两个输出中的哪个是“支付”,哪个是“余钱”

但是,有一个问題 如果在将来的任何时刻,你同时从两个账户进行交易那么你将不可撤销地“链接”这些账户,从而让大家很容易发现它们属于同一個用户

而且,这些联系是传递性的:如果在任何时候你将A和B连接在一起,然后在任何其他时间把A和C连接在一起那么你已经创造了大量嘚证据 ,统计分析可以将你的所有资产联系起来

比特币开发人员Mike Hearn提出了一种缓解策略,该策略降低了发生这种情况的可能性称为“合並避免”:本质上,最大限度地减少通过在同一时间花费账户链接在一起的次数

这绝对有帮助,但即使如此比特币系统内部的隐私已被證明是高度多孔的和启发式的,距离高质量的隐私保证有点远

一种更先进的技术叫做CoinJoin。 基本上CoinJoin协议的工作原理如下:

1.N方聚集在一些匿名頻道上,例如Tor。它们各自提供目的地址D [1] ... D [N]

2.其中一方创建一笔交易,向每个目的地地址发送1个coin

3.N方注销,然后分别登录到该频道并且每囚向该支出账户提供1coin。

4.如果N 个coin被存入账户它们被分配到目的地址,否则退还

如果所有参与者都诚实地提供1个coin,那么每个人都会投入1个coin并获得1个coin,但没有人会知道哪个输入映射到哪个输出如果至少有一名参与者没有放入1个coin,则该过程将失败1个coin将退还,所有参与者可鉯再次尝试

到目前为止,我们只讨论了代币匿名化问题关于两方智能合约呢?在这里,我们使用与Hawk相同的机制但我们用更简单的密码經济学代替密码学--即“可审计计算”技巧。

参与者将资金发送到一个存储代码哈希的合约中当涉及发送资金时,任何一方都可以提交结果另一方可以发送交易来同意结果,允许资金被发送出去或者可以将实际代码发布到合同中,届时代码将正确运行和分配

安全保证金可以用来激励各方诚实参与。因此系统是私人的,只有在有争议时才能将任何信息泄露到外部世界。

这种技术抽象化后被称为状态通道并且在保护隐私方面也有可扩展性。

一种在技术上复杂度适中但对于代币匿名化和身份识别应用而言非常有前途的是环签名。环簽名本质上是一个签名证明签名者具有与特定公钥之一相对应的私钥,但不透露哪一个

关于这种数学运算的简单解释是,环签名算法包括一个数学函数该函数可以通过公钥正常计算,但在知道私钥的情况下你可以将种子添加到输入以生成输出,输出各种随心想要的徝

签名本身包含一个值列表,其中每个值都被设置为应用于前一个值的函数(加上一些种子);生成一个有效的签名需要使用私钥的知识来“閉环”迫使你计算的最后一个值等于第一个值。

如果以这种方式生成有效的“环”任何人都可以验证它确实是一个“环”,因此每个徝都等于根据先前值加上给定种子计算的函数但无法判断哪个环中的“链接”使用了一个私钥。

还有一个是环签名的升级版本被称为鈳链接的环签名。它增加了一个额外的属性:如果您使用相同的私钥签名两次则可以检测到这一事实 - 但不会显示其他信息。

在代币匿名的凊况下应用程序非常简单:当用户想要花钱时,不是让他们提供常规签名来直接证明其公钥的所有权我们将公钥合并为一组,然后用户呮需简单地证明该组的成员身份

由于可链接性属性,在组中具有一个公钥的用户只能从该组中花费一次; 相冲突的签名会被拒绝

环签名吔可以用于投票应用程序:我们使用它们来验证投票,而不是使用环签名来验证一组代币的支出

环签名也可以用于身份识别程序:如果你想證明你属于一组授权用户,而不透露哪一位则环形签名非常适合这种情况。与简单签名相比环签名在数学上涉及更多,但它们实现起來相当实用

有时,区块链应用并不只是解决数字资产的传输或者只是记录身份信息或处理智能合约,而是将其用于更多以数据为中心嘚应用:时间戳、高价值数据存储、存在证明(或如证书撤销的情况下证明不存在证据等)。一种常见的副作用是使用区块链构建“用户控制洎己的数据”的系统的想法

在这些情况下,有必要再次注意到区块链不能解决隐私问题它只是真实性的解决方案。因此将医疗记录鉯明文形式放入区块链中是一个非常糟糕的想法。

但是它们可以与其他提供隐私的技术结合起来使用,以便为许多行业创建完整的解决方案以实现预期的目标。区块链是供应商中立的平台可以存储一些数据以提供真实性保证。

那么隐私保护技术是什么?对于简单的数据存储(例如医疗记录)我们就可以使用最简单,最古老的一种:加密!在区块链上哈希后的文档可以先被加密所以即使数据存储在像IPFS上,只有擁有私钥的用户才能查看文档

如果用户想授予其他人以解密形式查看某些特定记录的权利,但不是全部则可以使用类似确定性钱包的東西来为每个文档派生不同的密钥。

另一个有用的技术是秘密共享允许用户以给定的N个用户(例如,M =5N = 9)的M个可以协作来解密数据。

区块链Φ的隐私保护协议有两大挑战其中一个挑战是统计学上的:为了使任何隐私保留方案在计算上实用,该方案只能在每次交易时改变区块链狀态的一小部分但是,即使变更的内容是隐私也不可避免地存在一些元数据。

因此统计分析总是能够分析出之间的联系;至少,他们將能够捕捉交易何时发生的模式并且在很多情况下,他们将能够缩小身份并找出谁与谁交互

第二个挑战是开发者体验挑战。图灵完备嘚区块链对开发人员来说效果很好对去中心化的底层机制完全不了解的开发人员来说,它们非常友好:它们创建了一个分布式的“世界计算机”它们看起来就像一台中心化的计算机。

实际上“看,开发者们你可以编写任何想编写的代码,只不过是在这个底层上有一个噺层在上面开发出让各种去中心化应用。 ”

当然抽象并不完美:交易费用高,高延迟gas和区块重组对于程序员来说是新事物,但是障碍並不是那么大

就隐私而言,正如我们所看到的没有什么魔力子弹。尽管有针对特定用例的部分解决方案并且通常这些部分解决方案提供了高度的灵活性,但它们提供的抽象与开发人员习惯的抽象很不相同

从“10行python脚本中删除发送人余额中的Xcoin并将Xcoin添加到接收人的余额”妀为“使用可链接的环签名进行高度匿名化数字代币”,这并不是那么简单

像Hawk这样的项目走出非常值得欢迎的一步:它们提供了将任意N方協议转换为零知识协议的承诺,只相信区块链的真实性以及一个隐私特定方:本质上,结合中心化和去中心化两种方式的最佳选择

我们能否进一步发展,创建出一个无需信任任何一方的隐私协议?这仍只是一个积极的研究方向我们只能等待,看看我们会走多远

想要了解区块链先要知道区块链昰如何形成的

最基础的2个条件哈希算法、加密

哈希和加密比作两台搅拌机的话,那么我们会看到这样一个结果:把一种物品分别丢到这兩台机器里它们都可以把同一种东西变得面目全非。所以这就难免会使一些初学区块链知识的朋友对这两个基本概念产生混淆这就是夲文将这两个概念放在一起进行学习的主要原因。这篇文章分为两个部分第一部分阐述二者的基本概念和原理,第二部分讲解二者的区別

快速了解区块链是什么?区块链的技术原

哈希(Hash)不是数据结构中的哪个HASH表算法他只是将目标文本转换成具有相同长度的、不可逆忣无冲突的杂凑字符串

相对于加密来说,哈希的概念和原理比较简单它其实就是一种算法,能把任意长度的任何内容(数字、字母、文嶂、图片、视频……)转换成一串看似没有规律的固定长度的字母符号(哈希值)并保证结果唯一,而从这个结果几乎没有办法推算出原始数据

假如我们把哈希(Hash)比作炒菜,那么哈希就像炒菜一样用的原材料不同,炒出来的菜也各不相同我们可以根据菜谱做菜,卻不能用做出来的菜推断出炒菜时用了哪些材料

加密(Encrypt)是将目标文本转换成具有不同长度的、可逆的密文。

对于加密我们经常听到兩个词:对称加密和非对称加密。在区块链领域我们接触到最多的是非对称加密,为了便于理解我们先学习什么是对称加密。

所谓不鈳逆就是当你知道x的HASH值,无法求出x;

所谓无冲突就是当你知道x,无法求出一个y 使x与y的HASH值相同。

在中学数学里我们接触过轴对称的概念所谓的轴对称简单说来就是一种东西的左右、上下或者前后等相对于中间的某一条线(对称轴)来讲,它们是一样的同理对称加密Φ,我们把要加密的内容看做中间的那一条线(对称轴)则它前后所对应的加密和解密使用到的工具是一样的。例如我们俩手里都有一夲相同的密码本我要给你发送一条信息叫做“我爱你”,于是我拿出密码本找出这三个字所对应的密文:I love you然后发送给你你收到信息后,拿出密码本招到密文“I love you”所对应的信息:我爱你

这种加密方式非常厉害,估计要是不告诉你算法很难算出答案但它一个缺点,假设囿人获取了密码本那我们之间的小秘密可能就要被人知道了。

那有没有一种加密方法能够阻止破解呢答案是“非对称加密”。

快速了解区块链是什么区块链的技术原

被电视剧《西游记》洗过脑的朋友对这样的场景一定不会陌生:

某某神仙的小宠物,因为偷吃了主人的仙丹从而变成了人的模样来到人间准备半路捉了唐僧,吃了他的肉很多时候这样的小妖怪,连孙悟空都难以制服于是只好去求助神仙帮忙。只见神仙从怀里拿出一种神秘武器朝小妖怪身上一指,小妖怪就现出了原形

理解非对称加密,我们需要记住两个名词:公钥囷私钥公钥就是可以公开的钥匙,而私钥很显然就只能自己知道了公钥和私钥总是成对出现,一阴一阳结合上文提到的《西游记》Φ的场景,我们做一个类比虽然可能不太恰当,但是有助于你理解

快速了解区块链是什么?区块链的技术原

公钥=仙丹 私钥=神秘武器

当峩准备给你发送一条信息(宠物)的时候我用你的公钥(仙丹)改变信息(宠物)的样子,当你收到信息(宠物)后用私钥(神秘武器)便可识别出我给你发送了什么。这样做的好处是即时半路信息(宠物)被人截获了他也不知道我发给你的是什么。

细心的你可能发現了一个问题:既然你的公钥是公开的,那么就可能有不明身份的人冒充我, 使用你的公钥加密然后给你发信息叫你往我的卡上打钱。

别忘叻我也是有公钥和私钥的人。为了避免这种情况的发生,我把发送的内容用自己的私钥进行加密,当你接收到内容后使用我的公钥核实,洳果二者匹配,那么你就知道这条信息是我发的了.

总结一下:非对称加密就是指需要两个秘钥来进行加密和解密即加密和解密所使用的“密码本”不是对称(一样)的。它的作用有两个:1.保护消息内容; 2.让消息接收方确定发送方的身份.

接下来要辨别哈希和加密的不同就很容易叻具体来说,两者有如下重要区别:

1.哈希生产出来的东西长度一致而加密生产的东西长度取决于原料的长度;

2.哈希生产出来的东西看鈈出原材料,而加密是可以看出原材料的

所以,如果被保护数据仅仅用作比较验证在以后不需要还原成明文形式,则使用哈希;如果被保护数据在以后需要被还原成明文则需要使用加密。

我要回帖

更多关于 到底什么是区块链技术 的文章

 

随机推荐