问题标签 [merkle-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
329 浏览

corda - 用于向对手隐藏状态字段的默克尔树?

Corda v3 文档描述了交易撕毁和使用 Merkle 树在交易期间“隐藏”信息。具体来说,使用的示例是在 Oracle 验证事务期间隐藏敏感数据。

Corda 框架是否支持使用 Merkle 树来隐藏签名对手节点的信息?或者当完全签名的交易被连接到交易对手节点时,状态信息的子集是否可以被隐藏?“编辑”级别是否会因交易对手节点而异,或者当完全签名的交易分发给其他各方时,状态必须相同?

0 投票
0 回答
167 浏览

blockchain - 无密钥签名基础设施 (KSI) 令牌验证

所以我正在阅读有关KSI 区块链的信息,但是我在互联网上探索的资源不足以解决我心中的一些问题,这些问题仍然困扰着我!

问题:

每当客户请求参与ksi 区块链时,他就会将其数据的哈希提交给ksi网关。然后作为回报,他得到一个令牌,这基本上是他参与的证明这个令牌究竟包含什么?

通过他的令牌,他稍后可以验证他的数据完整性,因为令牌包含Merkle 树中从他的叶节点日历分类帐中的哈希的路径。这条路径是如何准确地附加令牌上的,它是如何计算的?

它是否首先在分类帐级别计算,然后传递给聚合网络,然后传递给请求者

0 投票
1 回答
59 浏览

arrays - 使用区块链为简单数组创建版本控制

我已经建立了一个简单的区块链。我想建立一个数字数组的版本控制。我想记录新号码的添加、删除和号码的交换。存储这些更改的节省空间的方式是什么?我考虑过为数组的所有元素创建一个 merkle 树并存储 merkle 根以检查版本是否匹配,但是将相同的数据存储到多个块中是多余且低效的。请指导我!

PS我正在学习区块链的概念并从头开始构建它。请不要评判项目本身。

0 投票
1 回答
337 浏览

java - How to Multithread Merkle Tree Hashing

I have a large list I'd like to be able to get the merkle root of in java. It's large enough that being able to multithread the process would speed it up significantly, and as such, I've been trying to do so.

Here's my code so far:

multiMerkleRoot is the single threaded version, trueMultiMerkleRoot is an attempt at the multithreaded version.

Here's my problem: No matter what size list I use (I've tried using exact powers of 2, odd numbers, even numbers, small and large) I always get two different answers from the two methods, and I can't for the life of me figure out how to address that.

In this implementation, merkleHash() is just a wrapper for Keccak 256, which I'm using to hash the two byte arrays that I'm concatenating.

If anyone could help me with this in any way, whether to show me where my code is going wrong and how to fix it, or to just set my code on fire and show me how to do it correctly, I'd really appreciate the help.

EDIT: I've attempted a different method after I realized some problems with my previous method. However, this one still won't multithread, even though I think it's much closer.

Here's my new code:

If we look specifically at the dualHash method, in this case, it works and gives me the same result as the hash method. However, when I try to delegate it to two threads, like so:

It no longer gives me the expected result. Any idea as to why?

Thanks!

0 投票
1 回答
997 浏览

validation - 默克尔树如何帮助验证区块链中块的内容

据我了解,默克尔树可用于通过递归地将哈希函数应用于块内容来分离块的实际交易(或其他内容)及其验证过程。

这使得实现简化的支付验证(或块内任何其他数据的验证)成为可能。

链接的定义表明 SVP 是

[...] 验证特定交易是否包含在区块中的方法,而无需下载整个区块。

如果 merkle 树是一种检查特定交易是否是块的一部分的方法,这意味着我们不“信任该块”,因此正在检查搜索交易的哈希是否是树的一部分。如果我们不信任区块(或区块的原始验证者),我们怎么会信任默克尔树,它也可能是伪造的(或者不是?)。

我们是否“只是”依赖于具有值是伪随机的事实并且很难创建具有相同根值但一个不同节点值的假树?

谢谢!

0 投票
0 回答
16 浏览

ethereum - 构建默克尔树时如何避免最后一个未配对元素的问题

在为以太坊区块链构建默克尔树时,我们能否避免最后一个未配对的数据元素的问题?我知道区块链有办法解决这个问题,我们必须复制最后一个元素,但这是可以用来攻击网络的问题。

0 投票
2 回答
550 浏览

linked-list - 区块链账本存储

一段时间以来,我一直在研究区块链,我一直在寻找解释区块链分类账保存在哪里以及如何在本地保存的信息(例如,在完整节点中本地保存)。我大部分时间发现的是以太坊或 Hyperledger Fabric 使用 LevelDB 或 RocksDB 等来保存状态信息的状态数据库。当我正在研究用于存储新数据的 LinkedList 和 Merkle 树(哈希树)时,除了保存在某些磁盘键值存储/数据库中的状态之外,我一直在努力了解区块链分类帐的保存位置被创建并被散列并保存在默克尔树中以供全节点和半节点验证目的的块可以查询和验证交易是否存在。

谢谢,最好的,

罗希特

0 投票
0 回答
50 浏览

blockchain - 区块链如何通过数据库的下划线实现来验证链上的数据?

假设我有一个包含系统的区块链实现的 merkle 树,并且我已经使用数据库和它一起对其进行搜索操作。所以我的问题是,区块链如何验证某人是否更改了数据库中的任何值?我们是否定期使用链验证数据库?如果是,我们如何做到这一点以及在什么时间间隔?

以客户忠诚度积分为例:

如果某人获得了数据库的root访问权限,他们可以直接更改数据库中的值并通过获取他们没有的忠诚度积分来从中受益,并兑换这些积分(因为在进行交易之前,我们搜索用户的积分余额)。那么在这种情况下,是否应该对实现的数据库中的数据进行一些验证?如果是,应该多久进行一次?以及如何实现它,因为这需要我们遍历整个默克尔树,然后验证数据库。这将是一个耗时的过程。

在现实生活中的区块链实施中,我们如何应对这种情况?任何建议或帮助将不胜感激。

0 投票
1 回答
275 浏览

algorithm - 区块链和不可变链表有什么区别?

有一个面试题:区块链和不可变链表有什么区别?

我回答说它们是相同的技术,然后没有通过测试。请纠正我的错误。

0 投票
1 回答
83 浏览

data-structures - 需要帮助来理解默克尔树

我正在尝试设计一种功能来验证各种网络交换机之间的数据一致性。数据的数量以百万计,并且这些数据在不同的网络交换机中复制。我正在考虑使用 Merkle 树来实现此功能,因为这样我就无需通过网络发送数据进行验证。但是我对 Merkle 树有疑问。假设我有两棵 Merkle 树。如果每棵树的根哈希相互匹配,那么我可以得出结论,两棵树都是彼此的镜像吗?如果是的话,这个属性是否适用于其他中间节点?

谢谢