blockjoe

177 posts

blockjoe banner
blockjoe

blockjoe

@__blockjoe__

💻🐍🪙🏌️🧮🔬| CTO https://t.co/GL9ngYcpOT

Delaware Katılım Aralık 2020
129 Takip Edilen81 Takipçiler
Sabitlenmiş Tweet
blockjoe
blockjoe@__blockjoe__·
1/ Light client development and adoption is critical for the next stage of Ethereum, but why? In this🧵, I'll explain why without them, that RPC provider that you currently trust can steal your funds, and walk you through an example of how it's done.
English
1
8
12
1.5K
blockjoe
blockjoe@__blockjoe__·
@FUCORY #L388" target="_blank" rel="nofollow noopener">github.com/blockjoe/llm.v… For reference
English
1
0
1
22
blockjoe
blockjoe@__blockjoe__·
@FUCORY If you're trying to automate this, fzf is the perfect terminal tool for quickly selecting the multiple files to push to context. Basic bash logic: 1. Some terminal tool to treeview the pwd 2. fzf to select multiple files 3. Some user input field for the prompt 4. Profit
English
1
0
1
26
fucory
fucory@FUCORY·
Prompt engineer wizards Do you find that you get better results if you give instructions before you share a huge pile of context, after you share a huge pile of context, or both?
English
2
0
3
228
blockjoe
blockjoe@__blockjoe__·
@FUCORY In both cases, I have the system prompt explain these tags, and whenever I do that, I've had similar results regardless if I throw the <prompt> tag above or below the <context> tag
English
1
0
1
29
blockjoe
blockjoe@__blockjoe__·
@FUCORY For multiple I do <context> <structure> Tree view of project </structure> <file name="fileone"> ... </file> <file name="filetwo"> ... </file> </context> <prompt> ... </prompt>
English
1
0
1
40
blockjoe
blockjoe@__blockjoe__·
@gakonst @_opencv_ I just threw up my own shell/vim utils here github.com/blockjoe/llm.v… It's undocumented, still has my home directory hardcoded, vim not nvim, and it's gonna have some fzf/bat/ripgrep dependencies, but it's how I pass any code I want in the context using vim text-objects.
English
1
0
9
576
Wei Dai
Wei Dai@_weidai·
Random thought: an L1 relying on TEEs could potentially rely on a non-BFT consensus algorithm like Raft even in a permissionless setting, since TEE attestations prevent can malicious node behavior.
English
21
1
41
7.8K
blockjoe
blockjoe@__blockjoe__·
If you understand the tech at all, it makes perfect sense. Blindly trusting nodes for things like address resolution is a horrible pattern that most people aren't even aware is a trusted relationship. It's trivial for someone to swap out ENS (and other DeFi) registry lookups with no way to catch it in flight.
English
1
0
0
30
z80.wei 👌☀️👌
it is now 2025 and mobile MM STILL doesn’t support ERC-3668 stop using garbage wallets use literally anything other than MM
z80.wei 👌☀️👌 tweet media
English
13
4
32
2K
blockjoe
blockjoe@__blockjoe__·
I think we agree here that this doesn't do much in terms of "verifying model interactions." The only thing this proves is that the request came from a known host, and in this case the known host would be OpenAI. The request should just be coming off a cron job, in response to a webhook, or manually executed like you call out. I'm not sure what makes one of these any "better" than the other, and think what matters more is making sure that the humans aren't the ones generating the output.
English
1
0
1
48
blockjoe
blockjoe@__blockjoe__·
In this case, it's a proof that a response from OpenAI (or another model host) has been cached on CloudFlare. In this case, if it came from OpenAI, then it's not "done by a human" but you're right, not a proof of proper inference execution. But this approach doesn't generalize to self-hosted or less well known model hosts.
English
1
0
0
99
Mateusz Górski
Mateusz Górski@MateuszAtCC·
@dabit3 @ai16zdao @OpacityNetwork I fail to see how this proves that *AI* did the interaction. zkTLS proves that a certain data/response was received w/o revealing it but that same action/response could have been made/received by a human doing the work.
English
2
0
5
493
blockjoe
blockjoe@__blockjoe__·
@potuz_eth @mteamisloading Light clients will solve this, so does running your own full node. Distrubting those tools to the masses is the hard part.
English
0
0
1
17
mteam.eth
mteam.eth@mteamisloading·
Verifiability is very important to disintermediation at scale. This is a key advantage of Celestia and Ethereum over Solana. Yet today in practice, almost 100% of Ethereum and Celestia users still trust RPC providers. Closing this gap is one of my personal priorities for Ethereum.
English
10
4
77
7K
blockjoe
blockjoe@__blockjoe__·
It's easy to fix for individual roll-ups if you're comfortable slightly diverging off the RPC spec to throw the context for the "latest" block methods into somewhere like "extraData", but leveraging it means having a slight divergence from the rest of your downstream tools. But if you're starting to diverge to that level, now it's probably worth thinking about jumping right to light client adoption directly instead of trying to do it for an intermediary solution. It's a tough one.
English
0
0
1
21
blockjoe
blockjoe@__blockjoe__·
A light client is more than just a DA verification tool though. I get not seeing the end user advantage of verifying availability via sampling, i.e. "just download the whole block, it's not that big". Its real user benefit is being able to verify that the network state of any inputs to their transactions are correct, and not subject to RPC poisoning. These light client nuances likely aren't going to be broadly applicable between both Eth and Solana, rather tied more deeply into the existing node implementations and commitment schemes of each protocol.
English
0
0
0
33
mteam.eth
mteam.eth@mteamisloading·
@toly cc: @nickwh8te @colludingnode @IanSNorden any thoughts here? My personal thinking is that there is a much different cultural expectation for who verifies the chain and this has shaped (and will shape) technical decisions that make the viability of these ideas a bit different.
English
2
0
7
1.6K
blockjoe
blockjoe@__blockjoe__·
How do you know the contract you're interacting with isn't one that has an identical ABI to the one you think you're interacting with though, and the actual logic implemented in the methods does something different? ABI decoding helps catch the low-hanging fruit, but it still unfortunately has holes.
English
1
0
2
41
Potuz
Potuz@potuz_eth·
@__blockjoe__ @mteamisloading Fair, users have some solace against this in their hardware wallet ABI decoding what they're signing, but yeah this is a horrible UX of crypto
English
1
0
2
42
blockjoe
blockjoe@__blockjoe__·
I linked out to a thread above, but the tl;dr is that the "latest" block parameter in "eth_call" makes the default smart contract interaction method non-replayable. Sure, you can randomly sample deterministic requests, including eth_call at specified blocks to get consistency, but since the default behavior is to use "latest", you can choose to return whatever response you want only for "latest" blocks since that lacks the context needed to replay those requests.
English
1
0
1
36
blockjoe
blockjoe@__blockjoe__·
@mteamisloading @stskeeps It's partially because there's no way to "randomly sample" the same request across multiple providers without fundamentally changing the RPC API. Any such service needs explicit buy-in from either the core devs or the node operators to enable.
English
2
0
0
54
blockjoe
blockjoe@__blockjoe__·
This take is actually off, both the app UI and the wallet connect to their own trusted RPCs. The full node in either case is only going to verify that the transaction can be properly included in the block, but anything that the RPC does prior to constructing that transaction (getting data) is still 100% trusted in both instances.
English
1
0
2
44
Potuz
Potuz@potuz_eth·
@mteamisloading This seems false: - User sends a tx using a trusted RPC to an app UI - The app UI is actually connected to a full node that verifies the chain. - User gets feedback both from their wallets (trusted RPC) and the app UI (another independent node). In Solana apps can't verify.
English
2
0
7
312
blockjoe
blockjoe@__blockjoe__·
@VitalikButerin @FUCORY When we hacked this into ethers, it was pretty easy with eth_createAccessList to get what we needed to verify the storage and account proofs, but if we wanted to go all the way on eth_call, embedding an EVM runtime would have completed this. github.com/stateless-solu…
English
0
0
0
180
blockjoe
blockjoe@__blockjoe__·
I think I'm seeing it. My understanding of a "verification config" was logic for describing arbitrary verification code to be executed client side. But you're describing using contracts to encode the verifier logic directly so that the node ultimately still gets delegated that execution, which, obviously duh. In that case still, the light client is only going to be able to prove the underlying account and storage slots, so if that verification logic involves an external input, your choices become: 1. implement a validity proof for the existing call 2. simply execute the EVM code initialized with the storage slots verified by the light client proof directly in the browser (which, helios does, yeah)
English
1
0
0
160
blockjoe
blockjoe@__blockjoe__·
14/ Am I understanding the logic here correctly: 1. Config contract is posted on L1 2. Light client gets the and verifies the config contract from the L1 3. Light client makes the L2 look-up 4. Light client uses the logic encoded in the config contract to verify the data
English
3
0
3
3.1K